| Index: chrome/browser/extensions/extension_shelf_model.h
|
| diff --git a/chrome/browser/extensions/extension_shelf_model.h b/chrome/browser/extensions/extension_shelf_model.h
|
| deleted file mode 100644
|
| index c2261c5e6e5887263da5ebbe21a9151a9134e845..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/extension_shelf_model.h
|
| +++ /dev/null
|
| @@ -1,168 +0,0 @@
|
| -// 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_SHELF_MODEL_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_EXTENSION_SHELF_MODEL_H_
|
| -#pragma once
|
| -
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/observer_list.h"
|
| -#include "chrome/browser/extensions/extension_host.h"
|
| -#include "chrome/common/extensions/extension.h"
|
| -#include "chrome/common/notification_observer.h"
|
| -#include "chrome/common/notification_registrar.h"
|
| -
|
| -class Browser;
|
| -class ExtensionPrefs;
|
| -class ExtensionShelfModelObserver;
|
| -
|
| -// The model representing the toolstrips on an ExtensionShelf. The order of
|
| -// the toolstrips is common across all of the models for a given Profile,
|
| -// but there are multiple models. Each model contains the hosts/views which
|
| -// are specific to a Browser.
|
| -class ExtensionShelfModel : public NotificationObserver {
|
| - public:
|
| - explicit ExtensionShelfModel(Browser* browser);
|
| - virtual ~ExtensionShelfModel();
|
| -
|
| - struct ToolstripItem {
|
| - ExtensionHost* host;
|
| - Extension::ToolstripInfo info;
|
| - void* data;
|
| - int height;
|
| - GURL url;
|
| - };
|
| -
|
| - typedef std::vector<ToolstripItem> ToolstripList;
|
| - typedef ToolstripList::iterator iterator;
|
| -
|
| - // Add and remove observers to changes within this ExtensionShelfModel.
|
| - void AddObserver(ExtensionShelfModelObserver* observer);
|
| - void RemoveObserver(ExtensionShelfModelObserver* observer);
|
| -
|
| - // The number of toolstrips in the model.
|
| - int count() const { return static_cast<int>(toolstrips_.size()); }
|
| - bool empty() const { return toolstrips_.empty(); }
|
| -
|
| - // Iterators for the toolstrips in the model.
|
| - iterator begin() { return toolstrips_.begin(); }
|
| - ExtensionShelfModel::iterator end() { return toolstrips_.end(); }
|
| -
|
| - // Add |toolstrip| to the end of the shelf.
|
| - void AppendToolstrip(const ToolstripItem& toolstrip);
|
| -
|
| - // Insert |toolstrip| and |data| at |index|.
|
| - void InsertToolstripAt(int index, const ToolstripItem& toolstrip);
|
| -
|
| - // Remove the toolstrip at |index|.
|
| - void RemoveToolstripAt(int index);
|
| -
|
| - // Move the toolstrip at |index| to |to_index|.
|
| - void MoveToolstripAt(int index, int to_index);
|
| -
|
| - // Lookup the index of |host|. Returns -1 if not present.
|
| - int IndexOfHost(ExtensionHost* host);
|
| -
|
| - // Return the toolstrip at |index|.
|
| - const ToolstripItem& ToolstripAt(int index);
|
| -
|
| - // Return the ToolstripItem associated with |host| or NULL if it's not
|
| - // present.
|
| - ToolstripList::iterator ToolstripForHost(ExtensionHost* host);
|
| -
|
| - // Set some arbitrary data associated with a particular toolstrip.
|
| - void SetToolstripDataAt(int index, void* data);
|
| -
|
| - // Update the ToolstripItem for |toolstrip| to set its |url| and |height|
|
| - // and then call ToolstripChanged for all observers.
|
| - // If |url| is empty, no navigation is requested.
|
| - void ExpandToolstrip(iterator toolstrip, const GURL& url, int height);
|
| -
|
| - // Update the ToolstripItem for |toolstrip| to set its |url| and its height
|
| - // to 0, and then call ToolstripChanged for all observers.
|
| - // If |url| is empty, no navigation is requested.
|
| - void CollapseToolstrip(iterator toolstrip, const GURL& url);
|
| -
|
| - // NotificationObserver
|
| - virtual void Observe(NotificationType type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details);
|
| -
|
| - private:
|
| - // Add all of the toolstrips from |extension|.
|
| - void AddExtension(Extension* extension);
|
| -
|
| - // Add all of the toolstrips from each extension in |extensions|.
|
| - void AddExtensions(const ExtensionList* extensions);
|
| -
|
| - // Remove all of the toolstrips in |extension| from the shelf.
|
| - void RemoveExtension(Extension* extension);
|
| -
|
| - // Update prefs with the most recent changes.
|
| - void UpdatePrefs();
|
| -
|
| - // Reloads order from prefs.
|
| - void SortToolstrips();
|
| -
|
| - // The browser that this model is attached to.
|
| - Browser* browser_;
|
| -
|
| - // The preferences that this model uses.
|
| - ExtensionPrefs* prefs_;
|
| -
|
| - // Manages our notification registrations.
|
| - NotificationRegistrar registrar_;
|
| -
|
| - // The Toolstrips loaded in this model. The model owns these objects.
|
| - ToolstripList toolstrips_;
|
| -
|
| - // Our observers.
|
| - typedef ObserverList<ExtensionShelfModelObserver>
|
| - ExtensionShelfModelObservers;
|
| - ExtensionShelfModelObservers observers_;
|
| -
|
| - // Whether the model has received an EXTENSIONS_READY notification.
|
| - bool ready_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ExtensionShelfModel);
|
| -};
|
| -
|
| -// Objects implement this interface when they wish to be notified of changes to
|
| -// the ExtensionShelfModel.
|
| -//
|
| -// Register your ExtensionShelfModelObserver with the ExtensionShelfModel using
|
| -// Add/RemoveObserver methods.
|
| -class ExtensionShelfModelObserver {
|
| - public:
|
| - // A new toolstrip was inserted into ExtensionShelfModel at |index|.
|
| - virtual void ToolstripInsertedAt(ExtensionHost* toolstrip, int index) {}
|
| -
|
| - // The specified toolstrip is being removed and destroyed.
|
| - virtual void ToolstripRemovingAt(ExtensionHost* toolstrip, int index) {}
|
| -
|
| - // |toolstrip| moved from |from_index| to |to_index|.
|
| - virtual void ToolstripMoved(ExtensionHost* toolstrip,
|
| - int from_index,
|
| - int to_index) {}
|
| -
|
| - // The specified toolstrip changed in some way (currently only size changes)
|
| - virtual void ToolstripChanged(ExtensionShelfModel::iterator toolstrip) {}
|
| -
|
| - // There are no more toolstrips in the model.
|
| - virtual void ExtensionShelfEmpty() {}
|
| -
|
| - // The entire model may have changed.
|
| - virtual void ShelfModelReloaded() {}
|
| -
|
| - // The model is being destroyed.
|
| - virtual void ShelfModelDeleting() {}
|
| -
|
| - protected:
|
| - virtual ~ExtensionShelfModelObserver() {}
|
| -};
|
| -
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SHELF_MODEL_H_
|
|
|