diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 23:16:28 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 23:16:28 +0000 |
commit | 0ed9480c6a0ac1a8cc75c7b421f64d421570f2ce (patch) | |
tree | 7e4bb4c588517f5d55ae271cdfce28e2b399300f | |
parent | 13e2f04da83dc9fa5ef42d28e113168b2a4b4d9a (diff) | |
download | chromium_src-0ed9480c6a0ac1a8cc75c7b421f64d421570f2ce.zip chromium_src-0ed9480c6a0ac1a8cc75c7b421f64d421570f2ce.tar.gz chromium_src-0ed9480c6a0ac1a8cc75c7b421f64d421570f2ce.tar.bz2 |
bookmarks: Extract BookmarkMenuController observer into its own header file.
BUG=None
TEST=None
R=sky@chromium.org
Review URL: https://codereview.chromium.org/23068028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219378 0039d316-1c4b-4281-b951-d872f2087c98
6 files changed, 44 insertions, 27 deletions
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc index 09546a4..6764ea2 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc @@ -42,6 +42,7 @@ #include "chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.h" #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h" #include "chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.h" +#include "chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h" #include "chrome/browser/ui/views/event_utils.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/location_bar/location_bar_view.h" @@ -940,7 +941,8 @@ void BookmarkBarView::AnimationEnded(const ui::Animation* animation) { } } -void BookmarkBarView::BookmarkMenuDeleted(BookmarkMenuController* controller) { +void BookmarkBarView::BookmarkMenuControllerDeleted( + BookmarkMenuController* controller) { if (controller == bookmark_menu_) bookmark_menu_ = NULL; else if (controller == bookmark_drop_menu_) @@ -1167,8 +1169,8 @@ void BookmarkBarView::OnMenuButtonClicked(views::View* view, } bookmark_utils::RecordBookmarkFolderOpen(GetBookmarkLaunchLocation()); - bookmark_menu_ = new BookmarkMenuController(browser_, - page_navigator_, GetWidget(), node, start_index); + bookmark_menu_ = new BookmarkMenuController( + browser_, page_navigator_, GetWidget(), node, start_index); bookmark_menu_->set_observer(this); bookmark_menu_->RunMenuAt(this, false); } diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h index afea414..f61e061 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h @@ -19,12 +19,13 @@ #include "chrome/browser/ui/bookmarks/bookmark_bar.h" #include "chrome/browser/ui/bookmarks/bookmark_bar_instructions_delegate.h" #include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view_observer.h" -#include "chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h" +#include "chrome/browser/ui/views/bookmarks/bookmark_menu_controller_observer.h" #include "chrome/browser/ui/views/detachable_toolbar_view.h" #include "ui/base/animation/animation_delegate.h" #include "ui/views/context_menu_controller.h" #include "ui/views/controls/button/button.h" #include "ui/views/controls/button/menu_button_listener.h" +#include "ui/views/controls/menu/menu_item_view.h" #include "ui/views/drag_controller.h" class BookmarkContextMenu; @@ -42,7 +43,6 @@ class SlideAnimation; namespace views { class CustomButton; class MenuButton; -class MenuItemView; class TextButton; } @@ -60,7 +60,7 @@ class BookmarkBarView : public DetachableToolbarView, public views::ContextMenuController, public views::DragController, public ui::AnimationDelegate, - public BookmarkMenuController::Observer, + public BookmarkMenuControllerObserver, public chrome::BookmarkBarInstructionsDelegate, public BookmarkBubbleViewObserver { public: @@ -118,9 +118,8 @@ class BookmarkBarView : public DetachableToolbarView, views::MenuButton* GetMenuButtonForNode(const BookmarkNode* node); // Returns the position to anchor the menu for |button| at. - void GetAnchorPositionForButton( - views::MenuButton* button, - views::MenuItemView::AnchorPosition* anchor); + void GetAnchorPositionForButton(views::MenuButton* button, + views::MenuItemView::AnchorPosition* anchor); // Returns the button responsible for showing bookmarks in the other bookmark // folder. @@ -189,8 +188,8 @@ class BookmarkBarView : public DetachableToolbarView, virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE; virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE; - // BookmarkMenuController::Observer: - virtual void BookmarkMenuDeleted( + // BookmarkMenuControllerObserver: + virtual void BookmarkMenuControllerDeleted( BookmarkMenuController* controller) OVERRIDE; // chrome::BookmarkBarInstructionsDelegate: diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_observer.h b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_observer.h new file mode 100644 index 0000000..f6ca016 --- /dev/null +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_observer.h @@ -0,0 +1,20 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_MENU_CONTROLLER_OBSERVER_H_ +#define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_MENU_CONTROLLER_OBSERVER_H_ + +class BookmarkMenuController; + +// The observer is notified prior to the menu being deleted. +class BookmarkMenuControllerObserver { + public: + virtual void BookmarkMenuControllerDeleted( + BookmarkMenuController* controller) = 0; + + protected: + virtual ~BookmarkMenuControllerObserver() {} +}; + +#endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_MENU_CONTROLLER_OBSERVER_H_ diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc index ffbeb43..d3a4614 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc @@ -10,6 +10,7 @@ #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/bookmarks/bookmark_utils.h" #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" +#include "chrome/browser/ui/views/bookmarks/bookmark_menu_controller_observer.h" #include "chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h" #include "chrome/common/pref_names.h" #include "content/public/browser/page_navigator.h" @@ -193,5 +194,5 @@ void BookmarkMenuController::BookmarkModelChanged() { BookmarkMenuController::~BookmarkMenuController() { menu_delegate_->GetBookmarkModel()->RemoveObserver(this); if (observer_) - observer_->BookmarkMenuDeleted(this); + observer_->BookmarkMenuControllerDeleted(this); } diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h index 269738b..326edb7 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h +++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h @@ -14,6 +14,7 @@ #include "ui/views/controls/menu/menu_item_view.h" class BookmarkBarView; +class BookmarkMenuControllerObserver; class BookmarkMenuDelegate; class BookmarkNode; class Browser; @@ -24,13 +25,13 @@ class PageNavigator; namespace ui { class OSExchangeData; -} // namespace ui +} namespace views { class MenuButton; class MenuRunner; class Widget; -} // namespace views +} // BookmarkMenuController is responsible for showing a menu of bookmarks, // each item in the menu represents a bookmark. @@ -39,15 +40,6 @@ class Widget; class BookmarkMenuController : public BaseBookmarkModelObserver, public views::MenuDelegate { public: - // The observer is notified prior to the menu being deleted. - class Observer { - public: - virtual void BookmarkMenuDeleted(BookmarkMenuController* controller) = 0; - - protected: - virtual ~Observer() {} - }; - // Creates a BookmarkMenuController showing the children of |node| starting // at |start_child_index|. BookmarkMenuController(Browser* browser, @@ -73,9 +65,11 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, // Sets the page navigator. void SetPageNavigator(content::PageNavigator* navigator); - void set_observer(Observer* observer) { observer_ = observer; } + void set_observer(BookmarkMenuControllerObserver* observer) { + observer_ = observer; + } - // MenuDelegate methods. + // views::MenuDelegate: virtual string16 GetTooltipText(int id, const gfx::Point& p) const OVERRIDE; virtual bool IsTriggerableEvent(views::MenuItemView* view, const ui::Event& e) OVERRIDE; @@ -113,7 +107,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, views::MenuButton** button) OVERRIDE; virtual int GetMaxWidthForMenu(views::MenuItemView* view) OVERRIDE; - // BookmarkModelObserver methods. + // BaseBookmarkModelObserver: virtual void BookmarkModelChanged() OVERRIDE; private: @@ -131,7 +125,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, BookmarkNodeData drop_data_; // The observer, may be null. - Observer* observer_; + BookmarkMenuControllerObserver* observer_; // Is the menu being shown for a drop? bool for_drop_; diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index 3e1c504..509b81c 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi @@ -1576,6 +1576,7 @@ 'browser/ui/views/bookmarks/bookmark_drag_drop_views.h', 'browser/ui/views/bookmarks/bookmark_editor_view.cc', 'browser/ui/views/bookmarks/bookmark_editor_view.h', + 'browser/ui/views/bookmarks/bookmark_menu_controller_observer.h', 'browser/ui/views/bookmarks/bookmark_menu_controller_views.cc', 'browser/ui/views/bookmarks/bookmark_menu_controller_views.h', 'browser/ui/views/bookmarks/bookmark_menu_delegate.cc', |