diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 2d51ec2bf..7d4d8aa46 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -84,7 +84,7 @@ public class Base { Collections.synchronizedList(new ArrayList()); protected Editor activeEditor; /** A lone file menu to be used when all sketch windows are closed. */ - static public JMenu defaultFileMenu; + protected JMenu defaultFileMenu; /** * Starts with the last mode used with the environment, @@ -437,6 +437,49 @@ public class Base { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + /** + * Limited file menu to be used on OS X when no sketches are open. + */ + public JMenu initDefaultFileMenu() { + defaultFileMenu = new JMenu(Language.text("menu.file")); + + JMenuItem item = Toolkit.newJMenuItem(Language.text("menu.file.new"), 'N'); + item.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + handleNew(); + } + }); + defaultFileMenu.add(item); + + item = Toolkit.newJMenuItem(Language.text("menu.file.open"), 'O'); + item.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + handleOpenPrompt(); + } + }); + defaultFileMenu.add(item); + + item = Toolkit.newJMenuItemShift(Language.text("menu.file.sketchbook"), 'K'); + item.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + getNextMode().showSketchbookFrame(); + } + }); + defaultFileMenu.add(item); + + item = Toolkit.newJMenuItemShift(Language.text("menu.file.examples"), 'O'); + item.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + thinkDifferentExamples(); + } + }); + defaultFileMenu.add(item); + + return defaultFileMenu; + } + + void buildCoreModes() { Mode javaMode = ModeContribution.load(this, Platform.getContentFile("modes/java"), diff --git a/app/src/processing/app/platform/ThinkDifferent.java b/app/src/processing/app/platform/ThinkDifferent.java index 90333835c..a74a2dd84 100644 --- a/app/src/processing/app/platform/ThinkDifferent.java +++ b/app/src/processing/app/platform/ThinkDifferent.java @@ -23,18 +23,13 @@ package processing.app.platform; import java.awt.Desktop; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.io.File; import javax.swing.JMenu; import javax.swing.JMenuBar; -import javax.swing.JMenuItem; import processing.app.Base; -import processing.app.Language; import processing.app.ui.About; -import processing.app.ui.Toolkit; /** @@ -88,54 +83,8 @@ public class ThinkDifferent { // Set the menu bar to be used when nothing else is open. JMenuBar defaultMenuBar = new JMenuBar(); - JMenu fileMenu = buildFileMenu(base); + JMenu fileMenu = base.initDefaultFileMenu(); defaultMenuBar.add(fileMenu); - // This is kind of a gross way to do this, but the alternatives? Hrm. - Base.defaultFileMenu = fileMenu; desktop.setDefaultMenuBar(defaultMenuBar); } - - - /** - * Gimpy file menu to be used on OS X when no sketches are open. - */ - static protected JMenu buildFileMenu(final Base base) { - JMenuItem item; - JMenu fileMenu = new JMenu(Language.text("menu.file")); - - item = Toolkit.newJMenuItem(Language.text("menu.file.new"), 'N'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleNew(); - } - }); - fileMenu.add(item); - - item = Toolkit.newJMenuItem(Language.text("menu.file.open"), 'O'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.handleOpenPrompt(); - } - }); - fileMenu.add(item); - - item = Toolkit.newJMenuItemShift(Language.text("menu.file.sketchbook"), 'K'); - item.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - base.getNextMode().showSketchbookFrame(); - } - }); - fileMenu.add(item); - - item = Toolkit.newJMenuItemShift(Language.text("menu.file.examples"), 'O'); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - base.thinkDifferentExamples(); - } - }); - fileMenu.add(item); - - return fileMenu; - } }