summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-16 19:06:44 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-16 19:06:44 +0000
commitaa37b56c3d9a7662ea2db9084f0f590716bc2967 (patch)
tree281e573dd2762f5a02da01923681379da13568f1 /ash
parent963174aa9eca8aecea977ae3c1e36a0eb58ce9d7 (diff)
downloadchromium_src-aa37b56c3d9a7662ea2db9084f0f590716bc2967.zip
chromium_src-aa37b56c3d9a7662ea2db9084f0f590716bc2967.tar.gz
chromium_src-aa37b56c3d9a7662ea2db9084f0f590716bc2967.tar.bz2
Use single "modifiers" field rather than boolean fields.
BUG=128199 TEST=aura_shell_unittests passed Review URL: https://chromiumcodereview.appspot.com/10382178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137474 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_controller.cc4
-rw-r--r--ash/accelerators/accelerator_table.cc169
-rw-r--r--ash/accelerators/accelerator_table.h4
-rw-r--r--ash/accelerators/accelerator_table_unittest.cc11
4 files changed, 97 insertions, 91 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
index 3cf288f..8ad8a89 100644
--- a/ash/accelerators/accelerator_controller.cc
+++ b/ash/accelerators/accelerator_controller.cc
@@ -195,9 +195,7 @@ void AcceleratorController::Init() {
for (size_t i = 0; i < kAcceleratorDataLength; ++i) {
ui::Accelerator accelerator(kAcceleratorData[i].keycode,
- kAcceleratorData[i].shift,
- kAcceleratorData[i].ctrl,
- kAcceleratorData[i].alt);
+ kAcceleratorData[i].modifiers);
accelerator.set_type(kAcceleratorData[i].trigger_on_press ?
ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED);
Register(accelerator, this);
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index 88e2ccd..225ad90 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -5,73 +5,80 @@
#include "ash/accelerators/accelerator_table.h"
#include "base/basictypes.h"
+#include "ui/base/events.h"
namespace ash {
const AcceleratorData kAcceleratorData[] = {
- // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction
-
- { false, ui::VKEY_MENU, true, false, true, NEXT_IME },
- { false, ui::VKEY_SHIFT, true, false, true, NEXT_IME },
- { true, ui::VKEY_SPACE, false, true, false, PREVIOUS_IME },
+ { false, ui::VKEY_MENU, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME },
+ { false, ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, NEXT_IME },
+ { true, ui::VKEY_SPACE, ui::EF_CONTROL_DOWN, PREVIOUS_IME },
// Shortcuts for Japanese IME.
- { true, ui::VKEY_CONVERT, false, false, false, SWITCH_IME },
- { true, ui::VKEY_NONCONVERT, false, false, false, SWITCH_IME },
- { true, ui::VKEY_DBE_SBCSCHAR, false, false, false, SWITCH_IME },
- { true, ui::VKEY_DBE_DBCSCHAR, false, false, false, SWITCH_IME },
+ { true, ui::VKEY_CONVERT, ui::EF_NONE, SWITCH_IME },
+ { true, ui::VKEY_NONCONVERT, ui::EF_NONE, SWITCH_IME },
+ { true, ui::VKEY_DBE_SBCSCHAR, ui::EF_NONE, SWITCH_IME },
+ { true, ui::VKEY_DBE_DBCSCHAR, ui::EF_NONE, SWITCH_IME },
// Shortcuts for Koren IME.
- { true, ui::VKEY_HANGUL, false, false, false, SWITCH_IME },
- { true, ui::VKEY_SPACE, true, false, false, SWITCH_IME },
+ { true, ui::VKEY_HANGUL, ui::EF_NONE, SWITCH_IME },
+ { true, ui::VKEY_SPACE, ui::EF_SHIFT_DOWN, SWITCH_IME },
- { true, ui::VKEY_TAB, false, false, true, CYCLE_FORWARD_MRU },
- { true, ui::VKEY_TAB, true, false, true, CYCLE_BACKWARD_MRU },
- { true, ui::VKEY_F5, false, false, false, CYCLE_FORWARD_LINEAR },
+ { true, ui::VKEY_TAB,
+ ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
+ { true, ui::VKEY_TAB, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
+ CYCLE_BACKWARD_MRU },
+ { true, ui::VKEY_F5, ui::EF_NONE, CYCLE_FORWARD_LINEAR },
#if defined(OS_CHROMEOS)
- { true, ui::VKEY_BRIGHTNESS_DOWN, false, false, false, BRIGHTNESS_DOWN },
- { true, ui::VKEY_BRIGHTNESS_UP, false, false, false, BRIGHTNESS_UP },
- { true, ui::VKEY_L, true, true, false, LOCK_SCREEN },
- { true, ui::VKEY_M, false, true, false, OPEN_FILE_MANAGER },
- { true, ui::VKEY_T, false, true, true, OPEN_CROSH },
+ { true, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE, BRIGHTNESS_DOWN },
+ { true, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE, BRIGHTNESS_UP },
+ { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN },
+ { true, ui::VKEY_M, ui::EF_CONTROL_DOWN, OPEN_FILE_MANAGER },
+ { true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH },
#endif
- { true, ui::VKEY_Q, true, true, false, EXIT },
- { true, ui::VKEY_Z, false, true, true, TOGGLE_SPOKEN_FEEDBACK },
+ { true, ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, EXIT },
+ { true, ui::VKEY_Z, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ TOGGLE_SPOKEN_FEEDBACK },
// When you change the shortcut for NEW_INCOGNITO_WINDOW or NEW_WINDOW,
// you also need to modify ToolbarView::GetAcceleratorForCommandId() in
// chrome/browser/ui/views/toolbar_view.cc.
- { true, ui::VKEY_N, true, true, false, NEW_INCOGNITO_WINDOW },
- { true, ui::VKEY_N, false, true, false, NEW_WINDOW },
+ { true, ui::VKEY_N, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ NEW_INCOGNITO_WINDOW },
+ { true, ui::VKEY_N, ui::EF_CONTROL_DOWN, NEW_WINDOW },
- { true, ui::VKEY_F5, true, false, false, CYCLE_BACKWARD_LINEAR },
- { true, ui::VKEY_F5, false, true, false, TAKE_SCREENSHOT },
- { true, ui::VKEY_F5, true, true, false, TAKE_PARTIAL_SCREENSHOT },
- { true, ui::VKEY_PRINT, false, false, false, TAKE_SCREENSHOT },
+ { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN, CYCLE_BACKWARD_LINEAR },
+ { true, ui::VKEY_F5, ui::EF_CONTROL_DOWN, TAKE_SCREENSHOT },
+ { true, ui::VKEY_F5, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ TAKE_PARTIAL_SCREENSHOT },
+ { true, ui::VKEY_PRINT, ui::EF_NONE, TAKE_SCREENSHOT },
// On Chrome OS, Search key is mapped to LWIN.
- { true, ui::VKEY_LWIN, false, false, false, SEARCH_KEY },
- { true, ui::VKEY_LWIN, false, true, false, TOGGLE_APP_LIST },
- { true, ui::VKEY_LWIN, true, false, false, TOGGLE_CAPS_LOCK },
- { true, ui::VKEY_F6, false, false, false, BRIGHTNESS_DOWN },
- { true, ui::VKEY_F7, false, false, false, BRIGHTNESS_UP },
- { true, ui::VKEY_F8, false, false, false, VOLUME_MUTE },
- { true, ui::VKEY_VOLUME_MUTE, false, false, false, VOLUME_MUTE },
- { true, ui::VKEY_F9, false, false, false, VOLUME_DOWN },
- { true, ui::VKEY_VOLUME_DOWN, false, false, false, VOLUME_DOWN },
- { true, ui::VKEY_F10, false, false, false, VOLUME_UP },
- { true, ui::VKEY_VOLUME_UP, false, false, false, VOLUME_UP },
- { true, ui::VKEY_L, true, false, true, FOCUS_LAUNCHER },
- { true, ui::VKEY_S, true, false, true, FOCUS_TRAY },
- { true, ui::VKEY_OEM_2, false, true, true, SHOW_KEYBOARD_OVERLAY },
- { true, ui::VKEY_OEM_2, true, true, true, SHOW_KEYBOARD_OVERLAY },
- { true, ui::VKEY_F1, true, true, false, SHOW_OAK },
- { true, ui::VKEY_1, false, false, true, SELECT_WIN_0 },
- { true, ui::VKEY_2, false, false, true, SELECT_WIN_1 },
- { true, ui::VKEY_3, false, false, true, SELECT_WIN_2 },
- { true, ui::VKEY_4, false, false, true, SELECT_WIN_3 },
- { true, ui::VKEY_5, false, false, true, SELECT_WIN_4 },
- { true, ui::VKEY_6, false, false, true, SELECT_WIN_5 },
- { true, ui::VKEY_7, false, false, true, SELECT_WIN_6 },
- { true, ui::VKEY_8, false, false, true, SELECT_WIN_7 },
- { true, ui::VKEY_9, false, false, true, SELECT_LAST_WIN },
+ { true, ui::VKEY_LWIN, ui::EF_NONE, SEARCH_KEY },
+ { true, ui::VKEY_LWIN, ui::EF_CONTROL_DOWN, TOGGLE_APP_LIST },
+ { true, ui::VKEY_LWIN, ui::EF_SHIFT_DOWN, TOGGLE_CAPS_LOCK },
+ { true, ui::VKEY_F6, ui::EF_NONE, BRIGHTNESS_DOWN },
+ { true, ui::VKEY_F7, ui::EF_NONE, BRIGHTNESS_UP },
+ { true, ui::VKEY_F8, ui::EF_NONE, VOLUME_MUTE },
+ { true, ui::VKEY_VOLUME_MUTE, ui::EF_NONE, VOLUME_MUTE },
+ { true, ui::VKEY_F9, ui::EF_NONE, VOLUME_DOWN },
+ { true, ui::VKEY_VOLUME_DOWN, ui::EF_NONE, VOLUME_DOWN },
+ { true, ui::VKEY_F10, ui::EF_NONE, VOLUME_UP },
+ { true, ui::VKEY_VOLUME_UP, ui::EF_NONE, VOLUME_UP },
+ { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_LAUNCHER },
+ { true, ui::VKEY_S, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, FOCUS_TRAY },
+ { true, ui::VKEY_OEM_2, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ SHOW_KEYBOARD_OVERLAY },
+ { true, ui::VKEY_OEM_2,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ SHOW_KEYBOARD_OVERLAY },
+ { true, ui::VKEY_F1, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, SHOW_OAK },
+ { true, ui::VKEY_1, ui::EF_ALT_DOWN, SELECT_WIN_0 },
+ { true, ui::VKEY_2, ui::EF_ALT_DOWN, SELECT_WIN_1 },
+ { true, ui::VKEY_3, ui::EF_ALT_DOWN, SELECT_WIN_2 },
+ { true, ui::VKEY_4, ui::EF_ALT_DOWN, SELECT_WIN_3 },
+ { true, ui::VKEY_5, ui::EF_ALT_DOWN, SELECT_WIN_4 },
+ { true, ui::VKEY_6, ui::EF_ALT_DOWN, SELECT_WIN_5 },
+ { true, ui::VKEY_7, ui::EF_ALT_DOWN, SELECT_WIN_6 },
+ { true, ui::VKEY_8, ui::EF_ALT_DOWN, SELECT_WIN_7 },
+ { true, ui::VKEY_9, ui::EF_ALT_DOWN, SELECT_LAST_WIN },
// We need the number keys with and without shift since the French keyboard
// does not have explicit number keys. Instead they have to press
@@ -79,38 +86,44 @@ const AcceleratorData kAcceleratorData[] = {
// functionality, we should think about either assembling this table
// dynamically - or by decoding the keys properly (which is of course in
// conflict with other keyboards since the Shift+ is missing then).
- { true, ui::VKEY_1, true, false, true, SELECT_WIN_0 },
- { true, ui::VKEY_2, true, false, true, SELECT_WIN_1 },
- { true, ui::VKEY_3, true, false, true, SELECT_WIN_2 },
- { true, ui::VKEY_4, true, false, true, SELECT_WIN_3 },
- { true, ui::VKEY_5, true, false, true, SELECT_WIN_4 },
- { true, ui::VKEY_6, true, false, true, SELECT_WIN_5 },
- { true, ui::VKEY_7, true, false, true, SELECT_WIN_6 },
- { true, ui::VKEY_8, true, false, true, SELECT_WIN_7 },
- { true, ui::VKEY_9, true, false, true, SELECT_LAST_WIN },
+ { true, ui::VKEY_1, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_0 },
+ { true, ui::VKEY_2, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_1 },
+ { true, ui::VKEY_3, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_2 },
+ { true, ui::VKEY_4, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_3 },
+ { true, ui::VKEY_5, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_4 },
+ { true, ui::VKEY_6, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_5 },
+ { true, ui::VKEY_7, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_6 },
+ { true, ui::VKEY_8, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_WIN_7 },
+ { true, ui::VKEY_9, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, SELECT_LAST_WIN },
// Window management shortcuts.
- { true, ui::VKEY_OEM_4, false, false, true, WINDOW_SNAP_LEFT },
- { true, ui::VKEY_OEM_6, false, false, true, WINDOW_SNAP_RIGHT },
- { true, ui::VKEY_OEM_MINUS, false, false, true, WINDOW_MINIMIZE },
- { true, ui::VKEY_OEM_PLUS, false, false, true, WINDOW_MAXIMIZE_RESTORE },
- { true, ui::VKEY_OEM_PLUS, true, false, true, WINDOW_POSITION_CENTER },
+ { true, ui::VKEY_OEM_4, ui::EF_ALT_DOWN, WINDOW_SNAP_LEFT },
+ { true, ui::VKEY_OEM_6, ui::EF_ALT_DOWN, WINDOW_SNAP_RIGHT },
+ { true, ui::VKEY_OEM_MINUS, ui::EF_ALT_DOWN, WINDOW_MINIMIZE },
+ { true, ui::VKEY_OEM_PLUS, ui::EF_ALT_DOWN, WINDOW_MAXIMIZE_RESTORE },
+ { true, ui::VKEY_OEM_PLUS, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN,
+ WINDOW_POSITION_CENTER },
- { true, ui::VKEY_F3, true, true, true, ROTATE_WINDOWS },
+ { true, ui::VKEY_F3,
+ ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ ROTATE_WINDOWS },
#if !defined(NDEBUG)
- { true, ui::VKEY_HOME, false, true, false, ROTATE_SCREEN },
- { true, ui::VKEY_B, false, true, true, TOGGLE_DESKTOP_BACKGROUND_MODE },
- { true, ui::VKEY_F11, false, true, false, TOGGLE_ROOT_WINDOW_FULL_SCREEN },
- { true, ui::VKEY_L, true, true, true, PRINT_LAYER_HIERARCHY },
- { true, ui::VKEY_W, true, true, true, PRINT_WINDOW_HIERARCHY },
+ { true, ui::VKEY_HOME, ui::EF_CONTROL_DOWN, ROTATE_SCREEN },
+ { true, ui::VKEY_B, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ TOGGLE_DESKTOP_BACKGROUND_MODE },
+ { true, ui::VKEY_F11, ui::EF_CONTROL_DOWN, TOGGLE_ROOT_WINDOW_FULL_SCREEN },
+ { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ PRINT_LAYER_HIERARCHY },
+ { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN,
+ PRINT_WINDOW_HIERARCHY },
// For testing on systems where Alt-Tab is already mapped.
- { true, ui::VKEY_W, false, false, true, CYCLE_FORWARD_MRU },
- { true, ui::VKEY_W, true, false, true, CYCLE_BACKWARD_MRU },
- { true, ui::VKEY_F4, false, true, false, MONITOR_ADD_REMOVE },
- { true, ui::VKEY_F4, true, true, false, MONITOR_CYCLE },
- { true, ui::VKEY_HOME, true, true, false, MONITOR_TOGGLE_SCALE },
+ { true, ui::VKEY_W, ui::EF_ALT_DOWN, CYCLE_FORWARD_MRU },
+ { true, ui::VKEY_W, ui::EF_SHIFT_DOWN | ui::EF_ALT_DOWN, CYCLE_BACKWARD_MRU },
+ { true, ui::VKEY_F4, ui::EF_CONTROL_DOWN, MONITOR_ADD_REMOVE },
+ { true, ui::VKEY_F4, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, MONITOR_CYCLE },
+ { true, ui::VKEY_HOME, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
+ MONITOR_TOGGLE_SCALE },
#endif
- // trigger_on_press, KeyboardCode, shift, control, alt, AcceleratorAction
};
const size_t kAcceleratorDataLength = arraysize(kAcceleratorData);
diff --git a/ash/accelerators/accelerator_table.h b/ash/accelerators/accelerator_table.h
index 1de1067..ce411a7 100644
--- a/ash/accelerators/accelerator_table.h
+++ b/ash/accelerators/accelerator_table.h
@@ -74,9 +74,7 @@ enum AcceleratorAction {
struct AcceleratorData {
bool trigger_on_press;
ui::KeyboardCode keycode;
- bool shift;
- bool ctrl;
- bool alt;
+ int modifiers;
AcceleratorAction action;
};
diff --git a/ash/accelerators/accelerator_table_unittest.cc b/ash/accelerators/accelerator_table_unittest.cc
index 900adb8..9be3906 100644
--- a/ash/accelerators/accelerator_table_unittest.cc
+++ b/ash/accelerators/accelerator_table_unittest.cc
@@ -19,11 +19,7 @@ struct Cmp {
return lhs.trigger_on_press < rhs.trigger_on_press;
if (lhs.keycode != rhs.keycode)
return lhs.keycode < rhs.keycode;
- if (lhs.shift != rhs.shift)
- return lhs.shift < rhs.shift;
- if (lhs.ctrl != rhs.ctrl)
- return lhs.ctrl < rhs.ctrl;
- return lhs.alt < rhs.alt;
+ return lhs.modifiers < rhs.modifiers;
// Do not check |action|.
}
};
@@ -36,8 +32,9 @@ TEST(AcceleratorTableTest, CheckDuplicatedAccelerators) {
const AcceleratorData& entry = kAcceleratorData[i];
EXPECT_TRUE(acclerators.insert(entry).second)
<< "Duplicated accelerator: " << entry.trigger_on_press << ", "
- << entry.keycode << ", " << entry.shift << ", " << entry.ctrl << ", "
- << entry.alt;
+ << entry.keycode << ", " << (entry.modifiers & ui::EF_SHIFT_DOWN)
+ << ", " << (entry.modifiers & ui::EF_CONTROL_DOWN) << ", "
+ << (entry.modifiers & ui::EF_ALT_DOWN);
}
}