Merge remote-tracking branch 'origin/GP-2914_ghidragon_listing_snapshots_color_issues--SQUASHED'

This commit is contained in:
Ryan Kurtz
2022-12-07 02:09:03 -05:00
62 changed files with 641 additions and 1382 deletions

View File

@@ -21,8 +21,8 @@ import java.util.List;
import docking.widgets.fieldpanel.field.*;
import docking.widgets.fieldpanel.support.FieldLocation;
import generic.theme.GColor;
import generic.theme.GThemeDefaults.Colors.Messages;
import generic.theme.GThemeDefaults.Colors.Palette;
import ghidra.app.util.HighlightProvider;
import ghidra.app.util.viewer.field.*;
import ghidra.app.util.viewer.format.FieldFormatModel;
@@ -35,6 +35,7 @@ import ghidra.program.util.ProgramLocation;
import ghidra.util.classfinder.ClassSearcher;
public class ExternalDisassemblyFieldFactory extends FieldFactory {
public static final GColor COLOR = new GColor("color.fg.listing.disassembly.external");
private static List<ExternalDisassembler> availableDisassemblers;
@@ -65,12 +66,6 @@ public class ExternalDisassemblyFieldFactory extends FieldFactory {
super(FIELD_NAME, model, hlProvider, displayOptions, fieldOptions);
}
@Override
public void fieldOptionsChanged(Options options, String optionName, Object oldValue,
Object newValue) {
// have no options
}
@Override
public boolean acceptsType(int category, Class<?> proxyObjectClass) {
return (category == FieldFormatModel.INSTRUCTION_OR_DATA);
@@ -131,7 +126,7 @@ public class ExternalDisassemblyFieldFactory extends FieldFactory {
if (disassembly == null) {
return null;
}
AttributedString text = new AttributedString(disassembly, Palette.BLACK, getMetrics());
AttributedString text = new AttributedString(disassembly, COLOR, getMetrics());
FieldElement fieldElement = new TextFieldElement(text, 0, 0);
return ListingTextField.createSingleLineTextField(this, proxy, fieldElement,
startX + varWidth, width, hlProvider);

View File

@@ -20,6 +20,7 @@ import java.math.BigInteger;
import docking.widgets.fieldpanel.field.*;
import docking.widgets.fieldpanel.support.FieldLocation;
import generic.theme.GColor;
import ghidra.app.util.HighlightProvider;
import ghidra.app.util.viewer.field.*;
import ghidra.app.util.viewer.format.FieldFormatModel;
@@ -34,6 +35,7 @@ import ghidra.program.util.ProgramLocation;
public class EntropyFieldFactory extends FieldFactory {
public static final String FIELD_NAME = "Entropy";
public static final GColor COLOR = new GColor("color.fg.listing.bytes.entropy");
StringBuffer sb = new StringBuffer();
/**
@@ -80,19 +82,19 @@ public class EntropyFieldFactory extends FieldFactory {
}
entropy = calcEntropy(bytes, 0, bytes.length);
float[] hsbvals = Color.RGBtoHSB(255, 0, 0, null);
color =
Color color =
Color.getHSBColor(hsbvals[0], hsbvals[1], (float) (hsbvals[1] * (entropy / 8.0)));
String str = "" + (int) ((entropy / 8.0) * 100);
AttributedString text = new AttributedString(str, color, getMetrics());
FieldElement fieldElement = new TextFieldElement(text, 0, 0);
return ListingTextField.createSingleLineTextField(this, proxy, fieldElement,
startX + varWidth, width, hlProvider);
}
catch (MemoryAccessException e) {
return null;
}
String str = "" + (int) ((entropy / 8.0) * 100);
AttributedString text = new AttributedString(str, color, getMetrics());
FieldElement fieldElement = new TextFieldElement(text, 0, 0);
return ListingTextField.createSingleLineTextField(this, proxy, fieldElement,
startX + varWidth, width, hlProvider);
}
private double calcEntropy(byte[] b, int start, int len) {
@@ -153,8 +155,8 @@ public class EntropyFieldFactory extends FieldFactory {
@Override
public FieldFactory newInstance(FieldFormatModel myModel, HighlightProvider myHlProvider,
ToolOptions displayOptions, ToolOptions fieldOptions) {
return new EntropyFieldFactory(myModel, myHlProvider, displayOptions, fieldOptions);
ToolOptions displayOptions1, ToolOptions fieldOptions) {
return new EntropyFieldFactory(myModel, myHlProvider, displayOptions1, fieldOptions);
}
}