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 |