GP-0: Fix Debugger theming bugs

This commit is contained in:
Dan 2022-11-16 12:02:49 -05:00
parent 45640e9bc6
commit 1594610376
8 changed files with 30 additions and 27 deletions

View file

@ -274,7 +274,7 @@ public interface DebuggerResources {
String BOOKMARK_CATEGORY_MEMORY_READ_ERROR = "Debugger Memory Read Error"; String BOOKMARK_CATEGORY_MEMORY_READ_ERROR = "Debugger Memory Read Error";
String OPTION_NAME_COLORS_STALE_MEMORY = "Colors.Stale Memory"; String OPTION_NAME_COLORS_STALE_MEMORY = "Colors.Stale Memory";
Color DEFAULT_COLOR_BACKGROUND_STALE = new GColor("color.bg.debugger.plugin.resources.stale"); GColor DEFAULT_COLOR_BACKGROUND_STALE = new GColor("color.bg.debugger.plugin.resources.stale");
String OPTION_NAME_COLORS_ERROR_MEMORY = "Colors.Error Memory"; String OPTION_NAME_COLORS_ERROR_MEMORY = "Colors.Error Memory";
Color DEFAULT_COLOR_BACKGROUND_ERROR = new GColor("color.bg.debugger.plugin.resources.error"); Color DEFAULT_COLOR_BACKGROUND_ERROR = new GColor("color.bg.debugger.plugin.resources.error");

View file

@ -113,7 +113,7 @@ public class DebuggerTrackLocationTrait {
protected class TrackSelectionGenerator implements SelectionGenerator { protected class TrackSelectionGenerator implements SelectionGenerator {
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS)
private Color trackingColor; private Color trackingColor = DebuggerResources.DEFAULT_COLOR_REGISTER_MARKERS;;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final AutoOptions.Wiring autoOptionsWiring; private final AutoOptions.Wiring autoOptionsWiring;

View file

@ -35,7 +35,7 @@ public abstract class DebuggerTrackedRegisterBackgroundColorModel implements Bac
// TODO: Seems I should at least rename this option // TODO: Seems I should at least rename this option
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS)
Color trackingColor; Color trackingColor = DebuggerResources.DEFAULT_COLOR_REGISTER_MARKERS;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final AutoOptions.Wiring autoOptionsWiring; private final AutoOptions.Wiring autoOptionsWiring;

View file

@ -248,7 +248,7 @@ public class DebuggerListingProvider extends CodeViewerProvider {
private final AutoService.Wiring autoServiceWiring; private final AutoService.Wiring autoServiceWiring;
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_TRACKING_MARKERS)
private Color trackingColor; private Color trackingColor = DebuggerResources.DEFAULT_COLOR_REGISTER_MARKERS;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final AutoOptions.Wiring autoOptionsWiring; private final AutoOptions.Wiring autoOptionsWiring;

View file

@ -42,10 +42,10 @@ public class MemoryStateListingBackgroundColorModel implements ListingBackground
private TraceMemoryManager memory; private TraceMemoryManager memory;
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_ERROR_MEMORY) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_ERROR_MEMORY)
private Color errorColor; private Color errorColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_ERROR;;
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY)
private Color unknownColor; private GColor unknownColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_STALE;
private Color unknownBlendedColor; private Color unknownBlendedColor = unknownColor.withAlpha(127);
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final AutoOptions.Wiring autoOptionsWiring; private final AutoOptions.Wiring autoOptionsWiring;
@ -81,7 +81,7 @@ public class MemoryStateListingBackgroundColorModel implements ListingBackground
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY)
protected void setUnknownColor(Color unknownColor) { protected void setUnknownColor(Color unknownColor) {
computeUnknownBlendedColor(unknownColor, defaultBackgroundColor); // computeUnknownBlendedColor(unknownColor, defaultBackgroundColor);
} }
protected Color getUnknownColor(Address address) { protected Color getUnknownColor(Address address) {
@ -117,7 +117,7 @@ public class MemoryStateListingBackgroundColorModel implements ListingBackground
@Override @Override
public void setDefaultBackgroundColor(Color c) { public void setDefaultBackgroundColor(Color c) {
defaultBackgroundColor = c; defaultBackgroundColor = c;
computeUnknownBlendedColor(unknownColor, c); // computeUnknownBlendedColor(unknownColor, c);
} }
@Override @Override

View file

@ -115,9 +115,9 @@ public class DebuggerMemoryByteViewerComponent extends ByteViewerComponent
private final DebuggerMemoryBytesPanel panel; private final DebuggerMemoryBytesPanel panel;
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_ERROR_MEMORY) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_ERROR_MEMORY)
private Color errorColor; private Color errorColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_ERROR;
@AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY) @AutoOptionConsumed(name = DebuggerResources.OPTION_NAME_COLORS_STALE_MEMORY)
private Color unknownColor; private Color unknownColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_STALE;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final AutoOptions.Wiring autoOptionsWiring; private final AutoOptions.Wiring autoOptionsWiring;

View file

