From ef3532566332d96914a44641b22f0cb628a8e109 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 7 Jun 2017 15:42:45 +0100 Subject: Add dark LAF --- build.gradle | 7 +++++++ src/main/java/cuchaz/enigma/Main.java | 6 ++---- src/main/java/cuchaz/enigma/config/Config.java | 6 ++++-- src/main/java/cuchaz/enigma/config/Themes.java | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 896534d5..8eae880d 100644 --- a/build.gradle +++ b/build.gradle @@ -54,6 +54,11 @@ repositories { name "Modmuss Repository" url 'http://maven.modmuss50.me/' } + + ivy { + name "darcula" + artifactPattern "https://raw.githubusercontent.com/bulenkov/Darcula/master/build/[module].[ext]" + } } configurations { @@ -72,6 +77,8 @@ dependencies { compile 'org.ow2.asm:asm-tree:7.0' compile 'org.ow2.asm:asm-util:7.0' + compile name: "darcula", version: "1.0.0" + application 'de.sciss:syntaxpane:1.1.+' testCompile 'junit:junit:4.+' diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java index 688a55e0..339b15e0 100644 --- a/src/main/java/cuchaz/enigma/Main.java +++ b/src/main/java/cuchaz/enigma/Main.java @@ -11,18 +11,16 @@ package cuchaz.enigma; -import cuchaz.enigma.config.Config; +import cuchaz.enigma.config.Themes; import cuchaz.enigma.gui.Gui; -import javax.swing.*; import java.io.File; import java.util.jar.JarFile; public class Main { public static void main(String[] args) throws Exception { - if (Config.getInstance().useSystemLAF) - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + Themes.setLAF(); Gui gui = new Gui(); // parse command-line args diff --git a/src/main/java/cuchaz/enigma/config/Config.java b/src/main/java/cuchaz/enigma/config/Config.java index 75ced70c..44414682 100644 --- a/src/main/java/cuchaz/enigma/config/Config.java +++ b/src/main/java/cuchaz/enigma/config/Config.java @@ -40,7 +40,8 @@ public class Config { public Integer identifierColor; public Integer defaultTextColor; - public boolean useSystemLAF = true; + public boolean useSystemLAF; + public boolean useDraculaLAF; private Config() { gson = new GsonBuilder() @@ -95,6 +96,7 @@ public class Config { this.identifierColor = 0x000000; this.defaultTextColor = 0x000000; this.useSystemLAF = true; + this.useDraculaLAF = false; this.saveConfig(); } @@ -113,4 +115,4 @@ public class Config { public static Config getInstance() { return INSTANCE; } -} \ No newline at end of file +} diff --git a/src/main/java/cuchaz/enigma/config/Themes.java b/src/main/java/cuchaz/enigma/config/Themes.java index 04ecfde3..4b1f4784 100644 --- a/src/main/java/cuchaz/enigma/config/Themes.java +++ b/src/main/java/cuchaz/enigma/config/Themes.java @@ -1,5 +1,6 @@ package cuchaz.enigma.config; +import com.bulenkov.darcula.DarculaLaf; import cuchaz.enigma.gui.Gui; import cuchaz.enigma.gui.MinecraftSyntaxKit; import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter; @@ -7,6 +8,7 @@ import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; import cuchaz.enigma.gui.highlight.OtherHighlightPainter; import de.sciss.syntaxpane.DefaultSyntaxKit; +import javax.swing.*; import java.awt.*; import java.io.IOException; @@ -43,6 +45,7 @@ public class Themes { Config.getInstance().typeColor = 0xF8F8F2; Config.getInstance().identifierColor = 0xF8F8F2; Config.getInstance().defaultTextColor = 0xF8F8F2; + Config.getInstance().useDraculaLAF = true; updateTheme(gui); } @@ -60,7 +63,20 @@ public class Themes { gui.otherHighlightPainter = new OtherHighlightPainter(); gui.editor.updateUI(); gui.editor.setBackground(new Color(Config.getInstance().editorBackground)); + setLAF(); + SwingUtilities.updateComponentTreeUI(gui.getFrame()); gui.getController().refreshCurrentClass(); } + public static void setLAF(){ + try { + if (Config.getInstance().useDraculaLAF){ + UIManager.setLookAndFeel(new DarculaLaf()); + } else if (Config.getInstance().useSystemLAF) + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (Exception e){ + throw new Error("Failed to set LAF", e); + } + } + } -- cgit v1.2.3