package games.strategy.triplea.ui; import com.apple.eawt.AppEvent.QuitEvent; import com.apple.eawt.Application; import com.apple.eawt.QuitHandler; import com.apple.eawt.QuitResponse; /** * Utility class to wrap Mac OS X-specific shutdown handler. * * <p> * Based on TripleA code. * </p> * * <p> * Needs AppleJavaExtensions.jar to compile on non-Mac platform. * </p> */ public class MacQuitMenuWrapper { private static MainGameFrame shutdownFrame; static { Application.getApplication().setQuitHandler(new QuitHandler() { @Override public void handleQuitRequestWith(final QuitEvent arg0, final QuitResponse arg1) { if (shutdownFrame != null) { shutdownFrame.shutdown(); } else { System.exit(0); } } }); } // keep this in its own class, otherwise we get a no class def error when // we try to load the game and the stubs arent in the classpath // i think the java validator triggers this public static void registerMacShutdownHandler(final MainGameFrame frame) { shutdownFrame = frame; } public static void unregisterShutdownHandler() { shutdownFrame = null; } }