/* * RomRaider Open-Source Tuning, Logging and Reflashing * Copyright (C) 2006-2012 RomRaider.com * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package com.romraider.swing; import static com.romraider.Version.PRODUCT_NAME; import static com.romraider.util.Platform.LINUX; import static com.romraider.util.Platform.MAC_OS_X; import static com.romraider.util.Platform.isPlatform; import static javax.swing.UIManager.getCrossPlatformLookAndFeelClassName; import static javax.swing.UIManager.getSystemLookAndFeelClassName; import static javax.swing.UIManager.setLookAndFeel; import javax.swing.JDialog; import javax.swing.JFrame; import org.apache.log4j.Logger; public final class LookAndFeelManager { private static final Logger LOGGER = Logger.getLogger(LookAndFeelManager.class); private LookAndFeelManager() { throw new UnsupportedOperationException(); } public static void initLookAndFeel() { try { if (isPlatform(MAC_OS_X)) { System.setProperty("apple.awt.rendering", "true"); System.setProperty("apple.awt.brushMetalLook", "true"); System.setProperty("apple.laf.useScreenMenuBar", "true"); System.setProperty("apple.awt.window.position.forceSafeCreation", "true"); System.setProperty("com.apple.mrj.application.apple.menu.about.name", PRODUCT_NAME); } setLookAndFeel(getLookAndFeel()); // make sure we have nice window decorations. JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); } catch (Exception ex) { LOGGER.error("Error loading system look and feel.", ex); } } private static String getLookAndFeel() { // if (true) return "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"; // Linux has issues with the gtk look and feel themes. if (isPlatform(LINUX)) return getCrossPlatformLookAndFeelClassName(); return getSystemLookAndFeelClassName(); } }