From e15c5fc6b04a70bb0b388a4bd86cab7f7faa39aa Mon Sep 17 00:00:00 2001 From: truelight Date: Mon, 23 Jul 2007 16:39:27 +0000 Subject: [PATCH] (svn r10662) -Add: added 'V' as new shortcut for new viewport (bilbo) -Add: added 'M' as new shortcut for smallmap (bilbo) -Add: added '+' and '-' as shortcuts to zoom in the mainview (bilbo) -Add: added support for other keycodes to be possible used in the future (bilbo) --- src/gfx.h | 15 +++++++++++++++ src/main_gui.cpp | 8 ++++++++ src/video/cocoa_v.mm | 16 +++++++++++++++- src/video/sdl_v.cpp | 16 +++++++++++++++- src/video/win32_v.cpp | 15 ++++++++++++++- 5 files changed, 67 insertions(+), 3 deletions(-) diff --git a/src/gfx.h b/src/gfx.h index 8c64088992..612dbee43a 100644 --- a/src/gfx.h +++ b/src/gfx.h @@ -80,6 +80,21 @@ enum WindowKeyCodes { /* 0-9 are mapped to 48-57 * A-Z are mapped to 65-90 * a-z are mapped to 97-122 */ + + /* Other keys, corresponding to their ascii values */ + WKC_SLASH = 47, // / Forward slash + WKC_SEMICOLON = 59, // ; Semicolon + WKC_EQUALS = 61, // = Equals + WKC_L_BRACKET = 91, // [ Left square bracket + WKC_BACKSLASH = 92, // \ Backslash + WKC_R_BRACKET = 93, // ] Right square bracket + + /* Other keys of which their ascii value is already taken + * - use unused ascii value not present on keyboard directly */ + WKC_SINGLEQUOTE = 58, // ' Single quote + WKC_COMMA = 60, // , Comma + WKC_PERIOD = 62, // . Period + WKC_MINUS = 95, // - Minus }; enum GameModes { diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 92be8bf6d8..bbf930f2a6 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -1649,7 +1649,13 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) case WKC_SHIFT | WKC_F2: ShowVehicleListWindow(_local_player, VEH_ROAD); break; case WKC_SHIFT | WKC_F3: ShowVehicleListWindow(_local_player, VEH_SHIP); break; case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, VEH_AIRCRAFT); break; + case WKC_NUM_PLUS: /* Fall through */ + case WKC_EQUALS: /* Fall through */ + case WKC_SHIFT | WKC_EQUALS: /* Fall through */ case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break; + case WKC_NUM_MINUS: /* Fall through */ + case WKC_MINUS: /* Fall through */ + case WKC_SHIFT | WKC_MINUS: /* Fall through */ case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break; case WKC_SHIFT | WKC_F7: if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, -1); break; case WKC_SHIFT | WKC_F8: ShowBuildRoadToolbar(_last_built_roadtype); break; @@ -1662,6 +1668,8 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e) case WKC_CTRL | WKC_ALT | 'C': if (!_networking) ShowCheatWindow(); break; case 'A': if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, 4); break; /* Invoke Autorail */ case 'L': ShowTerraformToolbar(); break; + case 'M': ShowSmallMap(); break; + case 'V': ShowExtraViewPortWindow(); break; default: return; } e->we.keypress.cont = false; diff --git a/src/video/cocoa_v.mm b/src/video/cocoa_v.mm index 425b74d005..409d142154 100644 --- a/src/video/cocoa_v.mm +++ b/src/video/cocoa_v.mm @@ -330,7 +330,21 @@ static const VkMapping _vk_mapping[] = { AS(QZ_KP_MINUS, WKC_NUM_MINUS), AS(QZ_KP_PLUS, WKC_NUM_PLUS), AS(QZ_KP_ENTER, WKC_NUM_ENTER), - AS(QZ_KP_PERIOD, WKC_NUM_DECIMAL) + AS(QZ_KP_PERIOD, WKC_NUM_DECIMAL), + + // Other non-letter keys + AS(QZ_SLASH, WKC_SLASH), + AS(QZ_SEMICOLON, WKC_SEMICOLON), + AS(QZ_EQUALS, WKC_EQUALS), + AS(QZ_LEFTBRACKET, WKC_L_BRACKET), + AS(QZ_BACKSLASH, WKC_BACKSLASH), + AS(QZ_RIGHTBRACKET, WKC_R_BRACKET), + + AS(QZ_QUOTE, WKC_SINGLEQUOTE), + AS(QZ_COMMA, WKC_COMMA), + AS(QZ_MINUS, WKC_MINUS), + AS(QZ_PERIOD, WKC_PERIOD) + }; diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index b6cc38a64e..61023965b0 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -276,7 +276,21 @@ static const VkMapping _vk_mapping[] = { AS(SDLK_KP_MINUS, WKC_NUM_MINUS), AS(SDLK_KP_PLUS, WKC_NUM_PLUS), AS(SDLK_KP_ENTER, WKC_NUM_ENTER), - AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL) + AS(SDLK_KP_PERIOD, WKC_NUM_DECIMAL), + + // Other non-letter keys + AS(SDLK_SLASH, WKC_SLASH), + AS(SDLK_SEMICOLON, WKC_SEMICOLON), + AS(SDLK_EQUALS, WKC_EQUALS), + AS(SDLK_LEFTBRACKET, WKC_L_BRACKET), + AS(SDLK_BACKSLASH, WKC_BACKSLASH), + AS(SDLK_RIGHTBRACKET, WKC_R_BRACKET), + + AS(SDLK_QUOTE, WKC_SINGLEQUOTE), + AS(SDLK_COMMA, WKC_COMMA), + AS(SDLK_MINUS, WKC_MINUS), + AS(SDLK_PERIOD, WKC_PERIOD) + }; static uint32 ConvertSdlKeyIntoMy(SDL_keysym *sym) diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index a1a9875658..6a7608705e 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -108,7 +108,20 @@ static const VkMapping _vk_mapping[] = { AS(VK_MULTIPLY, WKC_NUM_MUL), AS(VK_SUBTRACT, WKC_NUM_MINUS), AS(VK_ADD, WKC_NUM_PLUS), - AS(VK_DECIMAL, WKC_NUM_DECIMAL) + AS(VK_DECIMAL, WKC_NUM_DECIMAL), + + // Other non-letter keys + AS(0xBF, WKC_SLASH), + AS(0xBA, WKC_SEMICOLON), + AS(0xBB, WKC_EQUALS), + AS(0xDB, WKC_L_BRACKET), + AS(0xDC, WKC_BACKSLASH), + AS(0xDD, WKC_R_BRACKET), + + AS(0xDE, WKC_SINGLEQUOTE), + AS(0xBC, WKC_COMMA), + AS(0xBD, WKC_MINUS), + AS(0xBE, WKC_PERIOD) }; static uint MapWindowsKey(uint sym)