Package com.nomagic.ui
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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
addHiDPIScaledProperty
(Component component) Mark this component as HiDPI scaledstatic void
adjustFontByLookAndFeelDefaults
(Component component) Apply L&F default font group if this is Windows L&Fstatic float
Calculates system scaling factor.static void
static ResizableIcon
getNonScaledIcon
(ResizableIcon icon, int size, double maxScale) Return icon scaled down to a given size.static double
Deprecated.use getReducedUserScalingFactor()static double
In some cased real scaling scales UI too much.static ResizableIcon
Return scaled to 16x16 icon for a given icon.static float
Deprecated.use calculateSystemScaleFactor()static double
Deprecated.use getUserScalingFactor()static ResizableIcon
static ResizableIcon
Return resizable icon scaled by system scale factor.static double
System scale factor.static double
User scale factor.static boolean
Checks if system or user scaling factor is defined.static boolean
Deprecated.isUserScalingFactorDefined()static boolean
Checks if system scaling is enabled.static boolean
Checks if user scaling factor is defined by jvm argument magicdraw.resolution.scale.static boolean
Check if Windows Look and Feel is active.static double
scaleByComponent
(Component component, double value) static int
scaleByComponent
(Component component, int value) static void
scaleComponent
(HiDPIScalableComponent component) Scale components and its children preferred size and similar.static float
scaleDownFont
(float size) Scale font size down.static float
scaleFont
(float size) Scale font size.static int
scaleIcon
(int size) Scale Icon size.static void
Scale various java Look&Feel settings like fonts, icons sizes, insets and etc.static double
scaleUI
(double size) Scale User Interface item size.static int
scaleUI
(int size) Scale User Interface item size.static void
scaleUIRecursively
(Component component) Scale components and its children preferred size and similar.static int
systemScaleValueUp
(int value) Scales given value by system scale factor.Methods inherited from class com.nomagic.ui.HiDPIScaleUtilitiesInternal
adjustDimensionForFractionalScale, isScalingFractional
-
Field Details
-
HI_DPI_SCALED
- See Also:
-
-
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 usingToolkit.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
Return resizable icon scaled by system scale factor.- Parameters:
icon
- icon to scale- Returns:
- scaled icon
-
getScaled16x16Icon
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.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.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
Mark this component as HiDPI scaled- Parameters:
component
- component
-
scaleComponent
Scale components and its children preferred size and similar.- Parameters:
component
- component
-
scaleUIRecursively
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
Apply L&F default font group if this is Windows L&F -
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.use calculateSystemScaleFactor()Calculates system scaling factor from screen resolution.- Returns:
- scaling factor.
-
scaleByComponent
-
scaleByComponent
-