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

Unified Diff: chrome/browser/ui/views/toolbar/wrench_toolbar_button.h

Issue 413323002: Resubmit: Open the WrenchMenu on mouseover when dragging a browser action (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Created 6 years, 5 months 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/toolbar/wrench_toolbar_button.h
diff --git a/chrome/browser/ui/views/toolbar/wrench_toolbar_button.h b/chrome/browser/ui/views/toolbar/wrench_toolbar_button.h
index ef14b679aa471eaff48add7b7ee68e237c63ece5..0706ba2831eccb6bacca4d29fb52151495906e17 100644
--- a/chrome/browser/ui/views/toolbar/wrench_toolbar_button.h
+++ b/chrome/browser/ui/views/toolbar/wrench_toolbar_button.h
@@ -5,14 +5,19 @@
#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_
#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_WRENCH_TOOLBAR_BUTTON_H_
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "chrome/browser/ui/toolbar/wrench_icon_painter.h"
#include "ui/views/controls/button/menu_button.h"
+class ToolbarView;
+
// TODO(gbillock): Rename this? No longer a wrench.
class WrenchToolbarButton : public views::MenuButton,
public WrenchIconPainter::Delegate {
public:
- explicit WrenchToolbarButton(views::MenuButtonListener* menu_button_listener);
+ explicit WrenchToolbarButton(ToolbarView* toolbar_view);
virtual ~WrenchToolbarButton();
void SetSeverity(WrenchIconPainter::Severity severity, bool animate);
@@ -24,9 +29,36 @@ class WrenchToolbarButton : public views::MenuButton,
// WrenchIconPainter::Delegate:
virtual void ScheduleWrenchIconPaint() OVERRIDE;
+ // Opens the wrench menu immediately during a drag-and-drop operation.
+ // Used only in testing.
+ static bool g_open_wrench_immediately_for_testing;
+
private:
+ // views::View:
+ virtual bool GetDropFormats(int* formats,
+ std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
+ virtual bool AreDropTypesRequired() OVERRIDE;
+ virtual bool CanDrop(const ui::OSExchangeData& data) OVERRIDE;
+ virtual void OnDragEntered(const ui::DropTargetEvent& event) OVERRIDE;
+ virtual int OnDragUpdated(const ui::DropTargetEvent& event) OVERRIDE;
+ virtual void OnDragExited() OVERRIDE;
+ virtual int OnPerformDrop(const ui::DropTargetEvent& event) OVERRIDE;
+
+ // Show the extension action overflow menu (which is in the app menu).
+ void ShowOverflowMenu();
+
scoped_ptr<WrenchIconPainter> wrench_icon_painter_;
+ // Our owning toolbar view.
+ ToolbarView* toolbar_view_;
+
+ // Whether or not we should allow dragging extension icons onto this button
+ // (in order to open the overflow in the app/wrench menu).
+ bool allow_extension_dragging_;
+
+ // Used to spawn weak pointers for delayed tasks to open the overflow menu.
+ base::WeakPtrFactory<WrenchToolbarButton> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(WrenchToolbarButton);
};

Powered by Google App Engine
This is Rietveld 408576698