accelerator_table.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_ACCELERATORS_ACCELERATOR_TABLE_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_ACCELERATORS_ACCELERATOR_TABLE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ash/ash_export.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/events/event_constants.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/keycodes/keyboard_codes.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Please put if/def sections at the end of the bare section and keep the list 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// within each section in alphabetical order. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum AcceleratorAction { 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ACCESSIBLE_FOCUS_NEXT, 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ACCESSIBLE_FOCUS_PREVIOUS, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BRIGHTNESS_DOWN, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BRIGHTNESS_UP, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CYCLE_BACKWARD_LINEAR, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CYCLE_BACKWARD_MRU, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CYCLE_FORWARD_LINEAR, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CYCLE_FORWARD_MRU, 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DEBUG_TOGGLE_DEVICE_SCALE_FACTOR, 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DEBUG_TOGGLE_SHOW_DEBUG_BORDERS, 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DEBUG_TOGGLE_SHOW_FPS_COUNTER, 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DEBUG_TOGGLE_SHOW_PAINT_RECTS, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISABLE_CAPS_LOCK, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXIT, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOCUS_LAUNCHER, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOCUS_NEXT_PANE, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FOCUS_PREVIOUS_PANE, 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) KEYBOARD_BRIGHTNESS_DOWN, 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) KEYBOARD_BRIGHTNESS_UP, 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_0, 38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_1, 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_2, 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_3, 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_4, 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_5, 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_6, 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_APP_7, 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch LAUNCH_LAST_APP, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOCK_PRESSED, 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOCK_RELEASED, 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MAGNIFY_SCREEN_ZOOM_IN, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MAGNIFY_SCREEN_ZOOM_OUT, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MEDIA_NEXT_TRACK, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MEDIA_PLAY_PAUSE, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MEDIA_PREV_TRACK, 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEW_INCOGNITO_WINDOW, 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEW_TAB, 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEW_WINDOW, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NEXT_IME, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPEN_FEEDBACK_PAGE, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POWER_PRESSED, 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POWER_RELEASED, 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PREVIOUS_IME, 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PRINT_LAYER_HIERARCHY, 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PRINT_UI_HIERARCHIES, 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PRINT_VIEW_HIERARCHY, 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PRINT_WINDOW_HIERARCHY, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RESTORE_TAB, 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROTATE_SCREEN, 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ROTATE_WINDOW, 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SCALE_UI_DOWN, 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SCALE_UI_RESET, 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SCALE_UI_UP, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SHOW_KEYBOARD_OVERLAY, 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SHOW_MESSAGE_CENTER_BUBBLE, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SHOW_OAK, 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SHOW_SYSTEM_TRAY_BUBBLE, 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SHOW_TASK_MANAGER, 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SILENCE_SPOKEN_FEEDBACK, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SWAP_PRIMARY_DISPLAY, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SWITCH_IME, // Switch to another IME depending on the accelerator. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TAKE_PARTIAL_SCREENSHOT, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TAKE_SCREENSHOT, 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_APP_LIST, 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_CAPS_LOCK, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_CAPS_LOCK_BY_ALT_LWIN, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_DESKTOP_BACKGROUND_MODE, 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) TOGGLE_FULLSCREEN, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_MAXIMIZED, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_ROOT_WINDOW_FULL_SCREEN, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_SPOKEN_FEEDBACK, 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TOGGLE_WIFI, 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) TOUCH_HUD_CLEAR, 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) TOUCH_HUD_MODE_CHANGE, 92eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch TOUCH_HUD_PROJECTION_TOGGLE, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) VOLUME_DOWN, 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) VOLUME_MUTE, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) VOLUME_UP, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WINDOW_MINIMIZE, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WINDOW_POSITION_CENTER, 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WINDOW_SNAP_LEFT, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WINDOW_SNAP_RIGHT, 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS) 10190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ADD_REMOVE_DISPLAY, 10290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TOGGLE_MIRROR_MODE, 103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DISABLE_GPU_WATCHDOG, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LOCK_SCREEN, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OPEN_CROSH, 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OPEN_FILE_DIALOG, // Open 'Open file' dialog. 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OPEN_FILE_MANAGER, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct AcceleratorData { 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool trigger_on_press; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::KeyboardCode keycode; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int modifiers; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AcceleratorAction action; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accelerators handled by AcceleratorController. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorData kAcceleratorData[]; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kAcceleratorData. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kAcceleratorDataLength; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if !defined(NDEBUG) 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Accelerators useful when running on desktop. Debug build only. 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ASH_EXPORT extern const AcceleratorData kDesktopAcceleratorData[]; 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// The number of elements in kDesktopAcceleratorData. 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ASH_EXPORT extern const size_t kDesktopAcceleratorDataLength; 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Debug accelerators enabled only when "Debugging keyboard shortcuts" flag 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (--ash-debug-shortcuts) is enabled. 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorData kDebugAcceleratorData[]; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kDebugAcceleratorData. 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kDebugAcceleratorDataLength; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions that should be handled very early in Ash unless the current target 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// window is full-screen. 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kReservedActions[]; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kReservedActions. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kReservedActionsLength; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Actions that should be handled very early in Ash unless the current target 14790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// window is full-screen, these actions are only handled if 14890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// DebugShortcutsEnabled is true (command line switch 'ash-debug-shortcuts'). 14990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kReservedDebugActions[]; 15090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 15190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// The number of elements in kReservedDebugActions. 15290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ASH_EXPORT extern const size_t kReservedDebugActionsLength; 15390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while user is not signed in or screen is locked. 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[]; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kActionsAllowedAtLoginOrLockScreen. 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtLoginOrLockScreenLength; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while screen is locked (in addition to 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// kActionsAllowedAtLoginOrLockScreen). 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtLockScreen[]; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kActionsAllowedAtLockScreen. 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtLockScreenLength; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while a modal window is up. 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtModalWindow[]; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kActionsAllowedAtModalWindow. 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtModalWindowLength; 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions which will not be repeated while holding an accelerator key. 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kNonrepeatableActions[]; 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The number of elements in kNonrepeatableActions. 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kNonrepeatableActionsLength; 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Actions allowed in app mode. 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedInAppMode[]; 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The number of elements in kActionsAllowedInAppMode. 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedInAppModeLength; 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_ACCELERATORS_ACCELERATOR_TABLE_H_ 188