Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ash / accelerators / accelerator_table.cc
blob3d63595638e418e95d20b752da1224efffc85bfa
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.
5 #include "ash/accelerators/accelerator_table.h"
7 #include "base/basictypes.h"
9 namespace ash {
11 const AcceleratorData kAcceleratorData[] = {
12 // We have to define 3 entries for Shift+Alt. VKEY_[LR]MENU might be sent to
13 // the accelerator controller when RenderWidgetHostViewAura is focused, and
14 // VKEY_MENU might be when it's not (e.g. when NativeWidgetAura is focused).
15 { false, ui::VKEY_LMENU, ui::EF_SHIFT_DOWN, NEXT_IME },
16 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN, NEXT_IME },
17 { false, ui::VKEY_RMENU, ui::EF_SHIFT_DOWN, NEXT_IME },
18 // The same is true for Alt+Shift.
19 { false, ui::VKEY_LSHIFT, ui::EF_ALT_DOWN, NEXT_IME },
20 { false, ui::VKEY_SHIFT, ui::EF_ALT_DOWN, NEXT_IME },
21 { false, ui::VKEY_RSHIFT, ui::EF_ALT_DOWN, NEXT_IME },
22 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME },
23 { false, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME },
24 // Shortcuts for Japanese IME.
25 { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME },
26 { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME },
27 { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME },
28 { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME },
29 // Shortcut for Koren IME.
30 { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME },
32 { true, ui::VKEY_TAB, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
33 { true, ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
34 CYCLE_BACKWARD_MRU },
35 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE, TOGGLE_OVERVIEW },
36 #if defined(OS_CHROMEOS)
37 { true, ui::VKEY_BROWSER_SEARCH, ui::EF_NONE, TOGGLE_APP_LIST },
38 { true, ui::VKEY_WLAN, ui::EF_NONE, TOGGLE_WIFI },
39 { true, ui::VKEY_KBD_BRIGHTNESS_DOWN, ui::EF_NONE, KEYBOARD_BRIGHTNESS_DOWN },
40 { true, ui::VKEY_KBD_BRIGHTNESS_UP, ui::EF_NONE, KEYBOARD_BRIGHTNESS_UP },
41 // Maximize button.
42 { true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_CONTROL_DOWN, TOGGLE_MIRROR_MODE },
43 { true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_ALT_DOWN, SWAP_PRIMARY_DISPLAY },
44 // Cycle windows button.
45 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT },
46 { true, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
47 TAKE_PARTIAL_SCREENSHOT },
48 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN },
49 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_DOWN },
50 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP },
51 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN, KEYBOARD_BRIGHTNESS_UP },
52 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
53 MAGNIFY_SCREEN_ZOOM_OUT},
54 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
55 MAGNIFY_SCREEN_ZOOM_IN},
56 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN },
57 // The lock key on Chrome OS keyboards produces F13 scancodes.
58 { true, ui::VKEY_F13, ui::EF_NONE, LOCK_PRESSED },
59 { false, ui::VKEY_F13, ui::EF_NONE, LOCK_RELEASED },
60 { true, ui::VKEY_POWER, ui::EF_NONE, POWER_PRESSED },
61 { false, ui::VKEY_POWER, ui::EF_NONE, POWER_RELEASED },
62 { true, ui::VKEY_M, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
63 OPEN_FILE_MANAGER },
64 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH },
65 { true, ui::VKEY_G, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
66 DISABLE_GPU_WATCHDOG },
67 { true, ui::VKEY_I, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
68 TOUCH_HUD_MODE_CHANGE },
69 { true, ui::VKEY_I, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN,
70 TOUCH_HUD_CLEAR },
71 { true, ui::VKEY_P, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
72 TOUCH_HUD_PROJECTION_TOGGLE },
73 // Accessibility: Spoken feedback shortcuts. The first one is to toggle
74 // spoken feedback on or off. The others are only valid when
75 // spoken feedback is enabled.
76 { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
77 TOGGLE_SPOKEN_FEEDBACK },
78 { true, ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN, SILENCE_SPOKEN_FEEDBACK},
79 { true, ui::VKEY_OEM_COMMA, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
80 SWITCH_TO_PREVIOUS_USER },
81 { true, ui::VKEY_OEM_PERIOD, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
82 SWITCH_TO_NEXT_USER },
83 // Turning the TouchView maximizing mode on via hotkey for the time being.
84 // TODO(skuhne): Remove once the test isn't needed anymore.
85 { true, ui::VKEY_8, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN,
86 TOGGLE_TOUCH_VIEW_TESTING },
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 #endif // defined(OS_CHROMEOS)
93 { true, ui::VKEY_I, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, OPEN_FEEDBACK_PAGE },
94 #if !defined(OS_WIN)
95 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT },
96 #endif
97 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
98 NEW_INCOGNITO_WINDOW },
99 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW },
100 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN, NEW_TAB },
101 { true, ui::VKEY_OEM_MINUS,
102 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, SCALE_UI_UP },
103 { true, ui::VKEY_OEM_PLUS,
104 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, SCALE_UI_DOWN },
105 { true, ui::VKEY_0,
106 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, SCALE_UI_RESET },
107 { true, ui::VKEY_BROWSER_REFRESH,
108 ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN, ROTATE_SCREEN },
109 { true, ui::VKEY_BROWSER_REFRESH,
110 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
111 ROTATE_WINDOW },
112 { true, ui::VKEY_T, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, RESTORE_TAB },
113 { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT },
114 // On Chrome OS, Search key is mapped to LWIN. The Search key binding should
115 // act on release instead of press when using Search as a modifier key for
116 // extended keyboard shortcuts.
117 { false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST },
118 { true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE, TOGGLE_FULLSCREEN },
119 { true, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_SHIFT_DOWN, TOGGLE_FULLSCREEN },
120 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE },
121 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN },
122 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP },
123 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_LAUNCHER },
124 { true, ui::VKEY_HELP, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY },
125 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
126 SHOW_KEYBOARD_OVERLAY },
127 { true, ui::VKEY_OEM_2,
128 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
129 SHOW_KEYBOARD_OVERLAY },
130 { true, ui::VKEY_F14, ui::EF_NONE, SHOW_KEYBOARD_OVERLAY },
131 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
132 SHOW_MESSAGE_CENTER_BUBBLE },
133 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
134 SHOW_SYSTEM_TRAY_BUBBLE },
135 { true, ui::VKEY_ESCAPE, ui::EF_SHIFT_DOWN, SHOW_TASK_MANAGER },
136 { true, ui::VKEY_1, ui::EF_ALT_DOWN, LAUNCH_APP_0 },
137 { true, ui::VKEY_2, ui::EF_ALT_DOWN, LAUNCH_APP_1 },
138 { true, ui::VKEY_3, ui::EF_ALT_DOWN, LAUNCH_APP_2 },
139 { true, ui::VKEY_4, ui::EF_ALT_DOWN, LAUNCH_APP_3 },
140 { true, ui::VKEY_5, ui::EF_ALT_DOWN, LAUNCH_APP_4 },
141 { true, ui::VKEY_6, ui::EF_ALT_DOWN, LAUNCH_APP_5 },
142 { true, ui::VKEY_7, ui::EF_ALT_DOWN, LAUNCH_APP_6 },
143 { true, ui::VKEY_8, ui::EF_ALT_DOWN, LAUNCH_APP_7 },
144 { true, ui::VKEY_9, ui::EF_ALT_DOWN, LAUNCH_LAST_APP },
146 // Window management shortcuts.
147 { true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_SNAP_LEFT },
148 { true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_SNAP_RIGHT },
149 { true, ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN, WINDOW_MINIMIZE },
150 { true, ui::VKEY_OEM_PLUS, ui::EF_ALT_DOWN, TOGGLE_MAXIMIZED },
151 { true, ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
152 WINDOW_POSITION_CENTER },
153 { true, ui::VKEY_BROWSER_FORWARD, ui::EF_CONTROL_DOWN, FOCUS_NEXT_PANE },
154 { true, ui::VKEY_BROWSER_BACK, ui::EF_CONTROL_DOWN, FOCUS_PREVIOUS_PANE },
156 // Media Player shortcuts.
157 { true, ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE, MEDIA_NEXT_TRACK},
158 { true, ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE, MEDIA_PLAY_PAUSE},
159 { true, ui::VKEY_MEDIA_PREV_TRACK, ui::EF_NONE, MEDIA_PREV_TRACK},
161 // Debugging shortcuts that need to be available to end-users in
162 // release builds.
163 { true, ui::VKEY_U, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN,
164 PRINT_UI_HIERARCHIES },
166 { false, ui::VKEY_HOME, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS},
167 { false, ui::VKEY_PRIOR, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_PREVIOUS},
168 { false, ui::VKEY_END, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT},
169 { false, ui::VKEY_NEXT, ui::EF_SHIFT_DOWN, ACCESSIBLE_FOCUS_NEXT},
171 // TODO(yusukes): Handle VKEY_MEDIA_STOP, and
172 // VKEY_MEDIA_LAUNCH_MAIL.
175 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData);
177 #if !defined(NDEBUG)
178 const AcceleratorData kDesktopAcceleratorData[] = {
179 #if defined(OS_CHROMEOS)
180 // Extra shortcut for debug build to control magnifier on linux desktop.
181 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_CONTROL_DOWN,
182 MAGNIFY_SCREEN_ZOOM_OUT},
183 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_CONTROL_DOWN, MAGNIFY_SCREEN_ZOOM_IN},
184 // Extra shortcuts to lock the screen on linux desktop.
185 { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN },
186 { true, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_PRESSED },
187 { false, ui::VKEY_POWER, ui::EF_SHIFT_DOWN, LOCK_RELEASED },
188 { true, ui::VKEY_D, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
189 ADD_REMOVE_DISPLAY },
190 { true, ui::VKEY_M, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN,
191 TOGGLE_MIRROR_MODE },
192 { true, ui::VKEY_W, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, TOGGLE_WIFI },
193 // Extra shortcut for display swaping as alt-f4 is taken on linux desktop.
194 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
195 SWAP_PRIMARY_DISPLAY },
196 #endif
197 // Extra shortcut to rotate/scale up/down the screen on linux desktop.
198 { true, ui::VKEY_R,
199 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, ROTATE_SCREEN },
200 // For testing on systems where Alt-Tab is already mapped.
201 { true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
203 { true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, TOGGLE_ROOT_WINDOW_FULL_SCREEN },
204 { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
205 CYCLE_BACKWARD_MRU },
206 { true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
207 TOGGLE_DESKTOP_BACKGROUND_MODE },
208 { true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
209 TOGGLE_FULLSCREEN },
212 const size_t kDesktopAcceleratorDataLength = arraysize(kDesktopAcceleratorData);
213 #endif
215 const AcceleratorData kDebugAcceleratorData[] = {
216 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
217 PRINT_LAYER_HIERARCHY },
218 { true, ui::VKEY_V, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
219 PRINT_VIEW_HIERARCHY },
220 { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
221 PRINT_WINDOW_HIERARCHY },
222 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
223 DEBUG_TOGGLE_DEVICE_SCALE_FACTOR },
224 { true, ui::VKEY_B, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
225 DEBUG_TOGGLE_SHOW_DEBUG_BORDERS },
226 { true, ui::VKEY_F, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
227 DEBUG_TOGGLE_SHOW_FPS_COUNTER },
228 { true, ui::VKEY_P, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
229 DEBUG_TOGGLE_SHOW_PAINT_RECTS },
232 const size_t kDebugAcceleratorDataLength = arraysize(kDebugAcceleratorData);
234 const AcceleratorAction kReservedActions[] = {
235 // Window cycling accelerators.
236 CYCLE_BACKWARD_MRU, // Shift+Alt+Tab
237 CYCLE_FORWARD_MRU, // Alt+Tab
238 #if defined(OS_CHROMEOS)
239 POWER_PRESSED,
240 POWER_RELEASED,
241 #endif
244 const size_t kReservedActionsLength = arraysize(kReservedActions);
246 const AcceleratorAction kReservedDebugActions[] = {
247 PRINT_LAYER_HIERARCHY,
248 PRINT_VIEW_HIERARCHY,
249 PRINT_WINDOW_HIERARCHY,
250 DEBUG_TOGGLE_DEVICE_SCALE_FACTOR,
251 DEBUG_TOGGLE_SHOW_DEBUG_BORDERS,
252 DEBUG_TOGGLE_SHOW_FPS_COUNTER,
253 DEBUG_TOGGLE_SHOW_PAINT_RECTS,
256 const size_t kReservedDebugActionsLength = arraysize(kReservedDebugActions);
258 const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[] = {
259 BRIGHTNESS_DOWN,
260 BRIGHTNESS_UP,
261 DISABLE_CAPS_LOCK,
262 KEYBOARD_BRIGHTNESS_DOWN,
263 KEYBOARD_BRIGHTNESS_UP,
264 MAGNIFY_SCREEN_ZOOM_IN, // Control+F7
265 MAGNIFY_SCREEN_ZOOM_OUT, // Control+F6
266 NEXT_IME,
267 PREVIOUS_IME,
268 PRINT_LAYER_HIERARCHY,
269 PRINT_UI_HIERARCHIES,
270 PRINT_VIEW_HIERARCHY,
271 PRINT_WINDOW_HIERARCHY,
272 ROTATE_WINDOW,
273 SHOW_SYSTEM_TRAY_BUBBLE,
274 SWITCH_IME, // Switch to another IME depending on the accelerator.
275 TAKE_PARTIAL_SCREENSHOT,
276 TAKE_SCREENSHOT,
277 TOGGLE_CAPS_LOCK,
278 TOGGLE_WIFI,
279 TOUCH_HUD_CLEAR,
280 VOLUME_DOWN,
281 VOLUME_MUTE,
282 VOLUME_UP,
283 #if defined(OS_CHROMEOS)
284 TOGGLE_TOUCH_VIEW_TESTING,
285 TOGGLE_SPOKEN_FEEDBACK,
286 ADD_REMOVE_DISPLAY,
287 DISABLE_GPU_WATCHDOG,
288 TOGGLE_MIRROR_MODE,
289 #endif
290 #if defined(OS_CHROMEOS) && !defined(NDEBUG)
291 POWER_PRESSED,
292 POWER_RELEASED,
293 #endif // defined(OS_CHROMEOS)
296 const size_t kActionsAllowedAtLoginOrLockScreenLength =
297 arraysize(kActionsAllowedAtLoginOrLockScreen);
299 const AcceleratorAction kActionsAllowedAtLockScreen[] = {
300 EXIT,
303 const size_t kActionsAllowedAtLockScreenLength =
304 arraysize(kActionsAllowedAtLockScreen);
306 const AcceleratorAction kActionsAllowedAtModalWindow[] = {
307 BRIGHTNESS_DOWN,
308 BRIGHTNESS_UP,
309 DISABLE_CAPS_LOCK,
310 EXIT,
311 KEYBOARD_BRIGHTNESS_DOWN,
312 KEYBOARD_BRIGHTNESS_UP,
313 MAGNIFY_SCREEN_ZOOM_IN,
314 MAGNIFY_SCREEN_ZOOM_OUT,
315 MEDIA_NEXT_TRACK,
316 MEDIA_PLAY_PAUSE,
317 MEDIA_PREV_TRACK,
318 NEXT_IME,
319 OPEN_FEEDBACK_PAGE,
320 POWER_PRESSED,
321 POWER_RELEASED,
322 PREVIOUS_IME,
323 PRINT_UI_HIERARCHIES,
324 ROTATE_SCREEN,
325 SCALE_UI_UP,
326 SCALE_UI_DOWN,
327 SCALE_UI_RESET,
328 SHOW_KEYBOARD_OVERLAY,
329 SWITCH_IME,
330 TAKE_PARTIAL_SCREENSHOT,
331 TAKE_SCREENSHOT,
332 TOGGLE_CAPS_LOCK,
333 TOGGLE_WIFI,
334 VOLUME_DOWN,
335 VOLUME_MUTE,
336 VOLUME_UP,
337 #if defined(OS_CHROMEOS)
338 SWAP_PRIMARY_DISPLAY,
339 TOGGLE_SPOKEN_FEEDBACK,
340 #if !defined(NDEBUG)
341 ADD_REMOVE_DISPLAY,
342 #endif
343 LOCK_SCREEN,
344 TOGGLE_MIRROR_MODE,
345 #endif
348 const size_t kActionsAllowedAtModalWindowLength =
349 arraysize(kActionsAllowedAtModalWindow);
351 const AcceleratorAction kNonrepeatableActions[] = {
352 // TODO(mazda): Add other actions which should not be repeated.
353 CYCLE_BACKWARD_MRU,
354 CYCLE_FORWARD_MRU,
355 TOGGLE_OVERVIEW,
356 EXIT,
357 PRINT_UI_HIERARCHIES, // Don't fill the logs if the key is held down.
358 ROTATE_SCREEN,
359 ROTATE_WINDOW,
360 SCALE_UI_UP,
361 SCALE_UI_DOWN,
362 SCALE_UI_RESET,
363 TOGGLE_FULLSCREEN,
364 TOGGLE_MAXIMIZED,
365 WINDOW_MINIMIZE,
368 const size_t kNonrepeatableActionsLength =
369 arraysize(kNonrepeatableActions);
371 const AcceleratorAction kActionsAllowedInAppMode[] = {
372 BRIGHTNESS_DOWN,
373 BRIGHTNESS_UP,
374 DISABLE_CAPS_LOCK,
375 KEYBOARD_BRIGHTNESS_DOWN,
376 KEYBOARD_BRIGHTNESS_UP,
377 MAGNIFY_SCREEN_ZOOM_IN, // Control+F7
378 MAGNIFY_SCREEN_ZOOM_OUT, // Control+F6
379 MEDIA_NEXT_TRACK,
380 MEDIA_PLAY_PAUSE,
381 MEDIA_PREV_TRACK,
382 NEXT_IME,
383 POWER_PRESSED,
384 POWER_RELEASED,
385 PREVIOUS_IME,
386 PRINT_LAYER_HIERARCHY,
387 PRINT_UI_HIERARCHIES,
388 PRINT_VIEW_HIERARCHY,
389 PRINT_WINDOW_HIERARCHY,
390 ROTATE_SCREEN,
391 SCALE_UI_DOWN,
392 SCALE_UI_RESET,
393 SCALE_UI_UP,
394 SWITCH_IME, // Switch to another IME depending on the accelerator.
395 TOGGLE_CAPS_LOCK,
396 TOGGLE_WIFI,
397 TOUCH_HUD_CLEAR,
398 VOLUME_DOWN,
399 VOLUME_MUTE,
400 VOLUME_UP,
401 #if defined(OS_CHROMEOS)
402 SWAP_PRIMARY_DISPLAY,
403 TOGGLE_SPOKEN_FEEDBACK,
404 ADD_REMOVE_DISPLAY,
405 DISABLE_GPU_WATCHDOG,
406 TOGGLE_MIRROR_MODE,
407 #endif // defined(OS_CHROMEOS)
410 const size_t kActionsAllowedInAppModeLength =
411 arraysize(kActionsAllowedInAppMode);
413 const AcceleratorAction kActionsNeedingWindow[] = {
414 ACCESSIBLE_FOCUS_NEXT,
415 ACCESSIBLE_FOCUS_PREVIOUS,
416 CYCLE_BACKWARD_MRU,
417 CYCLE_FORWARD_MRU,
418 TOGGLE_OVERVIEW,
419 WINDOW_SNAP_LEFT,
420 WINDOW_SNAP_RIGHT,
421 WINDOW_MINIMIZE,
422 TOGGLE_FULLSCREEN,
423 TOGGLE_MAXIMIZED,
424 WINDOW_POSITION_CENTER,
425 ROTATE_WINDOW,
428 const size_t kActionsNeedingWindowLength = arraysize(kActionsNeedingWindow);
430 } // namespace ash