summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/bookmark_menu_controller_views.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/bookmark_menu_controller_views.h')
-rw-r--r--chrome/browser/views/bookmark_menu_controller_views.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/chrome/browser/views/bookmark_menu_controller_views.h b/chrome/browser/views/bookmark_menu_controller_views.h
index f19c3cc..13e1295 100644
--- a/chrome/browser/views/bookmark_menu_controller_views.h
+++ b/chrome/browser/views/bookmark_menu_controller_views.h
@@ -6,6 +6,7 @@
#define CHROME_BROWSER_VIEWS_BOOKMARK_MENU_CONTROLLER_VIEWS_H_
#include <map>
+#include <set>
#include "app/gfx/native_widget_types.h"
#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
@@ -35,7 +36,8 @@ class Profile;
// BookmarkMenuController deletes itself as necessary, although the menu can
// be explicitly hidden by way of the Cancel method.
class BookmarkMenuController : public BaseBookmarkModelObserver,
- public views::MenuDelegate {
+ public views::MenuDelegate,
+ public BookmarkContextMenuObserver {
public:
// The observer is notified prior to the menu being deleted.
class Observer {
@@ -112,7 +114,14 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model,
const BookmarkNode* node);
+ // BookmarkContextMenu::Observer methods.
+ virtual void WillRemoveBookmarks(
+ const std::vector<const BookmarkNode*>& bookmarks);
+ virtual void DidRemoveBookmarks();
+
private:
+ typedef std::map<const BookmarkNode*, int> NodeToMenuIDMap;
+
// BookmarkMenuController deletes itself as necessary.
~BookmarkMenuController();
@@ -132,6 +141,16 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
views::MenuItemView* menu,
int* next_menu_id);
+ // Returns the menu whose id is |id|.
+ views::MenuItemView* GetMenuByID(int id);
+
+ // Does the work of processing WillRemoveBookmarks. On exit the set of removed
+ // menus is added to |removed_menus|. It's up to the caller to delete the
+ // the menus added to |removed_menus|.
+ void WillRemoveBookmarksImpl(
+ const std::vector<const BookmarkNode*>& bookmarks,
+ std::set<views::MenuItemView*>* removed_menus);
+
Browser* browser_;
Profile* profile_;
@@ -149,7 +168,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
// Mapping from node to menu id. This only contains entries for nodes of type
// URL.
- std::map<const BookmarkNode*, int> node_to_menu_id_map_;
+ NodeToMenuIDMap node_to_menu_id_map_;
// Current menu.
views::MenuItemView* menu_;