checkboxes for mode menu, one menu per editor

This commit is contained in:
benfry
2011-01-28 17:39:32 +00:00
parent 86c24c403e
commit 53736b23dd
3 changed files with 37 additions and 18 deletions
+6 -17
View File
@@ -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
+30
View File
@@ -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();
// }
+1 -1
View File
@@ -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);
}