123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- #
- # Font specifications.
- #
- # This file, [source]d at initialization time, sets up the following
- # symbolic fonts based on the current platform:
- #
- # TkDefaultFont -- default for GUI items not otherwise specified
- # TkTextFont -- font for user text (entry, listbox, others)
- # TkFixedFont -- standard fixed width font
- # TkHeadingFont -- headings (column headings, etc)
- # TkCaptionFont -- dialog captions (primary text in alert dialogs, etc.)
- # TkTooltipFont -- font to use for tooltip windows
- # TkIconFont -- font to use for icon captions
- # TkMenuFont -- used to use for menu items
- #
- # In Tk 8.5, some of these fonts may be provided by the TIP#145 implementation
- # (On Windows and Mac OS X as of Oct 2007).
- #
- # +++ Platform notes:
- #
- # Windows:
- # The default system font changed from "MS Sans Serif" to "Tahoma"
- # in Windows XP/Windows 2000.
- #
- # MS documentation says to use "Tahoma 8" in Windows 2000/XP,
- # although many MS programs still use "MS Sans Serif 8"
- #
- # Should use SystemParametersInfo() instead.
- #
- # Mac OSX / Aqua:
- # Quoth the Apple HIG:
- # The _system font_ (Lucida Grande Regular 13 pt) is used for text
- # in menus, dialogs, and full-size controls.
- # [...] Use the _view font_ (Lucida Grande Regular 12pt) as the default
- # font of text in lists and tables.
- # [...] Use the _emphasized system font_ (Lucida Grande Bold 13 pt)
- # sparingly. It is used for the message text in alerts.
- # [...] The _small system font_ (Lucida Grande Regular 11 pt) [...]
- # is also the default font for column headings in lists, for help tags,
- # and for small controls.
- #
- # Note that the font for column headings (TkHeadingFont) is
- # _smaller_ than the default font.
- #
- # There does not appear to be any recommendations for fixed-width fonts.
- #
- # X11:
- # Need a way to tell if Xft is enabled or not.
- # For now, assume patch #971980 applied.
- #
- # "Classic" look used Helvetica bold for everything except
- # for entry widgets, which use Helvetica medium.
- # Most other toolkits use medium weight for all UI elements,
- # which is what we do now.
- #
- # Font size specified in pixels on X11, not points.
- # This is Theoretically Wrong, but in practice works better; using
- # points leads to huge inconsistencies across different servers.
- #
- namespace eval ttk {
- variable tip145 [catch {font create TkDefaultFont}]
- catch {font create TkTextFont}
- catch {font create TkHeadingFont}
- catch {font create TkCaptionFont}
- catch {font create TkTooltipFont}
- catch {font create TkFixedFont}
- catch {font create TkIconFont}
- catch {font create TkMenuFont}
- catch {font create TkSmallCaptionFont}
- if {!$tip145} {
- variable F ;# miscellaneous platform-specific font parameters
- switch -- [tk windowingsystem] {
- win32 {
- # In safe interps there is no osVersion element.
- if {[info exists tcl_platform(osVersion)]} {
- if {$tcl_platform(osVersion) >= 5.0} {
- set F(family) "Tahoma"
- } else {
- set F(family) "MS Sans Serif"
- }
- } else {
- if {[lsearch -exact [font families] Tahoma] != -1} {
- set F(family) "Tahoma"
- } else {
- set F(family) "MS Sans Serif"
- }
- }
- set F(size) 8
- font configure TkDefaultFont -family $F(family) -size $F(size)
- font configure TkTextFont -family $F(family) -size $F(size)
- font configure TkHeadingFont -family $F(family) -size $F(size)
- font configure TkCaptionFont -family $F(family) -size $F(size) \
- -weight bold
- font configure TkTooltipFont -family $F(family) -size $F(size)
- font configure TkFixedFont -family Courier -size 10
- font configure TkIconFont -family $F(family) -size $F(size)
- font configure TkMenuFont -family $F(family) -size $F(size)
- font configure TkSmallCaptionFont -family $F(family) -size $F(size)
- }
- aqua {
- set F(family) "Lucida Grande"
- set F(fixed) "Monaco"
- set F(menusize) 14
- set F(size) 13
- set F(viewsize) 12
- set F(smallsize) 11
- set F(labelsize) 10
- set F(fixedsize) 11
- font configure TkDefaultFont -family $F(family) -size $F(size)
- font configure TkTextFont -family $F(family) -size $F(size)
- font configure TkHeadingFont -family $F(family) -size $F(smallsize)
- font configure TkCaptionFont -family $F(family) -size $F(size) \
- -weight bold
- font configure TkTooltipFont -family $F(family) -size $F(smallsize)
- font configure TkFixedFont -family $F(fixed) -size $F(fixedsize)
- font configure TkIconFont -family $F(family) -size $F(size)
- font configure TkMenuFont -family $F(family) -size $F(menusize)
- font configure TkSmallCaptionFont -family $F(family) -size $F(labelsize)
- }
- default -
- x11 {
- if {![catch {tk::pkgconfig get fontsystem} F(fs)] && $F(fs) eq "xft"} {
- set F(family) "sans-serif"
- set F(fixed) "monospace"
- } else {
- set F(family) "Helvetica"
- set F(fixed) "courier"
- }
- set F(size) -12
- set F(ttsize) -10
- set F(capsize) -14
- set F(fixedsize) -12
- font configure TkDefaultFont -family $F(family) -size $F(size)
- font configure TkTextFont -family $F(family) -size $F(size)
- font configure TkHeadingFont -family $F(family) -size $F(size) \
- -weight bold
- font configure TkCaptionFont -family $F(family) -size $F(capsize) \
- -weight bold
- font configure TkTooltipFont -family $F(family) -size $F(ttsize)
- font configure TkFixedFont -family $F(fixed) -size $F(fixedsize)
- font configure TkIconFont -family $F(family) -size $F(size)
- font configure TkMenuFont -family $F(family) -size $F(size)
- font configure TkSmallCaptionFont -family $F(family) -size $F(ttsize)
- }
- }
- unset -nocomplain F
- }
- }
- #*EOF*
|