From: SourceForge.net <no...@so...> - 2010-03-04 07:46:49
|
Bugs item #2961564, was opened at 2010-03-01 14:36 Message generated for change (Comment added) made by tom_goddard You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2961564&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 45. Aqua Fonts Group: development: 8.6b1.1 Status: Closed Resolution: Wont Fix Priority: 5 Private: No Submitted By: Tom Goddard (tom_goddard) Assigned to: Daniel A. Steffen (das) Summary: No italic TkDefaultFont in Tk Cocoa Initial Comment: Making a label with font TkDefaultFont and italic slant displays a non-italic font with Tk Cocoa 8.6, Jan 8, 2010 source code. With Tk 8.5.8 Aqua (Carbon) an italic font is shown. The default Tk Cocoa font should have an italic version. Here's a Wish script demonstrating the problem: label .l -text "in italics?" -font "TkDefaultFont 13 italic" puts [font actual {TkDefaultFont 13 italic}] pack .l On Tk Cocoa 8.6 this shows a non-italic label and prints the following actual font being used: -family {Lucida Grande} -size 13 -weight normal -slant roman -underline 0 -overstrike 0 On Tk Aqua (Carbon) 8.5.8 the displayed label is italic and the script prints the actual font as: -family Geneva -size 13 -weight normal -slant italic -underline 0 -overstrike 0 Both tests were run on Mac OS 10.6.2. ---------------------------------------------------------------------- Comment By: Tom Goddard (tom_goddard) Date: 2010-03-03 23:46 Message: It is trouble having a default font without an italic slant available. It leaves a couple unsavory choices for the Tk app developer (me) of either trying to find a similar italic font to use with the default roman font (no way to do that programmatically) or choose another font that supports both roman and italic slants. For the developer of cross-platform apps this kind of weird platform-specific limitation is troublesome. We develop for WIndows, Linux and Mac. The best fix I can think of is to use Arial font as the Tk default on the Mac. It is a very similar looking font to Lucida Grande and cannot be uninstalled because it is used by the OS and has roman, bold, italic and italic bold variants. ---------------------------------------------------------------------- Comment By: Daniel A. Steffen (das) Date: 2010-03-03 22:51 Message: TkAqua Carbon uses QuickDraw font handling which can draw "fake" italic for fonts that don't have an italic variant, TkAqua Cocoa uses CoreText which does not provide this hack. ---------------------------------------------------------------------- Comment By: Tom Goddard (tom_goddard) Date: 2010-03-03 10:19 Message: Good point. The bug still exists with the suggested fix to the Tcl script: font create ifont {*}[font configure TkDefaultFont] -slant italic label .l -text "in italics?" -font ifont puts [font actual ifont] pack .l This script with wish8.6 displays a non-italic font for the label reported as -family {Lucida Grande} -size 13 -weight normal -slant roman -underline 0 -overstrike 0 while with Tk 8.5.8 Aqua (Carbon) an italic font is shown and reported as -family {Lucida Grande} -size 13 -weight normal -slant italic -underline 0 -overstrike 0 This latter correct result is mysterious because the Font Book application on the Mac OS 10.6 system this was tested on reports no italic Lucida Grande font (only regular and bold), and info on the web also says there is no such thing as an italic Lucida Grande. So it seems that Tk 8.5.8 reports the actual font to be a non-existent font, yet still displays correctly. ---------------------------------------------------------------------- Comment By: Pat Thoyts (patthoyts) Date: 2010-03-03 05:36 Message: {TkDefaultFont 13 italic} is an invalid font description. On the font manual page in the "FONT DESCRIPTION" section there are 5 acceptable forms given. The first is that a named font may be provided. The third form is {family ?size? ?style? ?style...?}. In this case you are presenting a named font name as a font family name. The system will try and find some acceptable font as it cant find a match. When I try the above example on Windows for instance, [font actual TkDefaultFont] gives a "SegoeUI" font but [font actual {TkDefaultFont 14 italic}] yields an Arial family font which is the default Tk family match when it can't find anything else appropriate. To make an italic version of the TkDefaultFont you should do: font create TkDefaultItalicFont {*}[font configure TkDefaultFont] -slant italic ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2961564&group_id=12997 |