Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Unified Diff: chrome/browser/ui/views/browser_action_view.h

Issue 71743002: [Toolbar Views] Move toolbar files to a new subdirectory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_

Powered by Google App Engine
This is Rietveld 408576698