Home | History | Annotate | Download | only in views
      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