| author | traytel | 
| Fri, 05 Apr 2013 22:08:42 +0200 | |
| changeset 51676 | d602caf11e48 | 
| parent 51614 | 22d1dd43f089 | 
| child 55618 | 995162143ef4 | 
| permissions | -rw-r--r-- | 
| 51614 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 1 | /* Title: Pure/System/isabelle_font.scala | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 2 | Author: Makarius | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 3 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 4 | Isabelle font support. | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 5 | */ | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 6 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 7 | package isabelle | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 8 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 9 | import java.awt.{GraphicsEnvironment, Font}
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 10 | import java.io.{FileInputStream, BufferedInputStream}
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 11 | import javafx.scene.text.{Font => JFX_Font}
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 12 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 13 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 14 | object Isabelle_Font | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 15 | {
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 16 | def apply(family: String = "IsabelleText", size: Int = 1, bold: Boolean = false): Font = | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 17 | new Font(family, if (bold) Font.BOLD else Font.PLAIN, size) | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 18 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 19 | def install_fonts() | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 20 |   {
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 21 | val ge = GraphicsEnvironment.getLocalGraphicsEnvironment() | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 22 |     for (font <- Path.split(Isabelle_System.getenv_strict("ISABELLE_FONTS")))
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 23 | ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, font.file)) | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 24 | } | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 25 | |
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 26 | def install_fonts_jfx() | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 27 |   {
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 28 |     for (font <- Path.split(Isabelle_System.getenv_strict("ISABELLE_FONTS"))) {
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 29 | val stream = new BufferedInputStream(new FileInputStream(font.file)) | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 30 |       try { JFX_Font.loadFont(stream, 1.0) }
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 31 |       finally { stream.close }
 | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 32 | } | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 33 | } | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 34 | } | 
| 
22d1dd43f089
separate module Isabelle_Font, to keep this out of the way of generic Isabelle_System operations, notably for non-Isabelle/jEdit applications;
 wenzelm parents: diff
changeset | 35 |