mirror of
https://github.com/processing/processing4.git
synced 2026-02-13 10:30:44 +01:00
Finalise menu mnemonics
Added Toolkit.setMenuMnemsInside(); removed Editor.resetMenuMnemonics(); added mnemonics to sketches in Sketch menu.
This commit is contained in:
@@ -65,8 +65,6 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
private PageFormat pageFormat;
|
||||
private PrinterJob printerJob;
|
||||
|
||||
// Used to reset mnemonics.
|
||||
private JMenuBar menubar;
|
||||
// File and sketch menus for re-inserting items
|
||||
private JMenu fileMenu;
|
||||
// private JMenuItem saveMenuItem;
|
||||
@@ -147,9 +145,11 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
// fileMenu.insert(base.getSketchbookMenu(), 2);
|
||||
fileMenu.insert(base.getRecentMenu(), 2);
|
||||
// fileMenu.insert(mode.getExamplesMenu(), 3);
|
||||
Toolkit.setMenuMnemsInside(fileMenu);
|
||||
|
||||
sketchMenu.insert(mode.getImportMenu(), 4);
|
||||
Toolkit.setMenuMnemsInside(sketchMenu);
|
||||
mode.insertToolbarRecentMenu();
|
||||
resetMenuMnemonics();
|
||||
}
|
||||
|
||||
// added for 1.0.5
|
||||
@@ -428,7 +428,7 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
});
|
||||
modeMenu.add(addLib);
|
||||
|
||||
Toolkit.setMenuMnemonics(modeMenu);
|
||||
Toolkit.setMenuMnemsInside(modeMenu);
|
||||
}
|
||||
|
||||
|
||||
@@ -547,7 +547,7 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
|
||||
|
||||
protected void buildMenuBar() {
|
||||
menubar = new JMenuBar();
|
||||
JMenuBar menubar = new JMenuBar();
|
||||
fileMenu = buildFileMenu();
|
||||
menubar.add(fileMenu);
|
||||
menubar.add(buildEditMenu());
|
||||
@@ -576,17 +576,8 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
// }
|
||||
|
||||
menubar.add(buildHelpMenu());
|
||||
resetMenuMnemonics();
|
||||
setJMenuBar(menubar);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The reason for this is to avoid conflicting mnemonics. The code won't work properly
|
||||
* if you run it on little bits at a time.
|
||||
*/
|
||||
public void resetMenuMnemonics() {
|
||||
Toolkit.setMenuMnemonics(menubar);
|
||||
setJMenuBar(menubar);
|
||||
}
|
||||
|
||||
|
||||
@@ -964,7 +955,6 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
|
||||
// Action listener to bring the appropriate sketch in front
|
||||
item.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
editor.setState(Frame.NORMAL);
|
||||
@@ -974,6 +964,7 @@ public abstract class Editor extends JFrame implements RunnerListener {
|
||||
});
|
||||
sketchMenu.add(item);
|
||||
menuList.add(item);
|
||||
Toolkit.setMenuMnemsInside(sketchMenu);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -339,14 +339,7 @@ public class Toolkit {
|
||||
|
||||
// Finally, RECURSION.
|
||||
for (JMenuItem jmi : menu) {
|
||||
if (jmi instanceof JMenu) {
|
||||
JMenu jm = (JMenu) jmi;
|
||||
JMenuItem[] items = new JMenuItem[jm.getItemCount()];
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
items[i] = jm.getItem(i);
|
||||
}
|
||||
setMenuMnemonics(items);
|
||||
}
|
||||
if (jmi instanceof JMenu) setMenuMnemsInside((JMenu) jmi);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,6 +369,18 @@ public class Toolkit {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Calls setMenuMnemonics(JMenuItem...) on the sub-elements only.
|
||||
*/
|
||||
public static void setMenuMnemsInside(JMenu menu) {
|
||||
JMenuItem[] items = new JMenuItem[menu.getItemCount()];
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
items[i] = menu.getItem(i);
|
||||
}
|
||||
setMenuMnemonics(items);
|
||||
}
|
||||
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user