| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/accelerator_table.h" | 5 #include "chrome/browser/ui/views/accelerator_table.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
| 9 #include "ui/base/accelerators/accelerator.h" | 9 #include "ui/base/accelerators/accelerator.h" |
| 10 #include "ui/events/event_constants.h" | 10 #include "ui/events/event_constants.h" |
| 11 | 11 |
| 12 #if defined(USE_ASH) | 12 #if defined(USE_ASH) |
| 13 #include "ash/accelerators/accelerator_table.h" | 13 #include "ash/accelerators/accelerator_table.h" |
| 14 #endif | 14 #endif |
| 15 | 15 |
| 16 namespace chrome { | 16 namespace chrome { |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 // For many commands, the Mac equivalent uses Cmd instead of Ctrl. We only need |
| 20 // to list the ones that do not have a key equivalent in the main menu, i.e. |
| 21 // only the ones in global_keyboard_shortcuts_mac.mm. |
| 22 // TODO(jackhou): If-def out the accelerators that should not be on Mac. |
| 23 #if defined(OS_MACOSX) |
| 24 const ui::EventFlags kPlatformModifier = ui::EF_COMMAND_DOWN; |
| 25 #else |
| 26 const ui::EventFlags kPlatformModifier = ui::EF_CONTROL_DOWN; |
| 27 #endif |
| 28 |
| 19 // NOTE: Keep this list in the same (mostly-alphabetical) order as | 29 // NOTE: Keep this list in the same (mostly-alphabetical) order as |
| 20 // the Windows accelerators in ../../app/chrome_dll.rc. | 30 // the Windows accelerators in ../../app/chrome_dll.rc. |
| 21 // Do not use Ctrl-Alt as a shortcut modifier, as it is used by i18n keyboards: | 31 // Do not use Ctrl-Alt as a shortcut modifier, as it is used by i18n keyboards: |
| 22 // http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx | 32 // http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx |
| 23 const AcceleratorMapping kAcceleratorMap[] = { | 33 const AcceleratorMapping kAcceleratorMap[] = { |
| 24 { ui::VKEY_LEFT, ui::EF_ALT_DOWN, IDC_BACK }, | 34 { ui::VKEY_LEFT, ui::EF_ALT_DOWN, IDC_BACK }, |
| 25 { ui::VKEY_BACK, ui::EF_NONE, IDC_BACK }, | 35 { ui::VKEY_BACK, ui::EF_NONE, IDC_BACK }, |
| 26 { ui::VKEY_D, ui::EF_CONTROL_DOWN, IDC_BOOKMARK_PAGE }, | 36 { ui::VKEY_D, ui::EF_CONTROL_DOWN, IDC_BOOKMARK_PAGE }, |
| 27 { ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 37 { ui::VKEY_D, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 28 IDC_BOOKMARK_ALL_TABS }, | 38 IDC_BOOKMARK_ALL_TABS }, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 49 { ui::VKEY_O, ui::EF_CONTROL_DOWN, IDC_OPEN_FILE }, | 59 { ui::VKEY_O, ui::EF_CONTROL_DOWN, IDC_OPEN_FILE }, |
| 50 { ui::VKEY_P, ui::EF_CONTROL_DOWN, IDC_PRINT}, | 60 { ui::VKEY_P, ui::EF_CONTROL_DOWN, IDC_PRINT}, |
| 51 #if defined(ENABLE_BASIC_PRINTING) | 61 #if defined(ENABLE_BASIC_PRINTING) |
| 52 { ui::VKEY_P, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_BASIC_PRINT}, | 62 { ui::VKEY_P, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_BASIC_PRINT}, |
| 53 #endif // ENABLE_BASIC_PRINTING | 63 #endif // ENABLE_BASIC_PRINTING |
| 54 { ui::VKEY_R, ui::EF_CONTROL_DOWN, IDC_RELOAD }, | 64 { ui::VKEY_R, ui::EF_CONTROL_DOWN, IDC_RELOAD }, |
| 55 { ui::VKEY_R, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 65 { ui::VKEY_R, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 56 IDC_RELOAD_IGNORING_CACHE }, | 66 IDC_RELOAD_IGNORING_CACHE }, |
| 57 { ui::VKEY_HOME, ui::EF_ALT_DOWN, IDC_HOME }, | 67 { ui::VKEY_HOME, ui::EF_ALT_DOWN, IDC_HOME }, |
| 58 { ui::VKEY_S, ui::EF_CONTROL_DOWN, IDC_SAVE_PAGE }, | 68 { ui::VKEY_S, ui::EF_CONTROL_DOWN, IDC_SAVE_PAGE }, |
| 59 { ui::VKEY_9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB }, | 69 { ui::VKEY_9, kPlatformModifier, IDC_SELECT_LAST_TAB }, |
| 60 { ui::VKEY_NUMPAD9, ui::EF_CONTROL_DOWN, IDC_SELECT_LAST_TAB }, | 70 { ui::VKEY_NUMPAD9, kPlatformModifier, IDC_SELECT_LAST_TAB }, |
| 61 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 71 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 62 { ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB }, | 72 { ui::VKEY_9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB }, |
| 63 { ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB }, | 73 { ui::VKEY_NUMPAD9, ui::EF_ALT_DOWN, IDC_SELECT_LAST_TAB }, |
| 64 { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT }, | 74 { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, IDC_MOVE_TAB_NEXT }, |
| 65 { ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | 75 { ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, |
| 66 IDC_MOVE_TAB_PREVIOUS }, | 76 IDC_MOVE_TAB_PREVIOUS }, |
| 67 #endif | 77 #endif |
| 68 { ui::VKEY_TAB, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, | 78 { ui::VKEY_TAB, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, |
| 69 { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, | 79 { ui::VKEY_NEXT, ui::EF_CONTROL_DOWN, IDC_SELECT_NEXT_TAB }, |
| 70 { ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 80 { ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 71 IDC_SELECT_PREVIOUS_TAB }, | 81 IDC_SELECT_PREVIOUS_TAB }, |
| 72 { ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN, IDC_SELECT_PREVIOUS_TAB }, | 82 { ui::VKEY_PRIOR, ui::EF_CONTROL_DOWN, IDC_SELECT_PREVIOUS_TAB }, |
| 73 { ui::VKEY_1, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_0 }, | 83 { ui::VKEY_1, kPlatformModifier, IDC_SELECT_TAB_0 }, |
| 74 { ui::VKEY_NUMPAD1, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_0 }, | 84 { ui::VKEY_NUMPAD1, kPlatformModifier, IDC_SELECT_TAB_0 }, |
| 75 { ui::VKEY_2, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_1 }, | 85 { ui::VKEY_2, kPlatformModifier, IDC_SELECT_TAB_1 }, |
| 76 { ui::VKEY_NUMPAD2, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_1 }, | 86 { ui::VKEY_NUMPAD2, kPlatformModifier, IDC_SELECT_TAB_1 }, |
| 77 { ui::VKEY_3, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_2 }, | 87 { ui::VKEY_3, kPlatformModifier, IDC_SELECT_TAB_2 }, |
| 78 { ui::VKEY_NUMPAD3, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_2 }, | 88 { ui::VKEY_NUMPAD3, kPlatformModifier, IDC_SELECT_TAB_2 }, |
| 79 { ui::VKEY_4, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_3 }, | 89 { ui::VKEY_4, kPlatformModifier, IDC_SELECT_TAB_3 }, |
| 80 { ui::VKEY_NUMPAD4, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_3 }, | 90 { ui::VKEY_NUMPAD4, kPlatformModifier, IDC_SELECT_TAB_3 }, |
| 81 { ui::VKEY_5, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_4 }, | 91 { ui::VKEY_5, kPlatformModifier, IDC_SELECT_TAB_4 }, |
| 82 { ui::VKEY_NUMPAD5, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_4 }, | 92 { ui::VKEY_NUMPAD5, kPlatformModifier, IDC_SELECT_TAB_4 }, |
| 83 { ui::VKEY_6, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_5 }, | 93 { ui::VKEY_6, kPlatformModifier, IDC_SELECT_TAB_5 }, |
| 84 { ui::VKEY_NUMPAD6, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_5 }, | 94 { ui::VKEY_NUMPAD6, kPlatformModifier, IDC_SELECT_TAB_5 }, |
| 85 { ui::VKEY_7, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_6 }, | 95 { ui::VKEY_7, kPlatformModifier, IDC_SELECT_TAB_6 }, |
| 86 { ui::VKEY_NUMPAD7, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_6 }, | 96 { ui::VKEY_NUMPAD7, kPlatformModifier, IDC_SELECT_TAB_6 }, |
| 87 { ui::VKEY_8, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_7 }, | 97 { ui::VKEY_8, kPlatformModifier, IDC_SELECT_TAB_7 }, |
| 88 { ui::VKEY_NUMPAD8, ui::EF_CONTROL_DOWN, IDC_SELECT_TAB_7 }, | 98 { ui::VKEY_NUMPAD8, kPlatformModifier, IDC_SELECT_TAB_7 }, |
| 89 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 99 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| 90 { ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 }, | 100 { ui::VKEY_1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 }, |
| 91 { ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 }, | 101 { ui::VKEY_NUMPAD1, ui::EF_ALT_DOWN, IDC_SELECT_TAB_0 }, |
| 92 { ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1 }, | 102 { ui::VKEY_2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1 }, |
| 93 { ui::VKEY_NUMPAD2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1 }, | 103 { ui::VKEY_NUMPAD2, ui::EF_ALT_DOWN, IDC_SELECT_TAB_1 }, |
| 94 { ui::VKEY_3, ui::EF_ALT_DOWN, IDC_SELECT_TAB_2 }, | 104 { ui::VKEY_3, ui::EF_ALT_DOWN, IDC_SELECT_TAB_2 }, |
| 95 { ui::VKEY_NUMPAD3, ui::EF_ALT_DOWN, IDC_SELECT_TAB_2 }, | 105 { ui::VKEY_NUMPAD3, ui::EF_ALT_DOWN, IDC_SELECT_TAB_2 }, |
| 96 { ui::VKEY_4, ui::EF_ALT_DOWN, IDC_SELECT_TAB_3 }, | 106 { ui::VKEY_4, ui::EF_ALT_DOWN, IDC_SELECT_TAB_3 }, |
| 97 { ui::VKEY_NUMPAD4, ui::EF_ALT_DOWN, IDC_SELECT_TAB_3 }, | 107 { ui::VKEY_NUMPAD4, ui::EF_ALT_DOWN, IDC_SELECT_TAB_3 }, |
| 98 { ui::VKEY_5, ui::EF_ALT_DOWN, IDC_SELECT_TAB_4 }, | 108 { ui::VKEY_5, ui::EF_ALT_DOWN, IDC_SELECT_TAB_4 }, |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 IDC_TOUCH_HUD_PROJECTION_TOGGLE }, | 170 IDC_TOUCH_HUD_PROJECTION_TOGGLE }, |
| 161 #else // OS_CHROMEOS | 171 #else // OS_CHROMEOS |
| 162 { ui::VKEY_DELETE, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 172 { ui::VKEY_DELETE, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 163 IDC_CLEAR_BROWSING_DATA }, | 173 IDC_CLEAR_BROWSING_DATA }, |
| 164 { ui::VKEY_LMENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, | 174 { ui::VKEY_LMENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, |
| 165 { ui::VKEY_MENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, | 175 { ui::VKEY_MENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, |
| 166 { ui::VKEY_RMENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, | 176 { ui::VKEY_RMENU, ui::EF_NONE, IDC_FOCUS_MENU_BAR }, |
| 167 // On Windows, all VKEY_BROWSER_* keys except VKEY_BROWSER_SEARCH are handled | 177 // On Windows, all VKEY_BROWSER_* keys except VKEY_BROWSER_SEARCH are handled |
| 168 // via WM_APPCOMMAND. | 178 // via WM_APPCOMMAND. |
| 169 { ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, IDC_FOCUS_SEARCH }, | 179 { ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, IDC_FOCUS_SEARCH }, |
| 170 { ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_SHOW_AVATAR_MENU}, | 180 { ui::VKEY_M, ui::EF_SHIFT_DOWN | kPlatformModifier, IDC_SHOW_AVATAR_MENU}, |
| 171 // On ChromeOS, these keys are assigned to change UI scale. | 181 // On ChromeOS, these keys are assigned to change UI scale. |
| 172 { ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_ZOOM_PLUS }, | 182 { ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_ZOOM_PLUS }, |
| 173 { ui::VKEY_OEM_MINUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 183 { ui::VKEY_OEM_MINUS, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
| 174 IDC_ZOOM_MINUS }, | 184 IDC_ZOOM_MINUS }, |
| 175 // For each entry here add an entry into kChromeCmdId2AshActionId below | 185 // For each entry here add an entry into kChromeCmdId2AshActionId below |
| 176 // if Ash has a corresponding accelerator. | 186 // if Ash has a corresponding accelerator. |
| 177 #if defined(GOOGLE_CHROME_BUILD) | 187 #if defined(GOOGLE_CHROME_BUILD) |
| 178 { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FEEDBACK }, | 188 { ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, IDC_FEEDBACK }, |
| 179 #endif | 189 #endif |
| 180 { ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT }, | 190 { ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, IDC_EXIT }, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 *accelerator = ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN); | 264 *accelerator = ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN); |
| 255 return true; | 265 return true; |
| 256 case IDC_PASTE: | 266 case IDC_PASTE: |
| 257 *accelerator = ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN); | 267 *accelerator = ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN); |
| 258 return true; | 268 return true; |
| 259 } | 269 } |
| 260 return false; | 270 return false; |
| 261 } | 271 } |
| 262 | 272 |
| 263 } // namespace chrome | 273 } // namespace chrome |
| OLD | NEW |