From ba5ffc258f6d58bf9d01226baea016db10cfd811 Mon Sep 17 00:00:00 2001 From: Modmuss50 Date: Wed, 7 Jun 2017 08:29:37 +0100 Subject: 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 --- src/main/java/cuchaz/enigma/config/Themes.java | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/cuchaz/enigma/config/Themes.java (limited to 'src/main/java/cuchaz/enigma/config/Themes.java') 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 @@ +package cuchaz.enigma.config; + +import cuchaz.enigma.gui.Gui; +import cuchaz.enigma.gui.MinecraftSyntaxKit; +import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter; +import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; +import cuchaz.enigma.gui.highlight.OtherHighlightPainter; +import de.sciss.syntaxpane.DefaultSyntaxKit; + +import java.awt.*; +import java.io.IOException; + +public class Themes { + + public static void setDefault(Gui gui) { + //TODO set to default + try { + Config.getInstance().reset(); + } catch (IOException e) { + e.printStackTrace(); + } + updateTheme(gui); + } + + public static void setDark(Gui gui) { + //Based off colors found here: https://github.com/dracula/dracula-theme/ + Config.getInstance().obfuscatedColor = 0xFF5555; + Config.getInstance().obfuscatedHiglightAlpha = 0.3F; + Config.getInstance().obfuscatedColorOutline = 0xFF5555; + Config.getInstance().obfuscatedOutlineAlpha = 0.5F; + Config.getInstance().deobfuscatedColor = 0x50FA7B; + Config.getInstance().deobfuscatedHiglightAlpha = 0.3F; + Config.getInstance().deobfuscatedColorOutline = 0x50FA7B; + Config.getInstance().deobfuscatedOutlineAlpha = 0.5F; + Config.getInstance().otherColorOutline = 0xB4B4B4; + Config.getInstance().otherOutlineAlpha = 0.0F; + Config.getInstance().editorBackground = 0x282A36; + Config.getInstance().highlightColor = 0xFF79C6; + Config.getInstance().stringColor = 0xF1FA8C; + Config.getInstance().numberColor = 0xBD93F9; + Config.getInstance().operatorColor = 0xF8F8F2; + Config.getInstance().delimiterColor = 0xF8F8F2; + Config.getInstance().typeColor = 0xF8F8F2; + Config.getInstance().identifierColor = 0xF8F8F2; + Config.getInstance().defaultTextColor = 0xF8F8F2; + updateTheme(gui); + } + + public static void updateTheme(Gui gui) { + try { + Config.getInstance().saveConfig(); + } catch (IOException e) { + e.printStackTrace(); + } + MinecraftSyntaxKit.invalidate(); + DefaultSyntaxKit.initKit(); + DefaultSyntaxKit.registerContentType("text/minecraft", MinecraftSyntaxKit.class.getName()); + gui.obfuscatedHighlightPainter = new ObfuscatedHighlightPainter(); + gui.deobfuscatedHighlightPainter = new DeobfuscatedHighlightPainter(); + gui.otherHighlightPainter = new OtherHighlightPainter(); + gui.editor.updateUI(); + gui.editor.setBackground(new Color(Config.getInstance().editorBackground)); + gui.getController().refreshCurrentClass(); + } + +} -- cgit v1.2.3