import javax.swing.LookAndFeel;
import javax.swing.UIManager;
+import javax.swing.UIManager.LookAndFeelInfo;
import com.threerings.getdown.util.LaunchUtil;
desktop = null;
- // property laf = "crossplatform", "system" or "mac"
+ // property laf = "crossplatform", "system", "gtk", "metal" or "mac"
// If not set (or chosen laf fails), use the normal SystemLaF and if on Mac,
// try Quaqua/Vaqua.
String laf = System.getProperty("laf", "none");
System.err.println("Could not set requested laf=" + laf);
}
break;
+ case "gtk":
+ lafSet = setGtkLookAndFeel();
+ {
+ System.err.println("Could not set requested laf=" + laf);
+ }
+ break;
+ case "metal":
+ lafSet = setMetalLookAndFeel();
+ {
+ System.err.println("Could not set requested laf=" + laf);
+ }
+ break;
+ case "nimbus":
+ lafSet = setNimbusLookAndFeel();
+ {
+ System.err.println("Could not set requested laf=" + laf);
+ }
+ break;
case "mac":
lafSet = setMacLookAndFeel();
if (!lafSet)
if (!lafSet)
{
setSystemLookAndFeel();
+ if (Platform.isLinux() && ! Platform.isJS()) {
+ setMetalLookAndFeel();
+ }
if (Platform.isAMacAndNotJS())
{
setMacLookAndFeel();
return set;
}
+ private static boolean setGtkLookAndFeel()
+ {
+ boolean set = false;
+ String laf = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
+ try
+ {
+ for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
+ if (info.getName() != null && info.getName().startsWith("Gtk")) {
+ laf = info.getClassName();
+ break;
+ }
+ }
+ UIManager.setLookAndFeel(laf);
+ set = true;
+ } catch (Exception ex)
+ {
+ System.err.println("Unexpected Look and Feel Exception");
+ ex.printStackTrace();
+ }
+ return set;
+ }
+
+ private static boolean setMetalLookAndFeel()
+ {
+ boolean set = false;
+ String laf = "javax.swing.plaf.metal.MetalLookAndFeel";
+ try
+ {
+ for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
+ if (info.getName() != null && info.getName().equals("Metal")) {
+ laf = info.getClassName();
+ break;
+ }
+ }
+ UIManager.setLookAndFeel(laf);
+ set = true;
+ } catch (Exception ex)
+ {
+ System.err.println("Unexpected Look and Feel Exception");
+ ex.printStackTrace();
+ }
+ return set;
+ }
+
+ private static boolean setNimbusLookAndFeel()
+ {
+ boolean set = false;
+ String laf = "javax.swing.plaf.nimbus.NimbusLookAndFeel";
+ try
+ {
+ for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
+ if (info.getName() != null && info.getName().equals("Nimbus")) {
+ laf = info.getClassName();
+ break;
+ }
+ }
+ UIManager.setLookAndFeel(laf);
+ set = true;
+ } catch (Exception ex)
+ {
+ System.err.println("Unexpected Look and Feel Exception");
+ ex.printStackTrace();
+ }
+ return set;
+ }
+
private static boolean setMacLookAndFeel()
{
boolean set = false;