separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
authorwenzelm
Thu, 04 Apr 2013 17:33:04 +0200
changeset 51614 22d1dd43f089
parent 51613 81f8da412b7f
child 51615 072a7249e1ac
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
src/Pure/System/isabelle_font.scala
src/Pure/System/isabelle_system.scala
src/Pure/build-jars
src/Tools/Graphview/src/graphview.scala
src/Tools/jEdit/src/plugin.scala
src/Tools/jEdit/src/symbols_dockable.scala
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Pure/System/isabelle_font.scala	Thu Apr 04 17:33:04 2013 +0200
@@ -0,0 +1,35 @@
+/*  Title:      Pure/System/isabelle_font.scala
+    Author:     Makarius
+
+Isabelle font support.
+*/
+
+package isabelle
+
+import java.awt.{GraphicsEnvironment, Font}
+import java.io.{FileInputStream, BufferedInputStream}
+import javafx.scene.text.{Font => JFX_Font}
+
+
+object Isabelle_Font
+{
+  def apply(family: String = "IsabelleText", size: Int = 1, bold: Boolean = false): Font =
+    new Font(family, if (bold) Font.BOLD else Font.PLAIN, size)
+
+  def install_fonts()
+  {
+    val ge = GraphicsEnvironment.getLocalGraphicsEnvironment()
+    for (font <- Path.split(Isabelle_System.getenv_strict("ISABELLE_FONTS")))
+      ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, font.file))
+  }
+
+  def install_fonts_jfx()
+  {
+    for (font <- Path.split(Isabelle_System.getenv_strict("ISABELLE_FONTS"))) {
+      val stream = new BufferedInputStream(new FileInputStream(font.file))
+      try { JFX_Font.loadFont(stream, 1.0) }
+      finally { stream.close }
+    }
+  }
+}
+
--- a/src/Pure/System/isabelle_system.scala	Thu Apr 04 17:16:51 2013 +0200
+++ b/src/Pure/System/isabelle_system.scala	Thu Apr 04 17:33:04 2013 +0200
@@ -9,13 +9,10 @@
 
 import java.lang.System
 import java.util.regex.Pattern
-import java.io.{InputStream, OutputStream, File => JFile, BufferedReader, InputStreamReader,
-  BufferedWriter, OutputStreamWriter, IOException, FileInputStream, BufferedInputStream}
-import java.awt.{GraphicsEnvironment, Font}
-import java.awt.font.TextAttribute
+import java.io.{File => JFile, BufferedReader, InputStreamReader,
+  BufferedWriter, OutputStreamWriter}
 import javax.swing.ImageIcon
 
-import scala.io.Source
 import scala.util.matching.Regex
 
 
@@ -426,28 +423,6 @@
   }
 
 
-  /* fonts */
-
-  def get_font(family: String = "IsabelleText", size: Int = 1, bold: Boolean = false): Font =
-    new Font(family, if (bold) Font.BOLD else Font.PLAIN, size)
-
-  def install_fonts()
-  {
-    val ge = GraphicsEnvironment.getLocalGraphicsEnvironment()
-    for (font <- Path.split(getenv_strict("ISABELLE_FONTS")))
-      ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, font.file))
-  }
-
-  def install_fonts_jfx()
-  {
-    for (font <- Path.split(getenv_strict("ISABELLE_FONTS"))) {
-      val stream = new BufferedInputStream(new FileInputStream(font.file))
-      try { javafx.scene.text.Font.loadFont(stream, 1.0) }
-      finally { stream.close }
-    }
-  }
-
-
   /* icon */
 
   def get_icon(): ImageIcon =
--- a/src/Pure/build-jars	Thu Apr 04 17:16:51 2013 +0200
+++ b/src/Pure/build-jars	Thu Apr 04 17:33:04 2013 +0200
@@ -47,6 +47,7 @@
   System/interrupt.scala
   System/invoke_scala.scala
   System/isabelle_charset.scala
+  System/isabelle_font.scala
   System/isabelle_process.scala
   System/isabelle_system.scala
   System/jfx_thread.scala
--- a/src/Tools/Graphview/src/graphview.scala	Thu Apr 04 17:16:51 2013 +0200
+++ b/src/Tools/Graphview/src/graphview.scala	Thu Apr 04 17:33:04 2013 +0200
@@ -24,7 +24,7 @@
       try {
         Platform.init_laf()
         Isabelle_System.init()
-        Isabelle_System.install_fonts()
+        Isabelle_Font.install_fonts()
         ToolTipManager.sharedInstance.setDismissDelay(1000*60*60)
 
         args.toList match {
--- a/src/Tools/jEdit/src/plugin.scala	Thu Apr 04 17:16:51 2013 +0200
+++ b/src/Tools/jEdit/src/plugin.scala	Thu Apr 04 17:33:04 2013 +0200
@@ -284,7 +284,7 @@
 
       PIDE.plugin = this
       Isabelle_System.init()
-      Isabelle_System.install_fonts()
+      Isabelle_Font.install_fonts()
 
       val init_options = Options.init()
       Swing_Thread.now { PIDE.options.update(init_options)  }
--- a/src/Tools/jEdit/src/symbols_dockable.scala	Thu Apr 04 17:16:51 2013 +0200
+++ b/src/Tools/jEdit/src/symbols_dockable.scala	Thu Apr 04 17:33:04 2013 +0200
@@ -30,8 +30,8 @@
 
     font =
       Symbol.fonts.get(symbol) match {
-        case None => Isabelle_System.get_font(size = font_size)
-        case Some(font_family) => Isabelle_System.get_font(family = font_family, size = font_size)
+        case None => Isabelle_Font(size = font_size)
+        case Some(font_family) => Isabelle_Font(family = font_family, size = font_size)
       }
     action =
       Action(decoded) {