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_GTK_ACCELERATORS_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_ACCELERATORS_GTK_H_ 7 #pragma once 8 9 #include "base/hash_tables.h" 10 #include "ui/base/models/accelerator_gtk.h" 11 12 template <typename T> struct DefaultSingletonTraits; 13 14 class AcceleratorsGtk { 15 public: 16 typedef std::vector<std::pair<int, ui::AcceleratorGtk> > 17 AcceleratorGtkList; 18 typedef AcceleratorGtkList::const_iterator const_iterator; 19 20 // Returns the singleton instance. 21 static AcceleratorsGtk* GetInstance(); 22 begin()23 const_iterator const begin() { 24 return all_accelerators_.begin(); 25 } 26 end()27 const_iterator const end() { 28 return all_accelerators_.end(); 29 } 30 31 // Returns NULL if there is no accelerator for the command. 32 const ui::AcceleratorGtk* GetPrimaryAcceleratorForCommand(int command_id); 33 34 private: 35 friend struct DefaultSingletonTraits<AcceleratorsGtk>; 36 37 AcceleratorsGtk(); 38 ~AcceleratorsGtk(); 39 40 base::hash_map<int, ui::AcceleratorGtk> primary_accelerators_; 41 42 AcceleratorGtkList all_accelerators_; 43 }; 44 45 #endif // CHROME_BROWSER_UI_GTK_ACCELERATORS_GTK_H_ 46