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

Unified Diff: chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h

Issue 7054020: Refactors code for showing bookmark menus so that it can be used by (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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/bookmarks/bookmark_menu_controller_views.h
===================================================================
--- chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h (revision 86142)
+++ chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h (working copy)
@@ -6,19 +6,17 @@
#define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_MENU_CONTROLLER_VIEWS_H_
#pragma once
-#include <map>
#include <set>
#include "chrome/browser/bookmarks/base_bookmark_model_observer.h"
#include "chrome/browser/bookmarks/bookmark_node_data.h"
-#include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h"
#include "ui/gfx/native_widget_types.h"
#include "views/controls/menu/menu_delegate.h"
#include "views/controls/menu/menu_item_view.h"
class BookmarkBarView;
+class BookmarkMenuDelegate;
class BookmarkNode;
-class Browser;
class PageNavigator;
class Profile;
@@ -39,8 +37,7 @@
// 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 BookmarkContextMenuObserver {
+ public views::MenuDelegate {
public:
// The observer is notified prior to the menu being deleted.
class Observer {
@@ -52,9 +49,8 @@
};
// Creates a BookmarkMenuController showing the children of |node| starting
- // at index |start_child_index|.
- BookmarkMenuController(Browser* browser,
- Profile* profile,
+ // at |start_child_index|.
+ BookmarkMenuController(Profile* profile,
PageNavigator* page_navigator,
gfx::NativeWindow parent,
const BookmarkNode* node,
@@ -74,12 +70,10 @@
const BookmarkNode* node() const { return node_; }
// Returns the menu.
- views::MenuItemView* menu() const { return menu_; }
+ views::MenuItemView* menu() const;
// Returns the context menu, or NULL if the context menu isn't showing.
- views::MenuItemView* context_menu() const {
- return context_menu_.get() ? context_menu_->menu() : NULL;
- }
+ views::MenuItemView* context_menu() const;
void set_observer(Observer* observer) { observer_ = observer; }
@@ -120,70 +114,19 @@
// BookmarkModelObserver methods.
virtual void BookmarkModelChanged();
- 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.
virtual ~BookmarkMenuController();
- // Creates a menu and adds it to node_to_menu_id_map_. This uses
- // BuildMenu to recursively populate the menu.
- views::MenuItemView* CreateMenu(const BookmarkNode* parent,
- int start_child_index);
+ scoped_ptr<BookmarkMenuDelegate> menu_delegate_;
- // Creates an entry in menu for each child node of |parent| starting at
- // |start_child_index|.
- void BuildMenu(const BookmarkNode* parent,
- int start_child_index,
- 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_;
-
- PageNavigator* page_navigator_;
-
- // Parent of menus.
- gfx::NativeWindow parent_;
-
// The node we're showing the contents of.
const BookmarkNode* node_;
- // Maps from menu id to BookmarkNode.
- std::map<int, const BookmarkNode*> menu_id_to_node_map_;
-
- // Mapping from node to menu id. This only contains entries for nodes of type
- // URL.
- NodeToMenuIDMap node_to_menu_id_map_;
-
- // Current menu.
- views::MenuItemView* menu_;
-
// Data for the drop.
BookmarkNodeData drop_data_;
- // Used when a context menu is shown.
- scoped_ptr<BookmarkContextMenu> context_menu_;
-
// The observer, may be null.
Observer* observer_;
@@ -194,12 +137,6 @@
// for a folder on the bookmark bar and not for drop.
BookmarkBarView* bookmark_bar_;
- typedef std::map<const BookmarkNode*, views::MenuItemView*> NodeToMenuMap;
- NodeToMenuMap node_to_menu_map_;
-
- // ID of the next menu item.
- int next_menu_id_;
-
DISALLOW_COPY_AND_ASSIGN(BookmarkMenuController);
};

Powered by Google App Engine
This is Rietveld 408576698