diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 19:06:44 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 19:06:44 +0000 |
commit | aa37b56c3d9a7662ea2db9084f0f590716bc2967 (patch) | |
tree | 281e573dd2762f5a02da01923681379da13568f1 /ash | |
parent | 963174aa9eca8aecea977ae3c1e36a0eb58ce9d7 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.cc | 169 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table.h | 4 | ||||
-rw-r--r-- | ash/accelerators/accelerator_table_unittest.cc | 11 |
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); } } |