Skip to content

Instantly share code, notes, and snippets.

@roblabla
Created May 29, 2019 17:38
Show Gist options
  • Save roblabla/9d9d0bd3ffc156f5a494bdab02b2c25e to your computer and use it in GitHub Desktop.
Save roblabla/9d9d0bd3ffc156f5a494bdab02b2c25e to your computer and use it in GitHub Desktop.
From 80831c0d3902e2d7b8ed975bce8eacf6d3ccb4dc Mon Sep 17 00:00:00 2001
From: roblabla <unfiltered@roblab.la>
Date: Wed, 29 May 2019 19:36:44 +0200
Subject: [PATCH] Add darcula support
---
Ghidra/Framework/Docking/Module.manifest | 1 +
Ghidra/Framework/Docking/build.gradle | 1 +
.../src/main/java/docking/widgets/AbstractGCellRenderer.java | 5 +++--
.../src/main/java/docking/widgets/filter/FilterTextField.java | 2 +-
.../src/main/java/docking/widgets/table/GTableHeaderRenderer.java | 8 ++++----
.../java/ghidra/docking/util/DockingWindowsLookAndFeelUtils.java | 8 +++++---
6 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/Ghidra/Framework/Docking/Module.manifest b/Ghidra/Framework/Docking/Module.manifest
index 301420ac..5d3de509 100644
--- a/Ghidra/Framework/Docking/Module.manifest
+++ b/Ghidra/Framework/Docking/Module.manifest
@@ -1,3 +1,4 @@
MODULE FILE LICENSE: lib/timingframework-1.0.jar BSD
MODULE FILE LICENSE: lib/jcalendar-1.4.jar LGPL 2.1
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 84558ad5..5e5a5b8d 100644
--- a/Ghidra/Framework/Docking/build.gradle
+++ b/Ghidra/Framework/Docking/build.gradle
@@ -9,6 +9,7 @@ eclipse.project.name = 'Framework Docking'
dependencies {
compile project(':Generic')
compile 'net.java.dev.timingframework:timingframework:1.0'
+ compile 'com.bulenkov:darcula:2018.2'
compile 'com.toedter:jcalendar:1.4'
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 0a3714cd..a64603a6 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 & JTables */
private static final String DISABLE_ALTERNATING_ROW_COLORS_PROPERTY =
@@ -163,7 +164,7 @@ public abstract class AbstractGCellRenderer extends GDHtmlLabel {
protected static Color getBackgroundColorForRow(int row) {
if ((row & 1) == 1) {
- return Color.WHITE;
+ return REGULAR_BACKGROUND_COLOR;
}
return ALTERNATE_BACKGROUND_COLOR;
}
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 6850c054..30313566 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 121a3b0d..fa5df72d 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,9 @@ 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 +160,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.16.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment