From 41a2046479dadfebb991166349a32b6e1ebed166 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 7 Jul 2014 15:09:21 +0400 Subject: [PATCH] [UI] FullScreen mode for Mac OS clients --- .../src/main/java/mage/client/MageFrame.java | 5 +++ .../java/mage/client/util/SystemUtil.java | 38 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 Mage.Client/src/main/java/mage/client/util/SystemUtil.java diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 87c3c913b20..a71c60f0006 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -56,6 +56,7 @@ import mage.client.table.TablesPane; import mage.client.tournament.TournamentPane; import mage.client.util.EDTExceptionHandler; import mage.client.util.SettingsManager; +import mage.client.util.SystemUtil; import mage.client.util.audio.MusicPlayer; import mage.client.util.gui.ArrowBuilder; import mage.client.util.stats.UpdateMemUsageTask; @@ -313,6 +314,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } } }); + + if (SystemUtil.isMacOSX()) { + SystemUtil.enableMacOSFullScreenMode(this); + } } private void addTooltipContainer() { diff --git a/Mage.Client/src/main/java/mage/client/util/SystemUtil.java b/Mage.Client/src/main/java/mage/client/util/SystemUtil.java new file mode 100644 index 00000000000..46119a5e173 --- /dev/null +++ b/Mage.Client/src/main/java/mage/client/util/SystemUtil.java @@ -0,0 +1,38 @@ +package mage.client.util; + +import java.awt.*; +import java.lang.reflect.Method; + +/** + * @author noxx + */ +public class SystemUtil { + + public static final String OS_NAME = "os.name"; + public static final String MAC_OS_X = "Mac OS X"; + + private SystemUtil() { + } + + public static boolean isMacOSX() { + return System.getProperty(OS_NAME).contains(MAC_OS_X); + } + + public static void enableMacOSFullScreenMode(Window window) { + String className = "com.apple.eawt.FullScreenUtilities"; + String methodName = "setWindowCanFullScreen"; + + try { + Class clazz = Class.forName(className); + Method method = clazz.getMethod(methodName, Window.class, boolean.class); + method.invoke(null, window, true); + } catch (Throwable t) { + System.err.println("Full screen mode is not supported"); + t.printStackTrace(); + } + } + + public static void main(String... args) { + System.out.println(isMacOSX()); + } +}