support for additional look-and-feels;
authorwenzelm
Fri, 08 Jan 2021 23:59:28 +0100
changeset 73111 01f4965fd09b
parent 73110 c87ca43ebd3b
child 73112 efc58b56a6c7
support for additional look-and-feels;
Admin/components/components.sha1
Admin/components/main
src/Pure/GUI/gui.scala
src/Pure/Tools/main.scala
--- a/Admin/components/components.sha1	Fri Jan 08 22:30:32 2021 +0100
+++ b/Admin/components/components.sha1	Fri Jan 08 23:59:28 2021 +0100
@@ -80,6 +80,7 @@
 8b9bffd10e396d965e815418295f2ee2849bea75  exec_process-1.0.2.tar.gz
 e6aada354da11e533af2dee3dcdd96c06479b053  exec_process-1.0.3.tar.gz
 ae7ee5becb26512f18c609e83b34612918bae5f0  exec_process-1.0.tar.gz
+ed5cbc216389b655dac21a19e770a02a96867b85  flatlaf-0.46.tar.gz
 683acd94761ef460cca1a628f650355370de5afb  hol-light-bundle-0.5-126.tar.gz
 20b53cfc3ffc5b15c1eabc91846915b49b4c0367  isabelle_fonts-20151021.tar.gz
 736844204b2ef83974cd9f0a215738b767958c41  isabelle_fonts-20151104.tar.gz
--- a/Admin/components/main	Fri Jan 08 22:30:32 2021 +0100
+++ b/Admin/components/main	Fri Jan 08 23:59:28 2021 +0100
@@ -4,6 +4,7 @@
 csdp-6.1.1
 cvc4-1.8
 e-2.5-1
+flatlaf-0.46
 isabelle_fonts-20190717
 jdk-15.0.1+9
 jedit_build-20201223
--- a/src/Pure/GUI/gui.scala	Fri Jan 08 22:30:32 2021 +0100
+++ b/src/Pure/GUI/gui.scala	Fri Jan 08 23:59:28 2021 +0100
@@ -18,7 +18,7 @@
 
 object GUI
 {
-  /* Swing look-and-feel */
+  /* Swing look-and-feels */
 
   def find_laf(name: String): Option[String] =
     UIManager.getInstalledLookAndFeels().
@@ -44,6 +44,19 @@
     Platform.is_windows && UIManager.getSystemLookAndFeelClassName() == current_laf()
 
 
+  /* additional look-and-feels */
+
+  class Look_And_Feel(val laf: LookAndFeel) extends Isabelle_System.Service
+  {
+    def setup: Unit = UIManager.installLookAndFeel(laf.getName, laf.getClass.getName)
+  }
+
+  lazy val look_and_feels: List[Look_And_Feel] =
+    Isabelle_System.make_services(classOf[Look_And_Feel])
+
+  def setup_lafs(): Unit = look_and_feels.foreach(_.setup)
+
+
   /* plain focus traversal, notably for text fields */
 
   def plain_focus_traversal(component: Component)
@@ -342,3 +355,6 @@
     }
   }
 }
+
+class FlatLightLaf extends GUI.Look_And_Feel(new com.formdev.flatlaf.FlatLightLaf)
+class FlatDarkLaf extends GUI.Look_And_Feel(new com.formdev.flatlaf.FlatDarkLaf)
--- a/src/Pure/Tools/main.scala	Fri Jan 08 22:30:32 2021 +0100
+++ b/src/Pure/Tools/main.scala	Fri Jan 08 23:59:28 2021 +0100
@@ -26,6 +26,8 @@
           Isabelle_System.init()
           Isabelle_Fonts.init()
 
+          GUI.setup_lafs()
+
 
           /* ROOTS template */