Created
March 11, 2020 15:58
-
-
Save roblabla/23c2171aa1768d9e2eddee55233f7bda to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 02fab06e6b7ece6a442b878a9602f9bcf8edff6e Mon Sep 17 00:00:00 2001 | |
From: roblabla <unfiltered@roblab.la> | |
Date: Tue, 24 Sep 2019 17:59:44 +0200 | |
Subject: [PATCH] Add darcula support | |
--- | |
Ghidra/Framework/Docking/Module.manifest | 1 + | |
Ghidra/Framework/Docking/build.gradle | 2 ++ | |
.../main/java/docking/widgets/AbstractGCellRenderer.java | 5 +++-- | |
.../java/docking/widgets/filter/FilterTextField.java | 2 +- | |
.../java/docking/widgets/table/GTableHeaderRenderer.java | 8 ++++---- | |
.../docking/util/DockingWindowsLookAndFeelUtils.java | 9 ++++++--- | |
6 files changed, 17 insertions(+), 10 deletions(-) | |
diff --git a/Ghidra/Framework/Docking/Module.manifest b/Ghidra/Framework/Docking/Module.manifest | |
index e6cdd58e..1e1e763c 100644 | |
--- a/Ghidra/Framework/Docking/Module.manifest | |
+++ b/Ghidra/Framework/Docking/Module.manifest | |
@@ -1,2 +1,3 @@ | |
MODULE FILE LICENSE: lib/timingframework-1.0.jar BSD | |
MODULE FILE LICENSE: lib/javahelp-2.0.05.jar GPL 2 With Classpath Exception | |
+MODULE FILE LICENSE: lib/darcula-2018.2.jar Apache License 2.0 | |
diff --git a/Ghidra/Framework/Docking/build.gradle b/Ghidra/Framework/Docking/build.gradle | |
index 1e5d0bc9..c10cd1aa 100644 | |
--- a/Ghidra/Framework/Docking/build.gradle | |
+++ b/Ghidra/Framework/Docking/build.gradle | |
@@ -9,6 +9,8 @@ eclipse.project.name = 'Framework Docking' | |
dependencies { | |
compile project(':Generic') | |
compile 'net.java.dev.timingframework:timingframework:1.0' | |
+ | |
+ compile 'com.bulenkov:darcula:2018.2' | |
// Only include this debug version of the jh library if necessary. | |
//compile name:'jh2.with.debug' | |
diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/AbstractGCellRenderer.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/AbstractGCellRenderer.java | |
index 48c05743..a7b4fc34 100644 | |
--- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/AbstractGCellRenderer.java | |
+++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/AbstractGCellRenderer.java | |
@@ -32,7 +32,8 @@ import docking.widgets.label.GDHtmlLabel; | |
*/ | |
public abstract class AbstractGCellRenderer extends GDHtmlLabel { | |
- private static final Color ALTERNATE_BACKGROUND_COLOR = new Color(237, 243, 254); | |
+ private static final Color ALTERNATE_BACKGROUND_COLOR = new Color(0x32, 0x32, 0x32); | |
+ private static final Color REGULAR_BACKGROUND_COLOR = new Color(0x2b, 0x2b, 0x2b); | |
/** Allows the user to disable alternating row colors on JLists and JTables */ | |
private static final String DISABLE_ALTERNATING_ROW_COLORS_PROPERTY = | |
@@ -156,7 +157,7 @@ public abstract class AbstractGCellRenderer extends GDHtmlLabel { | |
} | |
protected Color getDefaultBackgroundColor() { | |
- return Color.WHITE; | |
+ return REGULAR_BACKGROUND_COLOR; | |
} | |
protected Color getBackgroundColorForRow(int row) { | |
diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java | |
index 6ec44132..3ea36108 100644 | |
--- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java | |
+++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java | |
@@ -42,7 +42,7 @@ public class FilterTextField extends JPanel { | |
private static final int FLASH_FREQUENCY_MS = 250; | |
private static Color FLASH_BACKGROUND_COLOR = Color.WHITE; | |
- private static Color FILTERED_BACKGROUND_COLOR = Color.YELLOW; | |
+ private static Color FILTERED_BACKGROUND_COLOR = new Color(0x11, 0x11, 0x11); | |
/*package*/ static Color UNEDITABLE_BACKGROUND_COLOR = Color.LIGHT_GRAY; | |
private Color noFlashColor; | |
diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java | |
index 778efa24..eea383b1 100644 | |
--- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java | |
+++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java | |
@@ -38,10 +38,10 @@ import resources.icons.TranslateIcon; | |
public class GTableHeaderRenderer extends JPanel implements TableCellRenderer { | |
private static final int PADDING_FOR_COLUMN_NUMBER = 10; | |
- private static final Color PRIMARY_SORT_GRADIENT_START = new Color(205, 227, 244); | |
- private static final Color PRIMARY_SORT_GRADIENT_END = new Color(126, 186, 233); | |
- private static final Color DEFAULT_GRADIENT_START = Color.WHITE; | |
- private static final Color DEFAULT_GRADIENT_END = new Color(215, 215, 215); | |
+ private static final Color PRIMARY_SORT_GRADIENT_START = new Color(0x5B, 0x67, 0x74); | |
+ private static final Color PRIMARY_SORT_GRADIENT_END = new Color(0x52, 0x52, 0x52); | |
+ private static final Color DEFAULT_GRADIENT_START = new Color(0x3B, 0x47, 0x54); | |
+ private static final Color DEFAULT_GRADIENT_END = new Color(0x32, 0x32, 0x32); | |
private static final Icon UP_ICON = | |
ResourceManager.getScaledIcon(Icons.SORT_ASCENDING_ICON, 14, 14); | |
diff --git a/Ghidra/Framework/Docking/src/main/java/ghidra/docking/util/DockingWindowsLookAndFeelUtils.java b/Ghidra/Framework/Docking/src/main/java/ghidra/docking/util/DockingWindowsLookAndFeelUtils.java | |
index 1d9ef7bb..6a9b176f 100644 | |
--- a/Ghidra/Framework/Docking/src/main/java/ghidra/docking/util/DockingWindowsLookAndFeelUtils.java | |
+++ b/Ghidra/Framework/Docking/src/main/java/ghidra/docking/util/DockingWindowsLookAndFeelUtils.java | |
@@ -30,6 +30,10 @@ import ghidra.framework.Platform; | |
import ghidra.framework.preferences.Preferences; | |
import ghidra.util.*; | |
+import com.bulenkov.darcula.DarculaLaf; | |
+import javax.swing.plaf.basic.BasicLookAndFeel; | |
+ | |
+ | |
/** | |
* A utility class to manage LookAndFeel (LaF) settings. | |
*/ | |
@@ -157,9 +161,8 @@ public class DockingWindowsLookAndFeelUtils { | |
throws ClassNotFoundException, InstantiationException, IllegalAccessException, | |
UnsupportedLookAndFeelException { | |
- String lookAndFeelClassName = findLookAndFeelClassName(lookAndFeelName); | |
- UIManager.setLookAndFeel(lookAndFeelClassName); | |
- fixupLookAndFeelIssues(); | |
+ BasicLookAndFeel dracula = new DarculaLaf(); | |
+ UIManager.setLookAndFeel(dracula); | |
} | |
private static String findLookAndFeelClassName(String lookAndFeelName) { | |
-- | |
2.21.0.windows.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment