Index: chrome/browser/views/bookmark_bar_view.h |
=================================================================== |
--- chrome/browser/views/bookmark_bar_view.h (revision 29776) |
+++ chrome/browser/views/bookmark_bar_view.h (working copy) |
@@ -13,18 +13,19 @@ |
#include "chrome/browser/views/bookmark_menu_controller_views.h" |
#include "chrome/browser/views/detachable_toolbar_view.h" |
#include "chrome/common/notification_registrar.h" |
-#include "views/controls/button/menu_button.h" |
-#include "views/controls/label.h" |
+#include "views/controls/button/button.h" |
#include "views/controls/menu/view_menu_delegate.h" |
-#include "views/view.h" |
-#include "third_party/skia/include/core/SkRect.h" |
class Browser; |
class PageNavigator; |
class PrefService; |
namespace views { |
+class CustomButton; |
+class Label; |
+class MenuButton; |
class MenuItemView; |
+class TextButton; |
} |
// BookmarkBarView renders the BookmarkModel. Each starred entry on the |
@@ -173,7 +174,7 @@ |
// Returns the button responsible for showing bookmarks in the other bookmark |
// folder. |
- views::TextButton* other_bookmarked_button() const { |
+ views::MenuButton* other_bookmarked_button() const { |
return other_bookmarked_button_; |
} |
@@ -187,8 +188,26 @@ |
views::MenuItemView* GetContextMenu(); |
// Returns the button used when not all the items on the bookmark bar fit. |
- views::TextButton* overflow_button() const { return overflow_button_; } |
+ views::MenuButton* overflow_button() const { return overflow_button_; } |
+ // If |loc| is over a bookmark button the node is returned corresponding |
+ // to the button and |start_index| is set to 0. If a overflow button is |
+ // showing and |loc| is over the overflow button, the bookmark bar node is |
+ // returned and |start_index| is set to the index of the first node |
+ // contained in the overflow menu. |
+ const BookmarkNode* GetNodeForButtonAt(const gfx::Point& loc, |
+ int* start_index); |
+ |
+ // Returns the MenuButton for node. |
+ views::MenuButton* GetMenuButtonForNode(const BookmarkNode* node); |
+ |
+ // Returns the position to anchor the menu for |button| at, the index of the |
+ // first child of the node to build the menu from. |
+ void GetAnchorPositionAndStartIndexForButton( |
+ views::MenuButton* button, |
+ views::MenuItemView::AnchorPosition* anchor, |
+ int* start_index); |
+ |
// Maximum size of buttons on the bookmark bar. |
static const int kMaxButtonWidth; |
@@ -317,12 +336,8 @@ |
// Returns the drag operations for the specified button. |
virtual int GetDragOperations(views::View* sender, int x, int y); |
- // ViewMenuDelegate method. 3 types of menus may be shown: |
- // . the menu allowing the user to choose when the bookmark bar is visible. |
- // . most recently bookmarked menu |
- // . menu for star groups. |
- // The latter two are handled by a MenuRunner, which builds the appropriate |
- // menu. |
+ // ViewMenuDelegate method. Ends up creating a BookmarkMenuController to |
+ // show the menu. |
virtual void RunMenu(views::View* view, const gfx::Point& pt); |
// Invoked when a star entry corresponding to a URL on the bookmark bar is |