Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / accelerators_cocoa.h
index cc1840c..e29eefb 100644 (file)
@@ -5,8 +5,12 @@
 #ifndef CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_
 #define CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_
 
+#import <Cocoa/Cocoa.h>
+
 #include <map>
+#include <vector>
 
+#include "base/gtest_prod_util.h"
 #include "ui/base/accelerators/accelerator.h"
 
 template <typename T> struct DefaultSingletonTraits;
@@ -26,6 +30,7 @@ template <typename T> struct DefaultSingletonTraits;
 class AcceleratorsCocoa {
  public:
   typedef std::map<int, ui::Accelerator> AcceleratorMap;
+  typedef std::vector<ui::Accelerator> AcceleratorVector;
   typedef AcceleratorMap::const_iterator const_iterator;
 
   const_iterator const begin() { return accelerators_.begin(); }
@@ -33,17 +38,30 @@ class AcceleratorsCocoa {
 
   // Returns NULL if there is no accelerator for the command.
   const ui::Accelerator* GetAcceleratorForCommand(int command_id);
+  // Searches the list of accelerators without a command_id for an accelerator
+  // that matches the given |key_equivalent| and |modifiers|.
+  const ui::Accelerator* GetAcceleratorForHotKey(NSString* key_equivalent,
+                                                 NSUInteger modifiers) const;
 
   // Returns the singleton instance.
   static AcceleratorsCocoa* GetInstance();
 
  private:
   friend struct DefaultSingletonTraits<AcceleratorsCocoa>;
+  FRIEND_TEST_ALL_PREFIXES(AcceleratorsCocoaBrowserTest,
+                           MappingAcceleratorsInMainMenu);
 
   AcceleratorsCocoa();
   ~AcceleratorsCocoa();
 
+  // A map from command_id to Accelerator. The accelerator is fully filled out,
+  // and its platform_accelerator is also fully filled out.
+  // Contains accelerators from both the wrench menu and the main menu.
   AcceleratorMap accelerators_;
+  // A list of accelerators used in the main menu that have no associated
+  // command_id. The accelerator is fully filled out, and its
+  // platform_accelerator is also fully filled out.
+  AcceleratorVector accelerator_vector_;
 
   DISALLOW_COPY_AND_ASSIGN(AcceleratorsCocoa);
 };