java.lang.Object
org.pushingpixels.substance.internal.fonts.Fonts

public final class Fonts extends Object
Provides static access to popular Windows fonts. The sizes of the font constants are specified in typographic points, approximately 1/72 of an inch.

TODO: Consider changing the visibility of the package private methods to public. As an alternative we may provide a FontPolicy that can emulate the font choice on Windows XP/2000 and Windows Vista for different software resolutions (96dpi/120dpi) and desktop font size settings (Normal/Large/Extra Large).

Since:
2.0
See Also:
  • Field Details

    • TAHOMA_NAME

      public static final String TAHOMA_NAME
      The name of the default dialog font on western Windows XP.
      See Also:
    • SEGOE_UI_NAME

      public static final String SEGOE_UI_NAME
      The name of the default dialog font on western Windows Vista.
      See Also:
    • TAHOMA_11PT

      public static final Font TAHOMA_11PT
      This is the default font on western XP with 96dpi and normal fonts. Ascent=11, descent=3, height=14, dbuX=6, dbuY=12, 14dluY=21px.
    • TAHOMA_13PT

      public static final Font TAHOMA_13PT
      Ascent=13, descent=3, height=16, dbuX=8, dbuY=13, 14dluY=22.75px.
    • TAHOMA_14PT

      public static final Font TAHOMA_14PT
      Ascent=14, descent=3, height=17, dbuX=8, dbuY=14, 14dluY=24.5px.
    • SEGOE_UI_12PT

      public static final Font SEGOE_UI_12PT
      This is Segoe UI 9pt, the default font on western Vista with 96dpi. Ascent=13, descent=4, height=17, dbuX=7, dbuY=13, 13dluY=21.125px.
    • SEGOE_UI_13PT

      public static final Font SEGOE_UI_13PT
      Ascent=14, descent=4, height=18, dbuX=8, dbuY=14, 13dluY=22.75px.
    • SEGOE_UI_15PT

      public static final Font SEGOE_UI_15PT
      Ascent=16, descent=5, height=21, dbuX=9, dbuY=16, 13dluY=26px.
    • WINDOWS_XP_96DPI_NORMAL

      public static final Font WINDOWS_XP_96DPI_NORMAL
      The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
    • WINDOWS_XP_96DPI_DEFAULT_GUI

      public static final Font WINDOWS_XP_96DPI_DEFAULT_GUI
      The default GUI font on western Windows XP with 96dpi and the dialog font desktop setting "Normal".
    • WINDOWS_XP_96DPI_LARGE

      public static final Font WINDOWS_XP_96DPI_LARGE
      The default icon font on western Windows XP with 96dpi and the dialog font desktop setting "Large".
    • WINDOWS_XP_120DPI_NORMAL

      public static final Font WINDOWS_XP_120DPI_NORMAL
      The default icon font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
    • WINDOWS_XP_120DPI_DEFAULT_GUI

      public static final Font WINDOWS_XP_120DPI_DEFAULT_GUI
      The default GUI font on western Windows XP with 120dpi and the dialog font desktop setting "Normal".
    • WINDOWS_VISTA_96DPI_NORMAL

      public static final Font WINDOWS_VISTA_96DPI_NORMAL
      The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Normal".
    • WINDOWS_VISTA_96DPI_LARGE

      public static final Font WINDOWS_VISTA_96DPI_LARGE
      The default icon font on western Windows Vista with 96dpi and the dialog font desktop setting "Large".
    • WINDOWS_VISTA_120DPI_NORMAL

      public static final Font WINDOWS_VISTA_120DPI_NORMAL
      The default icon font on western Windows Vista with 120dpi and the dialog font desktop setting "Normal".
  • Method Details

    • getWindowsControlFont

      public static Font getWindowsControlFont()
      Looks up and returns the Windows control font. Returns the Windows icon title font unless it is inappropriate for the Windows version, Java renderer, or locale.

      The icon title font scales with the resolution (96dpi, 101dpi, 120dpi, etc) and the desktop font size settings (normal, large, extra large). Older versions may return a poor font. Also, since Java 1.4 and Java 5 render the Windows Vista icon font Segoe UI poorly, we return the default GUI font in these environments.

      The last check is, if the icon font can display text in the default locale. Therefore we test if the locale's localized display name can be displayed by the icon font. For example, Tahoma can display "English", "Deutsch", but not the display name for "Chinese" in Chinese.

      Returns:
      the Windows control font
      Throws:
      UnsupportedOperationException - on non-Windows platforms
    • canDisplayLocalizedText

      public static Boolean canDisplayLocalizedText(Font font, Locale locale)
      Checks and answers whether the given font can display text that is localized for the specified locale. Returns null if we can't test it.

      First checks, if the locale's display language is available in localized form, for example "Deutsch" for the German locale. If so, we check if the given font can display the localized display language.

      Otherwise we check some known combinations of fonts and locales and return the associated results. For all other combinations, null is returned to indicate that we don't know whether the font can display text in the given locale.

      Parameters:
      font - the font to be tested
      locale - the locale to be used
      Returns:
      Boolean.TRUE if the font can display the locale's text, Boolean.FALSE if not, null if we don't know
      Since:
      2.0.4