mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
checkboxes for mode menu, one menu per editor
This commit is contained in:
@@ -88,7 +88,7 @@ public class Base {
|
||||
private Mode defaultMode;
|
||||
// private Mode androidMode;
|
||||
private Mode[] modeList;
|
||||
private JMenu modeMenu;
|
||||
// private JMenu modeMenu;
|
||||
|
||||
private JMenu sketchbookMenu;
|
||||
|
||||
@@ -214,17 +214,6 @@ public class Base {
|
||||
defaultMode = new JavaMode(this, getContentFile("modes/java"));
|
||||
Mode androidMode = new AndroidMode(this, getContentFile("modes/android"));
|
||||
modeList = new Mode[] { defaultMode, androidMode };
|
||||
modeMenu = new JMenu();
|
||||
for (final Mode mode : modeList) {
|
||||
JMenuItem item = new JMenuItem(mode.getTitle());
|
||||
item.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// System.out.println(e);
|
||||
changeMode(mode);
|
||||
}
|
||||
});
|
||||
modeMenu.add(item);
|
||||
}
|
||||
|
||||
// Get the sketchbook path, and make sure it's set properly
|
||||
determineSketchbookFolder();
|
||||
@@ -289,11 +278,6 @@ public class Base {
|
||||
// }
|
||||
|
||||
|
||||
public JMenu getModeMenu() {
|
||||
return modeMenu;
|
||||
}
|
||||
|
||||
|
||||
// public Mode getDefaultMode() {
|
||||
// return defaultMode;
|
||||
// }
|
||||
@@ -526,6 +510,11 @@ public class Base {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Mode[] getModeList() {
|
||||
return modeList;
|
||||
}
|
||||
|
||||
|
||||
// Because of variations in native windowing systems, no guarantees about
|
||||
|
||||
@@ -97,6 +97,7 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
private final Stack<Integer> caretRedoStack = new Stack<Integer>();
|
||||
|
||||
private FindReplace find;
|
||||
JMenu modeMenu;
|
||||
|
||||
|
||||
protected Editor(final Base base, String path, int[] location, final Mode mode) {
|
||||
@@ -153,6 +154,7 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
Box box = Box.createVerticalBox();
|
||||
Box upper = Box.createVerticalBox();
|
||||
|
||||
initModeMenu();
|
||||
toolbar = createToolbar();
|
||||
upper.add(toolbar);
|
||||
|
||||
@@ -297,6 +299,34 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
}
|
||||
|
||||
|
||||
protected void initModeMenu() {
|
||||
modeMenu = new JMenu();
|
||||
for (final Mode m : base.getModeList()) {
|
||||
if (mode == m) {
|
||||
JCheckBoxMenuItem item = new JCheckBoxMenuItem(m.getTitle());
|
||||
// doesn't need a listener, since it doesn't do anything
|
||||
item.setSelected(true);
|
||||
modeMenu.add(item);
|
||||
} else {
|
||||
JMenuItem item = new JMenuItem(m.getTitle());
|
||||
item.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// System.out.println(e);
|
||||
base.changeMode(m);
|
||||
}
|
||||
});
|
||||
modeMenu.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public JMenu getModeMenu() {
|
||||
return modeMenu;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// public Settings getTheme() {
|
||||
// return mode.getTheme();
|
||||
// }
|
||||
|
||||
@@ -438,7 +438,7 @@ public abstract class EditorToolbar extends JComponent implements MouseInputList
|
||||
int x = e.getX();
|
||||
int y = e.getY();
|
||||
if (x > modeX1 && x < modeX2 && y > modeY1 && y < modeY2) {
|
||||
JPopupMenu popup = base.getModeMenu().getPopupMenu();
|
||||
JPopupMenu popup = editor.getModeMenu().getPopupMenu();
|
||||
popup.show(this, x, y);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user