| author | huffman | 
| Sat, 08 Jun 2013 19:40:19 -0700 | |
| changeset 52354 | acb4f932dd24 | 
| 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  |