@ -32,6 +32,7 @@ import ghidra.app.plugin.core.byteviewer.*;
import ghidra.app.plugin.core.debug.DebuggerCoordinates; import ghidra.app.plugin.core.debug.DebuggerCoordinates;
import ghidra.app.plugin.core.debug.DebuggerPluginPackage; import ghidra.app.plugin.core.debug.DebuggerPluginPackage;
import ghidra.app.plugin.core.debug.event.*; import ghidra.app.plugin.core.debug.event.*;
import ghidra.app.plugin.core.debug.gui.DebuggerResources;
import ghidra.app.plugin.core.debug.gui.DebuggerResources.NewMemoryAction; import ghidra.app.plugin.core.debug.gui.DebuggerResources.NewMemoryAction;
import ghidra.app.plugin.core.debug.gui.action.LocationTrackingSpec; import ghidra.app.plugin.core.debug.gui.action.LocationTrackingSpec;
import ghidra.app.plugin.core.debug.gui.action.NoneLocationTrackingSpec; import ghidra.app.plugin.core.debug.gui.action.NoneLocationTrackingSpec;
@ -82,11 +83,11 @@ public class DebuggerMemoryBytesPlugin
private AutoService.Wiring autoServiceWiring; private AutoService.Wiring autoServiceWiring;
@AutoOptionConsumed(name = OPTION_NAME_COLORS_STALE_MEMORY) @AutoOptionConsumed(name = OPTION_NAME_COLORS_STALE_MEMORY)
private Color staleMemoryColor; private Color staleMemoryColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_STALE;
@AutoOptionConsumed(name = OPTION_NAME_COLORS_ERROR_MEMORY) @AutoOptionConsumed(name = OPTION_NAME_COLORS_ERROR_MEMORY)
private Color errorMemoryColor; private Color errorMemoryColor = DebuggerResources.DEFAULT_COLOR_BACKGROUND_ERROR;
@AutoOptionConsumed(name = OPTION_NAME_COLORS_TRACKING_MARKERS) @AutoOptionConsumed(name = OPTION_NAME_COLORS_TRACKING_MARKERS)
private Color trackingColor; private Color trackingColor = DebuggerResources.DEFAULT_COLOR_REGISTER_MARKERS;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private AutoOptions.Wiring autoOptionsWiring; private AutoOptions.Wiring autoOptionsWiring;

View file

@ -33,6 +33,7 @@ import org.apache.commons.lang3.StringUtils;
import docking.action.DockingAction; import docking.action.DockingAction;
import docking.widgets.table.*; import docking.widgets.table.*;
import docking.widgets.table.DefaultEnumeratedColumnTableModel.EnumeratedTableColumn; import docking.widgets.table.DefaultEnumeratedColumnTableModel.EnumeratedTableColumn;
import generic.theme.GColor;
import ghidra.GhidraOptions; import ghidra.GhidraOptions;
import ghidra.app.plugin.core.debug.DebuggerCoordinates; import ghidra.app.plugin.core.debug.DebuggerCoordinates;
import ghidra.app.plugin.core.debug.DebuggerPluginPackage; import ghidra.app.plugin.core.debug.DebuggerPluginPackage;
@ -551,20 +552,20 @@ public class DebuggerPcodeStepperProvider extends ComponentProviderAdapter {
help = @HelpInfo(anchor = "colors")) help = @HelpInfo(anchor = "colors"))
private Color counterColor = DebuggerResources.DEFAULT_COLOR_PCODE_COUNTER; private Color counterColor = DebuggerResources.DEFAULT_COLOR_PCODE_COUNTER;
private Color backgroundColor; private Color backgroundColor = new GColor("color.bg.listing");
private Color cursorColor; private Color cursorColor = new GColor("color.bg.currentline.listing");
private Color addressColor; private Color addressColor = new GColor("color.fg.listing.address");
private Color registerColor; private Color registerColor = new GColor("color.fg.listing.register");
private Color scalarColor; private Color scalarColor = new GColor("color.fg.listing.constant");
private Color localColor; private Color localColor = new GColor("color.fg.listing.label.local");
private Color mnemonicColor; private Color mnemonicColor = new GColor("color.fg.listing.mnemonic");
private Color unimplColor; private Color unimplColor = new GColor("color.fg.listing.mnemonic.unimplemented");
private Color separatorColor; private Color separatorColor = new GColor("color.fg.listing.separator");
private Color lineLabelColor; private Color lineLabelColor = new GColor("color.fg.listing.pcode.label");
private Color spaceColor; private Color spaceColor = new GColor("color.fg.listing.pcode.space");
private Color rawColor; private Color rawColor = new GColor("color.fg.listing.pcode.varnode");
private Color useropColor; private Color useropColor = new GColor("color.fg.listing.pcode.userop");
@SuppressWarnings("unused") @SuppressWarnings("unused")
private AutoOptions.Wiring autoOptionsWiring; private AutoOptions.Wiring autoOptionsWiring;
@ -639,6 +640,7 @@ public class DebuggerPcodeStepperProvider extends ComponentProviderAdapter {
name = ADDRESS_COLOR) name = ADDRESS_COLOR)
private void setAddressColor(Color addressColor) { private void setAddressColor(Color addressColor) {
this.addressColor = addressColor; this.addressColor = addressColor;
// TODO: I'll need a callback on color changes if I keep this style approach
recomputeStyle(); recomputeStyle();
} }