mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 07:48:16 +08:00
GP-1981 Moved Most Theming classes from Docking to Generic module
This commit is contained in:
@@ -18,7 +18,7 @@ package ghidra;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.framework.options.Options;
|
import ghidra.framework.options.Options;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -26,11 +26,11 @@ import javax.swing.event.ChangeEvent;
|
|||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
|
|
||||||
import docking.action.DockingAction;
|
import docking.action.DockingAction;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.fieldpanel.*;
|
import docking.widgets.fieldpanel.*;
|
||||||
import docking.widgets.fieldpanel.field.Field;
|
import docking.widgets.fieldpanel.field.Field;
|
||||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||||
import docking.widgets.fieldpanel.support.FieldSelection;
|
import docking.widgets.fieldpanel.support.FieldSelection;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.GhidraOptions;
|
import ghidra.GhidraOptions;
|
||||||
import ghidra.app.events.ProgramHighlightPluginEvent;
|
import ghidra.app.events.ProgramHighlightPluginEvent;
|
||||||
import ghidra.app.events.ProgramSelectionPluginEvent;
|
import ghidra.app.events.ProgramSelectionPluginEvent;
|
||||||
|
|||||||
+1
-1
@@ -26,10 +26,10 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.fieldpanel.field.FieldElement;
|
import docking.widgets.fieldpanel.field.FieldElement;
|
||||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||||
import docking.widgets.fieldpanel.support.Highlight;
|
import docking.widgets.fieldpanel.support.Highlight;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.GhidraOptions;
|
import ghidra.GhidraOptions;
|
||||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||||
import ghidra.app.plugin.processors.generic.PcodeFieldFactory;
|
import ghidra.app.plugin.processors.generic.PcodeFieldFactory;
|
||||||
|
|||||||
+1
-1
@@ -18,8 +18,8 @@ package ghidra.app.plugin.core.codebrowser;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.app.services.MarkerService;
|
import ghidra.app.services.MarkerService;
|
||||||
import ghidra.app.util.viewer.listingpanel.ListingBackgroundColorModel;
|
import ghidra.app.util.viewer.listingpanel.ListingBackgroundColorModel;
|
||||||
import ghidra.app.util.viewer.listingpanel.ListingPanel;
|
import ghidra.app.util.viewer.listingpanel.ListingPanel;
|
||||||
|
|||||||
+2
-2
@@ -19,8 +19,8 @@ import java.awt.*;
|
|||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
|
|
||||||
class BackgroundIcon implements Icon {
|
class BackgroundIcon implements Icon {
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ import javax.swing.text.*;
|
|||||||
|
|
||||||
import docking.DockingUtils;
|
import docking.DockingUtils;
|
||||||
import docking.actions.KeyBindingUtils;
|
import docking.actions.KeyBindingUtils;
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import generic.util.WindowUtilities;
|
import generic.util.WindowUtilities;
|
||||||
import ghidra.app.plugin.core.console.CodeCompletion;
|
import ghidra.app.plugin.core.console.CodeCompletion;
|
||||||
import ghidra.framework.options.OptionsChangeListener;
|
import ghidra.framework.options.OptionsChangeListener;
|
||||||
|
|||||||
+1
-1
@@ -26,12 +26,12 @@ import javax.swing.*;
|
|||||||
import javax.swing.event.TableModelEvent;
|
import javax.swing.event.TableModelEvent;
|
||||||
|
|
||||||
import docking.action.builder.ActionBuilder;
|
import docking.action.builder.ActionBuilder;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.filechooser.GhidraFileChooser;
|
import docking.widgets.filechooser.GhidraFileChooser;
|
||||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||||
import docking.widgets.table.GTable;
|
import docking.widgets.table.GTable;
|
||||||
import docking.widgets.table.GTableFilterPanel;
|
import docking.widgets.table.GTableFilterPanel;
|
||||||
import generic.jar.ResourceFile;
|
import generic.jar.ResourceFile;
|
||||||
|
import generic.theme.GColor;
|
||||||
import generic.util.Path;
|
import generic.util.Path;
|
||||||
import ghidra.app.services.ConsoleService;
|
import ghidra.app.services.ConsoleService;
|
||||||
import ghidra.framework.plugintool.ComponentProviderAdapter;
|
import ghidra.framework.plugintool.ComponentProviderAdapter;
|
||||||
|
|||||||
+1
-1
@@ -27,9 +27,9 @@ import javax.swing.event.TableModelEvent;
|
|||||||
|
|
||||||
import org.osgi.framework.Bundle;
|
import org.osgi.framework.Bundle;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.table.*;
|
import docking.widgets.table.*;
|
||||||
import generic.jar.ResourceFile;
|
import generic.jar.ResourceFile;
|
||||||
|
import generic.theme.GColor;
|
||||||
import generic.util.Path;
|
import generic.util.Path;
|
||||||
import ghidra.docking.settings.Settings;
|
import ghidra.docking.settings.Settings;
|
||||||
import ghidra.framework.plugintool.ServiceProvider;
|
import ghidra.framework.plugintool.ServiceProvider;
|
||||||
|
|||||||
+1
-1
@@ -22,8 +22,8 @@ import java.util.*;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.tree.DefaultTreeCellRenderer;
|
import javax.swing.tree.DefaultTreeCellRenderer;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.GComponent;
|
import docking.widgets.GComponent;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.program.model.listing.Group;
|
import ghidra.program.model.listing.Group;
|
||||||
import resources.ResourceManager;
|
import resources.ResourceManager;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -22,9 +22,9 @@ import javax.swing.*;
|
|||||||
|
|
||||||
import docking.*;
|
import docking.*;
|
||||||
import docking.widgets.label.GLabel;
|
import docking.widgets.label.GLabel;
|
||||||
|
import generic.util.action.ReservedKeyBindings;
|
||||||
import ghidra.framework.plugintool.Plugin;
|
import ghidra.framework.plugintool.Plugin;
|
||||||
import ghidra.util.HelpLocation;
|
import ghidra.util.HelpLocation;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
|
||||||
|
|
||||||
class KeyBindingInputDialog extends DialogComponentProvider implements KeyEntryListener {
|
class KeyBindingInputDialog extends DialogComponentProvider implements KeyEntryListener {
|
||||||
private KeyEntryTextField kbField;
|
private KeyEntryTextField kbField;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package ghidra.app.util;
|
|||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Miscellaneous defined constants
|
* Miscellaneous defined constants
|
||||||
|
|||||||
+1
-1
@@ -20,8 +20,8 @@ import java.math.BigInteger;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.app.util.viewer.util.AddressIndexMap;
|
import ghidra.app.util.viewer.util.AddressIndexMap;
|
||||||
import ghidra.framework.model.DomainObjectChangedEvent;
|
import ghidra.framework.model.DomainObjectChangedEvent;
|
||||||
import ghidra.framework.model.DomainObjectListener;
|
import ghidra.framework.model.DomainObjectListener;
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import java.util.stream.IntStream;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.checkbox.GCheckBox;
|
import docking.widgets.checkbox.GCheckBox;
|
||||||
import docking.widgets.combobox.GComboBox;
|
import docking.widgets.combobox.GComboBox;
|
||||||
import docking.widgets.fieldpanel.*;
|
import docking.widgets.fieldpanel.*;
|
||||||
@@ -36,6 +35,7 @@ import docking.widgets.fieldpanel.listener.LayoutModelListener;
|
|||||||
import docking.widgets.fieldpanel.support.*;
|
import docking.widgets.fieldpanel.support.*;
|
||||||
import docking.widgets.indexedscrollpane.IndexedScrollPane;
|
import docking.widgets.indexedscrollpane.IndexedScrollPane;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.GhidraOptions;
|
import ghidra.GhidraOptions;
|
||||||
import ghidra.util.SystemUtilities;
|
import ghidra.util.SystemUtilities;
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import javax.help.HelpSetException;
|
|||||||
|
|
||||||
import docking.help.*;
|
import docking.help.*;
|
||||||
import generic.jar.ResourceFile;
|
import generic.jar.ResourceFile;
|
||||||
|
import generic.theme.Gui;
|
||||||
|
import generic.theme.ThemeListener;
|
||||||
import ghidra.framework.Application;
|
import ghidra.framework.Application;
|
||||||
import ghidra.util.Msg;
|
import ghidra.util.Msg;
|
||||||
import help.HelpService;
|
import help.HelpService;
|
||||||
@@ -36,6 +38,7 @@ import resources.ResourceManager;
|
|||||||
public class GhidraHelpService extends HelpManager {
|
public class GhidraHelpService extends HelpManager {
|
||||||
|
|
||||||
private static final String MASTER_HELP_SET_HS = "Base_HelpSet.hs";
|
private static final String MASTER_HELP_SET_HS = "Base_HelpSet.hs";
|
||||||
|
private ThemeListener listener = t -> reload();
|
||||||
|
|
||||||
public static void install() {
|
public static void install() {
|
||||||
try {
|
try {
|
||||||
@@ -50,6 +53,7 @@ public class GhidraHelpService extends HelpManager {
|
|||||||
super(findMasterHelpSetUrl());
|
super(findMasterHelpSetUrl());
|
||||||
loadHelpSets();
|
loadHelpSets();
|
||||||
registerHelp();
|
registerHelp();
|
||||||
|
Gui.addThemeListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static URL findMasterHelpSetUrl() {
|
private static URL findMasterHelpSetUrl() {
|
||||||
|
|||||||
+5
-3
@@ -19,8 +19,9 @@ import docking.DockingErrorDisplay;
|
|||||||
import docking.DockingWindowManager;
|
import docking.DockingWindowManager;
|
||||||
import docking.framework.ApplicationInformationDisplayFactory;
|
import docking.framework.ApplicationInformationDisplayFactory;
|
||||||
import docking.framework.SplashScreen;
|
import docking.framework.SplashScreen;
|
||||||
import docking.theme.Gui;
|
|
||||||
import docking.widgets.PopupKeyStorePasswordProvider;
|
import docking.widgets.PopupKeyStorePasswordProvider;
|
||||||
|
import generic.theme.Gui;
|
||||||
|
import ghidra.docking.util.LookAndFeelUtils;
|
||||||
import ghidra.formats.gfilesystem.crypto.CryptoProviders;
|
import ghidra.formats.gfilesystem.crypto.CryptoProviders;
|
||||||
import ghidra.formats.gfilesystem.crypto.PopupGUIPasswordProvider;
|
import ghidra.formats.gfilesystem.crypto.PopupGUIPasswordProvider;
|
||||||
import ghidra.framework.main.GhidraApplicationInformationDisplayFactory;
|
import ghidra.framework.main.GhidraApplicationInformationDisplayFactory;
|
||||||
@@ -43,6 +44,7 @@ public class GhidraApplicationConfiguration extends HeadlessGhidraApplicationCon
|
|||||||
@Override
|
@Override
|
||||||
protected void initializeApplication() {
|
protected void initializeApplication() {
|
||||||
Gui.initialize();
|
Gui.initialize();
|
||||||
|
LookAndFeelUtils.platformSpecificFixups();
|
||||||
|
|
||||||
if (showSplashScreen) {
|
if (showSplashScreen) {
|
||||||
showUserAgreement();
|
showUserAgreement();
|
||||||
@@ -51,8 +53,8 @@ public class GhidraApplicationConfiguration extends HeadlessGhidraApplicationCon
|
|||||||
|
|
||||||
super.initializeApplication();
|
super.initializeApplication();
|
||||||
|
|
||||||
ApplicationKeyManagerFactory.setKeyStorePasswordProvider(
|
ApplicationKeyManagerFactory
|
||||||
new PopupKeyStorePasswordProvider());
|
.setKeyStorePasswordProvider(new PopupKeyStorePasswordProvider());
|
||||||
CryptoProviders.getInstance().registerCryptoProvider(new PopupGUIPasswordProvider());
|
CryptoProviders.getInstance().registerCryptoProvider(new PopupGUIPasswordProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.LinkedList;
|
|||||||
import javax.swing.JTextPane;
|
import javax.swing.JTextPane;
|
||||||
import javax.swing.text.*;
|
import javax.swing.text.*;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.framework.options.*;
|
import ghidra.framework.options.*;
|
||||||
import ghidra.framework.plugintool.PluginTool;
|
import ghidra.framework.plugintool.PluginTool;
|
||||||
import ghidra.util.Msg;
|
import ghidra.util.Msg;
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ import javax.swing.event.HyperlinkEvent;
|
|||||||
import javax.swing.text.View;
|
import javax.swing.text.View;
|
||||||
|
|
||||||
import docking.DockingUtils;
|
import docking.DockingUtils;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.*;
|
import docking.widgets.*;
|
||||||
import docking.widgets.label.*;
|
import docking.widgets.label.*;
|
||||||
|
import generic.theme.GColor;
|
||||||
import generic.util.WindowUtilities;
|
import generic.util.WindowUtilities;
|
||||||
import ghidra.framework.Application;
|
import ghidra.framework.Application;
|
||||||
import ghidra.framework.ApplicationProperties;
|
import ghidra.framework.ApplicationProperties;
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import java.awt.Font;
|
|||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.table.TableModel;
|
import javax.swing.table.TableModel;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.table.GTableCellRenderer;
|
import docking.widgets.table.GTableCellRenderer;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.program.model.address.Address;
|
import ghidra.program.model.address.Address;
|
||||||
import ghidra.program.model.listing.Program;
|
import ghidra.program.model.listing.Program;
|
||||||
import ghidra.program.model.mem.Memory;
|
import ghidra.program.model.mem.Memory;
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ import java.util.List;
|
|||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
import docking.action.ToggleDockingAction;
|
import docking.action.ToggleDockingAction;
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.GhidraOptions;
|
import ghidra.GhidraOptions;
|
||||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||||
import ghidra.app.plugin.core.format.*;
|
import ghidra.app.plugin.core.format.*;
|
||||||
|
|||||||
+2
-2
@@ -23,7 +23,7 @@ import java.util.List;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.event.*;
|
import javax.swing.event.*;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import docking.help.HelpService;
|
||||||
import docking.widgets.fieldpanel.*;
|
import docking.widgets.fieldpanel.*;
|
||||||
import docking.widgets.fieldpanel.field.EmptyTextField;
|
import docking.widgets.fieldpanel.field.EmptyTextField;
|
||||||
import docking.widgets.fieldpanel.field.Field;
|
import docking.widgets.fieldpanel.field.Field;
|
||||||
@@ -32,6 +32,7 @@ import docking.widgets.fieldpanel.support.*;
|
|||||||
import docking.widgets.indexedscrollpane.*;
|
import docking.widgets.indexedscrollpane.*;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
import docking.widgets.label.GLabel;
|
import docking.widgets.label.GLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.app.plugin.core.format.*;
|
import ghidra.app.plugin.core.format.*;
|
||||||
import ghidra.app.util.viewer.listingpanel.AddressSetDisplayListener;
|
import ghidra.app.util.viewer.listingpanel.AddressSetDisplayListener;
|
||||||
import ghidra.program.model.address.AddressSet;
|
import ghidra.program.model.address.AddressSet;
|
||||||
@@ -42,7 +43,6 @@ import ghidra.util.exception.InvalidInputException;
|
|||||||
import ghidra.util.layout.HorizontalLayout;
|
import ghidra.util.layout.HorizontalLayout;
|
||||||
import ghidra.util.layout.PairLayout;
|
import ghidra.util.layout.PairLayout;
|
||||||
import help.Help;
|
import help.Help;
|
||||||
import help.HelpService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Top level component that contains has a scrolled pane for the panel of components that show the
|
* Top level component that contains has a scrolled pane for the panel of components that show the
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import java.awt.Font;
|
|||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
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.framework.options.Options;
|
import ghidra.framework.options.Options;
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import org.jdom.Element;
|
|||||||
import docking.ComponentPlaceholder;
|
import docking.ComponentPlaceholder;
|
||||||
import docking.DockingWindowManager;
|
import docking.DockingWindowManager;
|
||||||
import docking.options.editor.GhidraColorChooser;
|
import docking.options.editor.GhidraColorChooser;
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.vertex.FGVertex;
|
import ghidra.app.plugin.core.functiongraph.graph.vertex.FGVertex;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FunctionGraphVertexAttributes;
|
import ghidra.app.plugin.core.functiongraph.mvc.FunctionGraphVertexAttributes;
|
||||||
import ghidra.framework.options.SaveState;
|
import ghidra.framework.options.SaveState;
|
||||||
|
|||||||
+1
-1
@@ -21,12 +21,12 @@ import java.util.Map.Entry;
|
|||||||
|
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import edu.uci.ics.jung.algorithms.layout.Layout;
|
import edu.uci.ics.jung.algorithms.layout.Layout;
|
||||||
import edu.uci.ics.jung.visualization.RenderContext;
|
import edu.uci.ics.jung.visualization.RenderContext;
|
||||||
import edu.uci.ics.jung.visualization.picking.PickedState;
|
import edu.uci.ics.jung.visualization.picking.PickedState;
|
||||||
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
||||||
import edu.uci.ics.jung.visualization.util.Caching;
|
import edu.uci.ics.jung.visualization.util.Caching;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.jung.renderer.FGVertexRenderer;
|
import ghidra.app.plugin.core.functiongraph.graph.jung.renderer.FGVertexRenderer;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.jung.transformer.FGVertexPickableBackgroundPaintTransformer;
|
import ghidra.app.plugin.core.functiongraph.graph.jung.transformer.FGVertexPickableBackgroundPaintTransformer;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayout;
|
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayout;
|
||||||
|
|||||||
+1
-1
@@ -21,8 +21,8 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
|
||||||
import docking.theme.Gui;
|
|
||||||
import edu.uci.ics.jung.visualization.picking.PickedInfo;
|
import edu.uci.ics.jung.visualization.picking.PickedInfo;
|
||||||
|
import generic.theme.Gui;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGVertexType;
|
import ghidra.app.plugin.core.functiongraph.graph.FGVertexType;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.vertex.FGVertex;
|
import ghidra.app.plugin.core.functiongraph.graph.vertex.FGVertex;
|
||||||
import ghidra.program.util.ProgramSelection;
|
import ghidra.program.util.ProgramSelection;
|
||||||
|
|||||||
+1
-1
@@ -21,8 +21,8 @@ import java.awt.geom.Point2D;
|
|||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
import docking.theme.GThemeDefaults.Colors;
|
|
||||||
import edu.uci.ics.jung.visualization.VisualizationViewer;
|
import edu.uci.ics.jung.visualization.VisualizationViewer;
|
||||||
|
import generic.theme.GThemeDefaults.Colors;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FGView;
|
import ghidra.app.plugin.core.functiongraph.mvc.FGView;
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ import java.awt.event.MouseEvent;
|
|||||||
|
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
import docking.theme.GThemeDefaults.Colors;
|
import generic.theme.GThemeDefaults.Colors;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGVertexType;
|
import ghidra.app.plugin.core.functiongraph.graph.FGVertexType;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ import docking.ActionContext;
|
|||||||
import docking.GenericHeader;
|
import docking.GenericHeader;
|
||||||
import docking.action.DockingAction;
|
import docking.action.DockingAction;
|
||||||
import docking.action.ToolBarData;
|
import docking.action.ToolBarData;
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||||
|
|||||||
+2
-2
@@ -32,13 +32,13 @@ import docking.ActionContext;
|
|||||||
import docking.GenericHeader;
|
import docking.GenericHeader;
|
||||||
import docking.action.DockingAction;
|
import docking.action.DockingAction;
|
||||||
import docking.action.ToolBarData;
|
import docking.action.ToolBarData;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.theme.GThemeDefaults.Colors;
|
|
||||||
import docking.widgets.fieldpanel.FieldPanel;
|
import docking.widgets.fieldpanel.FieldPanel;
|
||||||
import docking.widgets.fieldpanel.Layout;
|
import docking.widgets.fieldpanel.Layout;
|
||||||
import docking.widgets.fieldpanel.field.Field;
|
import docking.widgets.fieldpanel.field.Field;
|
||||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
|
import generic.theme.GThemeDefaults.Colors;
|
||||||
import ghidra.app.plugin.core.codebrowser.hover.ListingHoverService;
|
import ghidra.app.plugin.core.codebrowser.hover.ListingHoverService;
|
||||||
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ import docking.ActionContext;
|
|||||||
import docking.action.*;
|
import docking.action.*;
|
||||||
import docking.menu.MultiActionDockingAction;
|
import docking.menu.MultiActionDockingAction;
|
||||||
import docking.menu.MultipleActionDockingToolbarButton;
|
import docking.menu.MultipleActionDockingToolbarButton;
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import ghidra.app.plugin.core.functiongraph.FGColorProvider;
|
import ghidra.app.plugin.core.functiongraph.FGColorProvider;
|
||||||
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
||||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||||
|
|||||||
+2
-2
@@ -19,8 +19,8 @@ import java.awt.Color;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
import generic.theme.GColor;
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayoutOptions;
|
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayoutOptions;
|
||||||
import ghidra.framework.options.Options;
|
import ghidra.framework.options.Options;
|
||||||
|
|||||||
+1
-1
@@ -26,8 +26,8 @@ import org.junit.*;
|
|||||||
|
|
||||||
import docking.ActionContext;
|
import docking.ActionContext;
|
||||||
import docking.action.DockingActionIf;
|
import docking.action.DockingActionIf;
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
|
||||||
import edu.uci.ics.jung.graph.Graph;
|
import edu.uci.ics.jung.graph.Graph;
|
||||||
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
import ghidra.app.plugin.core.clear.ClearPlugin;
|
import ghidra.app.plugin.core.clear.ClearPlugin;
|
||||||
import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin;
|
import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin;
|
||||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||||
|
|||||||
+1
-1
@@ -32,12 +32,12 @@ import docking.ActionContext;
|
|||||||
import docking.ComponentProvider;
|
import docking.ComponentProvider;
|
||||||
import docking.action.DockingAction;
|
import docking.action.DockingAction;
|
||||||
import docking.dnd.GClipboard;
|
import docking.dnd.GClipboard;
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
|
||||||
import edu.uci.ics.jung.algorithms.layout.Layout;
|
import edu.uci.ics.jung.algorithms.layout.Layout;
|
||||||
import edu.uci.ics.jung.visualization.VisualizationModel;
|
import edu.uci.ics.jung.visualization.VisualizationModel;
|
||||||
import edu.uci.ics.jung.visualization.VisualizationViewer;
|
import edu.uci.ics.jung.visualization.VisualizationViewer;
|
||||||
import edu.uci.ics.jung.visualization.util.Caching;
|
import edu.uci.ics.jung.visualization.util.Caching;
|
||||||
import generic.test.TestUtils;
|
import generic.test.TestUtils;
|
||||||
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
import ghidra.app.cmd.label.AddLabelCmd;
|
import ghidra.app.cmd.label.AddLabelCmd;
|
||||||
import ghidra.app.events.ProgramSelectionPluginEvent;
|
import ghidra.app.events.ProgramSelectionPluginEvent;
|
||||||
import ghidra.app.nav.LocationMemento;
|
import ghidra.app.nav.LocationMemento;
|
||||||
|
|||||||
+1
-1
@@ -27,9 +27,9 @@ import javax.swing.JComponent;
|
|||||||
import org.junit.*;
|
import org.junit.*;
|
||||||
|
|
||||||
import docking.action.DockingActionIf;
|
import docking.action.DockingActionIf;
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
|
||||||
import edu.uci.ics.jung.graph.Graph;
|
import edu.uci.ics.jung.graph.Graph;
|
||||||
import generic.test.TestUtils;
|
import generic.test.TestUtils;
|
||||||
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
import ghidra.app.cmd.label.AddLabelCmd;
|
import ghidra.app.cmd.label.AddLabelCmd;
|
||||||
import ghidra.app.cmd.label.DeleteLabelCmd;
|
import ghidra.app.cmd.label.DeleteLabelCmd;
|
||||||
import ghidra.app.cmd.refs.AddMemRefCmd;
|
import ghidra.app.cmd.refs.AddMemRefCmd;
|
||||||
|
|||||||
+1
-1
@@ -23,8 +23,8 @@ import java.util.List;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
import docking.DialogComponentProvider;
|
import docking.DialogComponentProvider;
|
||||||
import docking.theme.GThemeDefaults;
|
|
||||||
import docking.widgets.checkbox.GCheckBox;
|
import docking.widgets.checkbox.GCheckBox;
|
||||||
|
import generic.theme.GThemeDefaults;
|
||||||
import ghidra.feature.fid.db.FidFile;
|
import ghidra.feature.fid.db.FidFile;
|
||||||
import ghidra.util.HelpLocation;
|
import ghidra.util.HelpLocation;
|
||||||
import ghidra.util.layout.VerticalLayout;
|
import ghidra.util.layout.VerticalLayout;
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ import javax.swing.*;
|
|||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import javax.swing.border.LineBorder;
|
import javax.swing.border.LineBorder;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
|
||||||
import docking.theme.Gui;
|
|
||||||
import docking.widgets.EmptyBorderButton;
|
import docking.widgets.EmptyBorderButton;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
|
import generic.theme.Gui;
|
||||||
|
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||||
import ghidra.graph.viewer.vertex.AbstractVisualVertex;
|
import ghidra.graph.viewer.vertex.AbstractVisualVertex;
|
||||||
import ghidra.graph.viewer.vertex.VertexShapeProvider;
|
import ghidra.graph.viewer.vertex.VertexShapeProvider;
|
||||||
import ghidra.program.model.address.Address;
|
import ghidra.program.model.address.Address;
|
||||||
|
|||||||
+1
-1
@@ -15,12 +15,12 @@
|
|||||||
*/
|
*/
|
||||||
package functioncalls.graph.view;
|
package functioncalls.graph.view;
|
||||||
|
|
||||||
import docking.theme.GColor;
|
|
||||||
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
||||||
import functioncalls.graph.*;
|
import functioncalls.graph.*;
|
||||||
import functioncalls.graph.renderer.FcgEdgePaintTransformer;
|
import functioncalls.graph.renderer.FcgEdgePaintTransformer;
|
||||||
import functioncalls.graph.renderer.FcgVertexPaintTransformer;
|
import functioncalls.graph.renderer.FcgVertexPaintTransformer;
|
||||||
import functioncalls.plugin.FunctionCallGraphPlugin;
|
import functioncalls.plugin.FunctionCallGraphPlugin;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.graph.viewer.*;
|
import ghidra.graph.viewer.*;
|
||||||
import ghidra.graph.viewer.edge.VisualEdgeRenderer;
|
import ghidra.graph.viewer.edge.VisualEdgeRenderer;
|
||||||
import ghidra.graph.viewer.layout.VisualGraphLayout;
|
import ghidra.graph.viewer.layout.VisualGraphLayout;
|
||||||
|
|||||||
+1
-1
@@ -50,9 +50,9 @@ import docking.action.builder.*;
|
|||||||
import docking.menu.ActionState;
|
import docking.menu.ActionState;
|
||||||
import docking.menu.MultiStateDockingAction;
|
import docking.menu.MultiStateDockingAction;
|
||||||
import docking.options.editor.OptionsDialog;
|
import docking.options.editor.OptionsDialog;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.EventTrigger;
|
import docking.widgets.EventTrigger;
|
||||||
import docking.widgets.OptionDialog;
|
import docking.widgets.OptionDialog;
|
||||||
|
import generic.theme.GColor;
|
||||||
import generic.util.WindowUtilities;
|
import generic.util.WindowUtilities;
|
||||||
import ghidra.framework.options.Options;
|
import ghidra.framework.options.Options;
|
||||||
import ghidra.framework.options.ToolOptions;
|
import ghidra.framework.options.ToolOptions;
|
||||||
|
|||||||
+2
-2
@@ -26,13 +26,14 @@ import javax.swing.text.*;
|
|||||||
import javax.swing.tree.TreeSelectionModel;
|
import javax.swing.tree.TreeSelectionModel;
|
||||||
|
|
||||||
import docking.DockingUtils;
|
import docking.DockingUtils;
|
||||||
import docking.theme.GColor;
|
import docking.help.HelpService;
|
||||||
import docking.widgets.EventTrigger;
|
import docking.widgets.EventTrigger;
|
||||||
import docking.widgets.OptionDialog;
|
import docking.widgets.OptionDialog;
|
||||||
import docking.widgets.fieldpanel.FieldPanel;
|
import docking.widgets.fieldpanel.FieldPanel;
|
||||||
import docking.widgets.fieldpanel.field.Field;
|
import docking.widgets.fieldpanel.field.Field;
|
||||||
import docking.widgets.fieldpanel.listener.FieldMouseListener;
|
import docking.widgets.fieldpanel.listener.FieldMouseListener;
|
||||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||||
|
import generic.theme.GColor;
|
||||||
import ghidra.GhidraOptions;
|
import ghidra.GhidraOptions;
|
||||||
import ghidra.app.CorePluginPackage;
|
import ghidra.app.CorePluginPackage;
|
||||||
import ghidra.app.events.*;
|
import ghidra.app.events.*;
|
||||||
@@ -62,7 +63,6 @@ import ghidra.util.exception.CancelledException;
|
|||||||
import ghidra.util.exception.VersionException;
|
import ghidra.util.exception.VersionException;
|
||||||
import ghidra.util.task.*;
|
import ghidra.util.task.*;
|
||||||
import help.Help;
|
import help.Help;
|
||||||
import help.HelpService;
|
|
||||||
import resources.ResourceManager;
|
import resources.ResourceManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import docking.widgets.list.GList;
|
|||||||
import docking.widgets.list.GListCellRenderer;
|
import docking.widgets.list.GListCellRenderer;
|
||||||
import docking.widgets.table.GTableCellRenderer;
|
import docking.widgets.table.GTableCellRenderer;
|
||||||
import docking.widgets.tree.support.GTreeRenderer;
|
import docking.widgets.tree.support.GTreeRenderer;
|
||||||
import ghidra.docking.util.LookAndFeelUtils;
|
import generic.theme.Gui;
|
||||||
import ghidra.util.HTMLUtilities;
|
import ghidra.util.HTMLUtilities;
|
||||||
import resources.ResourceManager;
|
import resources.ResourceManager;
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ public class DockingUtils {
|
|||||||
public static JSeparator createToolbarSeparator() {
|
public static JSeparator createToolbarSeparator() {
|
||||||
Dimension sepDim = new Dimension(2, ICON_SIZE + 2);
|
Dimension sepDim = new Dimension(2, ICON_SIZE + 2);
|
||||||
JSeparator separator = new JSeparator(SwingConstants.VERTICAL);
|
JSeparator separator = new JSeparator(SwingConstants.VERTICAL);
|
||||||
if (LookAndFeelUtils.isUsingAquaUI(separator.getUI())) {
|
if (Gui.isUsingAquaUI(separator.getUI())) {
|
||||||
separator.setUI(new BasicSeparatorUI());
|
separator.setUI(new BasicSeparatorUI());
|
||||||
}
|
}
|
||||||
separator.setPreferredSize(sepDim); // ugly work around to force height of separator
|
separator.setPreferredSize(sepDim); // ugly work around to force height of separator
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ import org.jdesktop.animation.timing.TimingTargetAdapter;
|
|||||||
import org.jdesktop.animation.timing.interpolation.PropertySetter;
|
import org.jdesktop.animation.timing.interpolation.PropertySetter;
|
||||||
|
|
||||||
import docking.action.DockingActionIf;
|
import docking.action.DockingActionIf;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.util.AnimationUtils;
|
import docking.util.AnimationUtils;
|
||||||
import docking.widgets.VariableHeightPanel;
|
import docking.widgets.VariableHeightPanel;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
|
|
||||||
// TODO: should this be put into generic?
|
// TODO: should this be put into generic?
|
||||||
public class GenericHeader extends JPanel {
|
public class GenericHeader extends JPanel {
|
||||||
|
|||||||
+1
-1
@@ -29,8 +29,8 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
|
|
||||||
import docking.ActionContext;
|
import docking.ActionContext;
|
||||||
import docking.DockingWindowManager;
|
import docking.DockingWindowManager;
|
||||||
|
import generic.util.action.ReservedKeyBindings;
|
||||||
import ghidra.util.Msg;
|
import ghidra.util.Msg;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
|
||||||
|
|
||||||
public class ComponentThemeInspectorAction extends DockingAction {
|
public class ComponentThemeInspectorAction extends DockingAction {
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import javax.swing.Action;
|
|||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import docking.*;
|
import docking.*;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
import generic.util.action.ReservedKeyBindings;
|
||||||
import ghidra.util.exception.AssertException;
|
import ghidra.util.exception.AssertException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
|
|||||||
|
|
||||||
import docking.ActionContext;
|
import docking.ActionContext;
|
||||||
import docking.DockingWindowManager;
|
import docking.DockingWindowManager;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
import generic.util.action.ReservedKeyBindings;
|
||||||
|
|
||||||
public class ShowFocusCycleAction extends DockingAction {
|
public class ShowFocusCycleAction extends DockingAction {
|
||||||
static final Logger log = LogManager.getLogger(ShowFocusCycleAction.class);
|
static final Logger log = LogManager.getLogger(ShowFocusCycleAction.class);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import docking.*;
|
import docking.*;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
import generic.util.action.ReservedKeyBindings;
|
||||||
|
|
||||||
public class ShowFocusInfoAction extends DockingAction {
|
public class ShowFocusInfoAction extends DockingAction {
|
||||||
static final Logger log = LogManager.getLogger(ShowFocusInfoAction.class);
|
static final Logger log = LogManager.getLogger(ShowFocusInfoAction.class);
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ import docking.KeyEntryTextField;
|
|||||||
import docking.action.*;
|
import docking.action.*;
|
||||||
import docking.tool.ToolConstants;
|
import docking.tool.ToolConstants;
|
||||||
import docking.widgets.label.GIconLabel;
|
import docking.widgets.label.GIconLabel;
|
||||||
|
import generic.util.action.ReservedKeyBindings;
|
||||||
import ghidra.util.HelpLocation;
|
import ghidra.util.HelpLocation;
|
||||||
import ghidra.util.ReservedKeyBindings;
|
|
||||||
import resources.ResourceManager;
|
import resources.ResourceManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.apache.commons.collections4.map.LazyMap;
|
|||||||
import docking.*;
|
import docking.*;
|
||||||
import docking.action.*;
|
import docking.action.*;
|
||||||
import docking.tool.util.DockingToolConstants;
|
import docking.tool.util.DockingToolConstants;
|
||||||
|
import generic.util.action.ReservedKeyBindings;
|
||||||
import ghidra.framework.options.*;
|
import ghidra.framework.options.*;
|
||||||
import ghidra.util.*;
|
import ghidra.util.*;
|
||||||
import ghidra.util.exception.AssertException;
|
import ghidra.util.exception.AssertException;
|
||||||
|
|||||||
+5
-3
@@ -16,8 +16,9 @@
|
|||||||
package docking.framework;
|
package docking.framework;
|
||||||
|
|
||||||
import docking.DockingErrorDisplay;
|
import docking.DockingErrorDisplay;
|
||||||
import docking.theme.Gui;
|
|
||||||
import docking.widgets.PopupKeyStorePasswordProvider;
|
import docking.widgets.PopupKeyStorePasswordProvider;
|
||||||
|
import generic.theme.Gui;
|
||||||
|
import ghidra.docking.util.LookAndFeelUtils;
|
||||||
import ghidra.framework.ApplicationConfiguration;
|
import ghidra.framework.ApplicationConfiguration;
|
||||||
import ghidra.net.ApplicationKeyManagerFactory;
|
import ghidra.net.ApplicationKeyManagerFactory;
|
||||||
import ghidra.util.ErrorDisplay;
|
import ghidra.util.ErrorDisplay;
|
||||||
@@ -49,13 +50,14 @@ public class DockingApplicationConfiguration extends ApplicationConfiguration {
|
|||||||
super.initializeApplication();
|
super.initializeApplication();
|
||||||
|
|
||||||
Gui.initialize();
|
Gui.initialize();
|
||||||
|
LookAndFeelUtils.platformSpecificFixups();
|
||||||
|
|
||||||
if (showSplashScreen) {
|
if (showSplashScreen) {
|
||||||
SplashScreen.showSplashScreen();
|
SplashScreen.showSplashScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationKeyManagerFactory.setKeyStorePasswordProvider(
|
ApplicationKeyManagerFactory
|
||||||
new PopupKeyStorePasswordProvider());
|
.setKeyStorePasswordProvider(new PopupKeyStorePasswordProvider());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ import javax.swing.*;
|
|||||||
import javax.swing.border.BevelBorder;
|
import javax.swing.border.BevelBorder;
|
||||||
|
|
||||||
import docking.*;
|
import docking.*;
|
||||||
import docking.theme.GColor;
|
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
import docking.widgets.label.GLabel;
|
import docking.widgets.label.GLabel;
|
||||||
|
import generic.theme.GColor;
|
||||||
import generic.util.WindowUtilities;
|
import generic.util.WindowUtilities;
|
||||||
import ghidra.framework.Application;
|
import ghidra.framework.Application;
|
||||||
import ghidra.util.Msg;
|
import ghidra.util.Msg;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import javax.swing.KeyStroke;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import docking.action.DockingActionIf;
|
import docking.action.DockingActionIf;
|
||||||
import ghidra.docking.util.LookAndFeelUtils;
|
import generic.theme.Gui;
|
||||||
import ghidra.util.StringUtilities;
|
import ghidra.util.StringUtilities;
|
||||||
|
|
||||||
class DockingToolBarUtils {
|
class DockingToolBarUtils {
|
||||||
@@ -96,7 +96,7 @@ class DockingToolBarUtils {
|
|||||||
builder.append(InputEvent.getModifiersExText(modifiers));
|
builder.append(InputEvent.getModifiersExText(modifiers));
|
||||||
|
|
||||||
// The Aqua LaF does not use the '+' symbol between modifiers
|
// The Aqua LaF does not use the '+' symbol between modifiers
|
||||||
if (!LookAndFeelUtils.isUsingAquaUI(button.getUI())) {
|
if (!Gui.isUsingAquaUI(button.getUI())) {
|
||||||
builder.append('+');
|
builder.append('+');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+65
-22
@@ -17,15 +17,24 @@ package docking.options.editor;
|
|||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.beans.PropertyEditorSupport;
|
import java.beans.PropertyEditorSupport;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
|
||||||
import docking.theme.gui.ProtectedIcon;
|
import docking.theme.gui.ProtectedIcon;
|
||||||
import docking.widgets.*;
|
import docking.widgets.*;
|
||||||
|
import docking.widgets.filechooser.GhidraFileChooser;
|
||||||
|
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||||
import docking.widgets.label.GDLabel;
|
import docking.widgets.label.GDLabel;
|
||||||
import docking.widgets.list.GListCellRenderer;
|
import docking.widgets.list.GListCellRenderer;
|
||||||
|
import ghidra.framework.Application;
|
||||||
|
import ghidra.util.Msg;
|
||||||
|
import ghidra.util.filechooser.ExtensionFileFilter;
|
||||||
import resources.ResourceManager;
|
import resources.ResourceManager;
|
||||||
import resources.icons.ScaledImageIcon;
|
import resources.icons.ScaledImageIcon;
|
||||||
import resources.icons.UrlImageIcon;
|
import resources.icons.UrlImageIcon;
|
||||||
@@ -86,8 +95,6 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
|||||||
updateDropDownDataModel(icon);
|
updateDropDownDataModel(icon);
|
||||||
updatePreviewLabel(icon);
|
updatePreviewLabel(icon);
|
||||||
|
|
||||||
// iconTextField.addActionListener(listener);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDropDownDataModel(Icon icon) {
|
private void updateDropDownDataModel(Icon icon) {
|
||||||
@@ -114,27 +121,11 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
|||||||
return super.getMatchingData(searchText);
|
return super.getMatchingData(searchText);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// dropDown.setConsumeEnterKeyPress(false);
|
|
||||||
// dropDown.addActionListener(e -> iconChanged());
|
|
||||||
dropDown.addDropDownSelectionChoiceListener(choiceListener);
|
dropDown.addDropDownSelectionChoiceListener(choiceListener);
|
||||||
// dropDown.addCellEditorListener(new CellEditorListener() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void editingStopped(ChangeEvent e) {
|
|
||||||
// Msg.debug(this, "Stopped");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void editingCanceled(ChangeEvent e) {
|
|
||||||
// Msg.debug(this, "Cancelled");
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
panel.add(dropDown, BorderLayout.CENTER);
|
panel.add(dropDown, BorderLayout.CENTER);
|
||||||
// JButton browseButton = ButtonPanelFactory.createButton(ButtonPanelFactory.BROWSE_TYPE);
|
JButton browseButton = ButtonPanelFactory.createButton(ButtonPanelFactory.BROWSE_TYPE);
|
||||||
// panel.add(browseButton, BorderLayout.EAST);
|
panel.add(browseButton, BorderLayout.EAST);
|
||||||
// browseButton.addActionListener(e -> browse());
|
browseButton.addActionListener(e -> browse());
|
||||||
// iconTextField.addActionListener(listener);
|
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
@@ -154,7 +145,59 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void browse() {
|
private void browse() {
|
||||||
//TODO
|
GhidraFileChooser chooser = new GhidraFileChooser(iconChooserPanel);
|
||||||
|
chooser.setTitle("Import Icon");
|
||||||
|
chooser.setApproveButtonToolTipText("Import Icon");
|
||||||
|
chooser.setFileSelectionMode(GhidraFileChooserMode.FILES_ONLY);
|
||||||
|
chooser.setSelectedFileFilter(
|
||||||
|
ExtensionFileFilter.forExtensions("Icon Files", ".png", "gif"));
|
||||||
|
File file = chooser.getSelectedFile();
|
||||||
|
if (file != null) {
|
||||||
|
importIconFile(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void importIconFile(File file) {
|
||||||
|
|
||||||
|
if (!isValidIcon(file)) {
|
||||||
|
Msg.error(this, "File is not a valid icon: " + file.getAbsolutePath());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
File dir = Application.getUserSettingsDirectory();
|
||||||
|
File destinationDir = new File(dir, "themes/images");
|
||||||
|
File destinationFile = new File(destinationDir, file.getName());
|
||||||
|
if (destinationFile.exists()) {
|
||||||
|
int result = OptionDialog.showYesNoDialog(dropDown, "Overwrite?",
|
||||||
|
"An icon with that name already exists.\n Do you want to overwrite it?");
|
||||||
|
if (result == OptionDialog.NO_OPTION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
FileUtils.copyFile(file, destinationFile);
|
||||||
|
ImageIcon icon = ResourceManager.loadImage("themes/images/" + file.getName());
|
||||||
|
setValue(icon);
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
Msg.showError(this, dropDown, "Error importing file", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isValidIcon(File file) {
|
||||||
|
if (!file.exists()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
UrlImageIcon icon = new UrlImageIcon(file.getAbsolutePath(), file.toURI().toURL());
|
||||||
|
icon.getIconWidth();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
Msg.showError(this, dropDown, "Invalid Icon File",
|
||||||
|
"The file is not a valid icon: " + file.getAbsolutePath());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Component buildPreviewLabel() {
|
private Component buildPreviewLabel() {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user