OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ | 5 #ifndef CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ |
6 #define CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ | 6 #define CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 public: | 46 public: |
47 // Invoked when the menu model has changed. | 47 // Invoked when the menu model has changed. |
48 virtual void OnMenuStateChanged() {} | 48 virtual void OnMenuStateChanged() {} |
49 | 49 |
50 protected: | 50 protected: |
51 virtual ~Observer() {} | 51 virtual ~Observer() {} |
52 }; | 52 }; |
53 | 53 |
54 // The Delegate can be NULL. | 54 // The Delegate can be NULL. |
55 explicit StatusIconMenuModel(Delegate* delegate); | 55 explicit StatusIconMenuModel(Delegate* delegate); |
56 virtual ~StatusIconMenuModel(); | 56 ~StatusIconMenuModel() override; |
57 | 57 |
58 // Methods for seting the state of specific command ids. | 58 // Methods for seting the state of specific command ids. |
59 void SetCommandIdChecked(int command_id, bool checked); | 59 void SetCommandIdChecked(int command_id, bool checked); |
60 void SetCommandIdEnabled(int command_id, bool enabled); | 60 void SetCommandIdEnabled(int command_id, bool enabled); |
61 void SetCommandIdVisible(int command_id, bool visible); | 61 void SetCommandIdVisible(int command_id, bool visible); |
62 | 62 |
63 // Sets the accelerator for the specified command id. | 63 // Sets the accelerator for the specified command id. |
64 void SetAcceleratorForCommandId( | 64 void SetAcceleratorForCommandId( |
65 int command_id, const ui::Accelerator* accelerator); | 65 int command_id, const ui::Accelerator* accelerator); |
66 | 66 |
67 // Calling any of these "change" methods will mark the menu item as "dynamic" | 67 // Calling any of these "change" methods will mark the menu item as "dynamic" |
68 // (see menu_model.h:IsItemDynamicAt) which many platforms take as a cue to | 68 // (see menu_model.h:IsItemDynamicAt) which many platforms take as a cue to |
69 // refresh the label, sublabel and icon of the menu item each time the menu is | 69 // refresh the label, sublabel and icon of the menu item each time the menu is |
70 // shown. | 70 // shown. |
71 void ChangeLabelForCommandId(int command_id, const base::string16& label); | 71 void ChangeLabelForCommandId(int command_id, const base::string16& label); |
72 void ChangeSublabelForCommandId( | 72 void ChangeSublabelForCommandId( |
73 int command_id, const base::string16& sublabel); | 73 int command_id, const base::string16& sublabel); |
74 void ChangeIconForCommandId(int command_id, const gfx::Image& icon); | 74 void ChangeIconForCommandId(int command_id, const gfx::Image& icon); |
75 | 75 |
76 void AddObserver(Observer* observer); | 76 void AddObserver(Observer* observer); |
77 void RemoveObserver(Observer* observer); | 77 void RemoveObserver(Observer* observer); |
78 | 78 |
79 // Overridden from ui::SimpleMenuModel::Delegate: | 79 // Overridden from ui::SimpleMenuModel::Delegate: |
80 virtual bool IsCommandIdChecked(int command_id) const override; | 80 bool IsCommandIdChecked(int command_id) const override; |
81 virtual bool IsCommandIdEnabled(int command_id) const override; | 81 bool IsCommandIdEnabled(int command_id) const override; |
82 virtual bool IsCommandIdVisible(int command_id) const override; | 82 bool IsCommandIdVisible(int command_id) const override; |
83 virtual bool GetAcceleratorForCommandId( | 83 bool GetAcceleratorForCommandId(int command_id, |
84 int command_id, ui::Accelerator* accelerator) override; | 84 ui::Accelerator* accelerator) override; |
85 virtual bool IsItemForCommandIdDynamic(int command_id) const override; | 85 bool IsItemForCommandIdDynamic(int command_id) const override; |
86 virtual base::string16 GetLabelForCommandId(int command_id) const override; | 86 base::string16 GetLabelForCommandId(int command_id) const override; |
87 virtual base::string16 GetSublabelForCommandId(int command_id) const override; | 87 base::string16 GetSublabelForCommandId(int command_id) const override; |
88 virtual bool GetIconForCommandId(int command_id, gfx::Image* icon) const | 88 bool GetIconForCommandId(int command_id, gfx::Image* icon) const override; |
89 override; | |
90 | 89 |
91 protected: | 90 protected: |
92 // Overriden from ui::SimpleMenuModel: | 91 // Overriden from ui::SimpleMenuModel: |
93 virtual void MenuItemsChanged() override; | 92 void MenuItemsChanged() override; |
94 | 93 |
95 void NotifyMenuStateChanged(); | 94 void NotifyMenuStateChanged(); |
96 | 95 |
97 void set_delegate(Delegate* delegate) { delegate_ = delegate; } | 96 void set_delegate(Delegate* delegate) { delegate_ = delegate; } |
98 Delegate* delegate() { return delegate_; } | 97 Delegate* delegate() { return delegate_; } |
99 | 98 |
100 private: | 99 private: |
101 // Overridden from ui::SimpleMenuModel::Delegate: | 100 // Overridden from ui::SimpleMenuModel::Delegate: |
102 virtual void CommandIdHighlighted(int command_id) override; | 101 void CommandIdHighlighted(int command_id) override; |
103 virtual void ExecuteCommand(int command_id, int event_flags) override; | 102 void ExecuteCommand(int command_id, int event_flags) override; |
104 | 103 |
105 struct ItemState; | 104 struct ItemState; |
106 | 105 |
107 // Map the properties to the command id (used as key). | 106 // Map the properties to the command id (used as key). |
108 typedef std::map<int, ItemState> ItemStateMap; | 107 typedef std::map<int, ItemState> ItemStateMap; |
109 | 108 |
110 ItemStateMap item_states_; | 109 ItemStateMap item_states_; |
111 | 110 |
112 ObserverList<Observer> observer_list_; | 111 ObserverList<Observer> observer_list_; |
113 | 112 |
114 Delegate* delegate_; | 113 Delegate* delegate_; |
115 | 114 |
116 DISALLOW_COPY_AND_ASSIGN(StatusIconMenuModel); | 115 DISALLOW_COPY_AND_ASSIGN(StatusIconMenuModel); |
117 }; | 116 }; |
118 | 117 |
119 #endif // CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ | 118 #endif // CHROME_BROWSER_STATUS_ICONS_STATUS_ICON_MENU_MODEL_H_ |
OLD | NEW |