public MenuFile(LogisimMenuBar menubar) { this.menubar = menubar; openRecent = new OpenRecent(menubar); int menuMask = getToolkit().getMenuShortcutKeyMask(); newi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, menuMask)); merge.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, menuMask)); open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, menuMask)); close.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, menuMask | InputEvent.SHIFT_MASK)); save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, menuMask)); saveAs.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, menuMask | InputEvent.SHIFT_MASK)); print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, menuMask)); quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, menuMask)); add(newi); add(merge); add(open); add(openRecent); addSeparator(); add(close); add(save); add(saveAs); addSeparator(); add(exportImage); add(print); if (!MacCompatibility.isPreferencesAutomaticallyPresent()) { addSeparator(); add(prefs); } if (!MacCompatibility.isQuitAutomaticallyPresent()) { addSeparator(); add(quit); } Project proj = menubar.getProject(); newi.addActionListener(this); open.addActionListener(this); if (proj == null) { merge.setEnabled(false); close.setEnabled(false); save.setEnabled(false); saveAs.setEnabled(false); } else { merge.addActionListener(this); close.addActionListener(this); save.addActionListener(this); saveAs.addActionListener(this); } menubar.registerItem(LogisimMenuBar.EXPORT_IMAGE, exportImage); menubar.registerItem(LogisimMenuBar.PRINT, print); prefs.addActionListener(this); quit.addActionListener(this); }