merged
authorwenzelm
Fri, 10 Jan 2014 12:05:15 +0100
changeset 54964 bbf2ef613b8c
parent 54963 260ad8b204f5 (diff)
parent 54959 30ded82ff806 (current diff)
child 54965 a8af7a9c38d1
merged
--- a/README_REPOSITORY	Fri Jan 10 09:48:11 2014 +0100
+++ b/README_REPOSITORY	Fri Jan 10 12:05:15 2014 +0100
@@ -1,13 +1,13 @@
 Important notes on Mercurial repository access for Isabelle
 ===========================================================
 
-Quick start in 25min
+Quick start in 30min
 --------------------
 
 1a. Linux and Mac OS X: ensure that Perl (with libwww) and Mercurial (hg)
     is installed (see also http://www.selenic.com/mercurial)
 
-1b. Windows: ensure that Cygwin with Mercurial and Perl is installed (see
+1b. Windows: ensure that Cygwin with Perl and Mercurial is installed (see
     also http://www.cygwin.com)
 
 2. Clone repository (bash shell commands):
--- a/src/Pure/GUI/gui.scala	Fri Jan 10 09:48:11 2014 +0100
+++ b/src/Pure/GUI/gui.scala	Fri Jan 10 12:05:15 2014 +0100
@@ -8,6 +8,7 @@
 package isabelle
 
 
+import java.lang.{ClassLoader, ClassNotFoundException, NoSuchMethodException}
 import java.awt.{Image, Component, Container, Toolkit, Window, Font}
 import java.awt.font.{TextAttribute, TransformAttribute, FontRenderContext, LineMetrics}
 import java.awt.geom.AffineTransform
@@ -38,6 +39,26 @@
     UIManager.getSystemLookAndFeelClassName() == UIManager.getLookAndFeel.getClass.getName
 
 
+  /* X11 window manager */
+
+  def window_manager(): Option[String] =
+  {
+    try {
+      val XWM = Class.forName("sun.awt.X11.XWM", true, ClassLoader.getSystemClassLoader)
+      val getWM = XWM.getDeclaredMethod("getWM")
+      getWM.setAccessible(true)
+      getWM.invoke(null) match {
+        case null => None
+        case wm => Some(wm.toString)
+      }
+    }
+    catch {
+      case _: ClassNotFoundException => None
+      case _: NoSuchMethodException => None
+    }
+  }
+
+
   /* simple dialogs */
 
   def scrollable_text(txt: String, width: Int = 60, height: Int = 20, editable: Boolean = false)