src/Pure/System/platform.scala
changeset 31828 31584cf201cc
parent 31825 d47a9dc1f064
child 35002 fbb40a1091ea
--- a/src/Pure/System/platform.scala	Sun Jun 28 16:01:52 2009 +0200
+++ b/src/Pure/System/platform.scala	Sun Jun 28 16:46:00 2009 +0200
@@ -6,14 +6,21 @@
 
 package isabelle
 
+import javax.swing.UIManager
+
 import scala.util.matching.Regex
 
 
 object Platform
 {
+  /* main OS variants */
+
   val is_macos = System.getProperty("os.name") == "Mac OS X"
   val is_windows = System.getProperty("os.name").startsWith("Windows")
 
+
+  /* Isabelle platform identifiers */
+
   private val Solaris = new Regex("SunOS|Solaris")
   private val Linux = new Regex("Linux")
   private val Darwin = new Regex("Mac OS X")
@@ -44,5 +51,19 @@
       case None => None
     }
   }
+
+
+  /* Swing look-and-feel */
+
+  def look_and_feel(): String =
+  {
+    if (is_windows || is_macos) UIManager.getSystemLookAndFeelClassName()
+    else {
+      UIManager.getInstalledLookAndFeels().find(laf => laf.getName == "Nimbus") match {
+        case None => UIManager.getCrossPlatformLookAndFeelClassName()
+        case Some(laf) => laf.getClassName
+      }
+    }
+  }
 }