From f55492f8b8e0b07b7c73de51ddc3b98c78f9c929 Mon Sep 17 00:00:00 2001 From: "jason@long.name" Date: Thu, 25 Jul 2013 20:47:19 +0000 Subject: [PATCH] keyboard: add shortcut keys to Game menu git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@770 d9718cc8-9f43-0410-858b-315f434eb58c --- src/micropolisj/gui/MainWindow.java | 32 +++++++++++++++++++++++++++++ strings/GuiStrings.properties | 9 ++++++++ 2 files changed, 41 insertions(+) diff --git a/src/micropolisj/gui/MainWindow.java b/src/micropolisj/gui/MainWindow.java index 0c0583d..f124700 100644 --- a/src/micropolisj/gui/MainWindow.java +++ b/src/micropolisj/gui/MainWindow.java @@ -400,15 +400,43 @@ public class MainWindow extends JFrame return pane; } + private void setupKeys(JMenu menu, String prefix) + { + if (strings.containsKey(prefix+".access_key")) { + String mnemonic = strings.getString(prefix+".access_key"); + menu.setMnemonic( + KeyStroke.getKeyStroke(mnemonic).getKeyCode() + ); + } + } + + private void setupKeys(JMenuItem menuItem, String prefix) + { + if (strings.containsKey(prefix+".access_key")) { + String mnemonic = strings.getString(prefix+".access_key"); + menuItem.setMnemonic( + KeyStroke.getKeyStroke(mnemonic).getKeyCode() + ); + } + if (strings.containsKey(prefix+".shortcut")) { + String shortcut = strings.getString(prefix+".shortcut"); + menuItem.setAccelerator( + KeyStroke.getKeyStroke(shortcut) + ); + } + } + private void makeMenu() { JMenuBar menuBar = new JMenuBar(); JMenu gameMenu = new JMenu(strings.getString("menu.game")); + setupKeys(gameMenu, "menu.game"); menuBar.add(gameMenu); JMenuItem menuItem; menuItem = new JMenuItem(strings.getString("menu.game.new")); + setupKeys(menuItem, "menu.game.new"); menuItem.addActionListener(wrapActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) @@ -419,6 +447,7 @@ public class MainWindow extends JFrame gameMenu.add(menuItem); menuItem = new JMenuItem(strings.getString("menu.game.load")); + setupKeys(menuItem, "menu.game.load"); menuItem.addActionListener(wrapActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) @@ -429,6 +458,7 @@ public class MainWindow extends JFrame gameMenu.add(menuItem); menuItem = new JMenuItem(strings.getString("menu.game.save")); + setupKeys(menuItem, "menu.game.save"); menuItem.addActionListener(wrapActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) @@ -439,6 +469,7 @@ public class MainWindow extends JFrame gameMenu.add(menuItem); menuItem = new JMenuItem(strings.getString("menu.game.save_as")); + setupKeys(menuItem, "menu.game.save_as"); menuItem.addActionListener(wrapActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) @@ -449,6 +480,7 @@ public class MainWindow extends JFrame gameMenu.add(menuItem); menuItem = new JMenuItem(strings.getString("menu.game.exit")); + setupKeys(menuItem, "menu.game.exit"); menuItem.addActionListener(wrapActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) diff --git a/strings/GuiStrings.properties b/strings/GuiStrings.properties index b464995..e12749e 100644 --- a/strings/GuiStrings.properties +++ b/strings/GuiStrings.properties @@ -69,11 +69,20 @@ menu.overlays.FIRE_OVERLAY = Fire Coverage menu.overlays.POLICE_OVERLAY = Police Coverage menu.game = Game +menu.game.access_key = G menu.game.new = New City... +menu.game.new.access_key = N +menu.game.new.shortcut = ctrl N menu.game.load = Load City... +menu.game.load.access_key = L +menu.game.load.shortcut = ctrl O menu.game.save = Save City +menu.game.save.access_key = S +menu.game.save.shortcut = ctrl S menu.game.save_as = Save City as... +menu.game.save_as.access_key = A menu.game.exit = Exit +menu.game.exit.access_key = X menu.options = Options menu.options.auto_budget = Auto Budget