Class SWTFontProvider

java.lang.Object
org.eclipse.swt.internal.SWTFontProvider

public class SWTFontProvider extends Object
This internal class is used to provide and cache fonts scaled for different zoom levels in the win32 implementation. Depending on the configuration of the SWT application, either a default behavior or the scaling behavior is used. The default behavior mimics the existing behavior that fonts are scaled to the zoom of the primary monitor and are not updated on runtime. The scaling behavior will always take the provided values for the zoom into consideration and return scaled variant of a font if necessary.
  • Constructor Details

    • SWTFontProvider

      public SWTFontProvider()
  • Method Details

    • getSystemFont

      public static Font getSystemFont(Device device, int zoom)
      Returns the system font for the given device at the specified zoom. Note: This operation is not thread-safe. It must thus always be called from the same thread for the same device, such as the display's UI thread.
      Parameters:
      device - the device to retrieve the font for, must not be null
      zoom - the zoom for which the font shall be scaled
    • getSystemFontHandle

      public static long getSystemFontHandle(Device device, int zoom)
    • getFont

      public static Font getFont(Device device, FontData fontData, int zoom)
      Returns the font with the given font data for the given device at the specified zoom. Note: This operation is not thread-safe. It must thus always be called from the same thread for the same device, such as the display's UI thread.
      Parameters:
      device - the device to retrieve the font for, must not be null
      fontData - the data for the font to retrieve, must not be null
      zoom - the zoom for which the font shall be scaled
    • getFontHandle

      public static long getFontHandle(Device device, FontData fontData, int zoom)
    • getFontHandle

      public static long getFontHandle(Font font, int zoom)
    • getFont

      public static Font getFont(Device device, long fontHandle, int zoom)
      Returns the font with the given fontHandle for the given device at the specified zoom. Note: This operation is not thread-safe. It must thus always be called from the same thread for the same device, such as the display's UI thread.
      Parameters:
      device - the device to retrieve the font for, must not be null
      fontHandle - the handle to an existing font
      zoom - the zoom for which the font shall be scaled
    • disposeFontRegistry

      public static void disposeFontRegistry(Device device)
      Disposes the font registry for the given device, if one exists.
      Parameters:
      device - the device to dispose the font registry for, must not be null