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

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

Issue 7720012: Moves ownership of MenuItemView to MenuRunner as well as responbility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 9 years, 4 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/wrench_menu.h
diff --git a/chrome/browser/ui/views/wrench_menu.h b/chrome/browser/ui/views/wrench_menu.h
index 76c988537a6394a0c7e83ad5220943f3f29c7b2e..c18c5f0177746d91be9b14cfd3055cb6801b0606 100644
--- a/chrome/browser/ui/views/wrench_menu.h
+++ b/chrome/browser/ui/views/wrench_menu.h
@@ -9,7 +9,6 @@
#include <map>
#include <utility>
-#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
#include "ui/base/models/menu_model.h"
@@ -21,15 +20,16 @@ class Browser;
namespace views {
class MenuButton;
class MenuItemView;
+class MenuRunner;
class View;
} // namespace views
// WrenchMenu adapts the WrenchMenuModel to view's menu related classes.
-class WrenchMenu : public base::RefCounted<WrenchMenu>,
- public views::MenuDelegate,
+class WrenchMenu : public views::MenuDelegate,
public BaseBookmarkModelObserver {
public:
explicit WrenchMenu(Browser* browser);
+ virtual ~WrenchMenu();
void Init(ui::MenuModel* model);
@@ -72,16 +72,12 @@ class WrenchMenu : public base::RefCounted<WrenchMenu>,
virtual void BookmarkModelChanged() OVERRIDE;
private:
- friend class base::RefCounted<WrenchMenu>;
-
class CutCopyPasteView;
class ZoomView;
typedef std::pair<ui::MenuModel*,int> Entry;
typedef std::map<int,Entry> IDToEntry;
- virtual ~WrenchMenu();
-
// Populates |parent| with all the child menus in |model|. Recursively invokes
// |PopulateMenu| for any submenu. |next_id| is incremented for every menu
// that is created.
@@ -110,8 +106,10 @@ class WrenchMenu : public base::RefCounted<WrenchMenu>,
return bookmark_menu_delegate_.get() && id >= first_bookmark_command_id_;
}
- // The views menu.
- scoped_ptr<views::MenuItemView> root_;
+ // The views menu. Owned by |menu_runner_|.
+ views::MenuItemView* root_;
+
+ scoped_ptr<views::MenuRunner> menu_runner_;
// Maps from the ID as understood by MenuItemView to the model/index pair the
// item came from.

Powered by Google App Engine
This is Rietveld 408576698