| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_ |
| #define CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_ |
| #pragma once |
| |
| #include <map> |
| |
| #include "ui/base/models/accelerator_cocoa.h" |
| |
| template <typename T> struct DefaultSingletonTraits; |
| |
| // This class maintains a map of command_ids to AcceleratorCocoa objects (see |
| // chrome/app/chrome_command_ids.h). Currently, this only lists the commands |
| // that are used in the Wrench menu. |
| // |
| // It is recommended that this class be used as a singleton so that the key map |
| // isn't created multiple places. |
| // |
| // #import "base/singleton.h" |
| // ... |
| // AcceleratorsCocoa* keymap = AcceleratorsCocoa::GetInstance(); |
| // return keymap->GetAcceleratorForCommand(IDC_COPY); |
| // |
| class AcceleratorsCocoa { |
| public: |
| typedef std::map<int, ui::AcceleratorCocoa> AcceleratorCocoaMap; |
| |
| // Returns NULL if there is no accelerator for the command. |
| const ui::AcceleratorCocoa* GetAcceleratorForCommand(int command_id); |
| |
| // Returns the singleton instance. |
| static AcceleratorsCocoa* GetInstance(); |
| |
| private: |
| friend struct DefaultSingletonTraits<AcceleratorsCocoa>; |
| |
| AcceleratorsCocoa(); |
| ~AcceleratorsCocoa() {} |
| |
| AcceleratorCocoaMap accelerators_; |
| |
| DISALLOW_COPY_AND_ASSIGN(AcceleratorsCocoa); |
| }; |
| |
| #endif // CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_ |