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. |