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