mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
Merge remote-tracking branch 'origin/GP-2848-dragonmacher-theme-fixups'
This commit is contained in:
commit
b252544c15
16 changed files with 219 additions and 250 deletions
|
@ -1,79 +1,65 @@
|
||||||
[Defaults]
|
[Defaults]
|
||||||
|
|
||||||
|
|
||||||
color.bg.functiongraph = color.bg
|
color.bg.plugin.functiongraph = color.bg
|
||||||
|
|
||||||
color.fg.label.picked = color.fg
|
color.fg.plugin.functiongraph.label.picked = color.fg
|
||||||
color.fg.label.non.picked = color.fg.disabled
|
color.fg.plugin.functiongraph.label.non.picked = color.fg.disabled
|
||||||
|
|
||||||
color.bg.functiongraph.vertex.group = rgb(226, 255, 155)
|
color.bg.plugin.functiongraph.vertex.group = rgb(226, 255, 155)
|
||||||
color.bg.functiongraph.vertex.entry = color.palette.lightgreen
|
color.bg.plugin.functiongraph.vertex.entry = color.palette.lightgreen
|
||||||
color.bg.functiongraph.vertex.exit = color.palette.lightred
|
color.bg.plugin.functiongraph.vertex.exit = color.palette.lightred
|
||||||
color.bg.functiongraph.vertex.picked = color.palette.yellow
|
color.bg.plugin.functiongraph.vertex.picked = color.palette.yellow
|
||||||
|
|
||||||
color.bg.functiongraph.edge.fall.through = color.flowtype.fall.through
|
color.bg.plugin.functiongraph.edge.fall.through = color.flowtype.fall.through
|
||||||
color.bg.functiongraph.edge.fall.through.highlight = rgb(255, 127, 127)
|
color.bg.plugin.functiongraph.edge.fall.through.highlight = rgb(255, 127, 127)
|
||||||
color.bg.functiongraph.edge.jump.conditional = color.flowtype.jump.conditional
|
color.bg.plugin.functiongraph.edge.jump.conditional = color.flowtype.jump.conditional
|
||||||
color.bg.functiongraph.edge.jump.conditional.highlight = lime
|
color.bg.plugin.functiongraph.edge.jump.conditional.highlight = lime
|
||||||
color.bg.functiongraph.edge.jump.unconditional = color.flowtype.jump.unconditional
|
color.bg.plugin.functiongraph.edge.jump.unconditional = color.flowtype.jump.unconditional
|
||||||
color.bg.functiongraph.edge.jump.unconditional.highlight = rgb(127, 127, 255)
|
color.bg.plugin.functiongraph.edge.jump.unconditional.highlight = rgb(127, 127, 255)
|
||||||
|
|
||||||
color.bg.functiongraph.paint.icon = rgb(189, 221, 252) // gentle pale blue
|
color.bg.plugin.functiongraph.paint.icon = rgb(189, 221, 252) // gentle pale blue
|
||||||
|
|
||||||
|
|
||||||
icon.functiongraph.layout.experimental = package_development.png
|
icon.plugin.functiongraph.layout.experimental = package_development.png
|
||||||
icon.functiongraph.action.vertex.xrefs = brick_link.png
|
icon.plugin.functiongraph.action.vertex.xrefs = brick_link.png
|
||||||
icon.functiongraph.action.vertex.maximize = fullscreen_view.png
|
icon.plugin.functiongraph.action.vertex.maximize = fullscreen_view.png
|
||||||
icon.functiongraph.action.vertex.minimize = graph_view.png
|
icon.plugin.functiongraph.action.vertex.minimize = graph_view.png
|
||||||
icon.functiongraph.action.vertex.group = shape_handles.png
|
icon.plugin.functiongraph.action.vertex.group = shape_handles.png
|
||||||
icon.functiongraph.action.vertex.group.add = shape_square_add.png
|
icon.plugin.functiongraph.action.vertex.group.add = shape_square_add.png
|
||||||
icon.functiongraph.action.vertex.regroup = edit-redo.png
|
icon.plugin.functiongraph.action.vertex.regroup = edit-redo.png
|
||||||
icon.functiongraph.action.vertex.ungroup = shape_ungroup.png
|
icon.plugin.functiongraph.action.vertex.ungroup = shape_ungroup.png
|
||||||
icon.functiongraph.action.vertex.choose.color = paintbrush.png
|
icon.plugin.functiongraph.action.vertex.choose.color = paintbrush.png
|
||||||
icon.functiongraph.action.vertex.choose.color.palette = palette.png
|
icon.plugin.functiongraph.action.vertex.choose.color.palette = palette.png
|
||||||
icon.functiongraph.action.vertex.edit.label = id.png
|
icon.plugin.functiongraph.action.vertex.edit.label = id.png
|
||||||
icon.functiongraph.action.vertex.full.screen = fullscreen_view.png
|
icon.plugin.functiongraph.action.vertex.full.screen = fullscreen_view.png
|
||||||
icon.functiongraph.action.vertex.edit.format = field.header.png
|
icon.plugin.functiongraph.action.vertex.edit.format = field.header.png
|
||||||
|
|
||||||
icon.functiongraph.action.viewer.clone = icon.provider.clone
|
icon.plugin.functiongraph.action.viewer.clone = icon.provider.clone
|
||||||
icon.functiongraph.action.viewer.layout = preferences-system.png
|
icon.plugin.functiongraph.action.viewer.layout = preferences-system.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.paths.to.vertex = fgin.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.paths.to.vertex = fgin.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.paths.from.vertex = fgout.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.vertex = fgout.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex = fginout.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex = fginout.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.paths.all = fgpaths.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.paths.all = fgpaths.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.cycles = fgloop.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.cycles = fgloop.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.cycles.all = fgloopall.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.cycles.all = fgloopall.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.scoped.flow.forward = fgblock.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.forward = fgblock.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse = fgrevblock.png
|
icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse = fgrevblock.png
|
||||||
icon.functiongraph.action.viewer.vertex.hover.off = hoverOff.gif
|
icon.plugin.functiongraph.action.viewer.vertex.hover.off = hoverOff.gif
|
||||||
|
|
||||||
icon.functiongraph.action.viewer.home = house.png
|
icon.plugin.functiongraph.action.viewer.home = house.png
|
||||||
icon.functiongraph.action.viewer.reset = icon.refresh
|
icon.plugin.functiongraph.action.viewer.reset = icon.refresh
|
||||||
|
|
||||||
icon.functiongraph.action.provider = function_graph.png
|
icon.plugin.functiongraph.action.provider = function_graph.png
|
||||||
icon.functiongraph.action.provider.satellite = network-wireless-16.png
|
icon.plugin.functiongraph.action.provider.satellite = network-wireless-16.png
|
||||||
|
|
||||||
|
|
||||||
[Dark Defaults]
|
[Dark Defaults]
|
||||||
|
|
||||||
|
|
||||||
// color.bg.functiongraph = color.bg
|
color.bg.plugin.functiongraph.vertex.group = rgb(226, 222, 179) // TODO confirm value
|
||||||
|
|
||||||
// color.fg.label.picked = color.fg
|
color.bg.plugin.functiongraph.edge.fall.through.highlight = rgb(165, 76, 80)
|
||||||
// color.fg.label.non.picked = color.fg.disabled
|
color.bg.plugin.functiongraph.edge.jump.conditional.highlight = rgb(95, 160, 196)
|
||||||
|
color.bg.plugin.functiongraph.edge.jump.unconditional.highlight = rgb(140, 162, 88)
|
||||||
color.bg.functiongraph.vertex.group = rgb(226, 222, 179) // TODO confirm value
|
|
||||||
// color.bg.functiongraph.vertex.entry = color.palette.lightgreen
|
|
||||||
// color.bg.functiongraph.vertex.exit = color.palette.lightred
|
|
||||||
// color.bg.functiongraph.vertex.picked = color.palette.yellow
|
|
||||||
|
|
||||||
// color.bg.functiongraph.edge.fall.through = color.flowtype.fall.through
|
|
||||||
color.bg.functiongraph.edge.fall.through.highlight = rgb(165, 76, 80)
|
|
||||||
// color.bg.functiongraph.edge.jump.conditional = color.flowtype.jump.conditional
|
|
||||||
color.bg.functiongraph.edge.jump.conditional.highlight = rgb(95, 160, 196)
|
|
||||||
// color.bg.functiongraph.edge.jump.unconditional = color.flowtype.jump.unconditional
|
|
||||||
color.bg.functiongraph.edge.jump.unconditional.highlight = rgb(140, 162, 88)
|
|
||||||
|
|
||||||
|
|
||||||
// TODO dark version color.bg.functiongraph.paint.icon = // TODO
|
|
||||||
|
|
||||||
|
|
|
@ -61,13 +61,13 @@ class FGActionManager {
|
||||||
private static final String LAYOUT_CLASS_NAME = "LAYOUT_CLASS_NAME";
|
private static final String LAYOUT_CLASS_NAME = "LAYOUT_CLASS_NAME";
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
private static final Icon GROUP_ICON = new GIcon("icon.functiongraph.action.vertex.group");
|
private static final Icon GROUP_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.group");
|
||||||
private static final Icon GROUP_ADD_ICON = new GIcon("icon.functiongraph.action.vertex.group.add");
|
private static final Icon GROUP_ADD_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.group.add");
|
||||||
private static final Icon UNGROUP_ICON = new GIcon("icon.functiongraph.action.vertex.ungroup");
|
private static final Icon UNGROUP_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.ungroup");
|
||||||
|
|
||||||
private static final Icon EDIT_ICON = new GIcon("icon.functiongraph.action.vertex.edit.label");
|
private static final Icon EDIT_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.edit.label");
|
||||||
private static final Icon FULL_SCREEN_ICON = new GIcon("icon.functiongraph.action.vertex.full.screen");
|
private static final Icon FULL_SCREEN_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.full.screen");
|
||||||
private static final Icon XREFS_ICON = new GIcon("icon.functiongraph.action.vertex.full.screen");
|
private static final Icon XREFS_ICON = new GIcon("icon.plugin.functiongraph.action.vertex.full.screen");
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
|
|
||||||
private PluginTool tool;
|
private PluginTool tool;
|
||||||
|
@ -127,7 +127,7 @@ class FGActionManager {
|
||||||
|
|
||||||
// subgroup 3, after the refresh and layout actions
|
// subgroup 3, after the refresh and layout actions
|
||||||
chooseFormatsAction.setToolBarData(new ToolBarData(
|
chooseFormatsAction.setToolBarData(new ToolBarData(
|
||||||
new GIcon("icon.functiongraph.action.vertex.edit.format"), layoutGroup, "3"));
|
new GIcon("icon.plugin.functiongraph.action.vertex.edit.format"), layoutGroup, "3"));
|
||||||
chooseFormatsAction.setHelpLocation(
|
chooseFormatsAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Function_Graph_Action_Format"));
|
new HelpLocation("FunctionGraphPlugin", "Function_Graph_Action_Format"));
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ class FGActionManager {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
homeAction.setToolBarData(
|
homeAction.setToolBarData(
|
||||||
new ToolBarData(new GIcon("icon.functiongraph.action.viewer.home"), toolBarGroup1));
|
new ToolBarData(new GIcon("icon.plugin.functiongraph.action.viewer.home"), toolBarGroup1));
|
||||||
homeAction.setHelpLocation(
|
homeAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Function_Graph_Action_Home"));
|
new HelpLocation("FunctionGraphPlugin", "Function_Graph_Action_Home"));
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ class FGActionManager {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
resetGraphAction.setToolBarData(
|
resetGraphAction.setToolBarData(
|
||||||
new ToolBarData(new GIcon("icon.functiongraph.action.viewer.reset"), layoutGroup, "1"));
|
new ToolBarData(new GIcon("icon.plugin.functiongraph.action.viewer.reset"), layoutGroup, "1"));
|
||||||
resetGraphAction.setDescription("<html>Reloads the graph--All positioning and grouping " +
|
resetGraphAction.setDescription("<html>Reloads the graph--All positioning and grouping " +
|
||||||
"information is <b>lost</b>");
|
"information is <b>lost</b>");
|
||||||
resetGraphAction.setHelpLocation(
|
resetGraphAction.setHelpLocation(
|
||||||
|
@ -659,7 +659,7 @@ class FGActionManager {
|
||||||
return controller.getGraphedFunction() != null;
|
return controller.getGraphedFunction() != null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Icon image = new GIcon("icon.functiongraph.action.viewer.clone");
|
Icon image = new GIcon("icon.plugin.functiongraph.action.viewer.clone");
|
||||||
cloneAction.setToolBarData(new ToolBarData(image, toolbarEndGroup));
|
cloneAction.setToolBarData(new ToolBarData(image, toolbarEndGroup));
|
||||||
cloneAction.setDescription(
|
cloneAction.setDescription(
|
||||||
"Create a snapshot (disconnected) copy of this Function Graph window ");
|
"Create a snapshot (disconnected) copy of this Function Graph window ");
|
||||||
|
@ -889,7 +889,7 @@ class FGActionManager {
|
||||||
|
|
||||||
// This icon will display when the action has no icon. This allows actions with no good
|
// This icon will display when the action has no icon. This allows actions with no good
|
||||||
// icon to be blank in the menu, but to use this icon on the toolbar.
|
// icon to be blank in the menu, but to use this icon on the toolbar.
|
||||||
layoutAction.setDefaultIcon(new GIcon("icon.functiongraph.action.viewer.layout"));
|
layoutAction.setDefaultIcon(new GIcon("icon.plugin.functiongraph.action.viewer.layout"));
|
||||||
|
|
||||||
List<ActionState<FGLayoutProvider>> actionStates = loadActionStatesForLayoutProviders();
|
List<ActionState<FGLayoutProvider>> actionStates = loadActionStatesForLayoutProviders();
|
||||||
for (ActionState<FGLayoutProvider> actionState : actionStates) {
|
for (ActionState<FGLayoutProvider> actionState : actionStates) {
|
||||||
|
@ -944,14 +944,14 @@ class FGActionManager {
|
||||||
private void addVertexHoverModeAction(String group) {
|
private void addVertexHoverModeAction(String group) {
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
Icon pathsToVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.to.vertex");
|
Icon pathsToVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.to.vertex");
|
||||||
Icon pathsFromVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.from.vertex");
|
Icon pathsFromVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.vertex");
|
||||||
Icon pathsFromToVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex");
|
Icon pathsFromToVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex");
|
||||||
Icon pathsIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.all");
|
Icon pathsIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.all");
|
||||||
Icon cyclesIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.cycles");
|
Icon cyclesIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.cycles");
|
||||||
Icon forwardScopedIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.scoped.flow.forward");
|
Icon forwardScopedIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.forward");
|
||||||
Icon reverseScopedIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse");
|
Icon reverseScopedIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse");
|
||||||
Icon nothingIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.off");
|
Icon nothingIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.off");
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
|
|
||||||
HelpLocation pathHelpLocation =
|
HelpLocation pathHelpLocation =
|
||||||
|
@ -1022,14 +1022,14 @@ class FGActionManager {
|
||||||
private void addVertexSelectedModeAction(String group) {
|
private void addVertexSelectedModeAction(String group) {
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
Icon pathsToVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.to.vertex");
|
Icon pathsToVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.to.vertex");
|
||||||
Icon pathsFromVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.from.vertex");
|
Icon pathsFromVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.vertex");
|
||||||
Icon pathsFromToVertexIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex");
|
Icon pathsFromToVertexIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.paths.from.to.vertex");
|
||||||
Icon cyclesIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.cycles");
|
Icon cyclesIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.cycles");
|
||||||
Icon allCyclesIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.cycles.all");
|
Icon allCyclesIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.cycles.all");
|
||||||
Icon forwardScopedIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.scoped.flow.forward");
|
Icon forwardScopedIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.forward");
|
||||||
Icon reverseScopedIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse");
|
Icon reverseScopedIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.scoped.flow.reverse");
|
||||||
Icon nothingIcon = new GIcon("icon.functiongraph.action.viewer.vertex.hover.off");
|
Icon nothingIcon = new GIcon("icon.plugin.functiongraph.action.viewer.vertex.hover.off");
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@ import ghidra.util.HelpLocation;
|
||||||
public class FGSatelliteUndockedProvider extends ComponentProviderAdapter {
|
public class FGSatelliteUndockedProvider extends ComponentProviderAdapter {
|
||||||
|
|
||||||
static final String NAME = "Function Graph Satellite";
|
static final String NAME = "Function Graph Satellite";
|
||||||
private static final Icon ICON = new GIcon("icon.functiongraph.action.provider.satellite");
|
private static final Icon ICON =
|
||||||
|
new GIcon("icon.plugin.functiongraph.action.provider.satellite");
|
||||||
|
|
||||||
private FGController controller;
|
private FGController controller;
|
||||||
private JComponent satelliteComponent;
|
private JComponent satelliteComponent;
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class FunctionGraphPlugin extends ProgramPlugin implements OptionsChangeL
|
||||||
static final String OPTIONS_NAME_PATH =
|
static final String OPTIONS_NAME_PATH =
|
||||||
ToolConstants.GRAPH_OPTIONS + Options.DELIMITER + FUNCTION_GRAPH_NAME;
|
ToolConstants.GRAPH_OPTIONS + Options.DELIMITER + FUNCTION_GRAPH_NAME;
|
||||||
|
|
||||||
static final Icon ICON = new GIcon("icon.functiongraph.action.provider");
|
static final Icon ICON = new GIcon("icon.plugin.functiongraph.action.provider");
|
||||||
|
|
||||||
private static final String USER_DEFINED_FORMAT_CONFIG_NAME = "USER_DEFINED_FORMAT_MANAGER";
|
private static final String USER_DEFINED_FORMAT_CONFIG_NAME = "USER_DEFINED_FORMAT_MANAGER";
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,9 @@ import ghidra.util.UndefinedFunction;
|
||||||
public class FGComponent extends GraphComponent<FGVertex, FGEdge, FunctionGraph> {
|
public class FGComponent extends GraphComponent<FGVertex, FGEdge, FunctionGraph> {
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
private static final Color PICKED_COLOR = new GColor("color.bg.functiongraph.vertex.picked");
|
private static final Color PICKED_COLOR = new GColor("color.bg.plugin.functiongraph.vertex.picked");
|
||||||
private static final Color START_COLOR = new GColor("color.bg.functiongraph.vertex.entry");
|
private static final Color START_COLOR = new GColor("color.bg.plugin.functiongraph.vertex.entry");
|
||||||
private static final Color END_COLOR = new GColor("color.bg.functiongraph.vertex.exit");
|
private static final Color END_COLOR = new GColor("color.bg.plugin.functiongraph.vertex.exit");
|
||||||
private static final Color UNDEFINED_FUNCTION_COLOR = new GColor("color.bg.undefined");
|
private static final Color UNDEFINED_FUNCTION_COLOR = new GColor("color.bg.undefined");
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
|
@ -219,9 +219,10 @@ public class FGComponent extends GraphComponent<FGVertex, FGEdge, FunctionGraph>
|
||||||
|
|
||||||
// note: this label renderer is the stamp for the label; we use another edge label
|
// note: this label renderer is the stamp for the label; we use another edge label
|
||||||
// renderer inside of the VisualGraphRenderer
|
// renderer inside of the VisualGraphRenderer
|
||||||
VisualGraphEdgeLabelRenderer edgeLabelRenderer =
|
VisualGraphEdgeLabelRenderer edgeLabelRenderer = new VisualGraphEdgeLabelRenderer(
|
||||||
new VisualGraphEdgeLabelRenderer(new GColor("color.fg.label.picked"));
|
new GColor("color.fg.plugin.functiongraph.label.picked"));
|
||||||
edgeLabelRenderer.setNonPickedForegroundColor(new GColor("color.fg.label.non.picked"));
|
edgeLabelRenderer.setNonPickedForegroundColor(
|
||||||
|
new GColor("color.fg.plugin.functiongraph.label.non.picked"));
|
||||||
edgeLabelRenderer.setRotateEdgeLabels(false);
|
edgeLabelRenderer.setRotateEdgeLabels(false);
|
||||||
renderContext.setEdgeLabelRenderer(edgeLabelRenderer);
|
renderContext.setEdgeLabelRenderer(edgeLabelRenderer);
|
||||||
|
|
||||||
|
@ -238,7 +239,7 @@ public class FGComponent extends GraphComponent<FGVertex, FGEdge, FunctionGraph>
|
||||||
viewer.setBackground(UNDEFINED_FUNCTION_COLOR);
|
viewer.setBackground(UNDEFINED_FUNCTION_COLOR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
viewer.setBackground(new GColor("color.bg.functiongraph"));
|
viewer.setBackground(new GColor("color.bg.plugin.functiongraph"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ import generic.theme.GIcon;
|
||||||
|
|
||||||
public abstract class ExperimentalLayoutProvider extends FGLayoutProviderExtensionPoint {
|
public abstract class ExperimentalLayoutProvider extends FGLayoutProviderExtensionPoint {
|
||||||
|
|
||||||
private static final Icon ICON = new GIcon("icon.functiongraph.layout.experimental");
|
private static final Icon ICON = new GIcon("icon.plugin.functiongraph.layout.experimental");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Icon getActionIcon() {
|
public Icon getActionIcon() {
|
||||||
|
|
|
@ -139,10 +139,8 @@ public class GroupedFunctionGraphComponentPanel extends AbstractGraphComponentPa
|
||||||
add(genericHeader, BorderLayout.NORTH);
|
add(genericHeader, BorderLayout.NORTH);
|
||||||
add(contentPanel, BorderLayout.CENTER);
|
add(contentPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
Border beveledBorder =
|
Border beveledBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED,
|
||||||
BorderFactory.createBevelBorder(BevelBorder.RAISED,
|
new GColor("color.border.bevel.highlight"), new GColor("color.border.bevel.shadow"));
|
||||||
new GColor("color.border.bevel.highlight"),
|
|
||||||
new GColor("color.border.bevel.shadow"));
|
|
||||||
|
|
||||||
setBorder(beveledBorder);
|
setBorder(beveledBorder);
|
||||||
|
|
||||||
|
@ -189,7 +187,7 @@ public class GroupedFunctionGraphComponentPanel extends AbstractGraphComponentPa
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
groupAction.setDescription("Combine selected vertices into one vertex");
|
groupAction.setDescription("Combine selected vertices into one vertex");
|
||||||
Icon imageIcon = new GIcon("icon.functiongraph.action.vertex.group");
|
Icon imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.group");
|
||||||
groupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
groupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
groupAction.setHelpLocation(
|
groupAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Group_Vertex_Action_Group"));
|
new HelpLocation("FunctionGraphPlugin", "Group_Vertex_Action_Group"));
|
||||||
|
@ -202,10 +200,10 @@ public class GroupedFunctionGraphComponentPanel extends AbstractGraphComponentPa
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
regroupAction.setDescription("Restore vertex and siblings back to group form");
|
regroupAction.setDescription("Restore vertex and siblings back to group form");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.regroup");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.regroup");
|
||||||
regroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
regroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
regroupAction.setHelpLocation(
|
regroupAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Regroup"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Regroup"));
|
||||||
|
|
||||||
// ungroup
|
// ungroup
|
||||||
ungroupAction = new DockingAction("Ungroup Vertices", FunctionGraphPlugin.class.getName()) {
|
ungroupAction = new DockingAction("Ungroup Vertices", FunctionGraphPlugin.class.getName()) {
|
||||||
|
@ -215,10 +213,10 @@ public class GroupedFunctionGraphComponentPanel extends AbstractGraphComponentPa
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ungroupAction.setDescription("Ungroup selected vertices into individual vertex");
|
ungroupAction.setDescription("Ungroup selected vertices into individual vertex");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.ungroup");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.ungroup");
|
||||||
ungroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
ungroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
ungroupAction.setHelpLocation(
|
ungroupAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Ungroup"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Ungroup"));
|
||||||
|
|
||||||
// add to group
|
// add to group
|
||||||
addToGroupAction = new DockingAction("Add to Group", FunctionGraphPlugin.class.getName()) {
|
addToGroupAction = new DockingAction("Add to Group", FunctionGraphPlugin.class.getName()) {
|
||||||
|
@ -243,7 +241,7 @@ public class GroupedFunctionGraphComponentPanel extends AbstractGraphComponentPa
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
addToGroupAction.setDescription("Add the selected vertices to this group");
|
addToGroupAction.setDescription("Add the selected vertices to this group");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.group.add");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.group.add");
|
||||||
addToGroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
addToGroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
addToGroupAction.setHelpLocation(
|
addToGroupAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Group_Add"));
|
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Group_Add"));
|
||||||
|
|
|
@ -115,10 +115,10 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
setLayout(new BorderLayout());
|
setLayout(new BorderLayout());
|
||||||
listingPanel = new FGVertexListingPanel(controller, controller.getMinimalFormatManager(),
|
listingPanel = new FGVertexListingPanel(controller, controller.getMinimalFormatManager(),
|
||||||
program, addressSet);
|
program, addressSet);
|
||||||
listingPanel.addButtonPressedListener(
|
listingPanel
|
||||||
new FieldNavigator(tool, controller.getNavigatable()));
|
.addButtonPressedListener(new FieldNavigator(tool, controller.getNavigatable()));
|
||||||
listingPanel.addButtonPressedListener(
|
listingPanel
|
||||||
controller.getSharedHighlighterButtonPressedListener());
|
.addButtonPressedListener(controller.getSharedHighlighterButtonPressedListener());
|
||||||
listingPanel.setStringSelectionListener(controller.getSharedStringSelectionListener());
|
listingPanel.setStringSelectionListener(controller.getSharedStringSelectionListener());
|
||||||
|
|
||||||
fieldPanel = listingPanel.getFieldPanel();
|
fieldPanel = listingPanel.getFieldPanel();
|
||||||
|
@ -135,10 +135,8 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
|
|
||||||
add(listingPanel, BorderLayout.CENTER);
|
add(listingPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
Border beveledBorder =
|
Border beveledBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED,
|
||||||
BorderFactory.createBevelBorder(BevelBorder.RAISED,
|
new GColor("color.border.bevel.highlight"), new GColor("color.border.bevel.shadow"));
|
||||||
new GColor("color.border.bevel.highlight"),
|
|
||||||
new GColor("color.border.bevel.shadow"));
|
|
||||||
setBorder(beveledBorder);
|
setBorder(beveledBorder);
|
||||||
|
|
||||||
addKeyListener(new FieldPanelKeyListener());
|
addKeyListener(new FieldPanelKeyListener());
|
||||||
|
@ -298,11 +296,11 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
String secondGroup = "group2";
|
String secondGroup = "group2";
|
||||||
|
|
||||||
setVertexMostRecentAction = new SetVertexMostRecentColorAction(controller, vertex);
|
setVertexMostRecentAction = new SetVertexMostRecentColorAction(controller, vertex);
|
||||||
setVertexMostRecentAction.setHelpLocation(
|
setVertexMostRecentAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
||||||
ToolBarData toolBarData = setVertexMostRecentAction.getToolBarData();
|
ToolBarData toolBarData = setVertexMostRecentAction.getToolBarData();
|
||||||
setVertexMostRecentAction.setToolBarData(
|
setVertexMostRecentAction
|
||||||
new ToolBarData(toolBarData.getIcon(), firstGroup));
|
.setToolBarData(new ToolBarData(toolBarData.getIcon(), firstGroup));
|
||||||
|
|
||||||
xrefsAction = new DockingAction("Jump To XRef", FunctionGraphPlugin.class.getName()) {
|
xrefsAction = new DockingAction("Jump To XRef", FunctionGraphPlugin.class.getName()) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -311,7 +309,7 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
xrefsAction.setDescription("Jump to a XRef");
|
xrefsAction.setDescription("Jump to a XRef");
|
||||||
Icon imageIcon = new GIcon("icon.functiongraph.action.vertex.xrefs");
|
Icon imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.xrefs");
|
||||||
xrefsAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
xrefsAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
||||||
xrefsAction.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_XRefs"));
|
xrefsAction.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_XRefs"));
|
||||||
|
|
||||||
|
@ -325,7 +323,7 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
maximizeViewModeAction.setDescription("Reverts view from graph to fullscreen");
|
maximizeViewModeAction.setDescription("Reverts view from graph to fullscreen");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.maximize");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.maximize");
|
||||||
maximizeViewModeAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
maximizeViewModeAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
||||||
maximizeViewModeAction.setHelpLocation(
|
maximizeViewModeAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Full_View"));
|
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Full_View"));
|
||||||
|
@ -340,7 +338,7 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
minimizeViewModeAction.setDescription("Reverts view from fullscreen to graph");
|
minimizeViewModeAction.setDescription("Reverts view from fullscreen to graph");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.minimize");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.minimize");
|
||||||
minimizeViewModeAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
minimizeViewModeAction.setToolBarData(new ToolBarData(imageIcon, firstGroup));
|
||||||
minimizeViewModeAction.setHelpLocation(
|
minimizeViewModeAction.setHelpLocation(
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Full_View"));
|
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Full_View"));
|
||||||
|
@ -352,7 +350,7 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
groupAction.setDescription("Combine selected vertices into one vertex");
|
groupAction.setDescription("Combine selected vertices into one vertex");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.group");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.group");
|
||||||
groupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
groupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
groupAction.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Group"));
|
groupAction.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Group"));
|
||||||
|
|
||||||
|
@ -363,11 +361,11 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
regroupAction.setDescription("Restore vertex and siblings back to group form");
|
regroupAction.setDescription("Restore vertex and siblings back to group form");
|
||||||
imageIcon = new GIcon("icon.functiongraph.action.vertex.regroup");
|
imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.regroup");
|
||||||
regroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
regroupAction.setToolBarData(new ToolBarData(imageIcon, secondGroup));
|
||||||
|
|
||||||
regroupAction.setHelpLocation(
|
regroupAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Regroup"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Regroup"));
|
||||||
|
|
||||||
genericHeader.actionAdded(setVertexMostRecentAction);
|
genericHeader.actionAdded(setVertexMostRecentAction);
|
||||||
|
|
||||||
|
@ -713,7 +711,6 @@ public class ListingGraphComponentPanel extends AbstractGraphComponentPanel {
|
||||||
|
|
||||||
private class ListingHoverAdapter extends ListingHoverProvider {
|
private class ListingHoverAdapter extends ListingHoverProvider {
|
||||||
public ListingHoverAdapter() {
|
public ListingHoverAdapter() {
|
||||||
super();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -49,7 +49,8 @@ public class SetVertexMostRecentColorAction extends MultiActionDockingAction {
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
this.vertex = vertex;
|
this.vertex = vertex;
|
||||||
setDescription("Set this block's background color");
|
setDescription("Set this block's background color");
|
||||||
colorIcon = new ColorIcon3D(new GColor("color.bg.functiongraph.paint.icon"), 12, 12) {
|
colorIcon =
|
||||||
|
new ColorIcon3D(new GColor("color.bg.plugin.functiongraph.paint.icon"), 12, 12) {
|
||||||
@Override
|
@Override
|
||||||
public Color getColor() {
|
public Color getColor() {
|
||||||
return controller.getMostRecentColor();
|
return controller.getMostRecentColor();
|
||||||
|
@ -59,7 +60,7 @@ public class SetVertexMostRecentColorAction extends MultiActionDockingAction {
|
||||||
Icon blankIcon = new EmptyIcon(16, 16);
|
Icon blankIcon = new EmptyIcon(16, 16);
|
||||||
|
|
||||||
MultiIcon multiIcon = new MultiIcon(blankIcon);
|
MultiIcon multiIcon = new MultiIcon(blankIcon);
|
||||||
Icon paintBrushImage = new GIcon("icon.functiongraph.action.vertex.choose.color");
|
Icon paintBrushImage = new GIcon("icon.plugin.functiongraph.action.vertex.choose.color");
|
||||||
Icon scaledBrush = ResourceManager.getScaledIcon(paintBrushImage, 16, 16);
|
Icon scaledBrush = ResourceManager.getScaledIcon(paintBrushImage, 16, 16);
|
||||||
|
|
||||||
Point point = getLowerLeftIconOffset(blankIcon, colorIcon);
|
Point point = getLowerLeftIconOffset(blankIcon, colorIcon);
|
||||||
|
@ -100,11 +101,11 @@ public class SetVertexMostRecentColorAction extends MultiActionDockingAction {
|
||||||
colorProvider.setVertexColor(vertex, newColor);
|
colorProvider.setVertexColor(vertex, newColor);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Icon imageIcon = new GIcon("icon.functiongraph.action.vertex.choose.color.palette");
|
Icon imageIcon = new GIcon("icon.plugin.functiongraph.action.vertex.choose.color.palette");
|
||||||
chooseColorAction.setMenuBarData(
|
chooseColorAction
|
||||||
new MenuData(new String[] { "Choose New Color" }, imageIcon));
|
.setMenuBarData(new MenuData(new String[] { "Choose New Color" }, imageIcon));
|
||||||
chooseColorAction.setHelpLocation(
|
chooseColorAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
||||||
|
|
||||||
clearColorAction =
|
clearColorAction =
|
||||||
new DockingAction("Clear Vertex Color", FunctionGraphPlugin.class.getName()) {
|
new DockingAction("Clear Vertex Color", FunctionGraphPlugin.class.getName()) {
|
||||||
|
@ -115,8 +116,8 @@ public class SetVertexMostRecentColorAction extends MultiActionDockingAction {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
clearColorAction.setMenuBarData(new MenuData(new String[] { "Clear Background Color" }));
|
clearColorAction.setMenuBarData(new MenuData(new String[] { "Clear Background Color" }));
|
||||||
clearColorAction.setHelpLocation(
|
clearColorAction
|
||||||
new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
.setHelpLocation(new HelpLocation("FunctionGraphPlugin", "Vertex_Action_Color"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -90,17 +90,17 @@ public class FunctionGraphOptions extends VisualGraphOptions {
|
||||||
private boolean updateGroupColorsAutomatically = true;
|
private boolean updateGroupColorsAutomatically = true;
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
public static final Color DEFAULT_GROUP_BACKGROUND_COLOR = new GColor("color.bg.functiongraph.vertex.group");
|
public static final Color DEFAULT_GROUP_BACKGROUND_COLOR = new GColor("color.bg.plugin.functiongraph.vertex.group");
|
||||||
private GColor defaultVertexBackgroundColor = new GColor("color.bg.functiongraph");
|
private GColor defaultVertexBackgroundColor = new GColor("color.bg.plugin.functiongraph");
|
||||||
private GColor defaultGroupBackgroundColor = new GColor("color.bg.functiongraph.vertex.group");
|
private GColor defaultGroupBackgroundColor = new GColor("color.bg.plugin.functiongraph.vertex.group");
|
||||||
|
|
||||||
private GColor fallthroughEdgeColor = new GColor("color.bg.functiongraph.edge.fall.through");
|
private GColor fallthroughEdgeColor = new GColor("color.bg.plugin.functiongraph.edge.fall.through");
|
||||||
private GColor conditionalJumpEdgeColor = new GColor("color.bg.functiongraph.edge.jump.conditional");
|
private GColor conditionalJumpEdgeColor = new GColor("color.bg.plugin.functiongraph.edge.jump.conditional");
|
||||||
private GColor unconditionalJumpEdgeColor = new GColor("color.bg.functiongraph.edge.jump.unconditional");
|
private GColor unconditionalJumpEdgeColor = new GColor("color.bg.plugin.functiongraph.edge.jump.unconditional");
|
||||||
|
|
||||||
private GColor fallthroughEdgeHighlightColor = new GColor("color.bg.functiongraph.edge.fall.through.highlight");
|
private GColor fallthroughEdgeHighlightColor = new GColor("color.bg.plugin.functiongraph.edge.fall.through.highlight");
|
||||||
private GColor conditionalJumpEdgeHighlightColor = new GColor("color.bg.functiongraph.edge.jump.conditional.highlight");
|
private GColor conditionalJumpEdgeHighlightColor = new GColor("color.bg.plugin.functiongraph.edge.jump.conditional.highlight");
|
||||||
private GColor unconditionalJumpEdgeHighlightColor = new GColor("color.bg.functiongraph.edge.jump.unconditional.highlight");
|
private GColor unconditionalJumpEdgeHighlightColor = new GColor("color.bg.plugin.functiongraph.edge.jump.unconditional.highlight");
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
private boolean useFullSizeTooltip = false;
|
private boolean useFullSizeTooltip = false;
|
||||||
|
@ -174,12 +174,10 @@ public class FunctionGraphOptions extends VisualGraphOptions {
|
||||||
new HelpLocation(OWNER, "Layout_Compressing"), USE_CONDENSED_LAYOUT_DESCRIPTION);
|
new HelpLocation(OWNER, "Layout_Compressing"), USE_CONDENSED_LAYOUT_DESCRIPTION);
|
||||||
|
|
||||||
options.registerThemeColorBinding(DEFAULT_VERTEX_BACKGROUND_COLOR_KEY,
|
options.registerThemeColorBinding(DEFAULT_VERTEX_BACKGROUND_COLOR_KEY,
|
||||||
defaultVertexBackgroundColor.getId(),
|
defaultVertexBackgroundColor.getId(), help, DEFAULT_VERTEX_BACKGROUND_COLOR_DESCRPTION);
|
||||||
help, DEFAULT_VERTEX_BACKGROUND_COLOR_DESCRPTION);
|
|
||||||
|
|
||||||
options.registerThemeColorBinding(DEFAULT_GROUP_BACKGROUND_COLOR_KEY,
|
options.registerThemeColorBinding(DEFAULT_GROUP_BACKGROUND_COLOR_KEY,
|
||||||
defaultGroupBackgroundColor.getId(),
|
defaultGroupBackgroundColor.getId(), help, DEFAULT_GROUP_BACKGROUND_COLOR_DESCRPTION);
|
||||||
help, DEFAULT_GROUP_BACKGROUND_COLOR_DESCRPTION);
|
|
||||||
|
|
||||||
options.registerOption(UPDATE_GROUP_AND_UNGROUP_COLORS, updateGroupColorsAutomatically,
|
options.registerOption(UPDATE_GROUP_AND_UNGROUP_COLORS, updateGroupColorsAutomatically,
|
||||||
help, UPDATE_GROUP_AND_UNGROUP_COLORS_DESCRIPTION);
|
help, UPDATE_GROUP_AND_UNGROUP_COLORS_DESCRIPTION);
|
||||||
|
@ -191,12 +189,10 @@ public class FunctionGraphOptions extends VisualGraphOptions {
|
||||||
conditionalJumpEdgeColor.getId(), help, "Conditional jump edge color");
|
conditionalJumpEdgeColor.getId(), help, "Conditional jump edge color");
|
||||||
|
|
||||||
options.registerThemeColorBinding(EDGE_UNCONDITIONAL_JUMP_COLOR_KEY,
|
options.registerThemeColorBinding(EDGE_UNCONDITIONAL_JUMP_COLOR_KEY,
|
||||||
unconditionalJumpEdgeColor.getId(), help,
|
unconditionalJumpEdgeColor.getId(), help, "Unconditional jump edge color");
|
||||||
"Unconditional jump edge color");
|
|
||||||
|
|
||||||
options.registerThemeColorBinding(EDGE_FALLTHROUGH_COLOR_KEY, fallthroughEdgeColor.getId(),
|
options.registerThemeColorBinding(EDGE_FALLTHROUGH_COLOR_KEY, fallthroughEdgeColor.getId(),
|
||||||
help,
|
help, "Fallthrough edge color");
|
||||||
"Fallthrough edge color");
|
|
||||||
|
|
||||||
options.registerThemeColorBinding(EDGE_CONDITIONAL_JUMP_HIGHLIGHT_COLOR_KEY,
|
options.registerThemeColorBinding(EDGE_CONDITIONAL_JUMP_HIGHLIGHT_COLOR_KEY,
|
||||||
conditionalJumpEdgeHighlightColor.getId(), help,
|
conditionalJumpEdgeHighlightColor.getId(), help,
|
||||||
|
@ -207,8 +203,8 @@ public class FunctionGraphOptions extends VisualGraphOptions {
|
||||||
"Unconditional jump edge color when highlighting the reachablity of a vertex");
|
"Unconditional jump edge color when highlighting the reachablity of a vertex");
|
||||||
|
|
||||||
options.registerThemeColorBinding(EDGE_FALLTHROUGH_HIGHLIGHT_COLOR_KEY,
|
options.registerThemeColorBinding(EDGE_FALLTHROUGH_HIGHLIGHT_COLOR_KEY,
|
||||||
fallthroughEdgeHighlightColor.getId(),
|
fallthroughEdgeHighlightColor.getId(), help,
|
||||||
help, "Fallthrough edge color when highlighting the reachablity of a vertex");
|
"Fallthrough edge color when highlighting the reachablity of a vertex");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[Defaults]
|
[Defaults]
|
||||||
|
|
||||||
|
|
||||||
icon.functiongraph.layout.nested.code = function_graph_code_flow.png
|
icon.plugin.functiongraph.layout.nested.code = function_graph_code_flow.png
|
||||||
|
|
||||||
|
|
||||||
[Dark Defaults]
|
[Dark Defaults]
|
||||||
|
|
|
@ -24,7 +24,7 @@ import ghidra.util.task.TaskMonitor;
|
||||||
|
|
||||||
public class DecompilerNestedLayoutProvider extends FGLayoutProviderExtensionPoint {
|
public class DecompilerNestedLayoutProvider extends FGLayoutProviderExtensionPoint {
|
||||||
|
|
||||||
private static final Icon ICON = new GIcon("icon.functiongraph.layout.nested.code");
|
private static final Icon ICON = new GIcon("icon.plugin.functiongraph.layout.nested.code");
|
||||||
static final String LAYOUT_NAME = "Nested Code Layout";
|
static final String LAYOUT_NAME = "Nested Code Layout";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,29 +1,21 @@
|
||||||
[Defaults]
|
[Defaults]
|
||||||
|
|
||||||
color.bg.fcg.vertex.default = rgb(110, 197, 174) // chill green
|
color.bg.plugin.fcg.vertex.default = rgb(110, 197, 174) // chill green
|
||||||
color.bg.fcg.vertex.toobig = color.palette.lightgray
|
color.bg.plugin.fcg.vertex.toobig = color.palette.lightgray
|
||||||
|
|
||||||
color.bg.fcg.edge.primary.direct = rgb(143, 197, 143) // light pale green
|
color.bg.plugin.fcg.edge.primary.direct = rgb(143, 197, 143) // light pale green
|
||||||
color.bg.fcg.edge.primary.direct.selected = rgb(68, 171, 96) // lighter green
|
color.bg.plugin.fcg.edge.primary.direct.selected = rgb(68, 171, 96) // lighter green
|
||||||
color.bg.fcg.edge.primary.indirect = rgb(233, 233, 233) // lightGray
|
color.bg.plugin.fcg.edge.primary.indirect = rgb(233, 233, 233) // lightGray
|
||||||
color.bg.fcg.edge.primary.indirect.selected = rgb(201, 195, 195)
|
color.bg.plugin.fcg.edge.primary.indirect.selected = rgb(201, 195, 195)
|
||||||
|
|
||||||
// the satellite gets too cluttered, so wash out the edges
|
// the satellite gets too cluttered, so wash out the edges
|
||||||
color.bg.fcg.edge.satellite.direct = rgba(0,0,0,0.1) // 'washed out black'
|
color.bg.plugin.fcg.edge.satellite.direct = rgba(0,0,0,0.1) // 'washed out black'
|
||||||
color.bg.fcg.edge.satellite.indirect = rgba(125, 125, 125, 25) // 'washed out gray'
|
color.bg.plugin.fcg.edge.satellite.indirect = rgba(125, 125, 125, 25) // 'washed out gray'
|
||||||
|
|
||||||
icon.fcg.layout.bow.tie = color_swatch.png
|
icon.plugin.fcg.layout.bow.tie = color_swatch.png
|
||||||
|
|
||||||
|
|
||||||
[Dark Defaults]
|
[Dark Defaults]
|
||||||
|
|
||||||
// TODO dark colors
|
color.bg.plugin.fcg.edge.satellite.direct = rgba(143, 197, 143, 100) // light pale green
|
||||||
// TODO color.bg.fcg.vertex.default = rgb(110, 197, 174) // chill green
|
color.bg.plugin.fcg.edge.satellite.indirect = rgba(233, 233, 233, 100) // lightGray
|
||||||
// TODO color.bg.fcg.vertex.toobig = color.palette.lightGray
|
|
||||||
|
|
||||||
// TODO color.bg.fcg.edge.primary.direct = rgb(143, 197, 143) // lightGreen
|
|
||||||
// TODO color.bg.fcg.edge.primary.indirect = rgb(233, 233, 233) // lightGray
|
|
||||||
|
|
||||||
// the satellite gets too cluttered, so wash out the edges
|
|
||||||
// TODO color.bg.fcg.edge.satellite.direct = rgba(0,0,0,0.1) // 'washed out black'
|
|
||||||
// TODO color.bg.fcg.edge.satellite.indirect = rgba(125, 125, 125, 25) // 'washed out gray'
|
|
|
@ -45,8 +45,8 @@ import resources.ResourceManager;
|
||||||
public class FcgVertex extends AbstractVisualVertex implements VertexShapeProvider {
|
public class FcgVertex extends AbstractVisualVertex implements VertexShapeProvider {
|
||||||
|
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
public static final Color DEFAULT_VERTEX_SHAPE_COLOR = new GColor("color.bg.fcg.vertex.default");
|
public static final Color DEFAULT_VERTEX_SHAPE_COLOR = new GColor("color.bg.plugin.fcg.vertex.default");
|
||||||
private static final Color TOO_BIG_VERTEX_SHAPE_COLOR = new GColor("color.bg.fcg.vertex.toobig");
|
private static final Color TOO_BIG_VERTEX_SHAPE_COLOR = new GColor("color.bg.plugin.fcg.vertex.toobig");
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
public static final Icon NOT_ALLOWED_ICON = Icons.ERROR_ICON;
|
public static final Icon NOT_ALLOWED_ICON = Icons.ERROR_ICON;
|
||||||
|
@ -597,10 +597,7 @@ public class FcgVertex extends AbstractVisualVertex implements VertexShapeProvid
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
return Objects.hash(function);
|
||||||
int result = 1;
|
|
||||||
result = prime * result + ((function == null) ? 0 : function.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class BowTieLayoutProvider
|
||||||
|
|
||||||
public static final String NAME = "Bow Tie Layout";
|
public static final String NAME = "Bow Tie Layout";
|
||||||
|
|
||||||
private static final Icon DEFAULT_ICON = new GIcon("icon.fcg.layout.bow.tie");
|
private static final Icon DEFAULT_ICON = new GIcon("icon.plugin.fcg.layout.bow.tie");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VisualGraphLayout<FcgVertex, FcgEdge> getLayout(FunctionCallGraph graph,
|
public VisualGraphLayout<FcgVertex, FcgEdge> getLayout(FunctionCallGraph graph,
|
||||||
|
|
|
@ -39,14 +39,14 @@ public class FcgComponent extends GraphComponent<FcgVertex, FcgEdge, FunctionCal
|
||||||
new FcgVertexPaintTransformer(FcgVertex.DEFAULT_VERTEX_SHAPE_COLOR);
|
new FcgVertexPaintTransformer(FcgVertex.DEFAULT_VERTEX_SHAPE_COLOR);
|
||||||
|
|
||||||
private FcgEdgePaintTransformer edgePaintTransformer =
|
private FcgEdgePaintTransformer edgePaintTransformer =
|
||||||
new FcgEdgePaintTransformer(new GColor("color.bg.fcg.edge.primary.direct"),
|
new FcgEdgePaintTransformer(new GColor("color.bg.plugin.fcg.edge.primary.direct"),
|
||||||
new GColor("color.bg.fcg.edge.primary.indirect"));
|
new GColor("color.bg.plugin.fcg.edge.primary.indirect"));
|
||||||
private FcgEdgePaintTransformer selectedEdgePaintTransformer =
|
private FcgEdgePaintTransformer selectedEdgePaintTransformer =
|
||||||
new FcgEdgePaintTransformer(new GColor("color.bg.fcg.edge.primary.direct.selected"),
|
new FcgEdgePaintTransformer(new GColor("color.bg.plugin.fcg.edge.primary.direct.selected"),
|
||||||
new GColor("color.bg.fcg.edge.primary.indirect.selected"));
|
new GColor("color.bg.plugin.fcg.edge.primary.indirect.selected"));
|
||||||
private FcgEdgePaintTransformer satelliteEdgePaintTransformer =
|
private FcgEdgePaintTransformer satelliteEdgePaintTransformer =
|
||||||
new FcgEdgePaintTransformer(new GColor("color.bg.fcg.edge.satellite.direct"),
|
new FcgEdgePaintTransformer(new GColor("color.bg.plugin.fcg.edge.satellite.direct"),
|
||||||
new GColor("color.bg.fcg.edge.satellite.indirect"));
|
new GColor("color.bg.plugin.fcg.edge.satellite.indirect"));
|
||||||
|
|
||||||
FcgComponent(FunctionCallGraph g) {
|
FcgComponent(FunctionCallGraph g) {
|
||||||
setGraph(g);
|
setGraph(g);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue