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"
10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/event_constants.h"
11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// There are five classes of accelerators in Ash:
1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Ash (OS) reserved:
1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * Neither packaged apps nor web pages can cancel.
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// * For example, power button.
2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * See kReservedActions below.
2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Ash (OS) preferred:
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// * Fullscreen window can consume, but normal window can't.
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// * For example, Alt-Tab window cycling.
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// * See kPreferredActions below.
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci//
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Chrome OS system keys:
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// * For legacy reasons, v1 apps can process and cancel. Otherwise handled
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)//   directly by Ash.
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// * Brightness, volume control, etc.
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// * See IsSystemKey() in ash/accelerators/accelerator_filter.cc.
3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Browser reserved:
3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * Packaged apps can cancel but web pages cannot.
3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * For example, browser back and forward from first-row function keys.
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * See IsReservedCommandOrKey() in
3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//   chrome/browser/ui/browser_command_controller.cc.
3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Browser non-reserved:
4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * Both packaged apps and web pages can cancel.
4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * For example, selecting tabs by number with Ctrl-1 to Ctrl-9.
4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// * See kAcceleratorMap in chrome/browser/ui/views/accelerator_table.cc.
4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// In particular, there is not an accelerator processing pass for Ash after
4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// the browser gets the accelerator.  See crbug.com/285308 for details.
4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)//
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// There are also various restrictions on accelerators allowed at the login
484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// screen, when running in "forced app mode" (like a kiosk), etc. See the
494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// various kActionsAllowed* below.
504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)//
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Please put if/def sections at the end of the bare section and keep the list
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// within each section in alphabetical order.
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum AcceleratorAction {
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ACCESSIBLE_FOCUS_NEXT,
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ACCESSIBLE_FOCUS_PREVIOUS,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BRIGHTNESS_DOWN,
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BRIGHTNESS_UP,
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CYCLE_BACKWARD_MRU,
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CYCLE_FORWARD_MRU,
60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DEBUG_TOGGLE_DEVICE_SCALE_FACTOR,
61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DEBUG_TOGGLE_SHOW_DEBUG_BORDERS,
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DEBUG_TOGGLE_SHOW_FPS_COUNTER,
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DEBUG_TOGGLE_SHOW_PAINT_RECTS,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISABLE_CAPS_LOCK,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXIT,
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FOCUS_NEXT_PANE,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FOCUS_PREVIOUS_PANE,
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  FOCUS_SHELF,
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KEYBOARD_BRIGHTNESS_DOWN,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  KEYBOARD_BRIGHTNESS_UP,
71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_0,
72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_1,
73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_2,
74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_3,
75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_4,
76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_5,
77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_6,
78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_APP_7,
79eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  LAUNCH_LAST_APP,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LOCK_PRESSED,
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LOCK_RELEASED,
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MAGNIFY_SCREEN_ZOOM_IN,
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MAGNIFY_SCREEN_ZOOM_OUT,
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MEDIA_NEXT_TRACK,
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MEDIA_PLAY_PAUSE,
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MEDIA_PREV_TRACK,
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NEW_INCOGNITO_WINDOW,
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NEW_TAB,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NEW_WINDOW,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NEXT_IME,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OPEN_FEEDBACK_PAGE,
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POWER_PRESSED,
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POWER_RELEASED,
94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PREVIOUS_IME,
95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PRINT_LAYER_HIERARCHY,
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  PRINT_UI_HIERARCHIES,
97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PRINT_VIEW_HIERARCHY,
98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PRINT_WINDOW_HIERARCHY,
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RESTORE_TAB,
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ROTATE_SCREEN,
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ROTATE_WINDOW,
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SCALE_UI_DOWN,
103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  SCALE_UI_RESET,
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SCALE_UI_UP,
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SHOW_KEYBOARD_OVERLAY,
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SHOW_MESSAGE_CENTER_BUBBLE,
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SHOW_SYSTEM_TRAY_BUBBLE,
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SHOW_TASK_MANAGER,
109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  SILENCE_SPOKEN_FEEDBACK,
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SWAP_PRIMARY_DISPLAY,
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SWITCH_IME,  // Switch to another IME depending on the accelerator.
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TAKE_PARTIAL_SCREENSHOT,
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TAKE_SCREENSHOT,
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_APP_LIST,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_CAPS_LOCK,
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_CAPS_LOCK_BY_ALT_LWIN,
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_DESKTOP_BACKGROUND_MODE,
118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  TOGGLE_FULLSCREEN,
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_MAXIMIZED,
120a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  TOGGLE_OVERVIEW,
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_ROOT_WINDOW_FULL_SCREEN,
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_SPOKEN_FEEDBACK,
123a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  TOGGLE_TOUCH_VIEW_TESTING,
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  TOGGLE_WIFI,
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  TOUCH_HUD_CLEAR,
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  TOUCH_HUD_MODE_CHANGE,
127eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  TOUCH_HUD_PROJECTION_TOGGLE,
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  VOLUME_DOWN,
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  VOLUME_MUTE,
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  VOLUME_UP,
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WINDOW_MINIMIZE,
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WINDOW_POSITION_CENTER,
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WINDOW_SNAP_LEFT,
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WINDOW_SNAP_RIGHT,
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_CHROMEOS)
13690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  ADD_REMOVE_DISPLAY,
13790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  TOGGLE_MIRROR_MODE,
138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DISABLE_GPU_WATCHDOG,
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  LOCK_SCREEN,
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OPEN_CROSH,
1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  OPEN_FILE_MANAGER,
14268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  SWITCH_TO_NEXT_USER,
143a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  SWITCH_TO_PREVIOUS_USER,
1441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#else
1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DUMMY_FOR_RESERVED,
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct AcceleratorData {
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool trigger_on_press;
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ui::KeyboardCode keycode;
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int modifiers;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  AcceleratorAction action;
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Accelerators handled by AcceleratorController.
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorData kAcceleratorData[];
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kAcceleratorDataLength;
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if !defined(NDEBUG)
161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Accelerators useful when running on desktop. Debug build only.
162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ASH_EXPORT extern const AcceleratorData kDesktopAcceleratorData[];
163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ASH_EXPORT extern const size_t kDesktopAcceleratorDataLength;
164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Debug accelerators enabled only when "Debugging keyboard shortcuts" flag
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// (--ash-debug-shortcuts) is enabled.
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorData kDebugAcceleratorData[];
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kDebugAcceleratorDataLength;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions that should be handled very early in Ash unless the current target
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// window is full-screen.
1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciASH_EXPORT extern const AcceleratorAction kPreferredActions[];
1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciASH_EXPORT extern const size_t kPreferredActionsLength;
1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Actions that are always handled in Ash.
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kReservedActions[];
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kReservedActionsLength;
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Actions that should be handled very early in Ash unless the current target
18190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// window is full-screen, these actions are only handled if
18290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// DebugShortcutsEnabled is true (command line switch 'ash-debug-shortcuts').
18390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kReservedDebugActions[];
18490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ASH_EXPORT extern const size_t kReservedDebugActionsLength;
18590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while user is not signed in or screen is locked.
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtLoginOrLockScreen[];
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtLoginOrLockScreenLength;
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while screen is locked (in addition to
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// kActionsAllowedAtLoginOrLockScreen).
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtLockScreen[];
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtLockScreenLength;
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions allowed while a modal window is up.
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedAtModalWindow[];
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedAtModalWindowLength;
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Actions which will not be repeated while holding an accelerator key.
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kNonrepeatableActions[];
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ASH_EXPORT extern const size_t kNonrepeatableActionsLength;
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Actions allowed in app mode.
2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsAllowedInAppMode[];
2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ASH_EXPORT extern const size_t kActionsAllowedInAppModeLength;
2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
207f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Actions that require at least 1 window.
208f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ASH_EXPORT extern const AcceleratorAction kActionsNeedingWindow[];
209f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ASH_EXPORT extern const size_t kActionsNeedingWindowLength;
210f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ash
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // ASH_ACCELERATORS_ACCELERATOR_TABLE_H_
214