mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 07:19:38 +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.event.MouseEvent;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.framework.options.Options;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -26,11 +26,11 @@ import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
import docking.action.DockingAction;
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.fieldpanel.*;
|
||||
import docking.widgets.fieldpanel.field.Field;
|
||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||
import docking.widgets.fieldpanel.support.FieldSelection;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.app.events.ProgramHighlightPluginEvent;
|
||||
import ghidra.app.events.ProgramSelectionPluginEvent;
|
||||
|
||||
+1
-1
@@ -26,10 +26,10 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.fieldpanel.field.FieldElement;
|
||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||
import docking.widgets.fieldpanel.support.Highlight;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||
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.math.BigInteger;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.app.services.MarkerService;
|
||||
import ghidra.app.util.viewer.listingpanel.ListingBackgroundColorModel;
|
||||
import ghidra.app.util.viewer.listingpanel.ListingPanel;
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ import java.awt.*;
|
||||
|
||||
import javax.swing.Icon;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||
|
||||
class BackgroundIcon implements Icon {
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ import javax.swing.text.*;
|
||||
|
||||
import docking.DockingUtils;
|
||||
import docking.actions.KeyBindingUtils;
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.WindowUtilities;
|
||||
import ghidra.app.plugin.core.console.CodeCompletion;
|
||||
import ghidra.framework.options.OptionsChangeListener;
|
||||
|
||||
+1
-1
@@ -26,12 +26,12 @@ import javax.swing.*;
|
||||
import javax.swing.event.TableModelEvent;
|
||||
|
||||
import docking.action.builder.ActionBuilder;
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.filechooser.GhidraFileChooser;
|
||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||
import docking.widgets.table.GTable;
|
||||
import docking.widgets.table.GTableFilterPanel;
|
||||
import generic.jar.ResourceFile;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.Path;
|
||||
import ghidra.app.services.ConsoleService;
|
||||
import ghidra.framework.plugintool.ComponentProviderAdapter;
|
||||
|
||||
+1
-1
@@ -27,9 +27,9 @@ import javax.swing.event.TableModelEvent;
|
||||
|
||||
import org.osgi.framework.Bundle;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.table.*;
|
||||
import generic.jar.ResourceFile;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.Path;
|
||||
import ghidra.docking.settings.Settings;
|
||||
import ghidra.framework.plugintool.ServiceProvider;
|
||||
|
||||
+1
-1
@@ -22,8 +22,8 @@ import java.util.*;
|
||||
import javax.swing.*;
|
||||
import javax.swing.tree.DefaultTreeCellRenderer;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.GComponent;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.program.model.listing.Group;
|
||||
import resources.ResourceManager;
|
||||
|
||||
|
||||
+1
-1
@@ -22,9 +22,9 @@ import javax.swing.*;
|
||||
|
||||
import docking.*;
|
||||
import docking.widgets.label.GLabel;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
import ghidra.framework.plugintool.Plugin;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
|
||||
class KeyBindingInputDialog extends DialogComponentProvider implements KeyEntryListener {
|
||||
private KeyEntryTextField kbField;
|
||||
|
||||
@@ -17,7 +17,7 @@ package ghidra.app.util;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
|
||||
/**
|
||||
* Miscellaneous defined constants
|
||||
|
||||
+1
-1
@@ -20,8 +20,8 @@ import java.math.BigInteger;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.app.util.viewer.util.AddressIndexMap;
|
||||
import ghidra.framework.model.DomainObjectChangedEvent;
|
||||
import ghidra.framework.model.DomainObjectListener;
|
||||
|
||||
@@ -27,7 +27,6 @@ import java.util.stream.IntStream;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.checkbox.GCheckBox;
|
||||
import docking.widgets.combobox.GComboBox;
|
||||
import docking.widgets.fieldpanel.*;
|
||||
@@ -36,6 +35,7 @@ import docking.widgets.fieldpanel.listener.LayoutModelListener;
|
||||
import docking.widgets.fieldpanel.support.*;
|
||||
import docking.widgets.indexedscrollpane.IndexedScrollPane;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.util.SystemUtilities;
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ import javax.help.HelpSetException;
|
||||
|
||||
import docking.help.*;
|
||||
import generic.jar.ResourceFile;
|
||||
import generic.theme.Gui;
|
||||
import generic.theme.ThemeListener;
|
||||
import ghidra.framework.Application;
|
||||
import ghidra.util.Msg;
|
||||
import help.HelpService;
|
||||
@@ -36,6 +38,7 @@ import resources.ResourceManager;
|
||||
public class GhidraHelpService extends HelpManager {
|
||||
|
||||
private static final String MASTER_HELP_SET_HS = "Base_HelpSet.hs";
|
||||
private ThemeListener listener = t -> reload();
|
||||
|
||||
public static void install() {
|
||||
try {
|
||||
@@ -50,6 +53,7 @@ public class GhidraHelpService extends HelpManager {
|
||||
super(findMasterHelpSetUrl());
|
||||
loadHelpSets();
|
||||
registerHelp();
|
||||
Gui.addThemeListener(listener);
|
||||
}
|
||||
|
||||
private static URL findMasterHelpSetUrl() {
|
||||
|
||||
+5
-3
@@ -19,8 +19,9 @@ import docking.DockingErrorDisplay;
|
||||
import docking.DockingWindowManager;
|
||||
import docking.framework.ApplicationInformationDisplayFactory;
|
||||
import docking.framework.SplashScreen;
|
||||
import docking.theme.Gui;
|
||||
import docking.widgets.PopupKeyStorePasswordProvider;
|
||||
import generic.theme.Gui;
|
||||
import ghidra.docking.util.LookAndFeelUtils;
|
||||
import ghidra.formats.gfilesystem.crypto.CryptoProviders;
|
||||
import ghidra.formats.gfilesystem.crypto.PopupGUIPasswordProvider;
|
||||
import ghidra.framework.main.GhidraApplicationInformationDisplayFactory;
|
||||
@@ -43,6 +44,7 @@ public class GhidraApplicationConfiguration extends HeadlessGhidraApplicationCon
|
||||
@Override
|
||||
protected void initializeApplication() {
|
||||
Gui.initialize();
|
||||
LookAndFeelUtils.platformSpecificFixups();
|
||||
|
||||
if (showSplashScreen) {
|
||||
showUserAgreement();
|
||||
@@ -51,8 +53,8 @@ public class GhidraApplicationConfiguration extends HeadlessGhidraApplicationCon
|
||||
|
||||
super.initializeApplication();
|
||||
|
||||
ApplicationKeyManagerFactory.setKeyStorePasswordProvider(
|
||||
new PopupKeyStorePasswordProvider());
|
||||
ApplicationKeyManagerFactory
|
||||
.setKeyStorePasswordProvider(new PopupKeyStorePasswordProvider());
|
||||
CryptoProviders.getInstance().registerCryptoProvider(new PopupGUIPasswordProvider());
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.LinkedList;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.text.*;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.framework.options.*;
|
||||
import ghidra.framework.plugintool.PluginTool;
|
||||
import ghidra.util.Msg;
|
||||
|
||||
@@ -25,9 +25,9 @@ import javax.swing.event.HyperlinkEvent;
|
||||
import javax.swing.text.View;
|
||||
|
||||
import docking.DockingUtils;
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.*;
|
||||
import docking.widgets.label.*;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.WindowUtilities;
|
||||
import ghidra.framework.Application;
|
||||
import ghidra.framework.ApplicationProperties;
|
||||
|
||||
@@ -21,8 +21,8 @@ import java.awt.Font;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.TableModel;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.table.GTableCellRenderer;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.listing.Program;
|
||||
import ghidra.program.model.mem.Memory;
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ import java.util.List;
|
||||
import javax.swing.JComponent;
|
||||
|
||||
import docking.action.ToggleDockingAction;
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||
import ghidra.app.plugin.core.format.*;
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import java.util.List;
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.*;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.help.HelpService;
|
||||
import docking.widgets.fieldpanel.*;
|
||||
import docking.widgets.fieldpanel.field.EmptyTextField;
|
||||
import docking.widgets.fieldpanel.field.Field;
|
||||
@@ -32,6 +32,7 @@ import docking.widgets.fieldpanel.support.*;
|
||||
import docking.widgets.indexedscrollpane.*;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import docking.widgets.label.GLabel;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.app.plugin.core.format.*;
|
||||
import ghidra.app.util.viewer.listingpanel.AddressSetDisplayListener;
|
||||
import ghidra.program.model.address.AddressSet;
|
||||
@@ -42,7 +43,6 @@ import ghidra.util.exception.InvalidInputException;
|
||||
import ghidra.util.layout.HorizontalLayout;
|
||||
import ghidra.util.layout.PairLayout;
|
||||
import help.Help;
|
||||
import help.HelpService;
|
||||
|
||||
/**
|
||||
* 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.io.IOException;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions.CURSOR_MOUSE_BUTTON_NAMES;
|
||||
import ghidra.app.util.HelpTopics;
|
||||
import ghidra.framework.options.Options;
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ import org.jdom.Element;
|
||||
import docking.ComponentPlaceholder;
|
||||
import docking.DockingWindowManager;
|
||||
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.mvc.FunctionGraphVertexAttributes;
|
||||
import ghidra.framework.options.SaveState;
|
||||
|
||||
+1
-1
@@ -21,12 +21,12 @@ import java.util.Map.Entry;
|
||||
|
||||
import org.jdom.Element;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import edu.uci.ics.jung.algorithms.layout.Layout;
|
||||
import edu.uci.ics.jung.visualization.RenderContext;
|
||||
import edu.uci.ics.jung.visualization.picking.PickedState;
|
||||
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
||||
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.transformer.FGVertexPickableBackgroundPaintTransformer;
|
||||
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 docking.theme.Gui;
|
||||
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.vertex.FGVertex;
|
||||
import ghidra.program.util.ProgramSelection;
|
||||
|
||||
+1
-1
@@ -21,8 +21,8 @@ import java.awt.geom.Point2D;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import docking.theme.GThemeDefaults.Colors;
|
||||
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.mvc.FGController;
|
||||
import ghidra.app.plugin.core.functiongraph.mvc.FGView;
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ import java.awt.event.MouseEvent;
|
||||
|
||||
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.FGVertexType;
|
||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ import docking.ActionContext;
|
||||
import docking.GenericHeader;
|
||||
import docking.action.DockingAction;
|
||||
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.graph.FGEdge;
|
||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||
|
||||
+2
-2
@@ -32,13 +32,13 @@ import docking.ActionContext;
|
||||
import docking.GenericHeader;
|
||||
import docking.action.DockingAction;
|
||||
import docking.action.ToolBarData;
|
||||
import docking.theme.GColor;
|
||||
import docking.theme.GThemeDefaults.Colors;
|
||||
import docking.widgets.fieldpanel.FieldPanel;
|
||||
import docking.widgets.fieldpanel.Layout;
|
||||
import docking.widgets.fieldpanel.field.Field;
|
||||
import docking.widgets.fieldpanel.support.BackgroundColorModel;
|
||||
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.functiongraph.FunctionGraphPlugin;
|
||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ import docking.ActionContext;
|
||||
import docking.action.*;
|
||||
import docking.menu.MultiActionDockingAction;
|
||||
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.FunctionGraphPlugin;
|
||||
import ghidra.app.plugin.core.functiongraph.mvc.FGController;
|
||||
|
||||
+2
-2
@@ -19,8 +19,8 @@ import java.awt.Color;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
||||
import generic.theme.GColor;
|
||||
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
|
||||
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayoutOptions;
|
||||
import ghidra.framework.options.Options;
|
||||
|
||||
+1
-1
@@ -26,8 +26,8 @@ import org.junit.*;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.action.DockingActionIf;
|
||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
||||
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.codebrowser.CodeBrowserPlugin;
|
||||
import ghidra.app.plugin.core.functiongraph.graph.FGEdge;
|
||||
|
||||
+1
-1
@@ -32,12 +32,12 @@ import docking.ActionContext;
|
||||
import docking.ComponentProvider;
|
||||
import docking.action.DockingAction;
|
||||
import docking.dnd.GClipboard;
|
||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
||||
import edu.uci.ics.jung.algorithms.layout.Layout;
|
||||
import edu.uci.ics.jung.visualization.VisualizationModel;
|
||||
import edu.uci.ics.jung.visualization.VisualizationViewer;
|
||||
import edu.uci.ics.jung.visualization.util.Caching;
|
||||
import generic.test.TestUtils;
|
||||
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||
import ghidra.app.cmd.label.AddLabelCmd;
|
||||
import ghidra.app.events.ProgramSelectionPluginEvent;
|
||||
import ghidra.app.nav.LocationMemento;
|
||||
|
||||
+1
-1
@@ -27,9 +27,9 @@ import javax.swing.JComponent;
|
||||
import org.junit.*;
|
||||
|
||||
import docking.action.DockingActionIf;
|
||||
import docking.theme.GThemeDefaults.Colors.Palette;
|
||||
import edu.uci.ics.jung.graph.Graph;
|
||||
import generic.test.TestUtils;
|
||||
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||
import ghidra.app.cmd.label.AddLabelCmd;
|
||||
import ghidra.app.cmd.label.DeleteLabelCmd;
|
||||
import ghidra.app.cmd.refs.AddMemRefCmd;
|
||||
|
||||
+1
-1
@@ -23,8 +23,8 @@ import java.util.List;
|
||||
import javax.swing.*;
|
||||
|
||||
import docking.DialogComponentProvider;
|
||||
import docking.theme.GThemeDefaults;
|
||||
import docking.widgets.checkbox.GCheckBox;
|
||||
import generic.theme.GThemeDefaults;
|
||||
import ghidra.feature.fid.db.FidFile;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.layout.VerticalLayout;
|
||||
|
||||
@@ -26,11 +26,11 @@ import javax.swing.*;
|
||||
import javax.swing.border.Border;
|
||||
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.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.VertexShapeProvider;
|
||||
import ghidra.program.model.address.Address;
|
||||
|
||||
+1
-1
@@ -15,12 +15,12 @@
|
||||
*/
|
||||
package functioncalls.graph.view;
|
||||
|
||||
import docking.theme.GColor;
|
||||
import edu.uci.ics.jung.visualization.renderers.Renderer;
|
||||
import functioncalls.graph.*;
|
||||
import functioncalls.graph.renderer.FcgEdgePaintTransformer;
|
||||
import functioncalls.graph.renderer.FcgVertexPaintTransformer;
|
||||
import functioncalls.plugin.FunctionCallGraphPlugin;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.graph.viewer.*;
|
||||
import ghidra.graph.viewer.edge.VisualEdgeRenderer;
|
||||
import ghidra.graph.viewer.layout.VisualGraphLayout;
|
||||
|
||||
+1
-1
@@ -50,9 +50,9 @@ import docking.action.builder.*;
|
||||
import docking.menu.ActionState;
|
||||
import docking.menu.MultiStateDockingAction;
|
||||
import docking.options.editor.OptionsDialog;
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.EventTrigger;
|
||||
import docking.widgets.OptionDialog;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.WindowUtilities;
|
||||
import ghidra.framework.options.Options;
|
||||
import ghidra.framework.options.ToolOptions;
|
||||
|
||||
+2
-2
@@ -26,13 +26,14 @@ import javax.swing.text.*;
|
||||
import javax.swing.tree.TreeSelectionModel;
|
||||
|
||||
import docking.DockingUtils;
|
||||
import docking.theme.GColor;
|
||||
import docking.help.HelpService;
|
||||
import docking.widgets.EventTrigger;
|
||||
import docking.widgets.OptionDialog;
|
||||
import docking.widgets.fieldpanel.FieldPanel;
|
||||
import docking.widgets.fieldpanel.field.Field;
|
||||
import docking.widgets.fieldpanel.listener.FieldMouseListener;
|
||||
import docking.widgets.fieldpanel.support.FieldLocation;
|
||||
import generic.theme.GColor;
|
||||
import ghidra.GhidraOptions;
|
||||
import ghidra.app.CorePluginPackage;
|
||||
import ghidra.app.events.*;
|
||||
@@ -62,7 +63,6 @@ import ghidra.util.exception.CancelledException;
|
||||
import ghidra.util.exception.VersionException;
|
||||
import ghidra.util.task.*;
|
||||
import help.Help;
|
||||
import help.HelpService;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
|
||||
@@ -37,7 +37,7 @@ import docking.widgets.list.GList;
|
||||
import docking.widgets.list.GListCellRenderer;
|
||||
import docking.widgets.table.GTableCellRenderer;
|
||||
import docking.widgets.tree.support.GTreeRenderer;
|
||||
import ghidra.docking.util.LookAndFeelUtils;
|
||||
import generic.theme.Gui;
|
||||
import ghidra.util.HTMLUtilities;
|
||||
import resources.ResourceManager;
|
||||
|
||||
@@ -125,7 +125,7 @@ public class DockingUtils {
|
||||
public static JSeparator createToolbarSeparator() {
|
||||
Dimension sepDim = new Dimension(2, ICON_SIZE + 2);
|
||||
JSeparator separator = new JSeparator(SwingConstants.VERTICAL);
|
||||
if (LookAndFeelUtils.isUsingAquaUI(separator.getUI())) {
|
||||
if (Gui.isUsingAquaUI(separator.getUI())) {
|
||||
separator.setUI(new BasicSeparatorUI());
|
||||
}
|
||||
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 docking.action.DockingActionIf;
|
||||
import docking.theme.GColor;
|
||||
import docking.util.AnimationUtils;
|
||||
import docking.widgets.VariableHeightPanel;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import generic.theme.GColor;
|
||||
|
||||
// TODO: should this be put into generic?
|
||||
public class GenericHeader extends JPanel {
|
||||
|
||||
+1
-1
@@ -29,8 +29,8 @@ import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.DockingWindowManager;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
import ghidra.util.Msg;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
|
||||
public class ComponentThemeInspectorAction extends DockingAction {
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import javax.swing.Action;
|
||||
import javax.swing.KeyStroke;
|
||||
|
||||
import docking.*;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
import ghidra.util.exception.AssertException;
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.apache.logging.log4j.Logger;
|
||||
|
||||
import docking.ActionContext;
|
||||
import docking.DockingWindowManager;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
|
||||
public class ShowFocusCycleAction extends DockingAction {
|
||||
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 docking.*;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
|
||||
public class ShowFocusInfoAction extends DockingAction {
|
||||
static final Logger log = LogManager.getLogger(ShowFocusInfoAction.class);
|
||||
|
||||
@@ -27,8 +27,8 @@ import docking.KeyEntryTextField;
|
||||
import docking.action.*;
|
||||
import docking.tool.ToolConstants;
|
||||
import docking.widgets.label.GIconLabel;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.ReservedKeyBindings;
|
||||
import resources.ResourceManager;
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.apache.commons.collections4.map.LazyMap;
|
||||
import docking.*;
|
||||
import docking.action.*;
|
||||
import docking.tool.util.DockingToolConstants;
|
||||
import generic.util.action.ReservedKeyBindings;
|
||||
import ghidra.framework.options.*;
|
||||
import ghidra.util.*;
|
||||
import ghidra.util.exception.AssertException;
|
||||
|
||||
+5
-3
@@ -16,8 +16,9 @@
|
||||
package docking.framework;
|
||||
|
||||
import docking.DockingErrorDisplay;
|
||||
import docking.theme.Gui;
|
||||
import docking.widgets.PopupKeyStorePasswordProvider;
|
||||
import generic.theme.Gui;
|
||||
import ghidra.docking.util.LookAndFeelUtils;
|
||||
import ghidra.framework.ApplicationConfiguration;
|
||||
import ghidra.net.ApplicationKeyManagerFactory;
|
||||
import ghidra.util.ErrorDisplay;
|
||||
@@ -49,13 +50,14 @@ public class DockingApplicationConfiguration extends ApplicationConfiguration {
|
||||
super.initializeApplication();
|
||||
|
||||
Gui.initialize();
|
||||
LookAndFeelUtils.platformSpecificFixups();
|
||||
|
||||
if (showSplashScreen) {
|
||||
SplashScreen.showSplashScreen();
|
||||
}
|
||||
|
||||
ApplicationKeyManagerFactory.setKeyStorePasswordProvider(
|
||||
new PopupKeyStorePasswordProvider());
|
||||
ApplicationKeyManagerFactory
|
||||
.setKeyStorePasswordProvider(new PopupKeyStorePasswordProvider());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,9 @@ import javax.swing.*;
|
||||
import javax.swing.border.BevelBorder;
|
||||
|
||||
import docking.*;
|
||||
import docking.theme.GColor;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import docking.widgets.label.GLabel;
|
||||
import generic.theme.GColor;
|
||||
import generic.util.WindowUtilities;
|
||||
import ghidra.framework.Application;
|
||||
import ghidra.util.Msg;
|
||||
|
||||
@@ -24,7 +24,7 @@ import javax.swing.KeyStroke;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import docking.action.DockingActionIf;
|
||||
import ghidra.docking.util.LookAndFeelUtils;
|
||||
import generic.theme.Gui;
|
||||
import ghidra.util.StringUtilities;
|
||||
|
||||
class DockingToolBarUtils {
|
||||
@@ -96,7 +96,7 @@ class DockingToolBarUtils {
|
||||
builder.append(InputEvent.getModifiersExText(modifiers));
|
||||
|
||||
// The Aqua LaF does not use the '+' symbol between modifiers
|
||||
if (!LookAndFeelUtils.isUsingAquaUI(button.getUI())) {
|
||||
if (!Gui.isUsingAquaUI(button.getUI())) {
|
||||
builder.append('+');
|
||||
}
|
||||
}
|
||||
|
||||
+65
-22
@@ -17,15 +17,24 @@ package docking.options.editor;
|
||||
|
||||
import java.awt.*;
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import docking.theme.gui.ProtectedIcon;
|
||||
import docking.widgets.*;
|
||||
import docking.widgets.filechooser.GhidraFileChooser;
|
||||
import docking.widgets.filechooser.GhidraFileChooserMode;
|
||||
import docking.widgets.label.GDLabel;
|
||||
import docking.widgets.list.GListCellRenderer;
|
||||
import ghidra.framework.Application;
|
||||
import ghidra.util.Msg;
|
||||
import ghidra.util.filechooser.ExtensionFileFilter;
|
||||
import resources.ResourceManager;
|
||||
import resources.icons.ScaledImageIcon;
|
||||
import resources.icons.UrlImageIcon;
|
||||
@@ -86,8 +95,6 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
||||
updateDropDownDataModel(icon);
|
||||
updatePreviewLabel(icon);
|
||||
|
||||
// iconTextField.addActionListener(listener);
|
||||
|
||||
}
|
||||
|
||||
private void updateDropDownDataModel(Icon icon) {
|
||||
@@ -114,27 +121,11 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
||||
return super.getMatchingData(searchText);
|
||||
}
|
||||
};
|
||||
// dropDown.setConsumeEnterKeyPress(false);
|
||||
// dropDown.addActionListener(e -> iconChanged());
|
||||
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);
|
||||
// JButton browseButton = ButtonPanelFactory.createButton(ButtonPanelFactory.BROWSE_TYPE);
|
||||
// panel.add(browseButton, BorderLayout.EAST);
|
||||
// browseButton.addActionListener(e -> browse());
|
||||
// iconTextField.addActionListener(listener);
|
||||
JButton browseButton = ButtonPanelFactory.createButton(ButtonPanelFactory.BROWSE_TYPE);
|
||||
panel.add(browseButton, BorderLayout.EAST);
|
||||
browseButton.addActionListener(e -> browse());
|
||||
|
||||
return panel;
|
||||
}
|
||||
@@ -154,7 +145,59 @@ public class IconPropertyEditor extends PropertyEditorSupport {
|
||||
}
|
||||
|
||||
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() {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user