Class HiDPIScaleUtilities

java.lang.Object
com.nomagic.ui.HiDPIScaleUtilitiesInternal
com.nomagic.ui.HiDPIScaleUtilities

@OpenApiAll public class HiDPIScaleUtilities extends com.nomagic.ui.HiDPIScaleUtilitiesInternal
Utilities to work with various scaling aspects on HiDPI screens.

These utilities do not have any affect on Mac Retina screens. On Retina screens RetinaUtilities should be used.

There are two types of scaling factors: system and user. System scaling factor is managed by JVM. If it is enabled - graphics is scaled automatically. System Scaling factor is calculated using Toolkit.getScreenResolution() value. User scaling factor is defined by user supplying jvm argument magicdraw.resolution.scale. For example -Dmagicdraw.resolution.scale=2 means scale ui two times. Both scaling factors has multiplicative relation, ui is scaled by both scaling factors.

  • Field Details

  • Constructor Details

    • HiDPIScaleUtilities

      public HiDPIScaleUtilities()
  • Method Details

    • isSystemScalingEnabled

      public static boolean isSystemScalingEnabled()
      Checks if system scaling is enabled.
      Returns:
      true if system scaling is enabled
    • getSystemScaleFactor

      public static double getSystemScaleFactor()
      System scale factor. Scaling factor is calculated using Toolkit.getScreenResolution() value.
      Returns:
      system scaling factor.
    • systemScaleValueUp

      public static int systemScaleValueUp(int value)
      Scales given value by system scale factor.
      Parameters:
      value - value to scale
      Returns:
      scaled value
    • isWindowsLookAndFeel

      public static boolean isWindowsLookAndFeel()
      Check if Windows Look and Feel is active.
      Returns:
      true if Windows Look and Feel is active
    • getSystemScaled16x16Icon

      @CheckForNull public static ResizableIcon getSystemScaled16x16Icon(@CheckForNull ResizableIcon icon)
    • getSystemScaledIcon

      public static ResizableIcon getSystemScaledIcon(ResizableIcon icon)
      Return resizable icon scaled by system scale factor.
      Parameters:
      icon - icon to scale
      Returns:
      scaled icon
    • getScaled16x16Icon

      @CheckForNull public static ResizableIcon getScaled16x16Icon(@CheckForNull ResizableIcon icon)
      Return scaled to 16x16 icon for a given icon. Scaling factor is taken into account, so in scaled environment icon size will be scaled by a scale factor. Scaled icons are cached using WeakReferences.
      Parameters:
      icon - icon
      Returns:
      scaled icon
    • getNonScaledIcon

      @CheckForNull public static ResizableIcon getNonScaledIcon(@CheckForNull ResizableIcon icon, int size, double maxScale)
      Return icon scaled down to a given size. Scaled icons are cached using WeakReferences.
      Parameters:
      icon - icon
      Returns:
      icon of given size
      See Also:
      • SquareIcon.create(ResizableIcon, int, double)
    • scaleIcon

      public static int scaleIcon(int size)
      Scale Icon size.
      Parameters:
      size - size
      Returns:
      Scaled size or the same value as provided.
    • scaleUI

      public static double scaleUI(double size)
      Scale User Interface item size.
      Parameters:
      size - size
      Returns:
      Scaled size or the same value as provided.
    • scaleUI

      public static int scaleUI(int size)
      Scale User Interface item size.
      Parameters:
      size - size
      Returns:
      Scaled size or the same value as provided.
    • scaleFont

      public static float scaleFont(float size)
      Scale font size.
      Parameters:
      size - size
      Returns:
      Scaled size or the same value as provided.
    • scaleDownFont

      public static float scaleDownFont(float size)
      Scale font size down.
      Parameters:
      size - size
      Returns:
      Scaled size or the same value as provided.
    • getUserScalingFactor

      public static double getUserScalingFactor()
      User scale factor. It is defined by jvm argument magicdraw.resolution.scale
      Returns:
      user scaling factor.
    • getScalingFactor

      @Deprecated public static double getScalingFactor()
      Deprecated.
      use getUserScalingFactor()
      User scale factor. It is defined by jvm argument magicdraw.resolution.scale
      Returns:
      user scaling factor.
    • getReducedUserScalingFactor

      public static double getReducedUserScalingFactor()
      In some cased real scaling scales UI too much. This methods returns reduced scaling factor for cases then real scaling scales UI too much.
      Returns:
      reduced scaling factor
    • getReducedScalingFactor

      @Deprecated public static double getReducedScalingFactor()
      Deprecated.
      use getReducedUserScalingFactor()
      In some cased real scaling scales UI too much. This methods returns reduced scaling factor for cases then real scaling scales UI too much.
      Returns:
      reduced scaling factor
    • isScalingFactorDefined

      public static boolean isScalingFactorDefined()
      Checks if system or user scaling factor is defined.
      Returns:
      true if system or user scaling factor is defined
    • isUserScalingFactorDefined

      public static boolean isUserScalingFactorDefined()
      Checks if user scaling factor is defined by jvm argument magicdraw.resolution.scale.
      Returns:
      true if user scaling factor is defined
    • addHiDPIScaledProperty

      public static void addHiDPIScaledProperty(Component component)
      Mark this component as HiDPI scaled
      Parameters:
      component - component
    • scaleComponent

      public static void scaleComponent(HiDPIScalableComponent component)
      Scale components and its children preferred size and similar.
      Parameters:
      component - component
    • scaleUIRecursively

      public static void scaleUIRecursively(Component component)
      Scale components and its children preferred size and similar.
      Parameters:
      component - component
    • scaleLookAndFeel

      public static void scaleLookAndFeel()
      Scale various java Look&Feel settings like fonts, icons sizes, insets and etc.
    • fixWindowsFonts

      public static void fixWindowsFonts()
    • adjustFontByLookAndFeelDefaults

      public static void adjustFontByLookAndFeelDefaults(Component component)
      Apply L&F default font group if this is Windows L&F
    • isScalingFactorFromProperty

      @Deprecated public static boolean isScalingFactorFromProperty()
      Deprecated.
      isUserScalingFactorDefined()
      Checks if scaling factor is defined from system property.
      Returns:
      true if scaling factor is from resolution scale property.
    • calculateSystemScaleFactor

      public static float calculateSystemScaleFactor()
      Calculates system scaling factor.
      Returns:
      scaling factor.
    • getScaleFactorByScreenResolution

      @Deprecated public static float getScaleFactorByScreenResolution()
      Deprecated.
      use calculateSystemScaleFactor()
      Calculates system scaling factor from screen resolution.
      Returns:
      scaling factor.
    • scaleByComponent

      public static int scaleByComponent(Component component, int value)
    • scaleByComponent

      public static double scaleByComponent(Component component, double value)