summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/config/Themes.java
diff options
context:
space:
mode:
authorGravatar Modmuss502017-06-07 08:29:37 +0100
committerGravatar GitHub2017-06-07 08:29:37 +0100
commitba5ffc258f6d58bf9d01226baea016db10cfd811 (patch)
tree4fd3b77e619198a47d95ee55a742c8057dea591a /src/main/java/cuchaz/enigma/config/Themes.java
parentAdd support for custom themes (#59) (diff)
downloadenigma-fork-ba5ffc258f6d58bf9d01226baea016db10cfd811.tar.gz
enigma-fork-ba5ffc258f6d58bf9d01226baea016db10cfd811.tar.xz
enigma-fork-ba5ffc258f6d58bf9d01226baea016db10cfd811.zip
Added theme switcher + dark theme (#60)
* Initial work on the color config * Save and read config from file.+ * Allow changing the editor colors * Remove the right margin * Move config to the user's home dir * Use Guava instead of Apache commons * Add runtime theme switching, includes example "dark" theme. * Rename dark theme as requested * Small clean up * Include suggestions from @Thog
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, 66 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/config/Themes.java b/src/main/java/cuchaz/enigma/config/Themes.java
new file mode 100644
index 0000000..79c245b
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/config/Themes.java
@@ -0,0 +1,66 @@
1package cuchaz.enigma.config;
2
3import cuchaz.enigma.gui.Gui;
4import cuchaz.enigma.gui.MinecraftSyntaxKit;
5import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter;
6import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter;
7import cuchaz.enigma.gui.highlight.OtherHighlightPainter;
8import de.sciss.syntaxpane.DefaultSyntaxKit;
9
10import java.awt.*;
11import java.io.IOException;
12
13public class Themes {
14
15 public static void setDefault(Gui gui) {
16 //TODO set to default
17 try {
18 Config.getInstance().reset();
19 } catch (IOException e) {
20 e.printStackTrace();
21 }
22 updateTheme(gui);
23 }
24
25 public static void setDark(Gui gui) {
26 //Based off colors found here: https://github.com/dracula/dracula-theme/
27 Config.getInstance().obfuscatedColor = 0xFF5555;
28 Config.getInstance().obfuscatedHiglightAlpha = 0.3F;
29 Config.getInstance().obfuscatedColorOutline = 0xFF5555;
30 Config.getInstance().obfuscatedOutlineAlpha = 0.5F;
31 Config.getInstance().deobfuscatedColor = 0x50FA7B;
32 Config.getInstance().deobfuscatedHiglightAlpha = 0.3F;
33 Config.getInstance().deobfuscatedColorOutline = 0x50FA7B;
34 Config.getInstance().deobfuscatedOutlineAlpha = 0.5F;
35 Config.getInstance().otherColorOutline = 0xB4B4B4;
36 Config.getInstance().otherOutlineAlpha = 0.0F;
37 Config.getInstance().editorBackground = 0x282A36;
38 Config.getInstance().highlightColor = 0xFF79C6;
39 Config.getInstance().stringColor = 0xF1FA8C;
40 Config.getInstance().numberColor = 0xBD93F9;
41 Config.getInstance().operatorColor = 0xF8F8F2;
42 Config.getInstance().delimiterColor = 0xF8F8F2;
43 Config.getInstance().typeColor = 0xF8F8F2;
44 Config.getInstance().identifierColor = 0xF8F8F2;
45 Config.getInstance().defaultTextColor = 0xF8F8F2;
46 updateTheme(gui);
47 }
48
49 public static void updateTheme(Gui gui) {
50 try {
51 Config.getInstance().saveConfig();
52 } catch (IOException e) {
53 e.printStackTrace();
54 }
55 MinecraftSyntaxKit.invalidate();
56 DefaultSyntaxKit.initKit();
57 DefaultSyntaxKit.registerContentType("text/minecraft", MinecraftSyntaxKit.class.getName());
58 gui.obfuscatedHighlightPainter = new ObfuscatedHighlightPainter();
59 gui.deobfuscatedHighlightPainter = new DeobfuscatedHighlightPainter();
60 gui.otherHighlightPainter = new OtherHighlightPainter();
61 gui.editor.updateUI();
62 gui.editor.setBackground(new Color(Config.getInstance().editorBackground));
63 gui.getController().refreshCurrentClass();
64 }
65
66}