| Index: ui/views/controls/menu/menu_controller.cc
|
| diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
|
| index a63448d679b1d8715e1550f65095e324cc1624cc..f5d28ef1d79a610f3834115b463b4b74d7566fc0 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;
|
|
|