Home | History | Annotate | Download | only in gtk
      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 
     23   const_iterator const begin() {
     24     return all_accelerators_.begin();
     25   }
     26 
     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