| Index: chrome/browser/views/browser_actions_container.h
|
| diff --git a/chrome/browser/views/browser_actions_container.h b/chrome/browser/views/browser_actions_container.h
|
| index e365bcd9e52a2f4bea20cf36ab5c56d14d6537ce..756de0ae9fba9879da8680575006355819069488 100644
|
| --- a/chrome/browser/views/browser_actions_container.h
|
| +++ b/chrome/browser/views/browser_actions_container.h
|
| @@ -17,8 +17,7 @@
|
|
|
| class BrowserActionsContainer;
|
| class Extension;
|
| -class ExtensionAction;
|
| -class ExtensionActionState;
|
| +class ExtensionAction2;
|
| class ExtensionPopup;
|
| class Profile;
|
| class ToolbarView;
|
| @@ -27,20 +26,21 @@ class ToolbarView;
|
| // BrowserActionButton
|
|
|
| // The BrowserActionButton is a specialization of the MenuButton class.
|
| -// It acts on a ExtensionAction, in this case a BrowserAction and handles
|
| +// It acts on a ExtensionAction2, in this case a BrowserAction and handles
|
| // loading the image for the button asynchronously on the file thread to
|
| class BrowserActionButton : public views::MenuButton,
|
| public views::ButtonListener,
|
| public ImageLoadingTracker::Observer,
|
| public NotificationObserver {
|
| public:
|
| - BrowserActionButton(ExtensionAction* browser_action,
|
| - Extension* extension,
|
| - BrowserActionsContainer* panel);
|
| + BrowserActionButton(Extension* extension, BrowserActionsContainer* panel);
|
| ~BrowserActionButton();
|
|
|
| - const ExtensionAction& browser_action() const { return *browser_action_; }
|
| - ExtensionActionState* browser_action_state() { return browser_action_state_; }
|
| + ExtensionAction2* browser_action() const { return browser_action_; }
|
| + Extension* extension() { return extension_; }
|
| +
|
| + // Called to update the display to match the browser action's state.
|
| + void UpdateState();
|
|
|
| // Overriden from views::View. Return a 0-inset so the icon can draw all the
|
| // way to the edge of the view if it wants.
|
| @@ -76,15 +76,15 @@ class BrowserActionButton : public views::MenuButton,
|
| virtual void PopupDidHide();
|
|
|
| private:
|
| - // Called to update the display to match the browser action's state.
|
| - void OnStateUpdated();
|
| + // If the image from the browser action needs to be loaded, load it.
|
| + void LoadImage();
|
|
|
| - // The browser action this view represents. The ExtensionAction is not owned
|
| + // The browser action this view represents. The ExtensionAction2 is not owned
|
| // by this class.
|
| - ExtensionAction* browser_action_;
|
| + ExtensionAction2* browser_action_;
|
|
|
| - // The state of our browser action. Not owned by this class.
|
| - ExtensionActionState* browser_action_state_;
|
| + // The extension associated with the browser action we're displaying.
|
| + Extension* extension_;
|
|
|
| // The icons representing different states for the browser action.
|
| std::vector<SkBitmap> browser_action_icons_;
|
| @@ -110,9 +110,7 @@ class BrowserActionButton : public views::MenuButton,
|
|
|
| class BrowserActionView : public views::View {
|
| public:
|
| - BrowserActionView(ExtensionAction* browser_action, Extension* extension,
|
| - BrowserActionsContainer* panel);
|
| -
|
| + BrowserActionView(Extension* extension, BrowserActionsContainer* panel);
|
| BrowserActionButton* button() { return button_; }
|
|
|
| private:
|
| @@ -121,6 +119,9 @@ class BrowserActionView : public views::View {
|
| // Override PaintChildren so that we can paint the badge on top of children.
|
| virtual void PaintChildren(gfx::Canvas* canvas);
|
|
|
| + // The container for this view.
|
| + BrowserActionsContainer* panel_;
|
| +
|
| // The button this view contains.
|
| BrowserActionButton* button_;
|
| };
|
| @@ -143,6 +144,9 @@ class BrowserActionsContainer : public views::View,
|
| // Get the number of browser actions being displayed.
|
| int num_browser_actions() { return browser_action_views_.size(); }
|
|
|
| + // Returns the current tab's ID, or -1 if there is no current tab.
|
| + int GetCurrentTabId();
|
| +
|
| // Get a particular browser action view.
|
| BrowserActionView* GetBrowserActionViewAt(int index) {
|
| return browser_action_views_[index];
|
| @@ -192,6 +196,14 @@ class BrowserActionsContainer : public views::View,
|
| ExtensionPopup* TestGetPopup() { return popup_; }
|
|
|
| private:
|
| + // Adds a browser action view for the extension if it needs one. DCHECK if
|
| + // it has already been added.
|
| + void AddBrowserAction(Extension* extension);
|
| +
|
| + // Removes the browser action view for an extension if it has one. DCHECK if
|
| + // no such view.
|
| + void RemoveBrowserAction(Extension* extension);
|
| +
|
| // The vector of browser actions (icons/image buttons for each action).
|
| std::vector<BrowserActionView*> browser_action_views_;
|
|
|
|
|