| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ash/accelerators/accelerator_table.h" | |
| 6 | |
| 7 #include "ash/common/strings/grit/ash_strings.h" | |
| 8 #include "base/macros.h" | |
| 9 | |
| 10 namespace ash { | |
| 11 | |
| 12 const int kDebugModifier = | |
| 13 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN; | |
| 14 | |
| 15 const AcceleratorData kAcceleratorData[] = { | |
| 16 {true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME}, | |
| 17 {false, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME}, | |
| 18 // Shortcuts for Japanese IME. | |
| 19 {true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME}, | |
| 20 {true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME}, | |
| 21 {true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME}, | |
| 22 {true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME}, | |
| 23 // Shortcut for Koren IME. | |
| 24 {true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME}, | |
| 25 | |
| 26 {true, ui::VKEY_TAB, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU}, | |
| 27 {true, ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | |
| 28 CYCLE_BACKWARD_MRU}, | |
| 29 {true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE, TOGGLE_OVERVIEW}, | |
| 30 #if defined(OS_CHROMEOS) | |
| 31 {true, ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, TOGGLE_APP_LIST}, | |
| 32 {true, ui::VKEY_WLAN, ui::EF_NONE, TOGGLE_WIFI}, | |
| 33 {true, ui::VKEY_KBD_BRIGHTNESS_DOWN, ui::EF_NONE, KEYBOARD_BRIGHTNESS_DOWN}, | |
| 34 {true, ui::VKEY_KBD_BRIGHTNESS_UP, ui::EF_NONE, KEYBOARD_BRIGHTNESS_UP}, | |
| 35 // Maximize button. | |
| 36 {true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN, TOGGLE_MIRROR_MODE}, | |
| 37 {true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN, SWAP_PRIMARY_DISPLAY}, | |
| 38 // Cycle windows button. | |
| 39 {true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT}, | |
| 40 {true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | |
| 41 TAKE_PARTIAL_SCREENSHOT}, | |
| 42 {true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, | |
| 43 TAKE_WINDOW_SCREENSHOT}, | |
| 44 {true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN}, | |
| 45 {true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN}, | |
| 46 {true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP}, | |
| 47 {true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP}, | |
| 48 {true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 49 MAGNIFY_SCREEN_ZOOM_OUT}, | |
| 50 {true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 51 MAGNIFY_SCREEN_ZOOM_IN}, | |
| 52 {true, ui::VKEY_L, ui::EF_COMMAND_DOWN, LOCK_SCREEN}, | |
| 53 {true, ui::VKEY_L, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, SUSPEND}, | |
| 54 // The lock key on Chrome OS keyboards produces F13 scancodes. | |
| 55 {true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED}, | |
| 56 {false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED}, | |
| 57 // Generic keyboards can use VKEY_SLEEP to mimic ChromeOS keyboard's lock | |
| 58 // key. | |
| 59 {true, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_PRESSED}, | |
| 60 {false, ui::VKEY_SLEEP, ui::EF_NONE, LOCK_RELEASED}, | |
| 61 {true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED}, | |
| 62 {false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED}, | |
| 63 {true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FILE_MANAGER}, | |
| 64 {true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN, OPEN_GET_HELP}, | |
| 65 {true, ui::VKEY_OEM_2, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | |
| 66 OPEN_GET_HELP}, | |
| 67 {true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH}, | |
| 68 {true, ui::VKEY_G, | |
| 69 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 70 DISABLE_GPU_WATCHDOG}, | |
| 71 {true, ui::VKEY_I, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 72 TOUCH_HUD_MODE_CHANGE}, | |
| 73 {true, ui::VKEY_I, | |
| 74 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, | |
| 75 TOUCH_HUD_CLEAR}, | |
| 76 {true, ui::VKEY_P, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 77 TOUCH_HUD_PROJECTION_TOGGLE}, | |
| 78 // Accessibility: Spoken feedback shortcuts. The first one is to toggle | |
| 79 // spoken feedback on or off. The others are only valid when | |
| 80 // spoken feedback is enabled. | |
| 81 {true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 82 TOGGLE_SPOKEN_FEEDBACK}, | |
| 83 {true, ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 84 SWITCH_TO_PREVIOUS_USER}, | |
| 85 {true, ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 86 SWITCH_TO_NEXT_USER}, | |
| 87 // Single shift release turns off caps lock. | |
| 88 {false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK}, | |
| 89 {false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK}, | |
| 90 {false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK}, | |
| 91 {false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK}, | |
| 92 {true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE}, | |
| 93 {true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN}, | |
| 94 {true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP}, | |
| 95 {true, ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, SHOW_TASK_MANAGER}, | |
| 96 {true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, NEXT_IME}, | |
| 97 #else | |
| 98 // This key has been deprecated on CrOS. It is instead included below in the | |
| 99 // |kDeprecatedAccelerators|, and above in the CrOS accelerators as | |
| 100 // Search+Esc. | |
| 101 {true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER}, | |
| 102 #endif // defined(OS_CHROMEOS) | |
| 103 {true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE}, | |
| 104 #if !defined(OS_WIN) | |
| 105 {true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT}, | |
| 106 #endif | |
| 107 {true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | |
| 108 NEW_INCOGNITO_WINDOW}, | |
| 109 {true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW}, | |
| 110 {true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB}, | |
| 111 {true, ui::VKEY_OEM_MINUS, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 112 SCALE_UI_UP}, | |
| 113 {true, ui::VKEY_OEM_PLUS, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 114 SCALE_UI_DOWN}, | |
| 115 {true, ui::VKEY_0, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, SCALE_UI_RESET}, | |
| 116 {true, ui::VKEY_BROWSER_REFRESH, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 117 ROTATE_SCREEN}, | |
| 118 {true, ui::VKEY_BROWSER_REFRESH, | |
| 119 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_WINDOW}, | |
| 120 {true, ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, RESTORE_TAB}, | |
| 121 {true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT}, | |
| 122 // On Chrome OS, Search key is mapped to LWIN. The Search key binding should | |
| 123 // act on release instead of press when using Search as a modifier key for | |
| 124 // extended keyboard shortcuts. | |
| 125 {false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST}, | |
| 126 {true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE, TOGGLE_FULLSCREEN}, | |
| 127 {true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_SHIFT_DOWN, TOGGLE_FULLSCREEN}, | |
| 128 {true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN | ui::EF_COMMAND_DOWN, UNPIN}, | |
| 129 {true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_SHELF}, | |
| 130 {true, ui::VKEY_HELP, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY}, | |
| 131 {true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 132 SHOW_KEYBOARD_OVERLAY}, | |
| 133 {true, ui::VKEY_OEM_2, | |
| 134 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 135 SHOW_KEYBOARD_OVERLAY}, | |
| 136 {true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY}, | |
| 137 {true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | |
| 138 SHOW_MESSAGE_CENTER_BUBBLE}, | |
| 139 {true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | |
| 140 SHOW_SYSTEM_TRAY_BUBBLE}, | |
| 141 {true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0}, | |
| 142 {true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1}, | |
| 143 {true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2}, | |
| 144 {true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3}, | |
| 145 {true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4}, | |
| 146 {true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5}, | |
| 147 {true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6}, | |
| 148 {true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7}, | |
| 149 {true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP}, | |
| 150 | |
| 151 // Window management shortcuts. | |
| 152 {true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_CYCLE_SNAP_DOCK_LEFT}, | |
| 153 {true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_CYCLE_SNAP_DOCK_RIGHT}, | |
| 154 {true, ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN, WINDOW_MINIMIZE}, | |
| 155 {true, ui::VKEY_OEM_PLUS, ui::EF_ALT_DOWN, TOGGLE_MAXIMIZED}, | |
| 156 {true, ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, | |
| 157 WINDOW_POSITION_CENTER}, | |
| 158 {true, ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN, FOCUS_NEXT_PANE}, | |
| 159 {true, ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN, FOCUS_PREVIOUS_PANE}, | |
| 160 | |
| 161 // Media Player shortcuts. | |
| 162 {true, ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE, MEDIA_NEXT_TRACK}, | |
| 163 {true, ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE, MEDIA_PLAY_PAUSE}, | |
| 164 {true, ui::VKEY_MEDIA_PREV_TRACK, ui::EF_NONE, MEDIA_PREV_TRACK}, | |
| 165 | |
| 166 // Debugging shortcuts that need to be available to end-users in | |
| 167 // release builds. | |
| 168 {true, ui::VKEY_U, kDebugModifier, PRINT_UI_HIERARCHIES}, | |
| 169 | |
| 170 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and | |
| 171 // VKEY_MEDIA_LAUNCH_MAIL. | |
| 172 }; | |
| 173 | |
| 174 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); | |
| 175 | |
| 176 // Instructions for how to deprecate and replace an Accelerator: | |
| 177 // | |
| 178 // 1- Replace the old deprecated accelerator from the above list with the new | |
| 179 // accelerator that will take its place. | |
| 180 // 2- Add an entry for it in the following |kDeprecatedAccelerators| list. | |
| 181 // 3- Add another entry in the |kDeprecatedAcceleratorsData|. | |
| 182 // 4- That entry should contain the following: | |
| 183 // - The action that the deprecated accelerator maps to. | |
| 184 // - Define a histogram for this action in |histograms.xml| in the form | |
| 185 // "Ash.Accelerators.Deprecated.{ActionName}" and include the name of this | |
| 186 // histogram in this entry. This name will be used as the ID of the | |
| 187 // notification to be shown to the user. This is to prevent duplication of | |
| 188 // same notification. | |
| 189 // - The ID of the localized notification message to give the users telling | |
| 190 // them about the deprecation (Add one in |ash_chromeos_strings.grdp|. | |
| 191 // Search for the comment <!-- Deprecated Accelerators Messages -->). | |
| 192 // - The IDs of the localized old and new shortcut text to be used to fill | |
| 193 // the notification text. Also found in |ash_chromeos_strings.grdp|. | |
| 194 // - {true or false} whether the deprecated accelerator is still enabled (we | |
| 195 // don't disable a deprecated accelerator abruptly). | |
| 196 // 5- Don't forget to update the keyboard overlay. Find 'shortcut' in the file | |
| 197 // keyboard_overlay_data.js. | |
| 198 #if defined(OS_CHROMEOS) | |
| 199 | |
| 200 const AcceleratorData kDeprecatedAccelerators[] = { | |
| 201 {true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN}, | |
| 202 {true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER}, | |
| 203 {false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME}, | |
| 204 {false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME}, | |
| 205 {false, ui::VKEY_RMENU, ui::EF_SHIFT_DOWN, NEXT_IME}, | |
| 206 {false, ui::VKEY_LSHIFT, ui::EF_ALT_DOWN, NEXT_IME}, | |
| 207 {false, ui::VKEY_SHIFT, ui::EF_ALT_DOWN, NEXT_IME}, | |
| 208 {false, ui::VKEY_RSHIFT, ui::EF_ALT_DOWN, NEXT_IME}, | |
| 209 }; | |
| 210 | |
| 211 const size_t kDeprecatedAcceleratorsLength = arraysize(kDeprecatedAccelerators); | |
| 212 | |
| 213 const DeprecatedAcceleratorData kDeprecatedAcceleratorsData[] = { | |
| 214 {LOCK_SCREEN, "Ash.Accelerators.Deprecated.LockScreen", | |
| 215 IDS_DEPRECATED_LOCK_SCREEN_MSG, IDS_SHORTCUT_LOCK_SCREEN_OLD, | |
| 216 IDS_SHORTCUT_LOCK_SCREEN_NEW, true}, | |
| 217 {SHOW_TASK_MANAGER, "Ash.Accelerators.Deprecated.ShowTaskManager", | |
| 218 IDS_DEPRECATED_SHOW_TASK_MANAGER_MSG, IDS_SHORTCUT_TASK_MANAGER_OLD, | |
| 219 IDS_SHORTCUT_TASK_MANAGER_NEW, true}, | |
| 220 { | |
| 221 NEXT_IME, "Ash.Accelerators.Deprecated.NextIME", | |
| 222 IDS_DEPRECATED_NEXT_IME_MSG, IDS_SHORTCUT_NEXT_IME_OLD, | |
| 223 IDS_SHORTCUT_NEXT_IME_NEW, | |
| 224 false // Old accelerator has been disabled. | |
| 225 }}; | |
| 226 | |
| 227 const size_t kDeprecatedAcceleratorsDataLength = | |
| 228 arraysize(kDeprecatedAcceleratorsData); | |
| 229 | |
| 230 #endif // defined(OS_CHROMEOS) | |
| 231 | |
| 232 const AcceleratorData kDebugAcceleratorData[] = { | |
| 233 #if defined(OS_CHROMEOS) | |
| 234 // Extra shortcut for debug build to control magnifier on linux desktop. | |
| 235 {true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN, | |
| 236 MAGNIFY_SCREEN_ZOOM_OUT}, | |
| 237 {true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN}, | |
| 238 // Extra shortcuts to lock the screen on linux desktop. | |
| 239 {true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_PRESSED}, | |
| 240 {false, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_RELEASED}, | |
| 241 {true, ui::VKEY_P, ui::EF_ALT_DOWN, POWER_PRESSED}, | |
| 242 {false, ui::VKEY_P, ui::EF_ALT_DOWN, POWER_RELEASED}, | |
| 243 {true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED}, | |
| 244 {false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED}, | |
| 245 {true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 246 DEBUG_ADD_REMOVE_DISPLAY}, | |
| 247 {true, ui::VKEY_O, kDebugModifier, DEBUG_SHOW_TOAST}, | |
| 248 {true, ui::VKEY_J, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 249 DEBUG_TOGGLE_UNIFIED_DESKTOP}, | |
| 250 {true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | |
| 251 TOGGLE_MIRROR_MODE}, | |
| 252 {true, ui::VKEY_P, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, | |
| 253 DEBUG_TOGGLE_TOUCH_PAD}, | |
| 254 {true, ui::VKEY_T, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, | |
| 255 DEBUG_TOGGLE_TOUCH_SCREEN}, | |
| 256 {true, ui::VKEY_T, kDebugModifier, DEBUG_TOGGLE_TOUCH_VIEW}, | |
| 257 {true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI}, | |
| 258 // Extra shortcut for display swapping as alt-f4 is taken on linux desktop. | |
| 259 {true, ui::VKEY_S, kDebugModifier, SWAP_PRIMARY_DISPLAY}, | |
| 260 #endif | |
| 261 // Extra shortcut to rotate/scale up/down the screen on linux desktop. | |
| 262 {true, ui::VKEY_R, | |
| 263 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_SCREEN}, | |
| 264 // For testing on systems where Alt-Tab is already mapped. | |
| 265 {true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU}, | |
| 266 {true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, | |
| 267 DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN}, | |
| 268 {true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU}, | |
| 269 {true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
| 270 DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE}, | |
| 271 {true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | |
| 272 TOGGLE_FULLSCREEN}, | |
| 273 {true, ui::VKEY_L, kDebugModifier, DEBUG_PRINT_LAYER_HIERARCHY}, | |
| 274 {true, ui::VKEY_V, kDebugModifier, DEBUG_PRINT_VIEW_HIERARCHY}, | |
| 275 {true, ui::VKEY_W, kDebugModifier, DEBUG_PRINT_WINDOW_HIERARCHY}, | |
| 276 {true, ui::VKEY_D, kDebugModifier, DEBUG_TOGGLE_DEVICE_SCALE_FACTOR}, | |
| 277 {true, ui::VKEY_B, kDebugModifier, DEBUG_TOGGLE_SHOW_DEBUG_BORDERS}, | |
| 278 {true, ui::VKEY_F, kDebugModifier, DEBUG_TOGGLE_SHOW_FPS_COUNTER}, | |
| 279 {true, ui::VKEY_P, kDebugModifier, DEBUG_TOGGLE_SHOW_PAINT_RECTS}, | |
| 280 }; | |
| 281 | |
| 282 const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData); | |
| 283 | |
| 284 const AcceleratorAction kPreferredActions[] = { | |
| 285 // Window cycling accelerators. | |
| 286 CYCLE_BACKWARD_MRU, // Shift+Alt+Tab | |
| 287 CYCLE_FORWARD_MRU, // Alt+Tab | |
| 288 }; | |
| 289 | |
| 290 const size_t kPreferredActionsLength = arraysize(kPreferredActions); | |
| 291 | |
| 292 const AcceleratorAction kReservedActions[] = { | |
| 293 #if defined(OS_CHROMEOS) | |
| 294 POWER_PRESSED, POWER_RELEASED, SUSPEND, | |
| 295 #else | |
| 296 DUMMY_FOR_RESERVED, | |
| 297 #endif | |
| 298 }; | |
| 299 | |
| 300 const size_t kReservedActionsLength = arraysize(kReservedActions); | |
| 301 | |
| 302 const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = { | |
| 303 DEBUG_PRINT_LAYER_HIERARCHY, | |
| 304 DEBUG_PRINT_VIEW_HIERARCHY, | |
| 305 DEBUG_PRINT_WINDOW_HIERARCHY, | |
| 306 MAGNIFY_SCREEN_ZOOM_IN, // Control+F7 | |
| 307 MAGNIFY_SCREEN_ZOOM_OUT, // Control+F6 | |
| 308 NEXT_IME, | |
| 309 PREVIOUS_IME, | |
| 310 PRINT_UI_HIERARCHIES, | |
| 311 ROTATE_SCREEN, | |
| 312 SCALE_UI_UP, | |
| 313 SCALE_UI_DOWN, | |
| 314 SCALE_UI_RESET, | |
| 315 SHOW_SYSTEM_TRAY_BUBBLE, | |
| 316 SWITCH_IME, // Switch to another IME depending on the accelerator. | |
| 317 TAKE_WINDOW_SCREENSHOT, | |
| 318 TAKE_PARTIAL_SCREENSHOT, | |
| 319 TAKE_SCREENSHOT, | |
| 320 #if defined(OS_CHROMEOS) | |
| 321 BRIGHTNESS_DOWN, | |
| 322 BRIGHTNESS_UP, | |
| 323 DEBUG_ADD_REMOVE_DISPLAY, | |
| 324 DEBUG_TOGGLE_TOUCH_PAD, | |
| 325 DEBUG_TOGGLE_TOUCH_SCREEN, | |
| 326 DEBUG_TOGGLE_TOUCH_VIEW, | |
| 327 DISABLE_CAPS_LOCK, | |
| 328 DISABLE_GPU_WATCHDOG, | |
| 329 KEYBOARD_BRIGHTNESS_DOWN, | |
| 330 KEYBOARD_BRIGHTNESS_UP, | |
| 331 TOGGLE_CAPS_LOCK, | |
| 332 TOGGLE_SPOKEN_FEEDBACK, | |
| 333 TOGGLE_MIRROR_MODE, | |
| 334 TOGGLE_WIFI, | |
| 335 TOUCH_HUD_CLEAR, | |
| 336 VOLUME_DOWN, | |
| 337 VOLUME_MUTE, | |
| 338 VOLUME_UP, | |
| 339 #endif | |
| 340 #if defined(OS_CHROMEOS) && !defined(NDEBUG) | |
| 341 POWER_PRESSED, | |
| 342 POWER_RELEASED, | |
| 343 #endif // defined(OS_CHROMEOS) | |
| 344 }; | |
| 345 | |
| 346 const size_t kActionsAllowedAtLoginOrLockScreenLength = | |
| 347 arraysize(kActionsAllowedAtLoginOrLockScreen); | |
| 348 | |
| 349 const AcceleratorAction kActionsAllowedAtLockScreen[] = { | |
| 350 EXIT, | |
| 351 #if defined(OS_CHROMEOS) | |
| 352 SUSPEND, | |
| 353 #endif // defined(OS_CHROMEOS) | |
| 354 }; | |
| 355 | |
| 356 const size_t kActionsAllowedAtLockScreenLength = | |
| 357 arraysize(kActionsAllowedAtLockScreen); | |
| 358 | |
| 359 const AcceleratorAction kActionsAllowedAtModalWindow[] = { | |
| 360 EXIT, | |
| 361 MAGNIFY_SCREEN_ZOOM_IN, | |
| 362 MAGNIFY_SCREEN_ZOOM_OUT, | |
| 363 MEDIA_NEXT_TRACK, | |
| 364 MEDIA_PLAY_PAUSE, | |
| 365 MEDIA_PREV_TRACK, | |
| 366 NEXT_IME, | |
| 367 OPEN_FEEDBACK_PAGE, | |
| 368 PREVIOUS_IME, | |
| 369 PRINT_UI_HIERARCHIES, | |
| 370 ROTATE_SCREEN, | |
| 371 SCALE_UI_UP, | |
| 372 SCALE_UI_DOWN, | |
| 373 SCALE_UI_RESET, | |
| 374 SHOW_KEYBOARD_OVERLAY, | |
| 375 SWITCH_IME, | |
| 376 TAKE_WINDOW_SCREENSHOT, | |
| 377 TAKE_PARTIAL_SCREENSHOT, | |
| 378 TAKE_SCREENSHOT, | |
| 379 #if defined(OS_CHROMEOS) | |
| 380 BRIGHTNESS_DOWN, | |
| 381 BRIGHTNESS_UP, | |
| 382 DEBUG_ADD_REMOVE_DISPLAY, | |
| 383 DEBUG_TOGGLE_TOUCH_PAD, | |
| 384 DEBUG_TOGGLE_TOUCH_SCREEN, | |
| 385 DISABLE_CAPS_LOCK, | |
| 386 KEYBOARD_BRIGHTNESS_DOWN, | |
| 387 KEYBOARD_BRIGHTNESS_UP, | |
| 388 LOCK_SCREEN, | |
| 389 POWER_PRESSED, | |
| 390 POWER_RELEASED, | |
| 391 SUSPEND, | |
| 392 SWAP_PRIMARY_DISPLAY, | |
| 393 TOGGLE_CAPS_LOCK, | |
| 394 TOGGLE_MIRROR_MODE, | |
| 395 TOGGLE_SPOKEN_FEEDBACK, | |
| 396 TOGGLE_WIFI, | |
| 397 VOLUME_DOWN, | |
| 398 VOLUME_MUTE, | |
| 399 VOLUME_UP, | |
| 400 #endif | |
| 401 }; | |
| 402 | |
| 403 const size_t kActionsAllowedAtModalWindowLength = | |
| 404 arraysize(kActionsAllowedAtModalWindow); | |
| 405 | |
| 406 const AcceleratorAction kRepeatableActions[] = { | |
| 407 FOCUS_NEXT_PANE, | |
| 408 FOCUS_PREVIOUS_PANE, | |
| 409 MAGNIFY_SCREEN_ZOOM_IN, | |
| 410 MAGNIFY_SCREEN_ZOOM_OUT, | |
| 411 MEDIA_NEXT_TRACK, | |
| 412 MEDIA_PREV_TRACK, | |
| 413 RESTORE_TAB, | |
| 414 #if defined(OS_CHROMEOS) | |
| 415 BRIGHTNESS_DOWN, | |
| 416 BRIGHTNESS_UP, | |
| 417 KEYBOARD_BRIGHTNESS_DOWN, | |
| 418 KEYBOARD_BRIGHTNESS_UP, | |
| 419 VOLUME_DOWN, | |
| 420 VOLUME_UP, | |
| 421 #endif // defined(OS_CHROMEOS) | |
| 422 }; | |
| 423 | |
| 424 const size_t kRepeatableActionsLength = arraysize(kRepeatableActions); | |
| 425 | |
| 426 const AcceleratorAction kActionsAllowedInAppModeOrPinnedMode[] = { | |
| 427 DEBUG_PRINT_LAYER_HIERARCHY, | |
| 428 DEBUG_PRINT_VIEW_HIERARCHY, | |
| 429 DEBUG_PRINT_WINDOW_HIERARCHY, | |
| 430 MAGNIFY_SCREEN_ZOOM_IN, // Control+F7 | |
| 431 MAGNIFY_SCREEN_ZOOM_OUT, // Control+F6 | |
| 432 MEDIA_NEXT_TRACK, | |
| 433 MEDIA_PLAY_PAUSE, | |
| 434 MEDIA_PREV_TRACK, | |
| 435 NEXT_IME, | |
| 436 PREVIOUS_IME, | |
| 437 PRINT_UI_HIERARCHIES, | |
| 438 ROTATE_SCREEN, | |
| 439 SCALE_UI_DOWN, | |
| 440 SCALE_UI_RESET, | |
| 441 SCALE_UI_UP, | |
| 442 SWITCH_IME, // Switch to another IME depending on the accelerator. | |
| 443 #if defined(OS_CHROMEOS) | |
| 444 BRIGHTNESS_DOWN, | |
| 445 BRIGHTNESS_UP, | |
| 446 DEBUG_ADD_REMOVE_DISPLAY, | |
| 447 DEBUG_TOGGLE_TOUCH_PAD, | |
| 448 DEBUG_TOGGLE_TOUCH_SCREEN, | |
| 449 DISABLE_CAPS_LOCK, | |
| 450 DISABLE_GPU_WATCHDOG, | |
| 451 KEYBOARD_BRIGHTNESS_DOWN, | |
| 452 KEYBOARD_BRIGHTNESS_UP, | |
| 453 POWER_PRESSED, | |
| 454 POWER_RELEASED, | |
| 455 SWAP_PRIMARY_DISPLAY, | |
| 456 TOGGLE_CAPS_LOCK, | |
| 457 TOGGLE_MIRROR_MODE, | |
| 458 TOGGLE_SPOKEN_FEEDBACK, | |
| 459 TOGGLE_WIFI, | |
| 460 TOUCH_HUD_CLEAR, | |
| 461 VOLUME_DOWN, | |
| 462 VOLUME_MUTE, | |
| 463 VOLUME_UP, | |
| 464 #endif // defined(OS_CHROMEOS) | |
| 465 }; | |
| 466 | |
| 467 const size_t kActionsAllowedInAppModeOrPinnedModeLength = | |
| 468 arraysize(kActionsAllowedInAppModeOrPinnedMode); | |
| 469 | |
| 470 const AcceleratorAction kActionsAllowedInPinnedMode[] = { | |
| 471 TAKE_WINDOW_SCREENSHOT, | |
| 472 TAKE_PARTIAL_SCREENSHOT, | |
| 473 TAKE_SCREENSHOT, | |
| 474 UNPIN, | |
| 475 #if defined(OS_CHROMEOS) | |
| 476 LOCK_SCREEN, | |
| 477 SUSPEND, | |
| 478 #endif | |
| 479 }; | |
| 480 | |
| 481 const size_t kActionsAllowedInPinnedModeLength = | |
| 482 arraysize(kActionsAllowedInPinnedMode); | |
| 483 | |
| 484 const AcceleratorAction kActionsNeedingWindow[] = { | |
| 485 CYCLE_BACKWARD_MRU, | |
| 486 CYCLE_FORWARD_MRU, | |
| 487 TOGGLE_OVERVIEW, | |
| 488 WINDOW_CYCLE_SNAP_DOCK_LEFT, | |
| 489 WINDOW_CYCLE_SNAP_DOCK_RIGHT, | |
| 490 WINDOW_MINIMIZE, | |
| 491 TOGGLE_FULLSCREEN, | |
| 492 TOGGLE_MAXIMIZED, | |
| 493 WINDOW_POSITION_CENTER, | |
| 494 ROTATE_WINDOW, | |
| 495 }; | |
| 496 | |
| 497 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow); | |
| 498 | |
| 499 const AcceleratorAction kActionsKeepingMenuOpen[] = { | |
| 500 MEDIA_NEXT_TRACK, | |
| 501 MEDIA_PLAY_PAUSE, | |
| 502 MEDIA_PREV_TRACK, | |
| 503 NEXT_IME, | |
| 504 PREVIOUS_IME, | |
| 505 PRINT_UI_HIERARCHIES, | |
| 506 SWITCH_IME, | |
| 507 TAKE_WINDOW_SCREENSHOT, | |
| 508 TAKE_PARTIAL_SCREENSHOT, | |
| 509 TAKE_SCREENSHOT, | |
| 510 #if defined(OS_CHROMEOS) | |
| 511 BRIGHTNESS_DOWN, | |
| 512 BRIGHTNESS_UP, | |
| 513 DEBUG_TOGGLE_TOUCH_PAD, | |
| 514 DEBUG_TOGGLE_TOUCH_SCREEN, | |
| 515 DISABLE_CAPS_LOCK, | |
| 516 KEYBOARD_BRIGHTNESS_DOWN, | |
| 517 KEYBOARD_BRIGHTNESS_UP, | |
| 518 TOGGLE_CAPS_LOCK, | |
| 519 TOGGLE_SPOKEN_FEEDBACK, | |
| 520 TOGGLE_WIFI, | |
| 521 VOLUME_DOWN, | |
| 522 VOLUME_MUTE, | |
| 523 VOLUME_UP, | |
| 524 #endif // defined(OS_CHROMEOS) | |
| 525 }; | |
| 526 | |
| 527 const size_t kActionsKeepingMenuOpenLength = arraysize(kActionsKeepingMenuOpen); | |
| 528 | |
| 529 } // namespace ash | |
| OLD | NEW |