5e20d7658cfd6fa952bb069c2791c67be948e309
[jalview.git] / getdown / src / getdown / core / src / main / java / jalview / bin / HiDPISetting.java
1 package jalview.bin;
2
3 import java.awt.Toolkit;
4
5 public class HiDPISetting
6 {
7   public static final int dpi;
8
9   public static final int scale;
10
11   private static final int hidpi = 110;
12
13   private static final String scaleProperty = "sun.java2d.uiScale";
14
15   private static final boolean isAMac = System.getProperty("os.name")
16           .indexOf("Mac") > -1;
17
18   private static final boolean isLinux = System.getProperty("os.name")
19           .toLowerCase().indexOf("linux") > -1;
20
21   private static final boolean isWindows = System.getProperty("os.name")
22           .toLowerCase().indexOf("windows") > -1;
23
24   static
25   {
26     dpi = Toolkit.getDefaultToolkit().getScreenResolution();
27     scale = dpi / hidpi + 1;
28     if (scale > 1 && isLinux)
29     {
30       System.out.println("DPI detected as " + dpi
31               + ". Scaling factor set to " + scale + ".");
32     }
33   }
34
35   public static String getScalePropertyArg()
36   {
37     // HiDPI setting. Just looking at Linux to start with. Test with Windows.
38     if (!isLinux)
39     {
40       return null;
41     }
42     if (scale > 1)
43     {
44       return "-D" + scaleProperty + "=" + scale;
45     }
46     return null;
47   }
48 }