Index: chrome/browser/extensions/extension_toolbar_model.h |
=================================================================== |
--- chrome/browser/extensions/extension_toolbar_model.h (revision 0) |
+++ chrome/browser/extensions/extension_toolbar_model.h (revision 0) |
@@ -0,0 +1,64 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_TOOLBAR_MODEL_H_ |
+#define CHROME_BROWSER_EXTENSIONS_EXTENSION_TOOLBAR_MODEL_H_ |
+ |
+#include "base/observer_list.h" |
+#include "chrome/common/extensions/extension.h" |
+#include "chrome/common/notification_observer.h" |
+#include "chrome/common/notification_registrar.h" |
+ |
+class ExtensionsService; |
+ |
+// Model for the browser actions toolbar. |
+class ExtensionToolbarModel : public NotificationObserver { |
+ public: |
+ explicit ExtensionToolbarModel(ExtensionsService* service); |
+ ~ExtensionToolbarModel(); |
+ |
+ // A class which is informed of changes to the model; represents the view of |
+ // MVC. |
+ class Observer { |
+ public: |
+ // An extension with a browser action button has been added, and should go |
+ // in the toolbar at |index|. |
+ virtual void BrowserActionAdded(Extension* extension, int index) {} |
+ |
+ // The browser action button for |extension| should no longer show. |
+ virtual void BrowserActionRemoved(Extension* extension) {} |
+ }; |
+ |
+ void AddObserver(Observer* observer); |
+ void RemoveObserver(Observer* observer); |
+ |
+ ExtensionList::iterator begin() { |
+ return toolitems_.begin(); |
+ } |
+ |
+ ExtensionList::iterator end() { |
+ return toolitems_.end(); |
+ } |
+ |
+ private: |
+ // NotificationObserver implementation. |
+ virtual void Observe(NotificationType type, |
+ const NotificationSource& source, |
+ const NotificationDetails& details); |
+ |
+ // Our observers. |
+ ObserverList<Observer> observers_; |
+ |
+ void AddExtension(Extension* extension); |
+ void RemoveExtension(Extension* extension); |
+ |
+ // Our ExtensionsService, guaranteed to outlive us. |
+ ExtensionsService* service_; |
+ |
+ // Ordered list of browser action buttons. |
+ ExtensionList toolitems_; |
+ |
+ NotificationRegistrar registrar_; |
+}; |
+#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_TOOLBAR_MODEL_H_ |
Property changes on: chrome/browser/extensions/extension_toolbar_model.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |