summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-19 20:18:33 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-19 20:18:33 +0000
commit1b78b7e974e754518d60819b69935832cfedf4f5 (patch)
treeebeb81fc3c94ea289b7f4c93cf9bba3ace58e8b5 /views
parent377bf4a40c042fa205e60acbcd9ea25eab8c85ed (diff)
downloadchromium_src-1b78b7e974e754518d60819b69935832cfedf4f5.zip
chromium_src-1b78b7e974e754518d60819b69935832cfedf4f5.tar.gz
chromium_src-1b78b7e974e754518d60819b69935832cfedf4f5.tar.bz2
Adds two methods to the MenuDelegate I'm going to need for bookmark
menus. Tweaks some wrapping in bookmark_utils.cc and adds an assertion to bookmark_bar_view_test. BUG=81263 TEST=none R=ben@chromium.org Review URL: http://codereview.chromium.org/7029046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85960 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r--views/controls/menu/menu_controller.cc6
-rw-r--r--views/controls/menu/menu_delegate.cc8
-rw-r--r--views/controls/menu/menu_delegate.h7
3 files changed, 15 insertions, 6 deletions
diff --git a/views/controls/menu/menu_controller.cc b/views/controls/menu/menu_controller.cc
index df88db14..a59caac 100644
--- a/views/controls/menu/menu_controller.cc
+++ b/views/controls/menu/menu_controller.cc
@@ -544,7 +544,7 @@ void MenuController::OnMouseReleased(SubmenuView* source,
SendMouseReleaseToActiveView(source, event);
return;
}
- if (part.menu->GetDelegate()->IsTriggerableEvent(event)) {
+ if (part.menu->GetDelegate()->IsTriggerableEvent(part.menu, event)) {
Accept(part.menu, event.flags());
return;
}
@@ -1325,6 +1325,8 @@ void MenuController::OpenMenu(MenuItemView* item) {
}
void MenuController::OpenMenuImpl(MenuItemView* item, bool show) {
+ if (show)
+ item->GetDelegate()->WillShowMenu(item);
bool prefer_leading =
state_.open_leading.empty() ? true : state_.open_leading.back();
bool resulting_direction;
@@ -1421,7 +1423,7 @@ gfx::Rect MenuController::CalculateMenuBounds(MenuItemView* item,
// Don't let the menu go to wide.
pref.set_width(std::min(pref.width(),
- item->GetDelegate()->GetMaxWidthForMenu()));
+ item->GetDelegate()->GetMaxWidthForMenu(item)));
if (!state_.monitor_bounds.IsEmpty())
pref.set_width(std::min(pref.width(), state_.monitor_bounds.width()));
diff --git a/views/controls/menu/menu_delegate.cc b/views/controls/menu/menu_delegate.cc
index 8bd21bf..d4d084d 100644
--- a/views/controls/menu/menu_delegate.cc
+++ b/views/controls/menu/menu_delegate.cc
@@ -55,7 +55,8 @@ void MenuDelegate::ExecuteCommand(int id, int mouse_event_flags) {
ExecuteCommand(id);
}
-bool MenuDelegate::IsTriggerableEvent(const MouseEvent& e) {
+bool MenuDelegate::IsTriggerableEvent(MenuItemView* source,
+ const MouseEvent& e) {
return e.IsLeftMouseButton() || e.IsRightMouseButton();
}
@@ -109,10 +110,13 @@ MenuItemView* MenuDelegate::GetSiblingMenu(MenuItemView* menu,
return NULL;
}
-int MenuDelegate::GetMaxWidthForMenu() {
+int MenuDelegate::GetMaxWidthForMenu(MenuItemView* menu) {
// NOTE: this needs to be large enough to accommodate the wrench menu with
// big fonts.
return 800;
}
+void MenuDelegate::WillShowMenu(MenuItemView* menu) {
+}
+
} // namespace views
diff --git a/views/controls/menu/menu_delegate.h b/views/controls/menu/menu_delegate.h
index 578f679..991d3c5 100644
--- a/views/controls/menu/menu_delegate.h
+++ b/views/controls/menu/menu_delegate.h
@@ -105,7 +105,7 @@ class MenuDelegate {
// Returns true if the specified mouse event is one the user can use
// to trigger, or accept, the mouse. Defaults to left or right mouse buttons.
- virtual bool IsTriggerableEvent(const MouseEvent& e);
+ virtual bool IsTriggerableEvent(MenuItemView* view, const MouseEvent& e);
// Invoked to determine if drops can be accepted for a submenu. This is
// ONLY invoked for menus that have submenus and indicates whether or not
@@ -184,7 +184,10 @@ class MenuDelegate {
MenuButton** button);
// Returns the max width menus can grow to be.
- virtual int GetMaxWidthForMenu();
+ virtual int GetMaxWidthForMenu(MenuItemView* menu);
+
+ // Invoked prior to a menu being shown.
+ virtual void WillShowMenu(MenuItemView* menu);
};
} // namespace views