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 "ash/accelerators/accelerator_table.h" | 5 #include "ash/accelerators/accelerator_table.h" |
6 | 6 |
7 #include "ash/strings/grit/ash_strings.h" | 7 #include "ash/strings/grit/ash_strings.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 | 9 |
10 namespace ash { | 10 namespace ash { |
11 | 11 |
| 12 const int kDebugModifier = |
| 13 ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN; |
| 14 |
12 const AcceleratorData kAcceleratorData[] = { | 15 const AcceleratorData kAcceleratorData[] = { |
13 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, | 16 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, |
14 { false, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, | 17 { false, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME }, |
15 // Shortcuts for Japanese IME. | 18 // Shortcuts for Japanese IME. |
16 { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME }, | 19 { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME }, |
17 { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME }, | 20 { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME }, |
18 { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME }, | 21 { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME }, |
19 { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME }, | 22 { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME }, |
20 // Shortcut for Koren IME. | 23 // Shortcut for Koren IME. |
21 { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME }, | 24 { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME }, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 TOUCH_HUD_PROJECTION_TOGGLE }, | 75 TOUCH_HUD_PROJECTION_TOGGLE }, |
73 // Accessibility: Spoken feedback shortcuts. The first one is to toggle | 76 // Accessibility: Spoken feedback shortcuts. The first one is to toggle |
74 // spoken feedback on or off. The others are only valid when | 77 // spoken feedback on or off. The others are only valid when |
75 // spoken feedback is enabled. | 78 // spoken feedback is enabled. |
76 { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 79 { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
77 TOGGLE_SPOKEN_FEEDBACK }, | 80 TOGGLE_SPOKEN_FEEDBACK }, |
78 { true, ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 81 { true, ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
79 SWITCH_TO_PREVIOUS_USER }, | 82 SWITCH_TO_PREVIOUS_USER }, |
80 { true, ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 83 { true, ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
81 SWITCH_TO_NEXT_USER }, | 84 SWITCH_TO_NEXT_USER }, |
82 // Turning the TouchView maximizing mode on via hotkey for the time being. | |
83 // TODO(skuhne): Remove once the test isn't needed anymore. | |
84 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, | |
85 TOGGLE_TOUCH_VIEW_TESTING }, | |
86 // Single shift release turns off caps lock. | 85 // Single shift release turns off caps lock. |
87 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 86 { false, ui::VKEY_LSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
88 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 87 { false, ui::VKEY_SHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
89 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, | 88 { false, ui::VKEY_RSHIFT, ui::EF_NONE, DISABLE_CAPS_LOCK }, |
90 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, | 89 { false, ui::VKEY_LWIN, ui::EF_ALT_DOWN, TOGGLE_CAPS_LOCK }, |
91 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, | 90 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE }, |
92 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, | 91 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN }, |
93 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, | 92 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP }, |
94 { true, ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, SHOW_TASK_MANAGER }, | 93 { true, ui::VKEY_ESCAPE, ui::EF_COMMAND_DOWN, SHOW_TASK_MANAGER }, |
95 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, NEXT_IME }, | 94 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, NEXT_IME }, |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 { true, ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN, FOCUS_NEXT_PANE }, | 158 { true, ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN, FOCUS_NEXT_PANE }, |
160 { true, ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN, FOCUS_PREVIOUS_PANE }, | 159 { true, ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN, FOCUS_PREVIOUS_PANE }, |
161 | 160 |
162 // Media Player shortcuts. | 161 // Media Player shortcuts. |
163 { true, ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE, MEDIA_NEXT_TRACK}, | 162 { true, ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE, MEDIA_NEXT_TRACK}, |
164 { true, ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE, MEDIA_PLAY_PAUSE}, | 163 { true, ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE, MEDIA_PLAY_PAUSE}, |
165 { true, ui::VKEY_MEDIA_PREV_TRACK, ui::EF_NONE, MEDIA_PREV_TRACK}, | 164 { true, ui::VKEY_MEDIA_PREV_TRACK, ui::EF_NONE, MEDIA_PREV_TRACK}, |
166 | 165 |
167 // Debugging shortcuts that need to be available to end-users in | 166 // Debugging shortcuts that need to be available to end-users in |
168 // release builds. | 167 // release builds. |
169 { true, ui::VKEY_U, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN, | 168 { true, ui::VKEY_U, kDebugModifier, PRINT_UI_HIERARCHIES }, |
170 PRINT_UI_HIERARCHIES }, | |
171 | 169 |
172 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and | 170 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and |
173 // VKEY_MEDIA_LAUNCH_MAIL. | 171 // VKEY_MEDIA_LAUNCH_MAIL. |
174 }; | 172 }; |
175 | 173 |
176 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); | 174 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); |
177 | 175 |
178 // Instructions for how to deprecate and replace an Accelerator: | 176 // Instructions for how to deprecate and replace an Accelerator: |
179 // | 177 // |
180 // 1- Replace the old deprecated accelerator from the above list with the new | 178 // 1- Replace the old deprecated accelerator from the above list with the new |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 {true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | 258 {true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, |
261 DEBUG_ADD_REMOVE_DISPLAY}, | 259 DEBUG_ADD_REMOVE_DISPLAY}, |
262 {true, ui::VKEY_J, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | 260 {true, ui::VKEY_J, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, |
263 DEBUG_TOGGLE_UNIFIED_DESKTOP}, | 261 DEBUG_TOGGLE_UNIFIED_DESKTOP}, |
264 {true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, | 262 {true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, |
265 TOGGLE_MIRROR_MODE}, | 263 TOGGLE_MIRROR_MODE}, |
266 {true, ui::VKEY_P, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, | 264 {true, ui::VKEY_P, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, |
267 DEBUG_TOGGLE_TOUCH_PAD}, | 265 DEBUG_TOGGLE_TOUCH_PAD}, |
268 {true, ui::VKEY_T, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, | 266 {true, ui::VKEY_T, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN, |
269 DEBUG_TOGGLE_TOUCH_SCREEN}, | 267 DEBUG_TOGGLE_TOUCH_SCREEN}, |
| 268 { true, ui::VKEY_T, kDebugModifier, DEBUG_TOGGLE_TOUCH_VIEW}, |
270 {true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI}, | 269 {true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI}, |
271 // Extra shortcut for display swapping as alt-f4 is taken on linux desktop. | 270 // Extra shortcut for display swapping as alt-f4 is taken on linux desktop. |
272 {true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 271 {true, ui::VKEY_S, kDebugModifier, SWAP_PRIMARY_DISPLAY}, |
273 SWAP_PRIMARY_DISPLAY}, | |
274 #endif | 272 #endif |
275 // Extra shortcut to rotate/scale up/down the screen on linux desktop. | 273 // Extra shortcut to rotate/scale up/down the screen on linux desktop. |
276 {true, ui::VKEY_R, | 274 {true, ui::VKEY_R, |
277 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_SCREEN}, | 275 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_SCREEN}, |
278 // For testing on systems where Alt-Tab is already mapped. | 276 // For testing on systems where Alt-Tab is already mapped. |
279 {true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU}, | 277 {true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU}, |
280 {true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, | 278 {true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, |
281 DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN}, | 279 DEBUG_TOGGLE_ROOT_WINDOW_FULL_SCREEN}, |
282 {true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU}, | 280 {true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU}, |
283 {true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 281 {true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, |
284 DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE}, | 282 DEBUG_TOGGLE_DESKTOP_BACKGROUND_MODE}, |
285 {true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, | 283 {true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, |
286 TOGGLE_FULLSCREEN}, | 284 TOGGLE_FULLSCREEN}, |
287 {true, ui::VKEY_L, | 285 {true, ui::VKEY_L, kDebugModifier, DEBUG_PRINT_LAYER_HIERARCHY}, |
288 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 286 {true, ui::VKEY_V, kDebugModifier, DEBUG_PRINT_VIEW_HIERARCHY}, |
289 DEBUG_PRINT_LAYER_HIERARCHY}, | 287 {true, ui::VKEY_W, kDebugModifier, DEBUG_PRINT_WINDOW_HIERARCHY}, |
290 {true, ui::VKEY_V, | 288 {true, ui::VKEY_D, kDebugModifier, DEBUG_TOGGLE_DEVICE_SCALE_FACTOR}, |
291 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | 289 {true, ui::VKEY_B, kDebugModifier, DEBUG_TOGGLE_SHOW_DEBUG_BORDERS}, |
292 DEBUG_PRINT_VIEW_HIERARCHY}, | 290 {true, ui::VKEY_F, kDebugModifier, DEBUG_TOGGLE_SHOW_FPS_COUNTER}, |
293 {true, ui::VKEY_W, | 291 {true, ui::VKEY_P, kDebugModifier, DEBUG_TOGGLE_SHOW_PAINT_RECTS}, |
294 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
295 DEBUG_PRINT_WINDOW_HIERARCHY}, | |
296 {true, ui::VKEY_D, | |
297 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
298 DEBUG_TOGGLE_DEVICE_SCALE_FACTOR}, | |
299 {true, ui::VKEY_B, | |
300 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
301 DEBUG_TOGGLE_SHOW_DEBUG_BORDERS}, | |
302 {true, ui::VKEY_F, | |
303 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
304 DEBUG_TOGGLE_SHOW_FPS_COUNTER}, | |
305 {true, ui::VKEY_P, | |
306 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, | |
307 DEBUG_TOGGLE_SHOW_PAINT_RECTS}, | |
308 }; | 292 }; |
309 | 293 |
310 const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData); | 294 const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData); |
311 | 295 |
312 const AcceleratorAction kPreferredActions[] = { | 296 const AcceleratorAction kPreferredActions[] = { |
313 // Window cycling accelerators. | 297 // Window cycling accelerators. |
314 CYCLE_BACKWARD_MRU, // Shift+Alt+Tab | 298 CYCLE_BACKWARD_MRU, // Shift+Alt+Tab |
315 CYCLE_FORWARD_MRU, // Alt+Tab | 299 CYCLE_FORWARD_MRU, // Alt+Tab |
316 }; | 300 }; |
317 | 301 |
(...skipping 28 matching lines...) Expand all Loading... |
346 SWITCH_IME, // Switch to another IME depending on the accelerator. | 330 SWITCH_IME, // Switch to another IME depending on the accelerator. |
347 TAKE_WINDOW_SCREENSHOT, | 331 TAKE_WINDOW_SCREENSHOT, |
348 TAKE_PARTIAL_SCREENSHOT, | 332 TAKE_PARTIAL_SCREENSHOT, |
349 TAKE_SCREENSHOT, | 333 TAKE_SCREENSHOT, |
350 #if defined(OS_CHROMEOS) | 334 #if defined(OS_CHROMEOS) |
351 BRIGHTNESS_DOWN, | 335 BRIGHTNESS_DOWN, |
352 BRIGHTNESS_UP, | 336 BRIGHTNESS_UP, |
353 DEBUG_ADD_REMOVE_DISPLAY, | 337 DEBUG_ADD_REMOVE_DISPLAY, |
354 DEBUG_TOGGLE_TOUCH_PAD, | 338 DEBUG_TOGGLE_TOUCH_PAD, |
355 DEBUG_TOGGLE_TOUCH_SCREEN, | 339 DEBUG_TOGGLE_TOUCH_SCREEN, |
| 340 DEBUG_TOGGLE_TOUCH_VIEW, |
356 DISABLE_CAPS_LOCK, | 341 DISABLE_CAPS_LOCK, |
357 DISABLE_GPU_WATCHDOG, | 342 DISABLE_GPU_WATCHDOG, |
358 KEYBOARD_BRIGHTNESS_DOWN, | 343 KEYBOARD_BRIGHTNESS_DOWN, |
359 KEYBOARD_BRIGHTNESS_UP, | 344 KEYBOARD_BRIGHTNESS_UP, |
360 TOGGLE_CAPS_LOCK, | 345 TOGGLE_CAPS_LOCK, |
361 TOGGLE_SPOKEN_FEEDBACK, | 346 TOGGLE_SPOKEN_FEEDBACK, |
362 TOGGLE_TOUCH_VIEW_TESTING, | |
363 TOGGLE_MIRROR_MODE, | 347 TOGGLE_MIRROR_MODE, |
364 TOGGLE_WIFI, | 348 TOGGLE_WIFI, |
365 TOUCH_HUD_CLEAR, | 349 TOUCH_HUD_CLEAR, |
366 VOLUME_DOWN, | 350 VOLUME_DOWN, |
367 VOLUME_MUTE, | 351 VOLUME_MUTE, |
368 VOLUME_UP, | 352 VOLUME_UP, |
369 #endif | 353 #endif |
370 #if defined(OS_CHROMEOS) && !defined(NDEBUG) | 354 #if defined(OS_CHROMEOS) && !defined(NDEBUG) |
371 POWER_PRESSED, | 355 POWER_PRESSED, |
372 POWER_RELEASED, | 356 POWER_RELEASED, |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 TOGGLE_WIFI, | 546 TOGGLE_WIFI, |
563 VOLUME_DOWN, | 547 VOLUME_DOWN, |
564 VOLUME_MUTE, | 548 VOLUME_MUTE, |
565 VOLUME_UP, | 549 VOLUME_UP, |
566 #endif // defined(OS_CHROMEOS) | 550 #endif // defined(OS_CHROMEOS) |
567 }; | 551 }; |
568 | 552 |
569 const size_t kActionsKeepingMenuOpenLength = arraysize(kActionsKeepingMenuOpen); | 553 const size_t kActionsKeepingMenuOpenLength = arraysize(kActionsKeepingMenuOpen); |
570 | 554 |
571 } // namespace ash | 555 } // namespace ash |
OLD | NEW |