equal
deleted
inserted
replaced
8 |
8 |
9 |
9 |
10 import isabelle._ |
10 import isabelle._ |
11 |
11 |
12 import java.awt.{Font, Color} |
12 import java.awt.{Font, Color} |
13 import java.awt.font.TextAttribute |
13 import java.awt.font.{TextAttribute, TransformAttribute} |
|
14 import java.awt.geom.AffineTransform |
14 |
15 |
15 import org.gjt.sp.util.SyntaxUtilities |
16 import org.gjt.sp.util.SyntaxUtilities |
16 import org.gjt.sp.jedit.Mode |
17 import org.gjt.sp.jedit.Mode |
17 import org.gjt.sp.jedit.syntax.{Token => JEditToken, TokenMarker, TokenHandler, |
18 import org.gjt.sp.jedit.syntax.{Token => JEditToken, TokenMarker, TokenHandler, |
18 ParserRuleSet, ModeProvider, XModeHandler, SyntaxStyle} |
19 ParserRuleSet, ModeProvider, XModeHandler, SyntaxStyle} |
45 } |
46 } |
46 |
47 |
47 private def bold_style(style: SyntaxStyle): SyntaxStyle = |
48 private def bold_style(style: SyntaxStyle): SyntaxStyle = |
48 font_style(style, _.deriveFont(Font.BOLD)) |
49 font_style(style, _.deriveFont(Font.BOLD)) |
49 |
50 |
|
51 private def hidden_font(font: Font): Font = |
|
52 { |
|
53 import scala.collection.JavaConversions._ |
|
54 val base_font = new Font(font.getFamily, 0, 1) |
|
55 val transform = |
|
56 new TransformAttribute(AffineTransform.getScaleInstance(1.0, font.getSize.toDouble)) |
|
57 base_font.deriveFont(Map(TextAttribute.TRANSFORM -> transform)) |
|
58 } |
|
59 |
50 class Style_Extender(symbols: Symbol.Interpretation) extends SyntaxUtilities.StyleExtender |
60 class Style_Extender(symbols: Symbol.Interpretation) extends SyntaxUtilities.StyleExtender |
51 { |
61 { |
52 if (symbols.font_names.length > 2) |
62 if (symbols.font_names.length > 2) |
53 error("Too many user symbol fonts (max 2 permitted): " + symbols.font_names.mkString(", ")) |
63 error("Too many user symbol fonts (max 2 permitted): " + symbols.font_names.mkString(", ")) |
54 |
64 |
65 // FIXME adjust size |
75 // FIXME adjust size |
66 new_styles(user_font(idx, i.toByte)) = |
76 new_styles(user_font(idx, i.toByte)) = |
67 font_style(style, font => new Font(family, font.getStyle, font.getSize)) |
77 font_style(style, font => new Font(family, font.getStyle, font.getSize)) |
68 } |
78 } |
69 } |
79 } |
70 new_styles(hidden) = |
80 new_styles(hidden) = new SyntaxStyle(Color.white, null, hidden_font(styles(0).getFont)) |
71 new SyntaxStyle(Color.white, null, new Font(styles(0).getFont.getFamily, 0, 1)) |
|
72 new_styles |
81 new_styles |
73 } |
82 } |
74 } |
83 } |
75 |
84 |
76 def extended_styles(symbols: Symbol.Interpretation, text: CharSequence) |
85 def extended_styles(symbols: Symbol.Interpretation, text: CharSequence) |