From 9f6ddb4b5f36a005fe4c4f77488d7969eabf0797 Mon Sep 17 00:00:00 2001 From: Jason Long Date: Sun, 25 Jan 2015 10:46:32 -0800 Subject: [PATCH] gui: make accelerator keystrokes adapt to operating system keystrokes with string 'command' will be translated to 'meta' on Mac OS X and 'ctrl' for everything else --- src/micropolisj/gui/MainWindow.java | 15 ++++++++++++--- strings/GuiStrings.properties | 6 +++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/micropolisj/gui/MainWindow.java b/src/micropolisj/gui/MainWindow.java index 47fc714..7b3b9da 100644 --- a/src/micropolisj/gui/MainWindow.java +++ b/src/micropolisj/gui/MainWindow.java @@ -429,9 +429,18 @@ public class MainWindow extends JFrame } if (strings.containsKey(prefix+".shortcut")) { String shortcut = strings.getString(prefix+".shortcut"); - menuItem.setAccelerator( - KeyStroke.getKeyStroke(shortcut) - ); + KeyStroke keyStroke; + if (shortcut.startsWith("command")) { + KeyStroke key = KeyStroke.getKeyStroke(shortcut.substring(8)); + keyStroke = KeyStroke.getKeyStroke(key.getKeyCode(), + key.getModifiers() | + Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() + ); + } + else { + keyStroke = KeyStroke.getKeyStroke(shortcut); + } + menuItem.setAccelerator(keyStroke); } } diff --git a/strings/GuiStrings.properties b/strings/GuiStrings.properties index 950076e..2766b90 100644 --- a/strings/GuiStrings.properties +++ b/strings/GuiStrings.properties @@ -88,13 +88,13 @@ menu.game = Game menu.game.key = G menu.game.new = New City... menu.game.new.key = N -menu.game.new.shortcut = ctrl N +menu.game.new.shortcut = command N menu.game.load = Load City... menu.game.load.key = L -menu.game.load.shortcut = ctrl O +menu.game.load.shortcut = command O menu.game.save = Save City menu.game.save.key = S -menu.game.save.shortcut = ctrl S +menu.game.save.shortcut = command S menu.game.save_as = Save City as... menu.game.save_as.key = A menu.game.exit = Exit