X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fjalview%2Fbin%2FHiDPISetting.java;fp=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fjalview%2Fbin%2FHiDPISetting.java;h=5e20d7658cfd6fa952bb069c2791c67be948e309;hb=6402aef8acf127e8c5fee47ccaeb0b33aab07663;hp=0000000000000000000000000000000000000000;hpb=c1e22e204c48fe7fc30dbb95be46e5a04808898a;p=jalview.git diff --git a/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java b/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java new file mode 100644 index 0000000..5e20d76 --- /dev/null +++ b/getdown/src/getdown/core/src/main/java/jalview/bin/HiDPISetting.java @@ -0,0 +1,48 @@ +package jalview.bin; + +import java.awt.Toolkit; + +public class HiDPISetting +{ + public static final int dpi; + + public static final int scale; + + private static final int hidpi = 110; + + private static final String scaleProperty = "sun.java2d.uiScale"; + + private static final boolean isAMac = System.getProperty("os.name") + .indexOf("Mac") > -1; + + private static final boolean isLinux = System.getProperty("os.name") + .toLowerCase().indexOf("linux") > -1; + + private static final boolean isWindows = System.getProperty("os.name") + .toLowerCase().indexOf("windows") > -1; + + static + { + dpi = Toolkit.getDefaultToolkit().getScreenResolution(); + scale = dpi / hidpi + 1; + if (scale > 1 && isLinux) + { + System.out.println("DPI detected as " + dpi + + ". Scaling factor set to " + scale + "."); + } + } + + public static String getScalePropertyArg() + { + // HiDPI setting. Just looking at Linux to start with. Test with Windows. + if (!isLinux) + { + return null; + } + if (scale > 1) + { + return "-D" + scaleProperty + "=" + scale; + } + return null; + } +}