Skip to content

Commit 85980d7

Browse files
author
Your Name
committed
Merge commit 'bd373f49c1ca6575e3806d3f5dacc54e80f4fdd2'
2 parents 23dc481 + bd373f4 commit 85980d7

File tree

4 files changed

+45
-12
lines changed

4 files changed

+45
-12
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Defaults]
2+
color.lightkeeper.coverage_lt_20.bg=color.palette.blue
3+
color.lightkeeper.coverage_lt_20.fg=color.palette.white
4+
color.lightkeeper.coverage_lt_40.bg=color.palette.green
5+
color.lightkeeper.coverage_lt_40.fg=color.palette.black
6+
color.lightkeeper.coverage_lt_60.bg=color.palette.yellow
7+
color.lightkeeper.coverage_lt_60.fg=color.palette.black
8+
color.lightkeeper.coverage_lt_80.bg=color.palette.orange
9+
color.lightkeeper.coverage_lt_80.fg=color.palette.black
10+
color.lightkeeper.coverage_default.bg=color.palette.red
11+
color.lightkeeper.coverage_default.fg=color.palette.white
12+
color.lightkeeper.disassembly_highlight=color.palette.green
13+
color.lightkeeper.instruction_highlight=color.palette.green

lightkeeper/src/main/java/lightkeeper/controller/Controller.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.IOException;
66
import java.util.List;
77

8+
import generic.theme.GColor;
89
import ghidra.app.plugin.core.colorizer.ColorizingService;
910
import ghidra.app.services.CodeViewerService;
1011
import ghidra.app.services.ConsoleService;
@@ -28,13 +29,15 @@ public class Controller implements IEventListener, ICoverageModelListener {
2829
protected CoverageModel model;
2930
protected CoverageTableModel tableModel;
3031
protected CoverageInstructionModel instructionModel;
32+
protected GColor color;
3133

3234
public Controller(LightKeeperPlugin plugin, CoverageModel model, CoverageTableModel tableModel,
3335
CoverageInstructionModel instructionModel) {
3436
this.plugin = plugin;
3537
this.model = model;
3638
this.tableModel = tableModel;
3739
this.instructionModel = instructionModel;
40+
this.color = new GColor("color.lightkeeper.instruction_highlight");
3841
}
3942

4043
public void goTo(CoverageTableRow row) {
@@ -75,7 +78,7 @@ public void colour(TaskMonitor monitor) throws CancelledException {
7578
monitor.checkCancelled();
7679
var min = range.getMinAddress();
7780
var max = range.getMaxAddress();
78-
colorService.setBackgroundColor(min, max, Color.GREEN);
81+
colorService.setBackgroundColor(min, max, this.color);
7982
}
8083
completed = true;
8184
} finally {

lightkeeper/src/main/java/lightkeeper/controller/DisassemblyController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import docking.widgets.fieldpanel.LayoutModel;
77
import docking.widgets.fieldpanel.listener.IndexMapper;
88
import docking.widgets.fieldpanel.listener.LayoutModelListener;
9+
import generic.theme.GColor;
910
import ghidra.app.decompiler.ClangLine;
1011
import ghidra.app.decompiler.ClangToken;
1112
import ghidra.app.decompiler.component.DecompilerPanel;
@@ -24,10 +25,12 @@
2425
public class DisassemblyController implements ICoverageModelListener {
2526
protected LightKeeperPlugin plugin;
2627
protected CoverageInstructionModel model;
28+
protected GColor color;
2729

2830
public DisassemblyController(LightKeeperPlugin plugin, CoverageInstructionModel model) {
2931
this.plugin = plugin;
3032
this.model = model;
33+
this.color = new GColor("color.lightkeeper.disassembly_highlight");
3134
}
3235

3336
@Override
@@ -77,7 +80,7 @@ public void updateCoverage(TaskMonitor monitor, DecompilerPanel dpanel) throws C
7780
continue;
7881
}
7982

80-
token.setHighlight(Color.GREEN);
83+
token.setHighlight(this.color);
8184
}
8285
}
8386
}

lightkeeper/src/main/java/lightkeeper/view/LightKeeperProvider.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import docking.widgets.table.TableSortState;
4040
import docking.widgets.table.TableSortStateEditor;
4141
import docking.widgets.table.ColumnSortState.SortDirection;
42+
import generic.theme.GColor;
4243
import ghidra.util.Msg;
4344
import ghidra.util.exception.CancelledException;
4445
import ghidra.util.task.Task;
@@ -125,6 +126,19 @@ public Component getTableCellRendererComponent(GTableCellRenderingData data) {
125126
return component;
126127
}
127128
});
129+
130+
final var colors = new GColor[] {
131+
new GColor("color.lightkeeper.coverage_lt_20.bg"),
132+
new GColor("color.lightkeeper.coverage_lt_20.fg"),
133+
new GColor("color.lightkeeper.coverage_lt_40.bg"),
134+
new GColor("color.lightkeeper.coverage_lt_40.fg"),
135+
new GColor("color.lightkeeper.coverage_lt_60.bg"),
136+
new GColor("color.lightkeeper.coverage_lt_60.fg"),
137+
new GColor("color.lightkeeper.coverage_lt_80.bg"),
138+
new GColor("color.lightkeeper.coverage_lt_80.fg"),
139+
new GColor("color.lightkeeper.coverage_default.bg"),
140+
new GColor("color.lightkeeper.coverage_default.fg")
141+
};
128142
tableView.getColumnModel().getColumn(0).setCellRenderer(new GTableCellRenderer() {
129143
@Override
130144
public Component getTableCellRendererComponent(GTableCellRenderingData data) {
@@ -149,20 +163,20 @@ public Component getTableCellRendererComponent(GTableCellRenderingData data) {
149163

150164
private void setPercentageBackgroundColor(Component component, double coverage) {
151165
if (coverage < 0.20d) {
152-
component.setBackground(Color.BLUE);
153-
component.setForeground(Color.WHITE);
166+
component.setBackground(colors[0]);
167+
component.setForeground(colors[1]);
154168
} else if (coverage < 0.40d) {
155-
component.setBackground(Color.GREEN);
156-
component.setForeground(Color.BLACK);
169+
component.setBackground(colors[2]);
170+
component.setForeground(colors[3]);
157171
} else if (coverage < 0.60d) {
158-
component.setBackground(Color.YELLOW);
159-
component.setForeground(Color.BLACK);
172+
component.setBackground(colors[4]);
173+
component.setForeground(colors[5]);
160174
} else if (coverage < 0.80d) {
161-
component.setBackground(Color.ORANGE);
162-
component.setForeground(Color.BLACK);
175+
component.setBackground(colors[6]);
176+
component.setForeground(colors[7]);
163177
} else {
164-
component.setBackground(Color.RED);
165-
component.setForeground(Color.WHITE);
178+
component.setBackground(colors[8]);
179+
component.setForeground(colors[9]);
166180
}
167181
}
168182
});

0 commit comments

Comments
 (0)