Index: chrome/browser/ui/views/browser_action_view.h |
diff --git a/chrome/browser/ui/views/browser_action_view.h b/chrome/browser/ui/views/browser_action_view.h |
deleted file mode 100644 |
index 1b4e8e24821c55fd712d61776b41225243670798..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/views/browser_action_view.h |
+++ /dev/null |
@@ -1,238 +0,0 @@ |
-// Copyright (c) 2012 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_UI_VIEWS_BROWSER_ACTION_VIEW_H_ |
-#define CHROME_BROWSER_UI_VIEWS_BROWSER_ACTION_VIEW_H_ |
- |
-#include <string> |
- |
-#include "chrome/browser/extensions/extension_action_icon_factory.h" |
-#include "chrome/browser/extensions/extension_context_menu_model.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "ui/views/context_menu_controller.h" |
-#include "ui/views/controls/button/menu_button.h" |
-#include "ui/views/controls/button/menu_button_listener.h" |
-#include "ui/views/drag_controller.h" |
-#include "ui/views/view.h" |
- |
-class Browser; |
-class BrowserActionButton; |
-class ExtensionAction; |
- |
-namespace extensions { |
-class Extension; |
-} |
- |
-namespace gfx { |
-class Image; |
-} |
- |
-namespace views { |
-class MenuItemView; |
-class MenuRunner; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// BrowserActionView |
-// A single entry in the browser action container. This contains the actual |
-// BrowserActionButton, as well as the logic to paint the badge. |
-class BrowserActionView : public views::View { |
- public: |
- // Need DragController here because BrowserActionView could be |
- // dragged/dropped. |
- class Delegate : public views::DragController, |
- public ExtensionContextMenuModel::PopupDelegate { |
- public: |
- // Returns the current tab's ID, or -1 if there is no current tab. |
- virtual int GetCurrentTabId() const = 0; |
- |
- // Called when the user clicks on the browser action icon. |
- virtual void OnBrowserActionExecuted(BrowserActionButton* button) = 0; |
- |
- // Called when a browser action becomes visible/hidden. |
- virtual void OnBrowserActionVisibilityChanged() = 0; |
- |
- // Returns relative position of a button inside BrowserActionView. |
- virtual gfx::Point GetViewContentOffset() const = 0; |
- |
- virtual bool NeedToShowMultipleIconStates() const; |
- virtual bool NeedToShowTooltip() const; |
- |
- protected: |
- virtual ~Delegate() {} |
- }; |
- |
- BrowserActionView(const extensions::Extension* extension, |
- Browser* browser, |
- Delegate* delegate); |
- virtual ~BrowserActionView(); |
- |
- BrowserActionButton* button() { return button_; } |
- |
- // Gets browser action button icon with the badge. |
- gfx::ImageSkia GetIconWithBadge(); |
- |
- // Overridden from views::View: |
- virtual void Layout() OVERRIDE; |
- virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; |
- virtual gfx::Size GetPreferredSize() OVERRIDE; |
- |
- protected: |
- // Overridden from views::View to paint the badge on top of children. |
- virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE; |
- |
- private: |
- // The Browser object this view is associated with. |
- Browser* browser_; |
- |
- // Usually a container for this view. |
- Delegate* delegate_; |
- |
- // The button this view contains. |
- BrowserActionButton* button_; |
- |
- // Extension this view associated with. |
- const extensions::Extension* extension_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowserActionView); |
-}; |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// BrowserActionButton |
- |
-// The BrowserActionButton is a specialization of the MenuButton class. |
-// It acts on a ExtensionAction, in this case a BrowserAction and handles |
-// loading the image for the button asynchronously on the file thread. |
-class BrowserActionButton : public views::MenuButton, |
- public views::ButtonListener, |
- public views::ContextMenuController, |
- public content::NotificationObserver, |
- public ExtensionActionIconFactory::Observer { |
- public: |
- BrowserActionButton(const extensions::Extension* extension, |
- Browser* browser_, |
- BrowserActionView::Delegate* delegate); |
- |
- // Call this instead of delete. |
- void Destroy(); |
- |
- ExtensionAction* browser_action() const { return browser_action_; } |
- const extensions::Extension* extension() { return extension_; } |
- |
- // Called to update the display to match the browser action's state. |
- void UpdateState(); |
- |
- // Does this button's action have a popup? |
- virtual bool IsPopup(); |
- virtual GURL GetPopupUrl(); |
- |
- // Overridden from views::View: |
- virtual bool CanHandleAccelerators() const OVERRIDE; |
- virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; |
- |
- // Overridden from views::ButtonListener: |
- virtual void ButtonPressed(views::Button* sender, |
- const ui::Event& event) OVERRIDE; |
- |
- // Overridden from views::ContextMenuController. |
- virtual void ShowContextMenuForView(View* source, |
- const gfx::Point& point, |
- ui::MenuSourceType source_type) OVERRIDE; |
- |
- // Overridden from content::NotificationObserver: |
- virtual void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) OVERRIDE; |
- |
- // Overriden from ExtensionActionIconFactory::Observer. |
- virtual void OnIconUpdated() OVERRIDE; |
- |
- // MenuButton behavior overrides. These methods all default to TextButton |
- // behavior unless this button is a popup. In that case, it uses MenuButton |
- // behavior. MenuButton has the notion of a child popup being shown where the |
- // button will stay in the pushed state until the "menu" (a popup in this |
- // case) is dismissed. |
- virtual bool Activate() OVERRIDE; |
- virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; |
- virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE; |
- virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE; |
- virtual bool OnKeyReleased(const ui::KeyEvent& event) OVERRIDE; |
- virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; |
- |
- // Overridden from ui::AcceleratorTarget. |
- virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
- |
- // Notifications when to set button state to pushed/not pushed (for when the |
- // popup/context menu is hidden or shown by the container). |
- void SetButtonPushed(); |
- void SetButtonNotPushed(); |
- |
- // Whether the browser action is enabled on this tab. Note that we cannot use |
- // the built-in views enabled/SetEnabled because disabled views do not |
- // receive drag events. |
- bool IsEnabled(int tab_id) const; |
- |
- // Returns icon factory for the button. |
- ExtensionActionIconFactory& icon_factory() { return icon_factory_; } |
- |
- // Returns button icon so it can be accessed during tests. |
- gfx::ImageSkia GetIconForTest(); |
- |
- protected: |
- // Overridden from views::View: |
- virtual void ViewHierarchyChanged( |
- const ViewHierarchyChangedDetails& details) OVERRIDE; |
- |
- private: |
- virtual ~BrowserActionButton(); |
- |
- // Register an extension command if the extension has an active one. |
- void MaybeRegisterExtensionCommand(); |
- |
- // Unregisters an extension command, if the extension has registered one and |
- // it is active. |
- void MaybeUnregisterExtensionCommand(bool only_if_active); |
- |
- // The Browser object this button is associated with. |
- Browser* browser_; |
- |
- // The browser action this view represents. The ExtensionAction is not owned |
- // by this class. |
- ExtensionAction* browser_action_; |
- |
- // The extension associated with the browser action we're displaying. |
- const extensions::Extension* extension_; |
- |
- // The object that will be used to get the browser action icon for us. |
- // It may load the icon asynchronously (in which case the initial icon |
- // returned by the factory will be transparent), so we have to observe it for |
- // updates to the icon. |
- ExtensionActionIconFactory icon_factory_; |
- |
- // Delegate that usually represents a container for BrowserActionView. |
- BrowserActionView::Delegate* delegate_; |
- |
- // The context menu. This member is non-NULL only when the menu is shown. |
- views::MenuItemView* context_menu_; |
- |
- // Used to make sure MaybeRegisterExtensionCommand() is called only once |
- // from ViewHierarchyChanged(). |
- bool called_registered_extension_command_; |
- |
- content::NotificationRegistrar registrar_; |
- |
- // The extension key binding accelerator this browser action is listening for |
- // (to show the popup). |
- scoped_ptr<ui::Accelerator> keybinding_; |
- |
- // Responsible for running the menu. |
- scoped_ptr<views::MenuRunner> menu_runner_; |
- |
- friend class base::DeleteHelper<BrowserActionButton>; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowserActionButton); |
-}; |
- |
-#endif // CHROME_BROWSER_UI_VIEWS_BROWSER_ACTION_VIEW_H_ |