Skip to content

Instantly share code, notes, and snippets.

@roblabla
Created March 11, 2020 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roblabla/23c2171aa1768d9e2eddee55233f7bda to your computer and use it in GitHub Desktop.
Save roblabla/23c2171aa1768d9e2eddee55233f7bda to your computer and use it in GitHub Desktop.
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