Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: ash/accelerators/accelerator_table.cc

Issue 10382178: Use single "modifiers" field rather than boolean fields. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/accelerators/accelerator_table.h ('k') | ash/accelerators/accelerator_table_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "ui/base/events.h"
8 9
9 namespace ash { 10 namespace ash {
10 11
11 const AcceleratorData kAcceleratorData[] = { 12 const AcceleratorData kAcceleratorData[] = {
12 // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction 13 { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME },
14 { false, ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME },
15 { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME },
16 // Shortcuts for Japanese IME.
17 { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME },
18 { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME },
19 { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME },
20 { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME },
21 // Shortcuts for Koren IME.
22 { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME },
23 { true, ui::VKEY_SPACE, ui::EF_SHIFT_DOWN, SWITCH_IME },
13 24
14 { false, ui::VKEY_MENU, true, false, true, NEXT_IME }, 25 { true, ui::VKEY_TAB,
15 { false, ui::VKEY_SHIFT, true, false, true, NEXT_IME }, 26 ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
16 { true, ui::VKEY_SPACE, false, true, false, PREVIOUS_IME }, 27 { true, ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
17 // Shortcuts for Japanese IME. 28 CYCLE_BACKWARD_MRU },
18 { true, ui::VKEY_CONVERT, false, false, false, SWITCH_IME }, 29 { true, ui::VKEY_F5, ui::EF_NONE, CYCLE_FORWARD_LINEAR },
19 { true, ui::VKEY_NONCONVERT, false, false, false, SWITCH_IME },
20 { true, ui::VKEY_DBE_SBCSCHAR, false, false, false, SWITCH_IME },
21 { true, ui::VKEY_DBE_DBCSCHAR, false, false, false, SWITCH_IME },
22 // Shortcuts for Koren IME.
23 { true, ui::VKEY_HANGUL, false, false, false, SWITCH_IME },
24 { true, ui::VKEY_SPACE, true, false, false, SWITCH_IME },
25
26 { true, ui::VKEY_TAB, false, false, true, CYCLE_FORWARD_MRU },
27 { true, ui::VKEY_TAB, true, false, true, CYCLE_BACKWARD_MRU },
28 { true, ui::VKEY_F5, false, false, false, CYCLE_FORWARD_LINEAR },
29 #if defined(OS_CHROMEOS) 30 #if defined(OS_CHROMEOS)
30 { true, ui::VKEY_BRIGHTNESS_DOWN, false, false, false, BRIGHTNESS_DOWN }, 31 { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN },
31 { true, ui::VKEY_BRIGHTNESS_UP, false, false, false, BRIGHTNESS_UP }, 32 { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP },
32 { true, ui::VKEY_L, true, true, false, LOCK_SCREEN }, 33 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN },
33 { true, ui::VKEY_M, false, true, false, OPEN_FILE_MANAGER }, 34 { true, ui::VKEY_M, ui::EF_CONTROL_DOWN, OPEN_FILE_MANAGER },
34 { true, ui::VKEY_T, false, true, true, OPEN_CROSH }, 35 { true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH },
35 #endif 36 #endif
36 { true, ui::VKEY_Q, true, true, false, EXIT }, 37 { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT },
37 { true, ui::VKEY_Z, false, true, true, TOGGLE_SPOKEN_FEEDBACK }, 38 { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
39 TOGGLE_SPOKEN_FEEDBACK },
38 40
39 // When you change the shortcut for NEW_INCOGNITO_WINDOW or NEW_WINDOW, 41 // When you change the shortcut for NEW_INCOGNITO_WINDOW or NEW_WINDOW,
40 // you also need to modify ToolbarView::GetAcceleratorForCommandId() in 42 // you also need to modify ToolbarView::GetAcceleratorForCommandId() in
41 // chrome/browser/ui/views/toolbar_view.cc. 43 // chrome/browser/ui/views/toolbar_view.cc.
42 { true, ui::VKEY_N, true, true, false, NEW_INCOGNITO_WINDOW }, 44 { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
43 { true, ui::VKEY_N, false, true, false, NEW_WINDOW }, 45 NEW_INCOGNITO_WINDOW },
46 { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW },
44 47
45 { true, ui::VKEY_F5, true, false, false, CYCLE_BACKWARD_LINEAR }, 48 { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN, CYCLE_BACKWARD_LINEAR },
46 { true, ui::VKEY_F5, false, true, false, TAKE_SCREENSHOT }, 49 { true, ui::VKEY_F5, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT },
47 { true, ui::VKEY_F5, true, true, false, TAKE_PARTIAL_SCREENSHOT }, 50 { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
48 { true, ui::VKEY_PRINT, false, false, false, TAKE_SCREENSHOT }, 51 TAKE_PARTIAL_SCREENSHOT },
52 { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT },
49 // On Chrome OS, Search key is mapped to LWIN. 53 // On Chrome OS, Search key is mapped to LWIN.
50 { true, ui::VKEY_LWIN, false, false, false, SEARCH_KEY }, 54 { true, ui::VKEY_LWIN, ui::EF_NONE, SEARCH_KEY },
51 { true, ui::VKEY_LWIN, false, true, false, TOGGLE_APP_LIST }, 55 { true, ui::VKEY_LWIN, ui::EF_CONTROL_DOWN, TOGGLE_APP_LIST },
52 { true, ui::VKEY_LWIN, true, false, false, TOGGLE_CAPS_LOCK }, 56 { true, ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, TOGGLE_CAPS_LOCK },
53 { true, ui::VKEY_F6, false, false, false, BRIGHTNESS_DOWN }, 57 { true, ui::VKEY_F6, ui::EF_NONE, BRIGHTNESS_DOWN },
54 { true, ui::VKEY_F7, false, false, false, BRIGHTNESS_UP }, 58 { true, ui::VKEY_F7, ui::EF_NONE, BRIGHTNESS_UP },
55 { true, ui::VKEY_F8, false, false, false, VOLUME_MUTE }, 59 { true, ui::VKEY_F8, ui::EF_NONE, VOLUME_MUTE },
56 { true, ui::VKEY_VOLUME_MUTE, false, false, false, VOLUME_MUTE }, 60 { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE },
57 { true, ui::VKEY_F9, false, false, false, VOLUME_DOWN }, 61 { true, ui::VKEY_F9, ui::EF_NONE, VOLUME_DOWN },
58 { true, ui::VKEY_VOLUME_DOWN, false, false, false, VOLUME_DOWN }, 62 { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN },
59 { true, ui::VKEY_F10, false, false, false, VOLUME_UP }, 63 { true, ui::VKEY_F10, ui::EF_NONE, VOLUME_UP },
60 { true, ui::VKEY_VOLUME_UP, false, false, false, VOLUME_UP }, 64 { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP },
61 { true, ui::VKEY_L, true, false, true, FOCUS_LAUNCHER }, 65 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_LAUNCHER },
62 { true, ui::VKEY_S, true, false, true, FOCUS_TRAY }, 66 { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_TRAY },
63 { true, ui::VKEY_OEM_2, false, true, true, SHOW_KEYBOARD_OVERLAY }, 67 { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
64 { true, ui::VKEY_OEM_2, true, true, true, SHOW_KEYBOARD_OVERLAY }, 68 SHOW_KEYBOARD_OVERLAY },
65 { true, ui::VKEY_F1, true, true, false, SHOW_OAK }, 69 { true, ui::VKEY_OEM_2,
66 { true, ui::VKEY_1, false, false, true, SELECT_WIN_0 }, 70 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
67 { true, ui::VKEY_2, false, false, true, SELECT_WIN_1 }, 71 SHOW_KEYBOARD_OVERLAY },
68 { true, ui::VKEY_3, false, false, true, SELECT_WIN_2 }, 72 { true, ui::VKEY_F1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, SHOW_OAK },
69 { true, ui::VKEY_4, false, false, true, SELECT_WIN_3 }, 73 { true, ui::VKEY_1, ui::EF_ALT_DOWN, SELECT_WIN_0 },
70 { true, ui::VKEY_5, false, false, true, SELECT_WIN_4 }, 74 { true, ui::VKEY_2, ui::EF_ALT_DOWN, SELECT_WIN_1 },
71 { true, ui::VKEY_6, false, false, true, SELECT_WIN_5 }, 75 { true, ui::VKEY_3, ui::EF_ALT_DOWN, SELECT_WIN_2 },
72 { true, ui::VKEY_7, false, false, true, SELECT_WIN_6 }, 76 { true, ui::VKEY_4, ui::EF_ALT_DOWN, SELECT_WIN_3 },
73 { true, ui::VKEY_8, false, false, true, SELECT_WIN_7 }, 77 { true, ui::VKEY_5, ui::EF_ALT_DOWN, SELECT_WIN_4 },
74 { true, ui::VKEY_9, false, false, true, SELECT_LAST_WIN }, 78 { true, ui::VKEY_6, ui::EF_ALT_DOWN, SELECT_WIN_5 },
79 { true, ui::VKEY_7, ui::EF_ALT_DOWN, SELECT_WIN_6 },
80 { true, ui::VKEY_8, ui::EF_ALT_DOWN, SELECT_WIN_7 },
81 { true, ui::VKEY_9, ui::EF_ALT_DOWN, SELECT_LAST_WIN },
75 82
76 // We need the number keys with and without shift since the French keyboard 83 // We need the number keys with and without shift since the French keyboard
77 // does not have explicit number keys. Instead they have to press 84 // does not have explicit number keys. Instead they have to press
78 // 'Shift' + .. to access the keys. If we ever have an overlap of 85 // 'Shift' + .. to access the keys. If we ever have an overlap of
79 // functionality, we should think about either assembling this table 86 // functionality, we should think about either assembling this table
80 // dynamically - or by decoding the keys properly (which is of course in 87 // dynamically - or by decoding the keys properly (which is of course in
81 // conflict with other keyboards since the Shift+ is missing then). 88 // conflict with other keyboards since the Shift+ is missing then).
82 { true, ui::VKEY_1, true, false, true, SELECT_WIN_0 }, 89 { true, ui::VKEY_1, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_0 },
83 { true, ui::VKEY_2, true, false, true, SELECT_WIN_1 }, 90 { true, ui::VKEY_2, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_1 },
84 { true, ui::VKEY_3, true, false, true, SELECT_WIN_2 }, 91 { true, ui::VKEY_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_2 },
85 { true, ui::VKEY_4, true, false, true, SELECT_WIN_3 }, 92 { true, ui::VKEY_4, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_3 },
86 { true, ui::VKEY_5, true, false, true, SELECT_WIN_4 }, 93 { true, ui::VKEY_5, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_4 },
87 { true, ui::VKEY_6, true, false, true, SELECT_WIN_5 }, 94 { true, ui::VKEY_6, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_5 },
88 { true, ui::VKEY_7, true, false, true, SELECT_WIN_6 }, 95 { true, ui::VKEY_7, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_6 },
89 { true, ui::VKEY_8, true, false, true, SELECT_WIN_7 }, 96 { true, ui::VKEY_8, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_7 },
90 { true, ui::VKEY_9, true, false, true, SELECT_LAST_WIN }, 97 { true, ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_LAST_WIN },
91 98
92 // Window management shortcuts. 99 // Window management shortcuts.
93 { true, ui::VKEY_OEM_4, false, false, true, WINDOW_SNAP_LEFT }, 100 { true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_SNAP_LEFT },
94 { true, ui::VKEY_OEM_6, false, false, true, WINDOW_SNAP_RIGHT }, 101 { true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_SNAP_RIGHT },
95 { true, ui::VKEY_OEM_MINUS, false, false, true, WINDOW_MINIMIZE }, 102 { true, ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN, WINDOW_MINIMIZE },
96 { true, ui::VKEY_OEM_PLUS, false, false, true, WINDOW_MAXIMIZE_RESTORE }, 103 { true, ui::VKEY_OEM_PLUS, ui::EF_ALT_DOWN, WINDOW_MAXIMIZE_RESTORE },
97 { true, ui::VKEY_OEM_PLUS, true, false, true, WINDOW_POSITION_CENTER }, 104 { true, ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
105 WINDOW_POSITION_CENTER },
98 106
99 { true, ui::VKEY_F3, true, true, true, ROTATE_WINDOWS }, 107 { true, ui::VKEY_F3,
108 ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
109 ROTATE_WINDOWS },
100 #if !defined(NDEBUG) 110 #if !defined(NDEBUG)
101 { true, ui::VKEY_HOME, false, true, false, ROTATE_SCREEN }, 111 { true, ui::VKEY_HOME, ui::EF_CONTROL_DOWN, ROTATE_SCREEN },
102 { true, ui::VKEY_B, false, true, true, TOGGLE_DESKTOP_BACKGROUND_MODE }, 112 { true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
103 { true, ui::VKEY_F11, false, true, false, TOGGLE_ROOT_WINDOW_FULL_SCREEN }, 113 TOGGLE_DESKTOP_BACKGROUND_MODE },
104 { true, ui::VKEY_L, true, true, true, PRINT_LAYER_HIERARCHY }, 114 { true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, TOGGLE_ROOT_WINDOW_FULL_SCREEN },
105 { true, ui::VKEY_W, true, true, true, PRINT_WINDOW_HIERARCHY }, 115 { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
116 PRINT_LAYER_HIERARCHY },
117 { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
118 PRINT_WINDOW_HIERARCHY },
106 // For testing on systems where Alt-Tab is already mapped. 119 // For testing on systems where Alt-Tab is already mapped.
107 { true, ui::VKEY_W, false, false, true, CYCLE_FORWARD_MRU }, 120 { true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
108 { true, ui::VKEY_W, true, false, true, CYCLE_BACKWARD_MRU }, 121 { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU },
109 { true, ui::VKEY_F4, false, true, false, MONITOR_ADD_REMOVE }, 122 { true, ui::VKEY_F4, ui::EF_CONTROL_DOWN, MONITOR_ADD_REMOVE },
110 { true, ui::VKEY_F4, true, true, false, MONITOR_CYCLE }, 123 { true, ui::VKEY_F4, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, MONITOR_CYCLE },
111 { true, ui::VKEY_HOME, true, true, false, MONITOR_TOGGLE_SCALE }, 124 { true, ui::VKEY_HOME, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
125 MONITOR_TOGGLE_SCALE },
112 #endif 126 #endif
113 // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction
114 }; 127 };
115 128
116 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData); 129 const size_t kAcceleratorDataLength = arraysize(kAcceleratorData);
117 130
118 const AcceleratorAction kActionsAllowedAtLoginScreen[] = { 131 const AcceleratorAction kActionsAllowedAtLoginScreen[] = {
119 BRIGHTNESS_DOWN, 132 BRIGHTNESS_DOWN,
120 BRIGHTNESS_UP, 133 BRIGHTNESS_UP,
121 NEXT_IME, 134 NEXT_IME,
122 PREVIOUS_IME, 135 PREVIOUS_IME,
123 SWITCH_IME, // Switch to another IME depending on the accelerator. 136 SWITCH_IME, // Switch to another IME depending on the accelerator.
124 TAKE_SCREENSHOT, 137 TAKE_SCREENSHOT,
125 TAKE_PARTIAL_SCREENSHOT, 138 TAKE_PARTIAL_SCREENSHOT,
126 TOGGLE_CAPS_LOCK, 139 TOGGLE_CAPS_LOCK,
127 TOGGLE_SPOKEN_FEEDBACK, 140 TOGGLE_SPOKEN_FEEDBACK,
128 VOLUME_DOWN, 141 VOLUME_DOWN,
129 VOLUME_MUTE, 142 VOLUME_MUTE,
130 VOLUME_UP, 143 VOLUME_UP,
131 ROTATE_WINDOWS, 144 ROTATE_WINDOWS,
132 #if !defined(NDEBUG) 145 #if !defined(NDEBUG)
133 PRINT_LAYER_HIERARCHY, 146 PRINT_LAYER_HIERARCHY,
134 PRINT_WINDOW_HIERARCHY, 147 PRINT_WINDOW_HIERARCHY,
135 ROTATE_SCREEN, 148 ROTATE_SCREEN,
136 #endif 149 #endif
137 }; 150 };
138 151
139 const size_t kActionsAllowedAtLoginScreenLength = 152 const size_t kActionsAllowedAtLoginScreenLength =
140 arraysize(kActionsAllowedAtLoginScreen); 153 arraysize(kActionsAllowedAtLoginScreen);
141 154
142 } // namespace ash 155 } // namespace ash
OLDNEW
« no previous file with comments | « ash/accelerators/accelerator_table.h ('k') | ash/accelerators/accelerator_table_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698