1 // Copyright (c) 2011 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_COCOA_ACCELERATORS_COCOA_H_ 6 #define CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_ 7 #pragma once 8 9 #include <map> 10 11 #include "ui/base/models/accelerator_cocoa.h" 12 13 template <typename T> struct DefaultSingletonTraits; 14 15 // This class maintains a map of command_ids to AcceleratorCocoa objects (see 16 // chrome/app/chrome_command_ids.h). Currently, this only lists the commands 17 // that are used in the Wrench menu. 18 // 19 // It is recommended that this class be used as a singleton so that the key map 20 // isn't created multiple places. 21 // 22 // #import "base/memory/singleton.h" 23 // ... 24 // AcceleratorsCocoa* keymap = AcceleratorsCocoa::GetInstance(); 25 // return keymap->GetAcceleratorForCommand(IDC_COPY); 26 // 27 class AcceleratorsCocoa { 28 public: 29 typedef std::map<int, ui::AcceleratorCocoa> AcceleratorCocoaMap; 30 31 // Returns NULL if there is no accelerator for the command. 32 const ui::AcceleratorCocoa* GetAcceleratorForCommand(int command_id); 33 34 // Returns the singleton instance. 35 static AcceleratorsCocoa* GetInstance(); 36 37 private: 38 friend struct DefaultSingletonTraits<AcceleratorsCocoa>; 39 40 AcceleratorsCocoa(); 41 ~AcceleratorsCocoa(); 42 43 AcceleratorCocoaMap accelerators_; 44 45 DISALLOW_COPY_AND_ASSIGN(AcceleratorsCocoa); 46 }; 47 48 #endif // CHROME_BROWSER_UI_COCOA_ACCELERATORS_COCOA_H_ 49