mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 09:49:23 +02:00
GP-5947 - Created new theme value for the Decompiler's middle-mouse
highlight color so that the Listing and Decompiler colors may change independently.
This commit is contained in:
parent
4fcc1febdd
commit
aae2843f4d
11 changed files with 86 additions and 52 deletions
|
@ -7,7 +7,7 @@ color.bg.highlight.listing = color.bg.highlight
|
||||||
|
|
||||||
color.bg.highlight.listing.diff = moccasin // bisque / blanchedalmond / peachpuff / navajowhite
|
color.bg.highlight.listing.diff = moccasin // bisque / blanchedalmond / peachpuff / navajowhite
|
||||||
|
|
||||||
color.bg.listing.highlighter.default = color.palette.yellow
|
color.bg.listing.highlighter.middle.mouse = color.palette.yellow
|
||||||
color.bg.listing.highlighter.scoped.read = color.palette.darkkhaki
|
color.bg.listing.highlighter.scoped.read = color.palette.darkkhaki
|
||||||
color.bg.listing.highlighter.scoped.write = color.palette.lightgreen
|
color.bg.listing.highlighter.scoped.write = color.palette.lightgreen
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ font.listing.header = SansSerif-PLAIN-11
|
||||||
color.bg.highlight.listing.diff = #4D4D2A
|
color.bg.highlight.listing.diff = #4D4D2A
|
||||||
|
|
||||||
|
|
||||||
color.bg.listing.highlighter.default = #666600
|
color.bg.listing.highlighter.middle.mouse = #666600
|
||||||
color.bg.listing.highlighter.scoped.read = #996600
|
color.bg.listing.highlighter.scoped.read = #996600
|
||||||
color.bg.listing.highlighter.scoped.write = #009900
|
color.bg.listing.highlighter.scoped.write = #009900
|
||||||
|
|
||||||
|
|
|
@ -498,14 +498,9 @@
|
||||||
<P>Use the following options to customize <A href=
|
<P>Use the following options to customize <A href=
|
||||||
"CodeBrowser.htm#cursorTextHighlight">Cursor Text Highlighting</A>:</P>
|
"CodeBrowser.htm#cursorTextHighlight">Cursor Text Highlighting</A>:</P>
|
||||||
|
|
||||||
<P><B>Alternate Highlight Color -</B> Sets the alternate color used for cursor text
|
<P><B>Enabled - </B> Select this checkbox to enable cursor text highlighting.</P>
|
||||||
highlighting. Double click on the color bar to bring up a color chooser dialog.</P>
|
|
||||||
|
|
||||||
<P><B>Enabled -</B> Select this checkbox to enable cursor text highlighting.</P>
|
<P><B>
|
||||||
|
|
||||||
<P><B>Highlight Color -</B> Sets the color used for cursor text highlighting. Double click
|
|
||||||
on the color bar to bring up a color chooser dialog.<BR>
|
|
||||||
<B><BR>
|
|
||||||
Mouse Button To Activate</B> - Use the combo box to select which mouse button will be used
|
Mouse Button To Activate</B> - Use the combo box to select which mouse button will be used
|
||||||
to highlight text (Left, Right, Middle).</P>
|
to highlight text (Left, Right, Middle).</P>
|
||||||
|
|
||||||
|
@ -513,6 +508,24 @@
|
||||||
enable <A href="CodeBrowser.htm#Scope">Scoped highlighting</A> of registers within the
|
enable <A href="CodeBrowser.htm#Scope">Scoped highlighting</A> of registers within the
|
||||||
operand field. If turned off, cursor highlighted text within an operand field is treated
|
operand field. If turned off, cursor highlighted text within an operand field is treated
|
||||||
the same as text in other fields.</P>
|
the same as text in other fields.</P>
|
||||||
|
|
||||||
|
<P><B>Scoped Default Color -</B> Sets the color used for cursor text highlighting via
|
||||||
|
middle-mouse. Double-click on the color bar to bring up a color chooser dialog.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<P><B>Scoped Read Highlight Color -</B> Sets the color used for cursor text highlighting a
|
||||||
|
register when the register value is read. The <I>Scope Register Operand</I> option
|
||||||
|
above must be on for this value to be used.
|
||||||
|
Double-click on the color bar to bring up a color chooser dialog.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<P><B>Scoped Write Highlight Color -</B> Sets the color used for cursor text highlighting a
|
||||||
|
register when the register value is written to. The <I>Scope Register Operand</I> option
|
||||||
|
above must be on for this value to be used.
|
||||||
|
Double-click on the color bar to bring up a color chooser dialog.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
|
||||||
</BLOCKQUOTE>
|
</BLOCKQUOTE>
|
||||||
|
|
||||||
<H3><A name="EOL_Comments_Field"></A>EOL Comments Field</H3>
|
<H3><A name="EOL_Comments_Field"></A>EOL Comments Field</H3>
|
||||||
|
|
|
@ -54,10 +54,11 @@ import ghidra.util.datastruct.Stack;
|
||||||
public class ListingMiddleMouseHighlightProvider
|
public class ListingMiddleMouseHighlightProvider
|
||||||
implements ButtonPressedListener, OptionsChangeListener, ListingHighlightProvider {
|
implements ButtonPressedListener, OptionsChangeListener, ListingHighlightProvider {
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
private static final GColor DEFAULT_HIGHLIGHT_COLOR = new GColor("color.bg.listing.highlighter.default");
|
private static final GColor DEFAULT_MIDDLE_MOUSE_HIGHLIGHT_COLOR = new GColor("color.bg.listing.highlighter.middle.mouse");
|
||||||
private static final GColor DEFAULT_SCOPED_READ_COLOR = new GColor("color.bg.listing.highlighter.scoped.read");
|
private static final GColor DEFAULT_SCOPED_READ_COLOR = new GColor("color.bg.listing.highlighter.scoped.read");
|
||||||
private static final GColor DEFAULT_SCOPED_WRITE_COLOR = new GColor("color.bg.listing.highlighter.scoped.write");
|
private static final GColor DEFAULT_SCOPED_WRITE_COLOR = new GColor("color.bg.listing.highlighter.scoped.write");
|
||||||
private static final String DISPLAY_HIGHLIGHT_NAME = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Enabled";
|
private static final String DISPLAY_HIGHLIGHT_NAME = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Enabled";
|
||||||
|
private static final String SCOPED_DEFAULT_HIGHLIGHT_COLOR = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scoped Default Color";
|
||||||
private static final String SCOPED_WRITE_HIGHLIGHT_COLOR = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scoped Write Highlight Color";
|
private static final String SCOPED_WRITE_HIGHLIGHT_COLOR = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scoped Write Highlight Color";
|
||||||
private static final String SCOPED_READ_HIGHLIGHT_COLOR = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scoped Read Highlight Color";
|
private static final String SCOPED_READ_HIGHLIGHT_COLOR = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scoped Read Highlight Color";
|
||||||
private static final String SCOPE_REGISTER_OPERAND = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scope Register Operand";
|
private static final String SCOPE_REGISTER_OPERAND = CURSOR_HIGHLIGHT_GROUP + DELIMITER + "Scope Register Operand";
|
||||||
|
@ -873,8 +874,9 @@ public class ListingMiddleMouseHighlightProvider
|
||||||
ToolOptions opt = tool.getOptions(CATEGORY_BROWSER_FIELDS);
|
ToolOptions opt = tool.getOptions(CATEGORY_BROWSER_FIELDS);
|
||||||
HelpLocation hl = new HelpLocation("CodeBrowserPlugin", "Cursor_Text_Highlight");
|
HelpLocation hl = new HelpLocation("CodeBrowserPlugin", "Cursor_Text_Highlight");
|
||||||
|
|
||||||
opt.registerThemeColorBinding(HIGHLIGHT_COLOR_NAME, DEFAULT_HIGHLIGHT_COLOR.getId(), hl,
|
opt.registerThemeColorBinding(SCOPED_DEFAULT_HIGHLIGHT_COLOR,
|
||||||
"The color to use to highlight text.");
|
DEFAULT_MIDDLE_MOUSE_HIGHLIGHT_COLOR.getId(), hl,
|
||||||
|
"The color to use to highlight the register text.");
|
||||||
opt.registerThemeColorBinding(SCOPED_WRITE_HIGHLIGHT_COLOR,
|
opt.registerThemeColorBinding(SCOPED_WRITE_HIGHLIGHT_COLOR,
|
||||||
DEFAULT_SCOPED_WRITE_COLOR.getId(), hl,
|
DEFAULT_SCOPED_WRITE_COLOR.getId(), hl,
|
||||||
"The color to use for showing a register being written.");
|
"The color to use for showing a register being written.");
|
||||||
|
@ -892,32 +894,24 @@ public class ListingMiddleMouseHighlightProvider
|
||||||
|
|
||||||
opt.addOptionsChangeListener(this);
|
opt.addOptionsChangeListener(this);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
displayHighlight = opt.getBoolean(DISPLAY_HIGHLIGHT_NAME, true);
|
displayHighlight = opt.getBoolean(DISPLAY_HIGHLIGHT_NAME, true);
|
||||||
if (!displayHighlight) {
|
if (!displayHighlight) {
|
||||||
setHighlightString(null, null);
|
setHighlightString(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
textMatchingHighlightColor = opt.getColor(HIGHLIGHT_COLOR_NAME, DEFAULT_HIGHLIGHT_COLOR);
|
textMatchingHighlightColor =
|
||||||
|
opt.getColor(SCOPED_DEFAULT_HIGHLIGHT_COLOR, DEFAULT_MIDDLE_MOUSE_HIGHLIGHT_COLOR);
|
||||||
scopeWriteHighlightColor =
|
scopeWriteHighlightColor =
|
||||||
opt.getColor(SCOPED_WRITE_HIGHLIGHT_COLOR, DEFAULT_SCOPED_WRITE_COLOR);
|
opt.getColor(SCOPED_WRITE_HIGHLIGHT_COLOR, DEFAULT_SCOPED_WRITE_COLOR);
|
||||||
scopeReadHighlightColor =
|
scopeReadHighlightColor =
|
||||||
opt.getColor(SCOPED_READ_HIGHLIGHT_COLOR, DEFAULT_SCOPED_READ_COLOR);
|
opt.getColor(SCOPED_READ_HIGHLIGHT_COLOR, DEFAULT_SCOPED_READ_COLOR);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
CURSOR_MOUSE_BUTTON_NAMES mouseButton =
|
CURSOR_MOUSE_BUTTON_NAMES mouseButton =
|
||||||
opt.getEnum(CURSOR_HIGHLIGHT_BUTTON_NAME, CURSOR_MOUSE_BUTTON_NAMES.MIDDLE);
|
opt.getEnum(CURSOR_HIGHLIGHT_BUTTON_NAME, CURSOR_MOUSE_BUTTON_NAMES.MIDDLE);
|
||||||
|
|
||||||
highlightButtonOption = mouseButton.getMouseEventID();
|
highlightButtonOption = mouseButton.getMouseEventID();
|
||||||
|
|
||||||
//////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
scopeRegisterHighlight = opt.getBoolean(SCOPE_REGISTER_OPERAND, true);
|
scopeRegisterHighlight = opt.getBoolean(SCOPE_REGISTER_OPERAND, true);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
opt.addOptionsChangeListener(this);
|
opt.addOptionsChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -931,7 +925,7 @@ public class ListingMiddleMouseHighlightProvider
|
||||||
clearHighlight();
|
clearHighlight();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (optionName.equals(HIGHLIGHT_COLOR_NAME)) {
|
else if (optionName.equals(SCOPED_DEFAULT_HIGHLIGHT_COLOR)) {
|
||||||
textMatchingHighlightColor = (Color) newValue;
|
textMatchingHighlightColor = (Color) newValue;
|
||||||
}
|
}
|
||||||
else if (optionName.equals(SCOPED_WRITE_HIGHLIGHT_COLOR)) {
|
else if (optionName.equals(SCOPED_WRITE_HIGHLIGHT_COLOR)) {
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
color.bg.byteviewer = color.bg
|
color.bg.byteviewer = color.bg
|
||||||
color.bg.byteviewer.highlight = yellow
|
color.bg.byteviewer.highlight = yellow
|
||||||
|
color.bg.byteviewer.highlight.middle.mouse = color.bg.highlight
|
||||||
|
|
||||||
color.fg.byteviewer.separator = color.palette.blue
|
color.fg.byteviewer.separator = color.palette.blue
|
||||||
color.fg.byteviewer.changed = red
|
color.fg.byteviewer.changed = red
|
||||||
|
|
|
@ -58,9 +58,14 @@
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td width="31%"> Non-Focus Cursor Color</td>
|
<td width="31%"> Non-Focus Cursor Color</td>
|
||||||
<td width="69%"> Th/e cursor color when the Byte Viewer is not focuses</td>
|
<td width="69%"> The cursor color when the Byte Viewer is not focuses</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td width="31%"> Middle-Mouse Color</td>
|
||||||
|
<td width="69%"> The color when the user middle-mouses in the Byte Viewer</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -86,6 +86,9 @@ public abstract class ByteViewerComponentProvider extends ComponentProviderAdapt
|
||||||
GhidraOptions.HIGHLIGHT_CURSOR_LINE_COLOR_OPTION_NAME;
|
GhidraOptions.HIGHLIGHT_CURSOR_LINE_COLOR_OPTION_NAME;
|
||||||
private static final String OPTION_HIGHLIGHT_CURSOR_LINE =
|
private static final String OPTION_HIGHLIGHT_CURSOR_LINE =
|
||||||
GhidraOptions.HIGHLIGHT_CURSOR_LINE_OPTION_NAME;
|
GhidraOptions.HIGHLIGHT_CURSOR_LINE_OPTION_NAME;
|
||||||
|
private static final String OPTION_HIGHLIGHT_MIDDLE_MOUSE_NAME = "Middle Mouse Color";
|
||||||
|
private static final GColor HIGHLIGHT_MIDDLE_MOUSE_COLOR =
|
||||||
|
new GColor("color.bg.byteviewer.highlight.middle.mouse");
|
||||||
|
|
||||||
protected ByteViewerPanel panel;
|
protected ByteViewerPanel panel;
|
||||||
|
|
||||||
|
@ -182,7 +185,7 @@ public abstract class ByteViewerComponentProvider extends ComponentProviderAdapt
|
||||||
CURSOR_MOUSE_BUTTON_NAMES mouseButton = (CURSOR_MOUSE_BUTTON_NAMES) newValue;
|
CURSOR_MOUSE_BUTTON_NAMES mouseButton = (CURSOR_MOUSE_BUTTON_NAMES) newValue;
|
||||||
panel.setHighlightButton(mouseButton.getMouseEventID());
|
panel.setHighlightButton(mouseButton.getMouseEventID());
|
||||||
}
|
}
|
||||||
else if (optionName.equals(HIGHLIGHT_COLOR_NAME)) {
|
else if (optionName.equals(OPTION_HIGHLIGHT_MIDDLE_MOUSE_NAME)) {
|
||||||
panel.setMouseButtonHighlightColor((Color) newValue);
|
panel.setMouseButtonHighlightColor((Color) newValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,15 +222,22 @@ public abstract class ByteViewerComponentProvider extends ComponentProviderAdapt
|
||||||
|
|
||||||
opt.registerThemeColorBinding(CURRENT_LINE_COLOR_OPTION_NAME,
|
opt.registerThemeColorBinding(CURRENT_LINE_COLOR_OPTION_NAME,
|
||||||
GhidraOptions.DEFAULT_CURSOR_LINE_COLOR.getId(), help,
|
GhidraOptions.DEFAULT_CURSOR_LINE_COLOR.getId(), help,
|
||||||
"Color of the line containing the cursor");
|
"Color of the line containing the cursor.");
|
||||||
|
|
||||||
|
opt.registerThemeColorBinding(OPTION_HIGHLIGHT_MIDDLE_MOUSE_NAME,
|
||||||
|
HIGHLIGHT_MIDDLE_MOUSE_COLOR.getId(), help, "The middle-mouse highlight color.");
|
||||||
|
|
||||||
opt.registerThemeFontBinding(OPTION_FONT, DEFAULT_FONT_ID, help, "Font used in the views.");
|
opt.registerThemeFontBinding(OPTION_FONT, DEFAULT_FONT_ID, help, "Font used in the views.");
|
||||||
opt.registerOption(OPTION_HIGHLIGHT_CURSOR_LINE, true, help,
|
opt.registerOption(OPTION_HIGHLIGHT_CURSOR_LINE, true, help,
|
||||||
"Toggles highlighting background color of line containing the cursor");
|
"Toggles highlighting background color of line containing the cursor.");
|
||||||
|
|
||||||
Color separatorColor = opt.getColor(SEPARATOR_COLOR_OPTION_NAME, SEPARATOR_COLOR);
|
Color separatorColor = opt.getColor(SEPARATOR_COLOR_OPTION_NAME, SEPARATOR_COLOR);
|
||||||
panel.setSeparatorColor(separatorColor);
|
panel.setSeparatorColor(separatorColor);
|
||||||
|
|
||||||
|
Color middleMouseColor =
|
||||||
|
opt.getColor(OPTION_HIGHLIGHT_MIDDLE_MOUSE_NAME, HIGHLIGHT_MIDDLE_MOUSE_COLOR);
|
||||||
|
panel.setMouseButtonHighlightColor(middleMouseColor);
|
||||||
|
|
||||||
panel.setCurrentCursorColor(CURSOR_ACTIVE_COLOR);
|
panel.setCurrentCursorColor(CURSOR_ACTIVE_COLOR);
|
||||||
panel.setNonFocusCursorColor(CURSOR_NOT_FOCUSED_COLOR);
|
panel.setNonFocusCursorColor(CURSOR_NOT_FOCUSED_COLOR);
|
||||||
panel.setCursorColor(CURSOR_NON_ACTIVE_COLOR);
|
panel.setCursorColor(CURSOR_NON_ACTIVE_COLOR);
|
||||||
|
@ -246,9 +256,6 @@ public abstract class ByteViewerComponentProvider extends ComponentProviderAdapt
|
||||||
CURSOR_HIGHLIGHT_BUTTON_NAME, GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES.MIDDLE);
|
CURSOR_HIGHLIGHT_BUTTON_NAME, GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES.MIDDLE);
|
||||||
panel.setHighlightButton(mouseButton.getMouseEventID());
|
panel.setHighlightButton(mouseButton.getMouseEventID());
|
||||||
|
|
||||||
panel.setMouseButtonHighlightColor(
|
|
||||||
opt.getColor(HIGHLIGHT_COLOR_NAME, DEFAULT_HIGHLIGHT_COLOR));
|
|
||||||
|
|
||||||
opt.addOptionsChangeListener(this);
|
opt.addOptionsChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ color.fg.decompiler.external.function = color.palette.fuchsia
|
||||||
|
|
||||||
color.bg.decompiler.current.variable = color.palette.highlight.transparent.yellow
|
color.bg.decompiler.current.variable = color.palette.highlight.transparent.yellow
|
||||||
|
|
||||||
|
color.bg.decompiler.highlights.middle.mouse = color.bg.highlight
|
||||||
color.bg.decompiler.highlights.default = color.palette.highlight.transparent.yellow
|
color.bg.decompiler.highlights.default = color.palette.highlight.transparent.yellow
|
||||||
color.bg.decompiler.highlights.special = color.palette.crimson
|
color.bg.decompiler.highlights.special = color.palette.crimson
|
||||||
color.bg.decompiler.highlights.find = color.palette.slateblue
|
color.bg.decompiler.highlights.find = color.palette.slateblue
|
||||||
|
|
|
@ -3348,6 +3348,14 @@
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry id="MiddleMouseColor">
|
||||||
|
<term><emphasis role="bold">Color for Highlighting Middle-mouse Matches</emphasis></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Assign the background color used to highlight characters when highlighting using the middle-mouse button.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry id="DisplayCommentIndent">
|
<varlistentry id="DisplayCommentIndent">
|
||||||
<term><emphasis role="bold">Comment line indent level</emphasis></term>
|
<term><emphasis role="bold">Comment line indent level</emphasis></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -534,6 +534,16 @@
|
||||||
(see <a class="xref" href="DecompilerWindow.html#ActionFind" title="Find...">Find...</a>).
|
(see <a class="xref" href="DecompilerWindow.html#ActionFind" title="Find...">Find...</a>).
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<a name="MiddleMouseColor"></a><span class="term"><span class="bold"><strong>Color for Highlighting Middle-mouse Matches</strong></span></span>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Assign the background color used to highlight characters when highlighting using the middle-mouse button.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<a name="DisplayCommentIndent"></a><span class="term"><span class="bold"><strong>Comment line indent level</strong></span></span>
|
<a name="DisplayCommentIndent"></a><span class="term"><span class="bold"><strong>Comment line indent level</strong></span></span>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
|
@ -26,7 +26,6 @@ import java.io.IOException;
|
||||||
|
|
||||||
import generic.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import generic.theme.Gui;
|
import generic.theme.Gui;
|
||||||
import ghidra.GhidraOptions;
|
|
||||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||||
import ghidra.app.util.HelpTopics;
|
import ghidra.app.util.HelpTopics;
|
||||||
import ghidra.app.util.template.TemplateSimplifier;
|
import ghidra.app.util.template.TemplateSimplifier;
|
||||||
|
@ -444,6 +443,9 @@ public class DecompileOptions {
|
||||||
|
|
||||||
private static final String SEARCH_HIGHLIGHT_MSG = "Display.Color for Highlighting Find Matches";
|
private static final String SEARCH_HIGHLIGHT_MSG = "Display.Color for Highlighting Find Matches";
|
||||||
private static final GColor SEARCH_HIGHLIGHT_COLOR = new GColor("color.bg.decompiler.highlights.find");
|
private static final GColor SEARCH_HIGHLIGHT_COLOR = new GColor("color.bg.decompiler.highlights.find");
|
||||||
|
|
||||||
|
private static final String HIGHLIGHT_MIDDLE_MOUSE_MSG = "Display.Color for Middle Mouse";
|
||||||
|
private static final GColor HIGHLIGHT_MIDDLE_MOUSE_COLOR = new GColor("color.bg.decompiler.highlights.middle.mouse");
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
private static final String BACKGROUND_COLOR_MSG = "Display.Background Color";
|
private static final String BACKGROUND_COLOR_MSG = "Display.Background Color";
|
||||||
|
@ -467,6 +469,7 @@ public class DecompileOptions {
|
||||||
private final static String MAX_INSTRUCTIONS = "Max Instructions per Function";
|
private final static String MAX_INSTRUCTIONS = "Max Instructions per Function";
|
||||||
private final static String MAX_JUMPTABLE_ENTRIES = "Max Entries per Jumptable";
|
private final static String MAX_JUMPTABLE_ENTRIES = "Max Entries per Jumptable";
|
||||||
private final static Boolean LINE_NUMBER_DEF = Boolean.TRUE;
|
private final static Boolean LINE_NUMBER_DEF = Boolean.TRUE;
|
||||||
|
|
||||||
private boolean displayLineNumbers;
|
private boolean displayLineNumbers;
|
||||||
private int decompileTimeoutSeconds;
|
private int decompileTimeoutSeconds;
|
||||||
private int payloadLimitMBytes;
|
private int payloadLimitMBytes;
|
||||||
|
@ -791,14 +794,20 @@ public class DecompileOptions {
|
||||||
"The maximum size of the decompiler result payload in MBYtes (Suggested value: 50).");
|
"The maximum size of the decompiler result payload in MBYtes (Suggested value: 50).");
|
||||||
opt.registerOption(MAX_INSTRUCTIONS, SUGGESTED_MAX_INSTRUCTIONS,
|
opt.registerOption(MAX_INSTRUCTIONS, SUGGESTED_MAX_INSTRUCTIONS,
|
||||||
new HelpLocation(HelpTopics.DECOMPILER, "GeneralMaxInstruction"),
|
new HelpLocation(HelpTopics.DECOMPILER, "GeneralMaxInstruction"),
|
||||||
"The maximum number of instructions decompiled in a single function");
|
"The maximum number of instructions decompiled in a single function.");
|
||||||
opt.registerOption(MAX_JUMPTABLE_ENTRIES, SUGGESTED_MAX_JUMPTABLE_ENTRIES,
|
opt.registerOption(MAX_JUMPTABLE_ENTRIES, SUGGESTED_MAX_JUMPTABLE_ENTRIES,
|
||||||
new HelpLocation(HelpTopics.DECOMPILER, "GeneralMaxJumptable"),
|
new HelpLocation(HelpTopics.DECOMPILER, "GeneralMaxJumptable"),
|
||||||
"The maximum number of entries that can be recovered from a single jumptable");
|
"The maximum number of entries that can be recovered from a single jumptable.");
|
||||||
opt.registerThemeColorBinding(HIGHLIGHT_CURRENT_VARIABLE_MSG,
|
opt.registerThemeColorBinding(HIGHLIGHT_CURRENT_VARIABLE_MSG,
|
||||||
HIGHLIGHT_CURRENT_VARIABLE_COLOR.getId(),
|
HIGHLIGHT_CURRENT_VARIABLE_COLOR.getId(),
|
||||||
new HelpLocation(HelpTopics.DECOMPILER, "DisplayCurrentHighlight"),
|
new HelpLocation(HelpTopics.DECOMPILER, "DisplayCurrentHighlight"),
|
||||||
"Current variable highlight");
|
"Current variable highlight.");
|
||||||
|
|
||||||
|
opt.registerThemeColorBinding(HIGHLIGHT_MIDDLE_MOUSE_MSG,
|
||||||
|
HIGHLIGHT_MIDDLE_MOUSE_COLOR.getId(),
|
||||||
|
new HelpLocation(HelpTopics.DECOMPILER, "MiddleMouseColor"),
|
||||||
|
"The middle-mouse highlight color.");
|
||||||
|
|
||||||
opt.registerOption(CACHED_RESULTS_SIZE_MSG, SUGGESTED_CACHED_RESULTS_SIZE,
|
opt.registerOption(CACHED_RESULTS_SIZE_MSG, SUGGESTED_CACHED_RESULTS_SIZE,
|
||||||
new HelpLocation(HelpTopics.DECOMPILER, "GeneralCacheSize"), CACHE_RESULTS_DESCRIPTION);
|
new HelpLocation(HelpTopics.DECOMPILER, "GeneralCacheSize"), CACHE_RESULTS_DESCRIPTION);
|
||||||
grabFromToolAndProgram(fieldOptions, opt, program);
|
grabFromToolAndProgram(fieldOptions, opt, program);
|
||||||
|
@ -1122,7 +1131,7 @@ public class DecompileOptions {
|
||||||
* @return color used to highlight token(s) selected with a middle button clock
|
* @return color used to highlight token(s) selected with a middle button clock
|
||||||
*/
|
*/
|
||||||
public Color getMiddleMouseHighlightColor() {
|
public Color getMiddleMouseHighlightColor() {
|
||||||
return GhidraOptions.DEFAULT_HIGHLIGHT_COLOR;
|
return HIGHLIGHT_MIDDLE_MOUSE_COLOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,9 +31,7 @@ import ghidra.framework.plugintool.PluginConfigurationModel;
|
||||||
import ghidra.framework.plugintool.PluginTool;
|
import ghidra.framework.plugintool.PluginTool;
|
||||||
import ghidra.framework.plugintool.util.PluginPackage;
|
import ghidra.framework.plugintool.util.PluginPackage;
|
||||||
import ghidra.util.HelpLocation;
|
import ghidra.util.HelpLocation;
|
||||||
import ghidra.util.Msg;
|
|
||||||
import resources.Icons;
|
import resources.Icons;
|
||||||
import utilities.util.reflection.ReflectionUtilities;
|
|
||||||
|
|
||||||
public class ManagePluginsDialog extends ReusableDialogComponentProvider {
|
public class ManagePluginsDialog extends ReusableDialogComponentProvider {
|
||||||
|
|
||||||
|
@ -147,18 +145,6 @@ public class ManagePluginsDialog extends ReusableDialogComponentProvider {
|
||||||
public boolean isEnabledForContext(ActionContext context) {
|
public boolean isEnabledForContext(ActionContext context) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setEnabled(boolean newValue) {
|
|
||||||
|
|
||||||
if (!newValue) {
|
|
||||||
Msg.debug(this, "disable Save As...",
|
|
||||||
ReflectionUtilities.createJavaFilteredThrowable());
|
|
||||||
}
|
|
||||||
|
|
||||||
super.setEnabled(newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
icon = Icons.SAVE_AS_ICON;
|
icon = Icons.SAVE_AS_ICON;
|
||||||
saveAsAction
|
saveAsAction
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue