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

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

Issue 399143004: Open the WrenchMenu on mouseover when dragging a browser action (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit 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_menu.h
diff --git a/chrome/browser/ui/views/toolbar/wrench_menu.h b/chrome/browser/ui/views/toolbar/wrench_menu.h
index 6108547badca3ffcad92a2c916bf01ea605f92b9..ab07c50bd26ac82e705bba929462486244a68b97 100644
--- a/chrome/browser/ui/views/toolbar/wrench_menu.h
+++ b/chrome/browser/ui/views/toolbar/wrench_menu.h
@@ -37,10 +37,13 @@ class WrenchMenu : public views::MenuDelegate,
public BaseBookmarkModelObserver,
public content::NotificationObserver {
public:
+ // |for_drop| indicates whether or not the menu is being opened for a
+ // drag-and-drop operation.
// TODO: remove |use_new_menu| and |supports_new_separators|.
WrenchMenu(Browser* browser,
bool use_new_menu,
sky 2014/07/18 19:36:54 I think it's time to convert to a bitmask here.
Devlin 2014/07/18 21:38:31 Done.
- bool supports_new_separators);
+ bool supports_new_separators,
+ bool for_drop);
virtual ~WrenchMenu();
void Init(ui::MenuModel* model);
@@ -48,10 +51,14 @@ class WrenchMenu : public views::MenuDelegate,
// Shows the menu relative to the specified view.
void RunMenu(views::MenuButton* host);
+ // Closes the menu if it is open, otherwise does nothing.
+ void CloseMenu();
sky 2014/07/18 19:36:54 Instead of the close can you just delete this obje
Devlin 2014/07/18 21:38:31 Nope - doing so causes a segfault.
+
// Whether the menu is currently visible to the user.
bool IsShowing();
bool use_new_menu() const { return use_new_menu_; }
+ bool for_drop() const { return for_drop_; }
void AddObserver(WrenchMenuObserver* observer);
void RemoveObserver(WrenchMenuObserver* observer);
@@ -94,6 +101,7 @@ class WrenchMenu : public views::MenuDelegate,
virtual void WillShowMenu(views::MenuItemView* menu) OVERRIDE;
virtual void WillHideMenu(views::MenuItemView* menu) OVERRIDE;
virtual bool ShouldCloseOnDragComplete() OVERRIDE;
+ virtual bool InNestedDrag() OVERRIDE;
// BaseBookmarkModelObserver overrides:
virtual void BookmarkModelChanged() OVERRIDE;
@@ -181,6 +189,9 @@ class WrenchMenu : public views::MenuDelegate,
const bool supports_new_separators_;
+ // Whether or not the menu is opened for a drag and drop operation.
+ bool for_drop_;
+
ObserverList<WrenchMenuObserver> observer_list_;
DISALLOW_COPY_AND_ASSIGN(WrenchMenu);

Powered by Google App Engine
This is Rietveld 408576698