• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
6 #define CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
7 
8 #include <vector>
9 
10 #include "chrome/browser/ui/host_desktop.h"
11 #include "chrome/browser/ui/views/chrome_views_export.h"
12 #include "ui/events/keycodes/keyboard_codes.h"
13 
14 namespace ui {
15 class Accelerator;
16 }
17 
18 // This contains the list of accelerators for the Aura implementation.
19 namespace chrome {
20 
21 struct AcceleratorMapping {
22   ui::KeyboardCode keycode;
23   int modifiers;
24   int command_id;
25 };
26 
27 // Returns a list of accelerator mapping information for accelerators
28 // handled by Chrome but excluding accelerators handled by Ash.
29 CHROME_VIEWS_EXPORT std::vector<AcceleratorMapping> GetAcceleratorList();
30 
31 // Returns true if the desktop host type indicates Ash and if the
32 // command id has an associated accelerator which is handled by
33 // Ash. If the return is true the accelerator is returned via the
34 // second argument.
35 CHROME_VIEWS_EXPORT bool GetAshAcceleratorForCommandId(
36     int command_id,
37     HostDesktopType host_desktop_type,
38     ui::Accelerator* accelerator);
39 
40 // Returns true if the command id has an associated standard
41 // accelerator like cut, copy and paste. If the return is true the
42 // accelerator is returned via the second argument.
43 CHROME_VIEWS_EXPORT bool GetStandardAcceleratorForCommandId(
44     int command_id,
45     ui::Accelerator* accelerator);
46 
47 }  // namespace chrome
48 
49 #endif  // CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
50