summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortapted@chromium.org <tapted@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 07:50:35 +0000
committertapted@chromium.org <tapted@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-01 07:50:35 +0000
commitfd6c0a60b699d6dd924a296b6c97cabdb0138140 (patch)
treee89700ef72606d09cec943154af7dfae36e90eb2
parent530a52a317f97cc37d0482edbc0de6033450b2da (diff)
downloadchromium_src-fd6c0a60b699d6dd924a296b6c97cabdb0138140.zip
chromium_src-fd6c0a60b699d6dd924a296b6c97cabdb0138140.tar.gz
chromium_src-fd6c0a60b699d6dd924a296b6c97cabdb0138140.tar.bz2
Move enum MenuAnchorPosition to reduce deps on menu_item_view.h
[Menu]AnchorPosition is used by the MenuRunner and other APIs. Having the enum nested in MenuItemView means that a lot of files must depend on menu_item_view.h, even if they are just using a MenuRunner created with a MenuModel (rather than a MenuItemView). This CL moves the MenuItemView::AnchorPosition enum to views::MenuAnchorPosition in menu_types.h. This allows the menu_item_view.h dependency to be removed from a lot of places (directly, and transitively by removing menu_item_view.h includes from any header files). BUG=366007, 363889 TBR=pfeldman@chromium.org Review URL: https://codereview.chromium.org/250943008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267471 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/root_window_controller.cc8
-rw-r--r--ash/shelf/shelf_view.cc11
-rw-r--r--ash/shell/window_type_launcher.cc15
-rw-r--r--ash/shell_unittest.cc9
-rw-r--r--chrome/browser/ui/views/apps/chrome_native_app_window_views.cc14
-rw-r--r--chrome/browser/ui/views/autofill/autofill_dialog_views.cc4
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc8
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_bar_view.h5
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc10
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc14
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc5
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h4
-rw-r--r--chrome/browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc1
-rw-r--r--chrome/browser/ui/views/content_setting_bubble_contents.cc14
-rw-r--r--chrome/browser/ui/views/download/download_shelf_context_menu_view.cc7
-rw-r--r--chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc11
-rw-r--r--chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc7
-rw-r--r--chrome/browser/ui/views/extensions/media_galleries_scan_result_dialog_views.cc7
-rw-r--r--chrome/browser/ui/views/frame/browser_frame.cc14
-rw-r--r--chrome/browser/ui/views/frame/opaque_browser_frame_view.cc2
-rw-r--r--chrome/browser/ui/views/infobars/after_translate_infobar.cc14
-rw-r--r--chrome/browser/ui/views/infobars/before_translate_infobar.cc11
-rw-r--r--chrome/browser/ui/views/infobars/extension_infobar.cc6
-rw-r--r--chrome/browser/ui/views/infobars/infobar_view.cc2
-rw-r--r--chrome/browser/ui/views/infobars/infobar_view.h4
-rw-r--r--chrome/browser/ui/views/location_bar/page_action_image_view.cc12
-rw-r--r--chrome/browser/ui/views/menu_model_adapter_test.cc13
-rw-r--r--chrome/browser/ui/views/menu_test_base.cc13
-rw-r--r--chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc8
-rw-r--r--chrome/browser/ui/views/status_icons/status_icon_win.cc11
-rw-r--r--chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc16
-rw-r--r--chrome/browser/ui/views/task_manager_view.cc10
-rw-r--r--chrome/browser/ui/views/toolbar/browser_action_view.cc9
-rw-r--r--chrome/browser/ui/views/toolbar/toolbar_button.cc10
-rw-r--r--chrome/browser/ui/views/toolbar/wrench_menu.cc9
-rw-r--r--chrome/browser/ui/views/website_settings/permission_selector_view.cc15
-rw-r--r--chrome/browser/ui/views/website_settings/permissions_bubble_view.cc15
-rw-r--r--content/shell/browser/shell_views.cc14
-rw-r--r--ui/app_list/views/app_list_item_view.cc14
-rw-r--r--ui/app_list/views/app_list_menu_views.cc8
-rw-r--r--ui/app_list/views/search_result_view.cc11
-rw-r--r--ui/message_center/views/message_view_context_menu_controller.cc13
-rw-r--r--ui/message_center/views/notifier_settings_view.cc2
-rw-r--r--ui/views/controls/combobox/combobox.cc5
-rw-r--r--ui/views/controls/combobox/combobox_unittest.cc2
-rw-r--r--ui/views/controls/menu/menu_controller.cc47
-rw-r--r--ui/views/controls/menu/menu_controller.h12
-rw-r--r--ui/views/controls/menu/menu_delegate.cc6
-rw-r--r--ui/views/controls/menu/menu_delegate.h10
-rw-r--r--ui/views/controls/menu/menu_item_view.cc10
-rw-r--r--ui/views/controls/menu/menu_item_view.h18
-rw-r--r--ui/views/controls/menu/menu_message_pump_dispatcher_win.cc1
-rw-r--r--ui/views/controls/menu/menu_model_adapter.cc1
-rw-r--r--ui/views/controls/menu/menu_runner.cc20
-rw-r--r--ui/views/controls/menu/menu_runner.h15
-rw-r--r--ui/views/controls/menu/menu_runner_handler.h4
-rw-r--r--ui/views/controls/menu/menu_scroll_view_container.cc13
-rw-r--r--ui/views/controls/menu/menu_scroll_view_container.h5
-rw-r--r--ui/views/controls/menu/menu_types.h26
-rw-r--r--ui/views/controls/menu/submenu_view.cc1
-rw-r--r--ui/views/controls/scrollbar/base_scroll_bar.cc13
-rw-r--r--ui/views/controls/textfield/textfield.cc9
-rw-r--r--ui/views/examples/menu_example.cc12
-rw-r--r--ui/views/examples/tree_view_example.cc10
-rw-r--r--ui/views/views.gyp1
-rw-r--r--ui/views/widget/widget.cc1
66 files changed, 384 insertions, 268 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 010ef0e..368dd92 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -569,9 +569,11 @@ void RootWindowController::ShowContextMenu(const gfx::Point& location_in_screen,
views::MenuRunner menu_runner(menu_model.get());
if (menu_runner.RunMenuAt(wallpaper_controller_->widget(),
- NULL, gfx::Rect(location_in_screen, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type,
- views::MenuRunner::CONTEXT_MENU) ==
+ NULL,
+ gfx::Rect(location_in_screen, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::CONTEXT_MENU) ==
views::MenuRunner::MENU_DELETED) {
return;
}
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 26066f5..1cc1cf6 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -1767,8 +1767,7 @@ void ShelfView::ShowMenu(scoped_ptr<views::MenuModelAdapter> menu_model_adapter,
source->GetWidget()->GetNativeView()->GetRootWindow());
// Determine the menu alignment dependent on the shelf.
- views::MenuItemView::AnchorPosition menu_alignment =
- views::MenuItemView::TOPLEFT;
+ views::MenuAnchorPosition menu_alignment = views::MENU_ANCHOR_TOPLEFT;
gfx::Rect anchor_point = gfx::Rect(click_point, gfx::Size());
ShelfWidget* shelf = RootWindowController::ForShelf(
@@ -1793,16 +1792,16 @@ void ShelfView::ShowMenu(scoped_ptr<views::MenuModelAdapter> menu_model_adapter,
switch (align) {
case SHELF_ALIGNMENT_BOTTOM:
- menu_alignment = views::MenuItemView::BUBBLE_ABOVE;
+ menu_alignment = views::MENU_ANCHOR_BUBBLE_ABOVE;
break;
case SHELF_ALIGNMENT_LEFT:
- menu_alignment = views::MenuItemView::BUBBLE_RIGHT;
+ menu_alignment = views::MENU_ANCHOR_BUBBLE_RIGHT;
break;
case SHELF_ALIGNMENT_RIGHT:
- menu_alignment = views::MenuItemView::BUBBLE_LEFT;
+ menu_alignment = views::MENU_ANCHOR_BUBBLE_LEFT;
break;
case SHELF_ALIGNMENT_TOP:
- menu_alignment = views::MenuItemView::BUBBLE_BELOW;
+ menu_alignment = views::MENU_ANCHOR_BUBBLE_BELOW;
break;
}
}
diff --git a/ash/shell/window_type_launcher.cc b/ash/shell/window_type_launcher.cc
index e0214d3..61ba3fa 100644
--- a/ash/shell/window_type_launcher.cc
+++ b/ash/shell/window_type_launcher.cc
@@ -387,13 +387,16 @@ void WindowTypeLauncher::ShowContextMenuForView(
MenuItemView::NORMAL);
// MenuRunner takes ownership of root.
menu_runner_.reset(new MenuRunner(root));
- if (menu_runner_->RunMenuAt(GetWidget(), NULL,
- gfx::Rect(point, gfx::Size()),
- MenuItemView::TOPLEFT,
- source_type,
- MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(
+ GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
+ MenuRunner::MENU_DELETED) {
return;
+ }
}
} // namespace shell
diff --git a/ash/shell_unittest.cc b/ash/shell_unittest.cc
index 5c206a5..59344ce 100644
--- a/ash/shell_unittest.cc
+++ b/ash/shell_unittest.cc
@@ -380,9 +380,12 @@ TEST_F(ShellTest, LockScreenClosesActiveMenu) {
base::Unretained(this)));
EXPECT_EQ(views::MenuRunner::NORMAL_EXIT,
- menu_runner->RunMenuAt(widget, NULL, gfx::Rect(),
- views::MenuItemView::TOPLEFT, ui::MENU_SOURCE_MOUSE,
- views::MenuRunner::CONTEXT_MENU));
+ menu_runner->RunMenuAt(widget,
+ NULL,
+ gfx::Rect(),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_MOUSE,
+ views::MenuRunner::CONTEXT_MENU));
}
TEST_F(ShellTest, ManagedWindowModeBasics) {
diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
index 114605f..76af22f 100644
--- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
+++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
@@ -453,12 +453,16 @@ void ChromeNativeAppWindowViews::ShowContextMenuForView(
widget()->non_client_view()->NonClientHitTest(point_in_view_coords);
if (hit_test == HTCAPTION) {
menu_runner_.reset(new views::MenuRunner(model.get()));
- if (menu_runner_->RunMenuAt(source->GetWidget(), NULL,
- gfx::Rect(p, gfx::Size(0,0)), views::MenuItemView::TOPLEFT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(source->GetWidget(),
+ NULL,
+ gfx::Rect(p, gfx::Size(0, 0)),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS |
+ views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
#endif
}
diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
index ac01f32..7a38f8e 100644
--- a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
+++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
@@ -537,7 +537,7 @@ void AutofillDialogViews::AccountChooser::OnMenuButtonClicked(
if (menu_runner_->RunMenuAt(source->GetWidget(),
NULL,
source->GetBoundsInScreen(),
- views::MenuItemView::TOPRIGHT,
+ views::MENU_ANCHOR_TOPRIGHT,
ui::MENU_SOURCE_NONE,
0) == views::MenuRunner::MENU_DELETED) {
return;
@@ -1752,7 +1752,7 @@ void AutofillDialogViews::OnMenuButtonClicked(views::View* source,
if (menu_runner_->RunMenuAt(source->GetWidget(),
NULL,
screen_bounds,
- views::MenuItemView::TOPRIGHT,
+ views::MENU_ANCHOR_TOPRIGHT,
ui::MENU_SOURCE_NONE,
0) == views::MenuRunner::MENU_DELETED) {
return;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 181371e..1ad31a67 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -75,7 +75,6 @@
#include "ui/views/button_drag_utils.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/label.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/drag_utils.h"
#include "ui/views/metrics.h"
#include "ui/views/view_constants.h"
@@ -90,7 +89,6 @@ using content::Referrer;
using ui::DropTargetEvent;
using views::CustomButton;
using views::MenuButton;
-using views::MenuItemView;
using views::View;
// Margins around the content.
@@ -567,11 +565,11 @@ views::MenuButton* BookmarkBarView::GetMenuButtonForNode(
void BookmarkBarView::GetAnchorPositionForButton(
views::MenuButton* button,
- MenuItemView::AnchorPosition* anchor) {
+ views::MenuAnchorPosition* anchor) {
if (button == other_bookmarked_button_ || button == overflow_button_)
- *anchor = MenuItemView::TOPRIGHT;
+ *anchor = views::MENU_ANCHOR_TOPRIGHT;
else
- *anchor = MenuItemView::TOPLEFT;
+ *anchor = views::MENU_ANCHOR_TOPLEFT;
}
views::MenuItemView* BookmarkBarView::GetMenu() {
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
index 9508538..bc42924 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
@@ -25,7 +25,7 @@
#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/controls/menu/menu_types.h"
#include "ui/views/drag_controller.h"
class BookmarkContextMenu;
@@ -44,6 +44,7 @@ class SlideAnimation;
namespace views {
class CustomButton;
class MenuButton;
+class MenuItemView;
class TextButton;
}
@@ -120,7 +121,7 @@ class BookmarkBarView : public DetachableToolbarView,
// Returns the position to anchor the menu for |button| at.
void GetAnchorPositionForButton(views::MenuButton* button,
- views::MenuItemView::AnchorPosition* anchor);
+ views::MenuAnchorPosition* anchor);
// Returns the button responsible for showing bookmarks in the other bookmark
// folder.
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
index 5421529..8e4fd1d 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_context_menu.cc
@@ -67,12 +67,16 @@ void BookmarkContextMenu::RunMenuAt(const gfx::Point& point,
content::NotificationService::NoDetails());
// width/height don't matter here.
if (menu_runner_->RunMenuAt(
- parent_widget_, NULL, gfx::Rect(point.x(), point.y(), 0, 0),
- views::MenuItemView::TOPLEFT, source_type,
+ parent_widget_,
+ NULL,
+ gfx::Rect(point.x(), point.y(), 0, 0),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
(views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::IS_NESTED |
views::MenuRunner::CONTEXT_MENU)) ==
- views::MenuRunner::MENU_DELETED)
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
void BookmarkContextMenu::SetPageNavigator(PageNavigator* navigator) {
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
index c07ee69..f505a71 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_editor_view.cc
@@ -249,12 +249,16 @@ void BookmarkEditorView::ShowContextMenuForView(
context_menu_runner_.reset(new views::MenuRunner(GetMenuModel()));
- if (context_menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
- NULL, gfx::Rect(point, gfx::Size()), views::MenuItemView::TOPRIGHT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ if (context_menu_runner_->RunMenuAt(
+ source->GetWidget()->GetTopLevelWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPRIGHT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
void BookmarkEditorView::Init() {
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 ea92b77..b02c31c 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.cc
@@ -21,6 +21,7 @@
#include "ui/base/dragdrop/os_exchange_data.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/views/controls/button/menu_button.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/widget/widget.h"
@@ -51,7 +52,7 @@ void BookmarkMenuController::RunMenuAt(BookmarkBarView* bookmark_bar,
bookmark_bar_ = bookmark_bar;
views::MenuButton* menu_button = bookmark_bar_->GetMenuButtonForNode(node_);
DCHECK(menu_button);
- MenuItemView::AnchorPosition anchor;
+ views::MenuAnchorPosition anchor;
bookmark_bar_->GetAnchorPositionForButton(menu_button, &anchor);
gfx::Point screen_loc;
views::View::ConvertPointToScreen(menu_button, &screen_loc);
@@ -163,7 +164,7 @@ int BookmarkMenuController::GetDragOperations(MenuItemView* sender) {
views::MenuItemView* BookmarkMenuController::GetSiblingMenu(
views::MenuItemView* menu,
const gfx::Point& screen_point,
- views::MenuItemView::AnchorPosition* anchor,
+ views::MenuAnchorPosition* anchor,
bool* has_mnemonics,
views::MenuButton** button) {
if (!bookmark_bar_ || for_drop_)
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 39608d4..d5065ab 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_controller_views.h
@@ -11,7 +11,6 @@
#include "components/bookmarks/core/browser/base_bookmark_model_observer.h"
#include "components/bookmarks/core/browser/bookmark_node_data.h"
#include "ui/views/controls/menu/menu_delegate.h"
-#include "ui/views/controls/menu/menu_item_view.h"
class BookmarkBarView;
class BookmarkMenuControllerObserver;
@@ -29,6 +28,7 @@ class OSExchangeData;
namespace views {
class MenuButton;
+class MenuItemView;
class MenuRunner;
class Widget;
}
@@ -107,7 +107,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
virtual views::MenuItemView* GetSiblingMenu(
views::MenuItemView* menu,
const gfx::Point& screen_point,
- views::MenuItemView::AnchorPosition* anchor,
+ views::MenuAnchorPosition* anchor,
bool* has_mnemonics,
views::MenuButton** button) OVERRIDE;
virtual int GetMaxWidthForMenu(views::MenuItemView* view) OVERRIDE;
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc
index c1946919..8a7dba6 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc
@@ -12,6 +12,7 @@
#include "chrome/test/base/browser_with_test_window_test.h"
#include "chrome/test/base/testing_profile.h"
#include "components/bookmarks/core/browser/bookmark_model.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/submenu_view.h"
diff --git a/chrome/browser/ui/views/content_setting_bubble_contents.cc b/chrome/browser/ui/views/content_setting_bubble_contents.cc
index d82392d..9bfee02 100644
--- a/chrome/browser/ui/views/content_setting_bubble_contents.cc
+++ b/chrome/browser/ui/views/content_setting_bubble_contents.cc
@@ -444,13 +444,13 @@ void ContentSettingBubbleContents::OnMenuButtonClicked(
gfx::Point screen_location;
views::View::ConvertPointToScreen(j->first, &screen_location);
- ignore_result(menu_runner_->RunMenuAt(
- source->GetWidget(),
- j->first,
- gfx::Rect(screen_location, j->first->size()),
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(
+ menu_runner_->RunMenuAt(source->GetWidget(),
+ j->first,
+ gfx::Rect(screen_location, j->first->size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS));
}
int ContentSettingBubbleContents::GetPreferredMediaMenuWidth(
diff --git a/chrome/browser/ui/views/download/download_shelf_context_menu_view.cc b/chrome/browser/ui/views/download/download_shelf_context_menu_view.cc
index d65f7fd..570f3e3 100644
--- a/chrome/browser/ui/views/download/download_shelf_context_menu_view.cc
+++ b/chrome/browser/ui/views/download/download_shelf_context_menu_view.cc
@@ -10,7 +10,6 @@
#include "content/public/browser/download_item.h"
#include "content/public/browser/page_navigator.h"
#include "ui/gfx/point.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
DownloadShelfContextMenuView::DownloadShelfContextMenuView(
@@ -31,11 +30,11 @@ void DownloadShelfContextMenuView::Run(views::Widget* parent_widget,
menu_runner_.reset(new views::MenuRunner(menu_model));
// The menu's alignment is determined based on the UI layout.
- views::MenuItemView::AnchorPosition position;
+ views::MenuAnchorPosition position;
if (base::i18n::IsRTL())
- position = views::MenuItemView::TOPRIGHT;
+ position = views::MENU_ANCHOR_TOPRIGHT;
else
- position = views::MenuItemView::TOPLEFT;
+ position = views::MENU_ANCHOR_TOPLEFT;
// The return value of RunMenuAt indicates whether the MenuRunner was deleted
// while running the menu, which indicates that the containing view may have
diff --git a/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc b/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
index 21041cb..4bc75b8 100644
--- a/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
+++ b/chrome/browser/ui/views/extensions/browser_action_overflow_menu_controller.cc
@@ -112,7 +112,7 @@ bool BrowserActionOverflowMenuController::RunMenu(views::Widget* window,
bounds.set_x(screen_loc.x());
bounds.set_y(screen_loc.y());
- views::MenuItemView::AnchorPosition anchor = views::MenuItemView::TOPRIGHT;
+ views::MenuAnchorPosition anchor = views::MENU_ANCHOR_TOPRIGHT;
// As we maintain our own lifetime we can safely ignore the result.
ignore_result(menu_runner_->RunMenuAt(window, menu_button_, bounds, anchor,
ui::MENU_SOURCE_NONE, for_drop_ ? views::MenuRunner::FOR_DROP : 0));
@@ -154,11 +154,14 @@ bool BrowserActionOverflowMenuController::ShowContextMenu(
// We can ignore the result as we delete ourself.
// This blocks until the user choses something or dismisses the menu.
- ignore_result(context_menu_runner.RunMenuAt(menu_button_->GetWidget(),
- NULL, gfx::Rect(p, gfx::Size()), views::MenuItemView::TOPLEFT,
+ ignore_result(context_menu_runner.RunMenuAt(
+ menu_button_->GetWidget(),
+ NULL,
+ gfx::Rect(p, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
source_type,
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::IS_NESTED |
- views::MenuRunner::CONTEXT_MENU));
+ views::MenuRunner::CONTEXT_MENU));
// The user is done with the context menu, so we can close the underlying
// menu.
diff --git a/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc b/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
index 98fa00e..0eb2890 100644
--- a/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
+++ b/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
@@ -324,8 +324,11 @@ void MediaGalleriesDialogViews::ShowContextMenu(const gfx::Point& point,
controller_->GetContextMenu(id)));
if (context_menu_runner_->RunMenuAt(
- GetWidget(), NULL, gfx::Rect(point.x(), point.y(), 0, 0),
- views::MenuItemView::TOPLEFT, source_type,
+ GetWidget(),
+ NULL,
+ gfx::Rect(point.x(), point.y(), 0, 0),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
views::MenuRunner::MENU_DELETED) {
return;
diff --git a/chrome/browser/ui/views/extensions/media_galleries_scan_result_dialog_views.cc b/chrome/browser/ui/views/extensions/media_galleries_scan_result_dialog_views.cc
index f1811c8..792a173 100644
--- a/chrome/browser/ui/views/extensions/media_galleries_scan_result_dialog_views.cc
+++ b/chrome/browser/ui/views/extensions/media_galleries_scan_result_dialog_views.cc
@@ -272,8 +272,11 @@ void MediaGalleriesScanResultDialogViews::ShowContextMenu(
controller_->GetContextMenu(id)));
if (context_menu_runner_->RunMenuAt(
- GetWidget(), NULL, gfx::Rect(point.x(), point.y(), 0, 0),
- views::MenuItemView::TOPLEFT, source_type,
+ GetWidget(),
+ NULL,
+ gfx::Rect(point.x(), point.y(), 0, 0),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
views::MenuRunner::MENU_DELETED) {
return;
diff --git a/chrome/browser/ui/views/frame/browser_frame.cc b/chrome/browser/ui/views/frame/browser_frame.cc
index 4b4606c..ca38b78 100644
--- a/chrome/browser/ui/views/frame/browser_frame.cc
+++ b/chrome/browser/ui/views/frame/browser_frame.cc
@@ -256,12 +256,16 @@ void BrowserFrame::ShowContextMenuForView(views::View* source,
int hit_test = non_client_view()->NonClientHitTest(point_in_view_coords);
if (hit_test == HTCAPTION || hit_test == HTNOWHERE) {
menu_runner_.reset(new views::MenuRunner(GetSystemMenuModel()));
- if (menu_runner_->RunMenuAt(source->GetWidget(), NULL,
- gfx::Rect(p, gfx::Size(0,0)), views::MenuItemView::TOPLEFT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(source->GetWidget(),
+ NULL,
+ gfx::Rect(p, gfx::Size(0, 0)),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS |
+ views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
}
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index 002a54a..7713dc4 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -378,7 +378,7 @@ void OpaqueBrowserFrameView::OnMenuButtonClicked(views::View* source,
ignore_result(menu_runner.RunMenuAt(browser_view()->GetWidget(),
window_icon_,
window_icon_->GetBoundsInScreen(),
- views::MenuItemView::TOPLEFT,
+ views::MENU_ANCHOR_TOPLEFT,
ui::MENU_SOURCE_MOUSE,
views::MenuRunner::HAS_MNEMONICS));
#endif
diff --git a/chrome/browser/ui/views/infobars/after_translate_infobar.cc b/chrome/browser/ui/views/infobars/after_translate_infobar.cc
index e2b0aa2..80bd073 100644
--- a/chrome/browser/ui/views/infobars/after_translate_infobar.cc
+++ b/chrome/browser/ui/views/infobars/after_translate_infobar.cc
@@ -13,7 +13,6 @@
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/label.h"
-#include "ui/views/controls/menu/menu_item_view.h"
AfterTranslateInfoBar::AfterTranslateInfoBar(
scoped_ptr<TranslateInfoBarDelegate> delegate)
@@ -162,14 +161,17 @@ void AfterTranslateInfoBar::OnMenuButtonClicked(views::View* source,
return; // We're closing; don't call anything, it might access the owner.
if (source == original_language_menu_button_) {
RunMenuAt(original_language_menu_model_.get(),
- original_language_menu_button_, views::MenuItemView::TOPLEFT);
+ original_language_menu_button_,
+ views::MENU_ANCHOR_TOPLEFT);
} else if (source == target_language_menu_button_) {
- RunMenuAt(target_language_menu_model_.get(), target_language_menu_button_,
- views::MenuItemView::TOPLEFT);
+ RunMenuAt(target_language_menu_model_.get(),
+ target_language_menu_button_,
+ views::MENU_ANCHOR_TOPLEFT);
} else {
DCHECK_EQ(options_menu_button_, source);
- RunMenuAt(options_menu_model_.get(), options_menu_button_,
- views::MenuItemView::TOPRIGHT);
+ RunMenuAt(options_menu_model_.get(),
+ options_menu_button_,
+ views::MENU_ANCHOR_TOPRIGHT);
}
}
diff --git a/chrome/browser/ui/views/infobars/before_translate_infobar.cc b/chrome/browser/ui/views/infobars/before_translate_infobar.cc
index 513c563..dcb78a9 100644
--- a/chrome/browser/ui/views/infobars/before_translate_infobar.cc
+++ b/chrome/browser/ui/views/infobars/before_translate_infobar.cc
@@ -13,7 +13,6 @@
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/label.h"
-#include "ui/views/controls/menu/menu_item_view.h"
BeforeTranslateInfoBar::BeforeTranslateInfoBar(
scoped_ptr<TranslateInfoBarDelegate> delegate)
@@ -169,12 +168,14 @@ void BeforeTranslateInfoBar::OnMenuButtonClicked(views::View* source,
if (!owner())
return; // We're closing; don't call anything, it might access the owner.
if (source == language_menu_button_) {
- RunMenuAt(language_menu_model_.get(), language_menu_button_,
- views::MenuItemView::TOPLEFT);
+ RunMenuAt(language_menu_model_.get(),
+ language_menu_button_,
+ views::MENU_ANCHOR_TOPLEFT);
} else {
DCHECK_EQ(options_menu_button_, source);
- RunMenuAt(options_menu_model_.get(), options_menu_button_,
- views::MenuItemView::TOPRIGHT);
+ RunMenuAt(options_menu_model_.get(),
+ options_menu_button_,
+ views::MENU_ANCHOR_TOPRIGHT);
}
}
diff --git a/chrome/browser/ui/views/infobars/extension_infobar.cc b/chrome/browser/ui/views/infobars/extension_infobar.cc
index f7e617f..c4d20d2 100644
--- a/chrome/browser/ui/views/infobars/extension_infobar.cc
+++ b/chrome/browser/ui/views/infobars/extension_infobar.cc
@@ -23,7 +23,6 @@
#include "ui/gfx/image/image.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/widget/widget.h"
@@ -186,9 +185,8 @@ void ExtensionInfoBar::OnMenuButtonClicked(views::View* source,
scoped_refptr<ExtensionContextMenuModel> options_menu_contents =
new ExtensionContextMenuModel(extension, browser_);
DCHECK_EQ(icon_as_menu_, source);
- RunMenuAt(options_menu_contents.get(),
- icon_as_menu_,
- views::MenuItemView::TOPLEFT);
+ RunMenuAt(
+ options_menu_contents.get(), icon_as_menu_, views::MENU_ANCHOR_TOPLEFT);
}
void ExtensionInfoBar::OnImageLoaded(const gfx::Image& image) {
diff --git a/chrome/browser/ui/views/infobars/infobar_view.cc b/chrome/browser/ui/views/infobars/infobar_view.cc
index 1a76712..5328e2d 100644
--- a/chrome/browser/ui/views/infobars/infobar_view.cc
+++ b/chrome/browser/ui/views/infobars/infobar_view.cc
@@ -333,7 +333,7 @@ const infobars::InfoBarContainer::Delegate* InfoBarView::container_delegate()
void InfoBarView::RunMenuAt(ui::MenuModel* menu_model,
views::MenuButton* button,
- views::MenuItemView::AnchorPosition anchor) {
+ views::MenuAnchorPosition anchor) {
DCHECK(owner()); // We'd better not open any menus while we're closing.
gfx::Point screen_point;
views::View::ConvertPointToScreen(button, &screen_point);
diff --git a/chrome/browser/ui/views/infobars/infobar_view.h b/chrome/browser/ui/views/infobars/infobar_view.h
index 88034ac..40fb70b 100644
--- a/chrome/browser/ui/views/infobars/infobar_view.h
+++ b/chrome/browser/ui/views/infobars/infobar_view.h
@@ -11,7 +11,7 @@
#include "components/infobars/core/infobar_container.h"
#include "third_party/skia/include/core/SkPath.h"
#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/views/controls/menu/menu_types.h"
#include "ui/views/focus/external_focus_tracker.h"
namespace ui {
@@ -107,7 +107,7 @@ class InfoBarView : public infobars::InfoBar,
// calls to RunMenu() in this case.)
void RunMenuAt(ui::MenuModel* menu_model,
views::MenuButton* button,
- views::MenuItemView::AnchorPosition anchor);
+ views::MenuAnchorPosition anchor);
private:
// Does the actual work for AssignWidths(). Assumes |labels| is sorted by
diff --git a/chrome/browser/ui/views/location_bar/page_action_image_view.cc b/chrome/browser/ui/views/location_bar/page_action_image_view.cc
index fc77014..cfb05e3 100644
--- a/chrome/browser/ui/views/location_bar/page_action_image_view.cc
+++ b/chrome/browser/ui/views/location_bar/page_action_image_view.cc
@@ -26,7 +26,6 @@
#include "ui/events/event.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/image/image.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
using content::WebContents;
@@ -160,11 +159,16 @@ void PageActionImageView::ShowContextMenuForView(
menu_runner_.reset(new views::MenuRunner(context_menu_model.get()));
gfx::Point screen_loc;
views::View::ConvertPointToScreen(this, &screen_loc);
- if (menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(screen_loc, size()),
- views::MenuItemView::TOPLEFT, source_type,
+ if (menu_runner_->RunMenuAt(
+ GetWidget(),
+ NULL,
+ gfx::Rect(screen_loc, size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
bool PageActionImageView::AcceleratorPressed(
diff --git a/chrome/browser/ui/views/menu_model_adapter_test.cc b/chrome/browser/ui/views/menu_model_adapter_test.cc
index 67ce9b7..7f861de 100644
--- a/chrome/browser/ui/views/menu_model_adapter_test.cc
+++ b/chrome/browser/ui/views/menu_model_adapter_test.cc
@@ -235,13 +235,12 @@ class MenuModelAdapterTest : public ViewEventTestBase,
gfx::Point screen_location;
views::View::ConvertPointToScreen(source, &screen_location);
gfx::Rect bounds(screen_location, source->size());
- ignore_result(menu_runner_->RunMenuAt(
- source->GetWidget(),
- button_,
- bounds,
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(menu_runner_->RunMenuAt(source->GetWidget(),
+ button_,
+ bounds,
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS));
}
// ViewEventTestBase implementation
diff --git a/chrome/browser/ui/views/menu_test_base.cc b/chrome/browser/ui/views/menu_test_base.cc
index 2128a1a..4937689 100644
--- a/chrome/browser/ui/views/menu_test_base.cc
+++ b/chrome/browser/ui/views/menu_test_base.cc
@@ -70,13 +70,12 @@ void MenuTestBase::OnMenuButtonClicked(views::View* source,
gfx::Point screen_location;
views::View::ConvertPointToScreen(source, &screen_location);
gfx::Rect bounds(screen_location, source->size());
- ignore_result(menu_runner_->RunMenuAt(
- source->GetWidget(),
- button_,
- bounds,
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(menu_runner_->RunMenuAt(source->GetWidget(),
+ button_,
+ bounds,
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS));
}
void MenuTestBase::ExecuteCommand(int id) {
diff --git a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
index 20edad9..c6187f9 100644
--- a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
+++ b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
@@ -44,10 +44,10 @@ RenderViewContextMenuViews* RenderViewContextMenuViews::Create(
void RenderViewContextMenuViews::RunMenuAt(views::Widget* parent,
const gfx::Point& point,
ui::MenuSourceType type) {
- views::MenuItemView::AnchorPosition anchor_position =
- (type == ui::MENU_SOURCE_TOUCH ||
- type == ui::MENU_SOURCE_TOUCH_EDIT_MENU) ?
- views::MenuItemView::BOTTOMCENTER : views::MenuItemView::TOPLEFT;
+ views::MenuAnchorPosition anchor_position =
+ (type == ui::MENU_SOURCE_TOUCH || type == ui::MENU_SOURCE_TOUCH_EDIT_MENU)
+ ? views::MENU_ANCHOR_BOTTOMCENTER
+ : views::MENU_ANCHOR_TOPLEFT;
if (menu_runner_->RunMenuAt(parent, NULL, gfx::Rect(point, gfx::Size()),
anchor_position, type, views::MenuRunner::HAS_MNEMONICS |
diff --git a/chrome/browser/ui/views/status_icons/status_icon_win.cc b/chrome/browser/ui/views/status_icons/status_icon_win.cc
index 6dd0f84..a99e44c 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_win.cc
+++ b/chrome/browser/ui/views/status_icons/status_icon_win.cc
@@ -10,7 +10,7 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/icon_util.h"
#include "ui/gfx/point.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/gfx/rect.h"
#include "ui/views/controls/menu/menu_runner.h"
////////////////////////////////////////////////////////////////////////////////
@@ -61,9 +61,12 @@ void StatusIconWin::HandleClickEvent(const gfx::Point& cursor_pos,
menu_runner_.reset(new views::MenuRunner(menu_model_));
- ignore_result(menu_runner_->RunMenuAt(NULL, NULL,
- gfx::Rect(cursor_pos, gfx::Size()), views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_MOUSE, views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(menu_runner_->RunMenuAt(NULL,
+ NULL,
+ gfx::Rect(cursor_pos, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_MOUSE,
+ views::MenuRunner::HAS_MNEMONICS));
}
void StatusIconWin::HandleBalloonClickEvent() {
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index 75f8005..f88871d 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -42,7 +42,6 @@
#include "net/base/filename_util.h"
#include "ui/base/models/list_selection_model.h"
#include "ui/gfx/image/image.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/widget/widget.h"
@@ -121,13 +120,16 @@ class BrowserTabStripController::TabContextMenuContents
}
void RunMenuAt(const gfx::Point& point, ui::MenuSourceType source_type) {
- if (menu_runner_->RunMenuAt(
- tab_->GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type,
- views::MenuRunner::HAS_MNEMONICS |
- views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(tab_->GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS |
+ views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
// Overridden from ui::SimpleMenuModel::Delegate:
diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc
index 0216996..bddb7d4 100644
--- a/chrome/browser/ui/views/task_manager_view.cc
+++ b/chrome/browser/ui/views/task_manager_view.cc
@@ -594,11 +594,15 @@ void TaskManagerView::ShowContextMenuForView(views::View* source,
menu_model.AddCheckItem(i->id, l10n_util::GetStringUTF16(i->id));
}
menu_runner_.reset(new views::MenuRunner(&menu_model));
- if (menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type,
+ if (menu_runner_->RunMenuAt(GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
bool TaskManagerView::IsCommandIdChecked(int id) const {
diff --git a/chrome/browser/ui/views/toolbar/browser_action_view.cc b/chrome/browser/ui/views/toolbar/browser_action_view.cc
index 059fb7e..f45634f 100644
--- a/chrome/browser/ui/views/toolbar/browser_action_view.cc
+++ b/chrome/browser/ui/views/toolbar/browser_action_view.cc
@@ -28,6 +28,7 @@
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_operations.h"
#include "ui/gfx/image/image_skia_source.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
using extensions::Extension;
@@ -186,8 +187,12 @@ void BrowserActionButton::ShowContextMenuForView(
context_menu_ = menu_runner_->GetMenu();
gfx::Point screen_loc;
views::View::ConvertPointToScreen(this, &screen_loc);
- if (menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(screen_loc, size()),
- views::MenuItemView::TOPLEFT, source_type,
+ if (menu_runner_->RunMenuAt(
+ GetWidget(),
+ NULL,
+ gfx::Rect(screen_loc, size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
views::MenuRunner::MENU_DELETED) {
return;
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.cc b/chrome/browser/ui/views/toolbar/toolbar_button.cc
index bcbacd4..dad98d1 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.cc
@@ -199,9 +199,10 @@ void ToolbarButton::ShowDropDownMenu(ui::MenuSourceType source_type) {
menu_delegate.set_triggerable_event_flags(triggerable_event_flags());
menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu()));
views::MenuRunner::RunResult result =
- menu_runner_->RunMenuAt(GetWidget(), NULL,
+ menu_runner_->RunMenuAt(GetWidget(),
+ NULL,
gfx::Rect(menu_position, gfx::Size(0, 0)),
- views::MenuItemView::TOPLEFT,
+ views::MENU_ANCHOR_TOPLEFT,
source_type,
views::MenuRunner::HAS_MNEMONICS);
if (result == views::MenuRunner::MENU_DELETED)
@@ -211,9 +212,10 @@ void ToolbarButton::ShowDropDownMenu(ui::MenuSourceType source_type) {
views::MenuItemView* menu = new views::MenuItemView(&menu_delegate);
menu_runner_.reset(new views::MenuRunner(menu));
views::MenuRunner::RunResult result =
- menu_runner_->RunMenuAt(GetWidget(), NULL,
+ menu_runner_->RunMenuAt(GetWidget(),
+ NULL,
gfx::Rect(menu_position, gfx::Size(0, 0)),
- views::MenuItemView::TOPLEFT,
+ views::MENU_ANCHOR_TOPLEFT,
source_type,
views::MenuRunner::HAS_MNEMONICS);
if (result == views::MenuRunner::MENU_DELETED)
diff --git a/chrome/browser/ui/views/toolbar/wrench_menu.cc b/chrome/browser/ui/views/toolbar/wrench_menu.cc
index 28ee518..3db916d 100644
--- a/chrome/browser/ui/views/toolbar/wrench_menu.cc
+++ b/chrome/browser/ui/views/toolbar/wrench_menu.cc
@@ -952,9 +952,12 @@ void WrenchMenu::RunMenu(views::MenuButton* host) {
views::View::ConvertPointToScreen(host, &screen_loc);
gfx::Rect bounds(screen_loc, host->size());
content::RecordAction(UserMetricsAction("ShowAppMenu"));
- if (menu_runner_->RunMenuAt(host->GetWidget(), host, bounds,
- MenuItemView::TOPRIGHT, ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS) ==
+ if (menu_runner_->RunMenuAt(host->GetWidget(),
+ host,
+ bounds,
+ views::MENU_ANCHOR_TOPRIGHT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS) ==
views::MenuRunner::MENU_DELETED)
return;
if (bookmark_menu_delegate_.get()) {
diff --git a/chrome/browser/ui/views/website_settings/permission_selector_view.cc b/chrome/browser/ui/views/website_settings/permission_selector_view.cc
index 11319fd..e8d28b5a 100644
--- a/chrome/browser/ui/views/website_settings/permission_selector_view.cc
+++ b/chrome/browser/ui/views/website_settings/permission_selector_view.cc
@@ -117,14 +117,15 @@ void PermissionMenuButton::OnMenuButtonClicked(View* source,
gfx::Point p(point);
p.Offset(-source->width(), 0);
- if (menu_runner_->RunMenuAt(
- source->GetWidget()->GetTopLevelWidget(),
- this,
- gfx::Rect(p, gfx::Size()),
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS) == views::MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
+ this,
+ gfx::Rect(p, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
} // namespace internal
diff --git a/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc b/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
index 4960f48..589bac9 100644
--- a/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
+++ b/chrome/browser/ui/views/website_settings/permissions_bubble_view.cc
@@ -108,14 +108,15 @@ void PermissionCombobox::OnMenuButtonClicked(View* source,
gfx::Point p(point);
p.Offset(-source->width(), 0);
- if (menu_runner_->RunMenuAt(
- source->GetWidget()->GetTopLevelWidget(),
- this,
- gfx::Rect(p, gfx::Size()),
- views::MenuItemView::TOPLEFT,
- ui::MENU_SOURCE_NONE,
- views::MenuRunner::HAS_MNEMONICS) == views::MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
+ this,
+ gfx::Rect(p, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::HAS_MNEMONICS) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
void PermissionCombobox::PermissionChanged(
diff --git a/content/shell/browser/shell_views.cc b/content/shell/browser/shell_views.cc
index a2684b5..6bc61b1 100644
--- a/content/shell/browser/shell_views.cc
+++ b/content/shell/browser/shell_views.cc
@@ -24,7 +24,6 @@
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/button/menu_button_listener.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/textfield/textfield.h"
#include "ui/views/controls/textfield/textfield_controller.h"
@@ -189,11 +188,14 @@ class ShellWindowDelegateView : public views::WidgetDelegateView,
new views::MenuRunner(context_menu_model_.get()));
if (context_menu_runner_->RunMenuAt(web_view_->GetWidget(),
- NULL, gfx::Rect(screen_point, gfx::Size()),
- views::MenuItemView::TOPRIGHT, ui::MENU_SOURCE_NONE,
- views::MenuRunner::CONTEXT_MENU) ==
- views::MenuRunner::MENU_DELETED)
- return;
+ NULL,
+ gfx::Rect(screen_point, gfx::Size()),
+ views::MENU_ANCHOR_TOPRIGHT,
+ ui::MENU_SOURCE_NONE,
+ views::MenuRunner::CONTEXT_MENU) ==
+ views::MenuRunner::MENU_DELETED) {
+ return;
+ }
}
void OnWebContentsFocused(content::WebContents* web_contents) {
diff --git a/ui/app_list/views/app_list_item_view.cc b/ui/app_list/views/app_list_item_view.cc
index 9ab2a5b..ceb0f13 100644
--- a/ui/app_list/views/app_list_item_view.cc
+++ b/ui/app_list/views/app_list_item_view.cc
@@ -29,7 +29,6 @@
#include "ui/gfx/transform_util.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/drag_controller.h"
@@ -328,12 +327,15 @@ void AppListItemView::ShowContextMenuForView(views::View* source,
return;
context_menu_runner_.reset(new views::MenuRunner(menu_model));
- if (context_menu_runner_->RunMenuAt(
- GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type,
- views::MenuRunner::HAS_MNEMONICS) ==
- views::MenuRunner::MENU_DELETED)
+ if (context_menu_runner_->RunMenuAt(GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS) ==
+ views::MenuRunner::MENU_DELETED) {
return;
+ }
}
void AppListItemView::StateChanged() {
diff --git a/ui/app_list/views/app_list_menu_views.cc b/ui/app_list/views/app_list_menu_views.cc
index ee3e3e8..a920bdb 100644
--- a/ui/app_list/views/app_list_menu_views.cc
+++ b/ui/app_list/views/app_list_menu_views.cc
@@ -31,10 +31,12 @@ AppListMenuViews::~AppListMenuViews() {}
void AppListMenuViews::RunMenuAt(views::MenuButton* button,
const gfx::Point& point) {
- ignore_result(menu_runner_->RunMenuAt(button->GetWidget(), button,
+ ignore_result(menu_runner_->RunMenuAt(button->GetWidget(),
+ button,
gfx::Rect(point, gfx::Size()),
- MenuItemView::TOPRIGHT,
- ui::MENU_SOURCE_NONE, 0));
+ views::MENU_ANCHOR_TOPRIGHT,
+ ui::MENU_SOURCE_NONE,
+ 0));
}
void AppListMenuViews::Cancel() {
diff --git a/ui/app_list/views/search_result_view.cc b/ui/app_list/views/search_result_view.cc
index 861c8d0..3da0114 100644
--- a/ui/app_list/views/search_result_view.cc
+++ b/ui/app_list/views/search_result_view.cc
@@ -17,7 +17,6 @@
#include "ui/gfx/render_text.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
namespace app_list {
@@ -343,10 +342,12 @@ void SearchResultView::ShowContextMenuForView(views::View* source,
return;
context_menu_runner_.reset(new views::MenuRunner(menu_model));
- if (context_menu_runner_->RunMenuAt(
- GetWidget(), NULL, gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type,
- views::MenuRunner::HAS_MNEMONICS) ==
+ if (context_menu_runner_->RunMenuAt(GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPLEFT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS) ==
views::MenuRunner::MENU_DELETED)
return;
}
diff --git a/ui/message_center/views/message_view_context_menu_controller.cc b/ui/message_center/views/message_view_context_menu_controller.cc
index 6dcae7c..3edaa29 100644
--- a/ui/message_center/views/message_view_context_menu_controller.cc
+++ b/ui/message_center/views/message_view_context_menu_controller.cc
@@ -34,13 +34,12 @@ void MessageViewContextMenuController::ShowContextMenuForView(
views::MenuRunner menu_runner(menu_model.get());
- ignore_result(menu_runner.RunMenuAt(
- source->GetWidget()->GetTopLevelWidget(),
- NULL,
- gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPRIGHT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS));
+ ignore_result(menu_runner.RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ views::MENU_ANCHOR_TOPRIGHT,
+ source_type,
+ views::MenuRunner::HAS_MNEMONICS));
}
} // namespace message_center
diff --git a/ui/message_center/views/notifier_settings_view.cc b/ui/message_center/views/notifier_settings_view.cc
index f4e5015..720b0763 100644
--- a/ui/message_center/views/notifier_settings_view.cc
+++ b/ui/message_center/views/notifier_settings_view.cc
@@ -713,7 +713,7 @@ void NotifierSettingsView::OnMenuButtonClicked(views::View* source,
notifier_group_menu_runner_->RunMenuAt(GetWidget(),
notifier_group_selector_,
menu_anchor,
- views::MenuItemView::BUBBLE_ABOVE,
+ views::MENU_ANCHOR_BUBBLE_ABOVE,
ui::MENU_SOURCE_MOUSE,
views::MenuRunner::CONTEXT_MENU))
return;
diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc
index 8ce03b8..41cb16d 100644
--- a/ui/views/controls/combobox/combobox.cc
+++ b/ui/views/controls/combobox/combobox.cc
@@ -26,6 +26,7 @@
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/combobox/combobox_listener.h"
#include "ui/views/controls/focusable_border.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/menu/menu_runner_handler.h"
#include "ui/views/controls/menu/submenu_view.h"
@@ -769,8 +770,8 @@ void Combobox::ShowDropDownMenu(ui::MenuSourceType source_type) {
arrow_button_->SetState(Button::STATE_PRESSED);
}
dropdown_open_ = true;
- MenuItemView::AnchorPosition anchor_position =
- style_ == STYLE_ACTION ? MenuItemView::TOPRIGHT : MenuItemView::TOPLEFT;
+ MenuAnchorPosition anchor_position =
+ style_ == STYLE_ACTION ? MENU_ANCHOR_TOPRIGHT : MENU_ANCHOR_TOPLEFT;
if (dropdown_list_menu_runner_->RunMenuAt(GetWidget(), NULL, bounds,
anchor_position, source_type,
MenuRunner::COMBOBOX) ==
diff --git a/ui/views/controls/combobox/combobox_unittest.cc b/ui/views/controls/combobox/combobox_unittest.cc
index 15dd145..67625a2 100644
--- a/ui/views/controls/combobox/combobox_unittest.cc
+++ b/ui/views/controls/combobox/combobox_unittest.cc
@@ -38,7 +38,7 @@ class TestMenuRunnerHandler : public MenuRunnerHandler {
virtual MenuRunner::RunResult RunMenuAt(Widget* parent,
MenuButton* button,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
+ MenuAnchorPosition anchor,
ui::MenuSourceType source_type,
int32 types) OVERRIDE {
executed_ = true;
diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
index a63448d..f5d28ef 100644
--- a/ui/views/controls/menu/menu_controller.cc
+++ b/ui/views/controls/menu/menu_controller.cc
@@ -35,6 +35,7 @@
#include "ui/views/controls/menu/menu_config.h"
#include "ui/views/controls/menu/menu_controller_delegate.h"
#include "ui/views/controls/menu/menu_host_root_view.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_scroll_view_container.h"
#include "ui/views/controls/menu/submenu_view.h"
#include "ui/views/drag_utils.h"
@@ -346,8 +347,9 @@ struct MenuController::SelectByCharDetails {
MenuController::State::State()
: item(NULL),
submenu_open(false),
- anchor(MenuItemView::TOPLEFT),
- context_menu(false) {}
+ anchor(MENU_ANCHOR_TOPLEFT),
+ context_menu(false) {
+}
MenuController::State::~State() {}
@@ -365,7 +367,7 @@ MenuItemView* MenuController::Run(Widget* parent,
MenuButton* button,
MenuItemView* root,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition position,
+ MenuAnchorPosition position,
bool context_menu,
int* result_event_flags) {
exit_type_ = EXIT_NONE;
@@ -1232,10 +1234,9 @@ MenuController::SendAcceleratorResultType
ACCELERATOR_PROCESSED : ACCELERATOR_PROCESSED_EXIT;
}
-void MenuController::UpdateInitialLocation(
- const gfx::Rect& bounds,
- MenuItemView::AnchorPosition position,
- bool context_menu) {
+void MenuController::UpdateInitialLocation(const gfx::Rect& bounds,
+ MenuAnchorPosition position,
+ bool context_menu) {
pending_state_.context_menu = context_menu;
pending_state_.initial_bounds = bounds;
if (bounds.height() > 1) {
@@ -1246,10 +1247,10 @@ void MenuController::UpdateInitialLocation(
// Reverse anchor position for RTL languages.
if (base::i18n::IsRTL() &&
- (position == MenuItemView::TOPRIGHT ||
- position == MenuItemView::TOPLEFT)) {
- pending_state_.anchor = position == MenuItemView::TOPRIGHT ?
- MenuItemView::TOPLEFT : MenuItemView::TOPRIGHT;
+ (position == MENU_ANCHOR_TOPRIGHT || position == MENU_ANCHOR_TOPLEFT)) {
+ pending_state_.anchor = position == MENU_ANCHOR_TOPRIGHT
+ ? MENU_ANCHOR_TOPLEFT
+ : MENU_ANCHOR_TOPRIGHT;
} else {
pending_state_.anchor = position;
}
@@ -1305,7 +1306,7 @@ bool MenuController::ShowSiblingMenu(SubmenuView* source,
// if there is a sibling menu we should show.
gfx::Point screen_point(mouse_location);
View::ConvertPointToScreen(source_view, &screen_point);
- MenuItemView::AnchorPosition anchor;
+ MenuAnchorPosition anchor;
bool has_mnemonics;
MenuButton* button = NULL;
MenuItemView* alt_menu = source->GetMenuItem()->GetDelegate()->
@@ -1729,11 +1730,11 @@ gfx::Rect MenuController::CalculateMenuBounds(MenuItemView* item,
x += 1;
y = state_.initial_bounds.bottom();
- if (state_.anchor == MenuItemView::TOPRIGHT) {
+ if (state_.anchor == MENU_ANCHOR_TOPRIGHT) {
x = x + state_.initial_bounds.width() - pref.width();
if (menu_config.offset_context_menus && state_.context_menu)
x -= 1;
- } else if (state_.anchor == MenuItemView::BOTTOMCENTER) {
+ } else if (state_.anchor == MENU_ANCHOR_BOTTOMCENTER) {
x = x - (pref.width() - state_.initial_bounds.width()) / 2;
if (pref.height() >
state_.initial_bounds.y() + kCenteredContextMenuYOffset) {
@@ -1782,7 +1783,7 @@ gfx::Rect MenuController::CalculateMenuBounds(MenuItemView* item,
// The menu should never overlap the owning button. So move it.
// We use the anchor view style to determine the preferred position
// relative to the owning button.
- if (state_.anchor == MenuItemView::TOPLEFT) {
+ if (state_.anchor == MENU_ANCHOR_TOPLEFT) {
// The menu starts with the same x coordinate as the owning button.
if (x + state_.initial_bounds.width() + pref.width() >
state_.monitor_bounds.right())
@@ -1895,16 +1896,16 @@ gfx::Rect MenuController::CalculateBubbleMenuBounds(MenuItemView* item,
int max_height = state_.monitor_bounds.height();
// In case of bubbles, the maximum width is limited by the space
// between the display corner and the target area + the tip size.
- if (state_.anchor == MenuItemView::BUBBLE_LEFT) {
+ if (state_.anchor == MENU_ANCHOR_BUBBLE_LEFT) {
max_width = owner_bounds.x() - state_.monitor_bounds.x() +
kBubbleTipSizeLeftRight;
- } else if (state_.anchor == MenuItemView::BUBBLE_RIGHT) {
+ } else if (state_.anchor == MENU_ANCHOR_BUBBLE_RIGHT) {
max_width = state_.monitor_bounds.right() - owner_bounds.right() +
kBubbleTipSizeLeftRight;
- } else if (state_.anchor == MenuItemView::BUBBLE_ABOVE) {
+ } else if (state_.anchor == MENU_ANCHOR_BUBBLE_ABOVE) {
max_height = owner_bounds.y() - state_.monitor_bounds.y() +
kBubbleTipSizeTopBottom;
- } else if (state_.anchor == MenuItemView::BUBBLE_BELOW) {
+ } else if (state_.anchor == MENU_ANCHOR_BUBBLE_BELOW) {
max_height = state_.monitor_bounds.bottom() - owner_bounds.bottom() +
kBubbleTipSizeTopBottom;
}
@@ -1919,9 +1920,9 @@ gfx::Rect MenuController::CalculateBubbleMenuBounds(MenuItemView* item,
item->GetDelegate()->GetMaxWidthForMenu(item)));
int x, y;
- if (state_.anchor == MenuItemView::BUBBLE_ABOVE ||
- state_.anchor == MenuItemView::BUBBLE_BELOW) {
- if (state_.anchor == MenuItemView::BUBBLE_ABOVE)
+ if (state_.anchor == MENU_ANCHOR_BUBBLE_ABOVE ||
+ state_.anchor == MENU_ANCHOR_BUBBLE_BELOW) {
+ if (state_.anchor == MENU_ANCHOR_BUBBLE_ABOVE)
y = owner_bounds.y() - pref.height() + kBubbleTipSizeTopBottom;
else
y = owner_bounds.bottom() - kBubbleTipSizeTopBottom;
@@ -1936,7 +1937,7 @@ gfx::Rect MenuController::CalculateBubbleMenuBounds(MenuItemView* item,
submenu->GetScrollViewContainer()->SetBubbleArrowOffset(
pref.width() / 2 - x + x_old);
} else {
- if (state_.anchor == MenuItemView::BUBBLE_RIGHT)
+ if (state_.anchor == MENU_ANCHOR_BUBBLE_RIGHT)
x = owner_bounds.right() - kBubbleTipSizeLeftRight;
else
x = owner_bounds.x() - pref.width() + kBubbleTipSizeLeftRight;
diff --git a/ui/views/controls/menu/menu_controller.h b/ui/views/controls/menu/menu_controller.h
index 0773060..5821eec 100644
--- a/ui/views/controls/menu/menu_controller.h
+++ b/ui/views/controls/menu/menu_controller.h
@@ -14,10 +14,11 @@
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "base/timer/timer.h"
+#include "ui/events/event.h"
#include "ui/events/event_constants.h"
#include "ui/events/platform/platform_event_dispatcher.h"
+#include "ui/views/controls/menu/menu_config.h"
#include "ui/views/controls/menu/menu_delegate.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/widget/widget_observer.h"
namespace base {
@@ -35,6 +36,7 @@ namespace views {
class MenuButton;
class MenuHostRootView;
+class MenuItemView;
class MouseEvent;
class SubmenuView;
class View;
@@ -79,7 +81,7 @@ class VIEWS_EXPORT MenuController : public WidgetObserver {
MenuButton* button,
MenuItemView* root,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition position,
+ MenuAnchorPosition position,
bool context_menu,
int* event_flags);
@@ -90,7 +92,7 @@ class VIEWS_EXPORT MenuController : public WidgetObserver {
bool drag_in_progress() const { return drag_in_progress_; }
// Get the anchor position wich is used to show this menu.
- MenuItemView::AnchorPosition GetAnchorPosition() { return state_.anchor; }
+ MenuAnchorPosition GetAnchorPosition() { return state_.anchor; }
// Cancels the current Run. See ExitType for a description of what happens
// with the various parameters.
@@ -199,7 +201,7 @@ class VIEWS_EXPORT MenuController : public WidgetObserver {
gfx::Rect initial_bounds;
// Position of the initial menu.
- MenuItemView::AnchorPosition anchor;
+ MenuAnchorPosition anchor;
// The direction child menus have opened in.
std::list<bool> open_leading;
@@ -280,7 +282,7 @@ class VIEWS_EXPORT MenuController : public WidgetObserver {
SendAcceleratorResultType SendAcceleratorToHotTrackedView();
void UpdateInitialLocation(const gfx::Rect& bounds,
- MenuItemView::AnchorPosition position,
+ MenuAnchorPosition position,
bool context_menu);
// Invoked when the user accepts the selected item. This is only used
diff --git a/ui/views/controls/menu/menu_delegate.cc b/ui/views/controls/menu/menu_delegate.cc
index 699377f..3469023 100644
--- a/ui/views/controls/menu/menu_delegate.cc
+++ b/ui/views/controls/menu/menu_delegate.cc
@@ -2,9 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/views/controls/menu/menu_config.h"
#include "ui/views/controls/menu/menu_delegate.h"
+#include "ui/events/event.h"
+#include "ui/views/controls/menu/menu_config.h"
+
namespace views {
MenuDelegate::~MenuDelegate() {}
@@ -131,7 +133,7 @@ int MenuDelegate::GetDragOperations(MenuItemView* sender) {
MenuItemView* MenuDelegate::GetSiblingMenu(MenuItemView* menu,
const gfx::Point& screen_point,
- MenuItemView::AnchorPosition* anchor,
+ MenuAnchorPosition* anchor,
bool* has_mnemonics,
MenuButton** button) {
return NULL;
diff --git a/ui/views/controls/menu/menu_delegate.h b/ui/views/controls/menu/menu_delegate.h
index 37c2db80..24b708d 100644
--- a/ui/views/controls/menu/menu_delegate.h
+++ b/ui/views/controls/menu/menu_delegate.h
@@ -10,23 +10,29 @@
#include "base/logging.h"
#include "base/strings/string16.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "ui/base/dragdrop/drag_drop_types.h"
#include "ui/base/dragdrop/os_exchange_data.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/views/controls/menu/menu_types.h"
+#include "ui/views/views_export.h"
using ui::OSExchangeData;
namespace gfx {
class FontList;
+class Point;
}
namespace ui {
class Accelerator;
+class DropTargetEvent;
}
namespace views {
class MenuButton;
+class MenuItemView;
// MenuDelegate --------------------------------------------------------------
@@ -213,7 +219,7 @@ class VIEWS_EXPORT MenuDelegate {
// The delegate owns the returned menu, not the controller.
virtual MenuItemView* GetSiblingMenu(MenuItemView* menu,
const gfx::Point& screen_point,
- MenuItemView::AnchorPosition* anchor,
+ MenuAnchorPosition* anchor,
bool* has_mnemonics,
MenuButton** button);
diff --git a/ui/views/controls/menu/menu_item_view.cc b/ui/views/controls/menu/menu_item_view.cc
index 5f237c5..fc681fd 100644
--- a/ui/views/controls/menu/menu_item_view.cc
+++ b/ui/views/controls/menu/menu_item_view.cc
@@ -184,11 +184,11 @@ void MenuItemView::GetAccessibleState(ui::AXViewState* state) {
}
// static
-bool MenuItemView::IsBubble(MenuItemView::AnchorPosition anchor) {
- return anchor == MenuItemView::BUBBLE_LEFT ||
- anchor == MenuItemView::BUBBLE_RIGHT ||
- anchor == MenuItemView::BUBBLE_ABOVE ||
- anchor == MenuItemView::BUBBLE_BELOW;
+bool MenuItemView::IsBubble(MenuAnchorPosition anchor) {
+ return anchor == MENU_ANCHOR_BUBBLE_LEFT ||
+ anchor == MENU_ANCHOR_BUBBLE_RIGHT ||
+ anchor == MENU_ANCHOR_BUBBLE_ABOVE ||
+ anchor == MENU_ANCHOR_BUBBLE_BELOW;
}
// static
diff --git a/ui/views/controls/menu/menu_item_view.h b/ui/views/controls/menu/menu_item_view.h
index f228773..d52a951 100644
--- a/ui/views/controls/menu/menu_item_view.h
+++ b/ui/views/controls/menu/menu_item_view.h
@@ -15,6 +15,7 @@
#include "ui/base/models/menu_separator_types.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/views/controls/menu/menu_config.h"
+#include "ui/views/controls/menu/menu_types.h"
#include "ui/views/view.h"
#if defined(OS_WIN)
@@ -83,21 +84,6 @@ class VIEWS_EXPORT MenuItemView : public View {
EMPTY
};
- // Where the menu should be anchored to for non-RTL languages. The
- // opposite position will be used if base::i18n:IsRTL() is true.
- // The BUBBLE flags are used when the menu should get enclosed by a bubble.
- // Note that BUBBLE flags should only be used with menus which have no
- // children.
- enum AnchorPosition {
- TOPLEFT,
- TOPRIGHT,
- BOTTOMCENTER,
- BUBBLE_LEFT,
- BUBBLE_RIGHT,
- BUBBLE_ABOVE,
- BUBBLE_BELOW
- };
-
// Where the menu should be drawn, above or below the bounds (when
// the bounds is non-empty). POSITION_BEST_FIT (default) positions
// the menu below the bounds unless the menu does not fit on the
@@ -143,7 +129,7 @@ class VIEWS_EXPORT MenuItemView : public View {
static int label_start() { return label_start_; }
// Returns if a given |anchor| is a bubble or not.
- static bool IsBubble(MenuItemView::AnchorPosition anchor);
+ static bool IsBubble(MenuAnchorPosition anchor);
// Returns the accessible name to be used with screen readers. Mnemonics are
// removed and the menu item accelerator text is appended.
diff --git a/ui/views/controls/menu/menu_message_pump_dispatcher_win.cc b/ui/views/controls/menu/menu_message_pump_dispatcher_win.cc
index 3fe74d3..cc53cd0 100644
--- a/ui/views/controls/menu/menu_message_pump_dispatcher_win.cc
+++ b/ui/views/controls/menu/menu_message_pump_dispatcher_win.cc
@@ -10,6 +10,7 @@
#include "ui/events/keycodes/keyboard_code_conversion.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/views/controls/menu/menu_controller.h"
+#include "ui/views/controls/menu/menu_item_view.h"
namespace views {
namespace internal {
diff --git a/ui/views/controls/menu/menu_model_adapter.cc b/ui/views/controls/menu/menu_model_adapter.cc
index fb6ea6a..51edb03 100644
--- a/ui/views/controls/menu/menu_model_adapter.cc
+++ b/ui/views/controls/menu/menu_model_adapter.cc
@@ -8,6 +8,7 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/models/menu_model.h"
#include "ui/gfx/image/image.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/submenu_view.h"
#include "ui/views/views_delegate.h"
diff --git a/ui/views/controls/menu/menu_runner.cc b/ui/views/controls/menu/menu_runner.cc
index 18b3fcd..ca36d02 100644
--- a/ui/views/controls/menu/menu_runner.cc
+++ b/ui/views/controls/menu/menu_runner.cc
@@ -12,6 +12,7 @@
#include "ui/views/controls/menu/menu_controller.h"
#include "ui/views/controls/menu/menu_controller_delegate.h"
#include "ui/views/controls/menu/menu_delegate.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_model_adapter.h"
#include "ui/views/controls/menu/menu_runner_handler.h"
#include "ui/views/widget/widget.h"
@@ -43,7 +44,7 @@ class MenuRunnerImpl : public internal::MenuControllerDelegate {
MenuRunner::RunResult RunMenuAt(Widget* parent,
MenuButton* button,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
+ MenuAnchorPosition anchor,
int32 types) WARN_UNUSED_RESULT;
void Cancel();
@@ -140,12 +141,11 @@ void MenuRunnerImpl::Release() {
}
}
-MenuRunner::RunResult MenuRunnerImpl::RunMenuAt(
- Widget* parent,
- MenuButton* button,
- const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
- int32 types) {
+MenuRunner::RunResult MenuRunnerImpl::RunMenuAt(Widget* parent,
+ MenuButton* button,
+ const gfx::Rect& bounds,
+ MenuAnchorPosition anchor,
+ int32 types) {
closing_event_time_ = base::TimeDelta();
if (running_) {
// Ignore requests to show the menu while it's already showing. MenuItemView
@@ -300,7 +300,7 @@ MenuItemView* MenuRunner::GetMenu() {
MenuRunner::RunResult MenuRunner::RunMenuAt(Widget* parent,
MenuButton* button,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
+ MenuAnchorPosition anchor,
ui::MenuSourceType source_type,
int32 types) {
if (runner_handler_.get()) {
@@ -321,11 +321,11 @@ MenuRunner::RunResult MenuRunner::RunMenuAt(Widget* parent,
case ui::MENU_SOURCE_NONE:
case ui::MENU_SOURCE_KEYBOARD:
case ui::MENU_SOURCE_MOUSE:
- anchor = MenuItemView::TOPLEFT;
+ anchor = MENU_ANCHOR_TOPLEFT;
break;
case ui::MENU_SOURCE_TOUCH:
case ui::MENU_SOURCE_TOUCH_EDIT_MENU:
- anchor = MenuItemView::BOTTOMCENTER;
+ anchor = MENU_ANCHOR_BOTTOMCENTER;
break;
default:
break;
diff --git a/ui/views/controls/menu/menu_runner.h b/ui/views/controls/menu/menu_runner.h
index 6b46362..824afdf 100644
--- a/ui/views/controls/menu/menu_runner.h
+++ b/ui/views/controls/menu/menu_runner.h
@@ -8,7 +8,17 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/base/ui_base_types.h"
+#include "ui/views/controls/menu/menu_types.h"
+#include "ui/views/views_export.h"
+
+namespace base {
+class TimeDelta;
+}
+
+namespace gfx {
+class Rect;
+}
namespace ui {
class MenuModel;
@@ -17,6 +27,7 @@ class MenuModel;
namespace views {
class MenuButton;
+class MenuItemView;
class MenuModelAdapter;
class MenuRunnerHandler;
class Widget;
@@ -103,7 +114,7 @@ class VIEWS_EXPORT MenuRunner {
RunResult RunMenuAt(Widget* parent,
MenuButton* button,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
+ MenuAnchorPosition anchor,
ui::MenuSourceType source_type,
int32 types) WARN_UNUSED_RESULT;
diff --git a/ui/views/controls/menu/menu_runner_handler.h b/ui/views/controls/menu/menu_runner_handler.h
index 46f801a..47d75c8 100644
--- a/ui/views/controls/menu/menu_runner_handler.h
+++ b/ui/views/controls/menu/menu_runner_handler.h
@@ -6,11 +6,11 @@
#define UI_VIEWS_CONTROLS_MENU_MENU_RUNNER_HANDLER_H_
#include "base/basictypes.h"
-#include "ui/views/controls/menu/menu_item_view.h"
namespace views {
class MenuButton;
+class MenuItemView;
class Widget;
// Used internally by MenuRunner to show the menu. Can be set in tests (see
@@ -21,7 +21,7 @@ class VIEWS_EXPORT MenuRunnerHandler {
virtual MenuRunner::RunResult RunMenuAt(Widget* parent,
MenuButton* button,
const gfx::Rect& bounds,
- MenuItemView::AnchorPosition anchor,
+ MenuAnchorPosition anchor,
ui::MenuSourceType source_type,
int32 types) = 0;
};
diff --git a/ui/views/controls/menu/menu_scroll_view_container.cc b/ui/views/controls/menu/menu_scroll_view_container.cc
index ea02917..1712fba 100644
--- a/ui/views/controls/menu/menu_scroll_view_container.cc
+++ b/ui/views/controls/menu/menu_scroll_view_container.cc
@@ -315,17 +315,16 @@ void MenuScrollViewContainer::CreateBubbleBorder() {
set_background(new BubbleBackground(bubble_border_));
}
-BubbleBorder::Arrow
-MenuScrollViewContainer::BubbleBorderTypeFromAnchor(
- MenuItemView::AnchorPosition anchor) {
+BubbleBorder::Arrow MenuScrollViewContainer::BubbleBorderTypeFromAnchor(
+ MenuAnchorPosition anchor) {
switch (anchor) {
- case views::MenuItemView::BUBBLE_LEFT:
+ case MENU_ANCHOR_BUBBLE_LEFT:
return BubbleBorder::RIGHT_CENTER;
- case views::MenuItemView::BUBBLE_RIGHT:
+ case MENU_ANCHOR_BUBBLE_RIGHT:
return BubbleBorder::LEFT_CENTER;
- case views::MenuItemView::BUBBLE_ABOVE:
+ case MENU_ANCHOR_BUBBLE_ABOVE:
return BubbleBorder::BOTTOM_CENTER;
- case views::MenuItemView::BUBBLE_BELOW:
+ case MENU_ANCHOR_BUBBLE_BELOW:
return BubbleBorder::TOP_CENTER;
default:
return BubbleBorder::NONE;
diff --git a/ui/views/controls/menu/menu_scroll_view_container.h b/ui/views/controls/menu/menu_scroll_view_container.h
index dbd9764..a2611ab 100644
--- a/ui/views/controls/menu/menu_scroll_view_container.h
+++ b/ui/views/controls/menu/menu_scroll_view_container.h
@@ -7,7 +7,7 @@
#include "ui/views/view.h"
#include "ui/views/bubble/bubble_border.h"
-#include "ui/views/controls/menu/menu_item_view.h"
+#include "ui/views/controls/menu/menu_types.h"
namespace views {
@@ -47,8 +47,7 @@ class MenuScrollViewContainer : public View {
// Create the bubble border.
void CreateBubbleBorder();
- BubbleBorder::Arrow BubbleBorderTypeFromAnchor(
- MenuItemView::AnchorPosition anchor);
+ BubbleBorder::Arrow BubbleBorderTypeFromAnchor(MenuAnchorPosition anchor);
class MenuScrollView;
diff --git a/ui/views/controls/menu/menu_types.h b/ui/views/controls/menu/menu_types.h
new file mode 100644
index 0000000..160dd5a
--- /dev/null
+++ b/ui/views/controls/menu/menu_types.h
@@ -0,0 +1,26 @@
+// Copyright 2014 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 UI_VIEWS_CONTROLS_MENU_MENU_TYPES_H_
+#define UI_VIEWS_CONTROLS_MENU_MENU_TYPES_H_
+
+namespace views {
+
+// Where a popup menu should be anchored to for non-RTL languages. The opposite
+// position will be used if base::i18n:IsRTL() is true. The BUBBLE flags are
+// used when the menu should get enclosed by a bubble. Note that BUBBLE flags
+// should only be used with menus which have no children.
+enum MenuAnchorPosition {
+ MENU_ANCHOR_TOPLEFT,
+ MENU_ANCHOR_TOPRIGHT,
+ MENU_ANCHOR_BOTTOMCENTER,
+ MENU_ANCHOR_BUBBLE_LEFT,
+ MENU_ANCHOR_BUBBLE_RIGHT,
+ MENU_ANCHOR_BUBBLE_ABOVE,
+ MENU_ANCHOR_BUBBLE_BELOW
+};
+
+} // namespace views
+
+#endif // UI_VIEWS_CONTROLS_MENU_MENU_TYPES_H_
diff --git a/ui/views/controls/menu/submenu_view.cc b/ui/views/controls/menu/submenu_view.cc
index c8016c0..2b59507 100644
--- a/ui/views/controls/menu/submenu_view.cc
+++ b/ui/views/controls/menu/submenu_view.cc
@@ -14,6 +14,7 @@
#include "ui/views/controls/menu/menu_config.h"
#include "ui/views/controls/menu/menu_controller.h"
#include "ui/views/controls/menu/menu_host.h"
+#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_scroll_view_container.h"
#include "ui/views/widget/root_view.h"
#include "ui/views/widget/widget.h"
diff --git a/ui/views/controls/scrollbar/base_scroll_bar.cc b/ui/views/controls/scrollbar/base_scroll_bar.cc
index 99ec75a..5e4d6a5 100644
--- a/ui/views/controls/scrollbar/base_scroll_bar.cc
+++ b/ui/views/controls/scrollbar/base_scroll_bar.cc
@@ -305,11 +305,16 @@ void BaseScrollBar::ShowContextMenuForView(View* source,
menu->AppendSeparator();
menu->AppendDelegateMenuItem(ScrollBarContextMenuCommand_ScrollPrev);
menu->AppendDelegateMenuItem(ScrollBarContextMenuCommand_ScrollNext);
- if (menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(p, gfx::Size()),
- views::MenuItemView::TOPLEFT, source_type, MenuRunner::HAS_MNEMONICS |
- views::MenuRunner::CONTEXT_MENU) ==
- MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(
+ GetWidget(),
+ NULL,
+ gfx::Rect(p, gfx::Size()),
+ MENU_ANCHOR_TOPLEFT,
+ source_type,
+ MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU) ==
+ MenuRunner::MENU_DELETED) {
return;
+ }
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 29fa9c8..9b20f0c 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -25,7 +25,6 @@
#include "ui/views/background.h"
#include "ui/views/controls/focusable_border.h"
#include "ui/views/controls/label.h"
-#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/native/native_view_host.h"
#include "ui/views/controls/textfield/textfield_controller.h"
@@ -925,8 +924,12 @@ void Textfield::ShowContextMenuForView(View* source,
const gfx::Point& point,
ui::MenuSourceType source_type) {
UpdateContextMenu();
- ignore_result(context_menu_runner_->RunMenuAt(GetWidget(), NULL,
- gfx::Rect(point, gfx::Size()), MenuItemView::TOPLEFT, source_type,
+ ignore_result(context_menu_runner_->RunMenuAt(
+ GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ MENU_ANCHOR_TOPLEFT,
+ source_type,
MenuRunner::HAS_MNEMONICS | MenuRunner::CONTEXT_MENU));
}
diff --git a/ui/views/examples/menu_example.cc b/ui/views/examples/menu_example.cc
index bd9ea48..742cfff 100644
--- a/ui/views/examples/menu_example.cc
+++ b/ui/views/examples/menu_example.cc
@@ -189,11 +189,15 @@ void ExampleMenuButton::OnMenuButtonClicked(View* source,
const gfx::Point& point) {
menu_runner_.reset(new MenuRunner(GetMenuModel()));
- if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(), this,
- gfx::Rect(point, gfx::Size()), MenuItemView::TOPRIGHT,
- ui::MENU_SOURCE_NONE, MenuRunner::HAS_MNEMONICS) ==
- MenuRunner::MENU_DELETED)
+ if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
+ this,
+ gfx::Rect(point, gfx::Size()),
+ MENU_ANCHOR_TOPRIGHT,
+ ui::MENU_SOURCE_NONE,
+ MenuRunner::HAS_MNEMONICS) ==
+ MenuRunner::MENU_DELETED) {
return;
+ }
}
ui::SimpleMenuModel* ExampleMenuButton::GetMenuModel() {
diff --git a/ui/views/examples/tree_view_example.cc b/ui/views/examples/tree_view_example.cc
index e7cce32..2f6cc4c 100644
--- a/ui/views/examples/tree_view_example.cc
+++ b/ui/views/examples/tree_view_example.cc
@@ -132,10 +132,14 @@ void TreeViewExample::ShowContextMenuForView(View* source,
context_menu_model.AddItem(ID_REMOVE, ASCIIToUTF16("Remove"));
context_menu_model.AddItem(ID_ADD, ASCIIToUTF16("Add"));
context_menu_runner_.reset(new MenuRunner(&context_menu_model));
- if (context_menu_runner_->RunMenuAt(source->GetWidget(), NULL,
- gfx::Rect(point, gfx::Size()), MenuItemView::TOPLEFT, source_type, 0) ==
- MenuRunner::MENU_DELETED)
+ if (context_menu_runner_->RunMenuAt(source->GetWidget(),
+ NULL,
+ gfx::Rect(point, gfx::Size()),
+ MENU_ANCHOR_TOPLEFT,
+ source_type,
+ 0) == MenuRunner::MENU_DELETED) {
return;
+ }
}
bool TreeViewExample::IsCommandIdChecked(int command_id) const {
diff --git a/ui/views/views.gyp b/ui/views/views.gyp
index ff3eb32..72be3f4 100644
--- a/ui/views/views.gyp
+++ b/ui/views/views.gyp
@@ -154,6 +154,7 @@
'controls/menu/menu_separator.h',
'controls/menu/menu_separator_views.cc',
'controls/menu/menu_separator_win.cc',
+ 'controls/menu/menu_types.h',
'controls/menu/menu_wrapper.h',
'controls/menu/native_menu_win.cc',
'controls/menu/native_menu_win.h',
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
index 2bc65f0..cfc6d59 100644
--- a/ui/views/widget/widget.cc
+++ b/ui/views/widget/widget.cc
@@ -16,6 +16,7 @@
#include "ui/compositor/compositor.h"
#include "ui/compositor/layer.h"
#include "ui/events/event.h"
+#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/screen.h"
#include "ui/views/controls/menu/menu_controller.h"
#include "ui/views/focus/focus_manager.h"