OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_EXTENSIONS_EXTENSION_ACTION_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
13 #include "base/memory/linked_ptr.h" | 13 #include "base/memory/linked_ptr.h" |
14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" |
15 #include "base/memory/scoped_vector.h" | 15 #include "base/memory/scoped_vector.h" |
16 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" |
17 #include "base/observer_list.h" | 17 #include "base/observer_list.h" |
18 #include "chrome/common/extensions/extension.h" | 18 #include "chrome/common/extensions/api/extension_action/action_info.h" |
19 #include "chrome/common/extensions/extension_icon_set.h" | 19 #include "chrome/common/extensions/extension_icon_set.h" |
20 #include "third_party/skia/include/core/SkColor.h" | 20 #include "third_party/skia/include/core/SkColor.h" |
21 #include "ui/base/animation/linear_animation.h" | 21 #include "ui/base/animation/linear_animation.h" |
22 | 22 |
23 class GURL; | 23 class GURL; |
24 class SkBitmap; | 24 class SkBitmap; |
25 class SkDevice; | 25 class SkDevice; |
26 | 26 |
27 namespace gfx { | 27 namespace gfx { |
28 class Canvas; | 28 class Canvas; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 mutable scoped_ptr<SkDevice> device_; | 106 mutable scoped_ptr<SkDevice> device_; |
107 | 107 |
108 ObserverList<Observer> observers_; | 108 ObserverList<Observer> observers_; |
109 | 109 |
110 base::WeakPtrFactory<IconAnimation> weak_ptr_factory_; | 110 base::WeakPtrFactory<IconAnimation> weak_ptr_factory_; |
111 | 111 |
112 DISALLOW_COPY_AND_ASSIGN(IconAnimation); | 112 DISALLOW_COPY_AND_ASSIGN(IconAnimation); |
113 }; | 113 }; |
114 | 114 |
115 ExtensionAction(const std::string& extension_id, | 115 ExtensionAction(const std::string& extension_id, |
116 extensions::Extension::ActionInfo::Type action_type, | 116 extensions::ActionInfo::Type action_type, |
117 const extensions::Extension::ActionInfo& manifest_data); | 117 const extensions::ActionInfo& manifest_data); |
118 ~ExtensionAction(); | 118 ~ExtensionAction(); |
119 | 119 |
120 // Gets a copy of this, ownership passed to caller. | 120 // Gets a copy of this, ownership passed to caller. |
121 // It doesn't make sense to copy of an ExtensionAction except in tests. | 121 // It doesn't make sense to copy of an ExtensionAction except in tests. |
122 scoped_ptr<ExtensionAction> CopyForTest() const; | 122 scoped_ptr<ExtensionAction> CopyForTest() const; |
123 | 123 |
124 // Given the extension action type, returns the size the extension action icon | 124 // Given the extension action type, returns the size the extension action icon |
125 // should have. The icon should be square, so only one dimension is | 125 // should have. The icon should be square, so only one dimension is |
126 // returned. | 126 // returned. |
127 static int GetIconSizeForType(extensions::Extension::ActionInfo::Type type); | 127 static int GetIconSizeForType(extensions::ActionInfo::Type type); |
128 | 128 |
129 // extension id | 129 // extension id |
130 const std::string& extension_id() const { return extension_id_; } | 130 const std::string& extension_id() const { return extension_id_; } |
131 | 131 |
132 // What kind of action is this? | 132 // What kind of action is this? |
133 extensions::Extension::ActionInfo::Type action_type() const { | 133 extensions::ActionInfo::Type action_type() const { |
134 return action_type_; | 134 return action_type_; |
135 } | 135 } |
136 | 136 |
137 // action id -- only used with legacy page actions API | 137 // action id -- only used with legacy page actions API |
138 std::string id() const { return id_; } | 138 std::string id() const { return id_; } |
139 void set_id(const std::string& id) { id_ = id; } | 139 void set_id(const std::string& id) { id_ = id; } |
140 | 140 |
141 bool has_changed() const { return has_changed_; } | 141 bool has_changed() const { return has_changed_; } |
142 void set_has_changed(bool value) { has_changed_ = value; } | 142 void set_has_changed(bool value) { has_changed_ = value; } |
143 | 143 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 } else { | 280 } else { |
281 iter = map->find(kDefaultTabId); | 281 iter = map->find(kDefaultTabId); |
282 return iter != map->end() ? iter->second : ValueTraits<T>::CreateEmpty(); | 282 return iter != map->end() ? iter->second : ValueTraits<T>::CreateEmpty(); |
283 } | 283 } |
284 } | 284 } |
285 | 285 |
286 // The id for the extension this action belongs to (as defined in the | 286 // The id for the extension this action belongs to (as defined in the |
287 // extension manifest). | 287 // extension manifest). |
288 const std::string extension_id_; | 288 const std::string extension_id_; |
289 | 289 |
290 const extensions::Extension::ActionInfo::Type action_type_; | 290 const extensions::ActionInfo::Type action_type_; |
291 | 291 |
292 // Each of these data items can have both a global state (stored with the key | 292 // Each of these data items can have both a global state (stored with the key |
293 // kDefaultTabId), or tab-specific state (stored with the tab_id as the key). | 293 // kDefaultTabId), or tab-specific state (stored with the tab_id as the key). |
294 std::map<int, GURL> popup_url_; | 294 std::map<int, GURL> popup_url_; |
295 std::map<int, std::string> title_; | 295 std::map<int, std::string> title_; |
296 std::map<int, gfx::ImageSkia> icon_; | 296 std::map<int, gfx::ImageSkia> icon_; |
297 std::map<int, std::string> badge_text_; | 297 std::map<int, std::string> badge_text_; |
298 std::map<int, SkColor> badge_background_color_; | 298 std::map<int, SkColor> badge_background_color_; |
299 std::map<int, SkColor> badge_text_color_; | 299 std::map<int, SkColor> badge_text_color_; |
300 std::map<int, Appearance> appearance_; | 300 std::map<int, Appearance> appearance_; |
(...skipping 21 matching lines...) Expand all Loading... |
322 }; | 322 }; |
323 | 323 |
324 template<> | 324 template<> |
325 struct ExtensionAction::ValueTraits<int> { | 325 struct ExtensionAction::ValueTraits<int> { |
326 static int CreateEmpty() { | 326 static int CreateEmpty() { |
327 return -1; | 327 return -1; |
328 } | 328 } |
329 }; | 329 }; |
330 | 330 |
331 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_H_ | 331 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_H_ |
OLD | NEW |