summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/config/Themes.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/config/Themes.java')
-rw-r--r--src/main/java/cuchaz/enigma/config/Themes.java66
1 files changed, 37 insertions, 29 deletions
diff --git a/src/main/java/cuchaz/enigma/config/Themes.java b/src/main/java/cuchaz/enigma/config/Themes.java
index 753654e..547a420 100644
--- a/src/main/java/cuchaz/enigma/config/Themes.java
+++ b/src/main/java/cuchaz/enigma/config/Themes.java
@@ -1,40 +1,48 @@
1package cuchaz.enigma.config; 1package cuchaz.enigma.config;
2 2
3import java.awt.Font;
4import java.io.IOException;
5import java.lang.reflect.Field;
6
7import javax.swing.SwingUtilities;
8
9import com.github.swingdpi.UiDefaultsScaler;
3import com.google.common.collect.ImmutableMap; 10import com.google.common.collect.ImmutableMap;
4import cuchaz.enigma.gui.Gui;
5import cuchaz.enigma.gui.EnigmaSyntaxKit; 11import cuchaz.enigma.gui.EnigmaSyntaxKit;
12import cuchaz.enigma.gui.Gui;
6import cuchaz.enigma.gui.highlight.BoxHighlightPainter; 13import cuchaz.enigma.gui.highlight.BoxHighlightPainter;
7import cuchaz.enigma.gui.highlight.TokenHighlightType; 14import cuchaz.enigma.gui.highlight.TokenHighlightType;
15import cuchaz.enigma.gui.util.ScaleUtil;
8import de.sciss.syntaxpane.DefaultSyntaxKit; 16import de.sciss.syntaxpane.DefaultSyntaxKit;
9 17
10import javax.swing.*;
11import java.io.IOException;
12
13public class Themes { 18public class Themes {
14 19
15 public static void setLookAndFeel(Gui gui, Config.LookAndFeel lookAndFeel) { 20 public static void setLookAndFeel(Gui gui, Config.LookAndFeel lookAndFeel) {
16 Config.getInstance().lookAndFeel = lookAndFeel; 21 Config.getInstance().lookAndFeel = lookAndFeel;
17 updateTheme(gui); 22 updateTheme(gui);
18 } 23 }
19 24
20 public static void updateTheme(Gui gui) { 25 public static void updateTheme(Gui gui) {
21 Config config = Config.getInstance(); 26 Config config = Config.getInstance();
22 config.lookAndFeel.setGlobalLAF(); 27 config.lookAndFeel.setGlobalLAF();
23 config.lookAndFeel.apply(config); 28 config.lookAndFeel.apply(config);
24 try { 29 try {
25 config.saveConfig(); 30 config.saveConfig();
26 } catch (IOException e) { 31 } catch (IOException e) {
27 e.printStackTrace(); 32 e.printStackTrace();
28 } 33 }
29 EnigmaSyntaxKit.invalidate(); 34 EnigmaSyntaxKit.invalidate();
30 DefaultSyntaxKit.initKit(); 35 DefaultSyntaxKit.initKit();
31 DefaultSyntaxKit.registerContentType("text/enigma-sources", EnigmaSyntaxKit.class.getName()); 36 DefaultSyntaxKit.registerContentType("text/enigma-sources", EnigmaSyntaxKit.class.getName());
32 gui.boxHighlightPainters = ImmutableMap.of( 37 gui.boxHighlightPainters = ImmutableMap.of(
33 TokenHighlightType.OBFUSCATED, BoxHighlightPainter.create(config.obfuscatedColor, config.obfuscatedColorOutline), 38 TokenHighlightType.OBFUSCATED, BoxHighlightPainter.create(config.obfuscatedColor, config.obfuscatedColorOutline),
34 TokenHighlightType.PROPOSED, BoxHighlightPainter.create(config.proposedColor, config.proposedColorOutline), 39 TokenHighlightType.PROPOSED, BoxHighlightPainter.create(config.proposedColor, config.proposedColorOutline),
35 TokenHighlightType.DEOBFUSCATED, BoxHighlightPainter.create(config.deobfuscatedColor, config.deobfuscatedColorOutline) 40 TokenHighlightType.DEOBFUSCATED, BoxHighlightPainter.create(config.deobfuscatedColor, config.deobfuscatedColorOutline)
36 ); 41 );
37 gui.setEditorTheme(config.lookAndFeel); 42 gui.setEditorTheme(config.lookAndFeel);
38 SwingUtilities.updateComponentTreeUI(gui.getFrame()); 43 SwingUtilities.updateComponentTreeUI(gui.getFrame());
39 } 44 ScaleUtil.applyScaling();
45 }
46
47
40} 48}