Index: chrome/browser/ui/cocoa/accelerators_cocoa.h |
diff --git a/chrome/browser/ui/cocoa/accelerators_cocoa.h b/chrome/browser/ui/cocoa/accelerators_cocoa.h |
index cc1840ca5fb18b093e1a96449e2f6ba08c703992..e29eefb9de9a6b6a72f2aeebca37f0872d5deabb 100644 |
--- a/chrome/browser/ui/cocoa/accelerators_cocoa.h |
+++ b/chrome/browser/ui/cocoa/accelerators_cocoa.h |
@@ -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); |
}; |