package jalview.bin;
import java.awt.HeadlessException;
-import java.awt.Toolkit;
public class HiDPISetting
{
private static final int bigScreenThreshold = 1400;
- private static final String scalePropertyName = "sun.java2d.uiScale";
+ public static final String scalePropertyName = "sun.java2d.uiScale";
private static final boolean isLinux;
private static boolean allowScalePropertyArg = false;
+ private static ScreenInfo screenInfo = new ScreenInfo();
+
static
{
String system = System.getProperty("os.name") == null ? null
// and screen resolution (more trustworthy)
// get screen dpi
+ screenInfo = getScreenInfo();
try
{
- dpi = Toolkit.getDefaultToolkit().getScreenResolution();
+ dpi = screenInfo.getScreenResolution();
} catch (HeadlessException e)
{
System.err.println("Cannot get screen resolution: " + e.getMessage());
// try and get screen size height and width
try
{
- int height = Toolkit.getDefaultToolkit().getScreenSize().height;
- int width = Toolkit.getDefaultToolkit().getScreenSize().width;
+ int height = screenInfo.getScreenHeight();
+ int width = screenInfo.getScreenWidth();
// using mindimension in case of portrait screens
mindimension = Math.min(height, width);
} catch (HeadlessException e)
doneInit = true;
}
+ public static String getScalePropertyArg(int s)
+ {
+ return "-D" + scalePropertyName + "=" + String.valueOf(s);
+ }
+
public static String getScalePropertyArg()
{
init();
// HiDPI setting. Just looking at Linux to start with. Test with Windows.
- return allowScalePropertyArg ? "-D" + scalePropertyName + "=" + scale
- : null;
+ return allowScalePropertyArg ? getScalePropertyArg(scale) : null;
+ }
+
+ public static void clear()
+ {
+ setHiDPI = false;
+ setHiDPIScale = 0;
+ dpi = 0;
+ mindimension = 0;
+ width = 0;
+ scale = 0;
+ doneInit = false;
+ allowScalePropertyArg = false;
+ }
+
+ public static void setScreenInfo(ScreenInfo si)
+ {
+ screenInfo = si;
+ }
+
+ public static ScreenInfo getScreenInfo()
+ {
+ if (screenInfo == null)
+ {
+ screenInfo = new ScreenInfo();
+ }
+ return screenInfo;
}
}
--- /dev/null
+package jalview.bin;
+
+import java.awt.Toolkit;
+
+public class ScreenInfo
+{
+ public int getScreenResolution()
+ {
+ return Toolkit.getDefaultToolkit().getScreenResolution();
+ }
+
+ public int getScreenHeight()
+ {
+ return (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
+ }
+
+ public int getScreenWidth()
+ {
+ return (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
+ }
+}