diff options
author | andresantoso@chromium.org <andresantoso@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-15 00:42:23 +0000 |
---|---|---|
committer | andresantoso@chromium.org <andresantoso@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-15 00:42:23 +0000 |
commit | 0a37a5d254ce40eb5a16e886a53f907877b0ca49 (patch) | |
tree | 368fec48373e40c4dd98f672b82a6b8f49796ea8 /ui | |
parent | 0bd3c7cec1fa9c3599838d402e71987d55dd4c1a (diff) | |
download | chromium_src-0a37a5d254ce40eb5a16e886a53f907877b0ca49.zip chromium_src-0a37a5d254ce40eb5a16e886a53f907877b0ca49.tar.gz chromium_src-0a37a5d254ce40eb5a16e886a53f907877b0ca49.tar.bz2 |
MacViews: Move menu run types parameter to constructor.
This is in preparation for supporting running native Cocoa context menus to
support Services (https://codereview.chromium.org/331993009/).
The parameter is moved to the constructor so that we can know which kind of
MenuRunnerImpl to create at construction time.
TBR=sky@chromium.org
BUG=388455
Review URL: https://codereview.chromium.org/390183002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283114 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/app_list/views/app_list_item_view.cc | 6 | ||||
-rw-r--r-- | ui/app_list/views/app_list_menu_views.cc | 5 | ||||
-rw-r--r-- | ui/app_list/views/search_result_view.cc | 6 | ||||
-rw-r--r-- | ui/message_center/views/message_view_context_menu_controller.cc | 6 | ||||
-rw-r--r-- | ui/message_center/views/notifier_settings_view.cc | 7 | ||||
-rw-r--r-- | ui/views/controls/combobox/combobox.cc | 7 | ||||
-rw-r--r-- | ui/views/controls/menu/menu_model_adapter_unittest.cc | 2 | ||||
-rw-r--r-- | ui/views/controls/menu/menu_runner.cc | 22 | ||||
-rw-r--r-- | ui/views/controls/menu/menu_runner.h | 15 | ||||
-rw-r--r-- | ui/views/controls/scrollbar/base_scroll_bar.cc | 16 | ||||
-rw-r--r-- | ui/views/controls/textfield/textfield.cc | 16 | ||||
-rw-r--r-- | ui/views/examples/menu_example.cc | 5 | ||||
-rw-r--r-- | ui/views/examples/tree_view_example.cc | 6 |
13 files changed, 57 insertions, 62 deletions
diff --git a/ui/app_list/views/app_list_item_view.cc b/ui/app_list/views/app_list_item_view.cc index 3d4897c..671d299 100644 --- a/ui/app_list/views/app_list_item_view.cc +++ b/ui/app_list/views/app_list_item_view.cc @@ -364,13 +364,13 @@ void AppListItemView::ShowContextMenuForView(views::View* source, if (!menu_model) return; - context_menu_runner_.reset(new views::MenuRunner(menu_model)); + context_menu_runner_.reset( + new views::MenuRunner(menu_model, 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) == + source_type) == views::MenuRunner::MENU_DELETED) { return; } diff --git a/ui/app_list/views/app_list_menu_views.cc b/ui/app_list/views/app_list_menu_views.cc index a920bdb..0dc76cf 100644 --- a/ui/app_list/views/app_list_menu_views.cc +++ b/ui/app_list/views/app_list_menu_views.cc @@ -23,7 +23,7 @@ AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate) : AppListMenu(delegate) { menu_delegate_.reset(new views::MenuModelAdapter(menu_model())); menu_ = new MenuItemView(menu_delegate_.get()); - menu_runner_.reset(new views::MenuRunner(menu_)); + menu_runner_.reset(new views::MenuRunner(menu_, 0)); menu_delegate_->BuildMenu(menu_); } @@ -35,8 +35,7 @@ void AppListMenuViews::RunMenuAt(views::MenuButton* button, button, gfx::Rect(point, gfx::Size()), views::MENU_ANCHOR_TOPRIGHT, - ui::MENU_SOURCE_NONE, - 0)); + ui::MENU_SOURCE_NONE)); } void AppListMenuViews::Cancel() { diff --git a/ui/app_list/views/search_result_view.cc b/ui/app_list/views/search_result_view.cc index f5f11e6..74e3d7a 100644 --- a/ui/app_list/views/search_result_view.cc +++ b/ui/app_list/views/search_result_view.cc @@ -341,13 +341,13 @@ void SearchResultView::ShowContextMenuForView(views::View* source, if (!menu_model) return; - context_menu_runner_.reset(new views::MenuRunner(menu_model)); + context_menu_runner_.reset( + new views::MenuRunner(menu_model, 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) == + source_type) == 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 3edaa29..d5b6139 100644 --- a/ui/message_center/views/message_view_context_menu_controller.cc +++ b/ui/message_center/views/message_view_context_menu_controller.cc @@ -32,14 +32,14 @@ void MessageViewContextMenuController::ShowContextMenuForView( if (!menu_model || menu_model->GetItemCount() == 0) return; - views::MenuRunner menu_runner(menu_model.get()); + views::MenuRunner menu_runner(menu_model.get(), + 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)); + source_type)); } } // namespace message_center diff --git a/ui/message_center/views/notifier_settings_view.cc b/ui/message_center/views/notifier_settings_view.cc index 4b12ede..80cb402 100644 --- a/ui/message_center/views/notifier_settings_view.cc +++ b/ui/message_center/views/notifier_settings_view.cc @@ -686,8 +686,8 @@ void NotifierSettingsView::ButtonPressed(views::Button* sender, void NotifierSettingsView::OnMenuButtonClicked(views::View* source, const gfx::Point& point) { notifier_group_menu_model_.reset(new NotifierGroupMenuModel(provider_)); - notifier_group_menu_runner_.reset( - new views::MenuRunner(notifier_group_menu_model_.get())); + notifier_group_menu_runner_.reset(new views::MenuRunner( + notifier_group_menu_model_.get(), views::MenuRunner::CONTEXT_MENU)); gfx::Rect menu_anchor = source->GetBoundsInScreen(); menu_anchor.Inset( gfx::Insets(0, kMenuWhitespaceOffset, 0, kMenuWhitespaceOffset)); @@ -696,8 +696,7 @@ void NotifierSettingsView::OnMenuButtonClicked(views::View* source, notifier_group_selector_, menu_anchor, views::MENU_ANCHOR_BUBBLE_ABOVE, - ui::MENU_SOURCE_MOUSE, - views::MenuRunner::CONTEXT_MENU)) + ui::MENU_SOURCE_MOUSE)) return; MessageCenterView* center_view = static_cast<MessageCenterView*>(parent()); center_view->OnSettingsChanged(); diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc index b2a456d..520dd94 100644 --- a/ui/views/controls/combobox/combobox.cc +++ b/ui/views/controls/combobox/combobox.cc @@ -591,7 +591,7 @@ void Combobox::UpdateFromModel() { MenuItemView* menu = new MenuItemView(this); // MenuRunner owns |menu|. - dropdown_list_menu_runner_.reset(new MenuRunner(menu)); + dropdown_list_menu_runner_.reset(new MenuRunner(menu, MenuRunner::COMBOBOX)); int num_items = model()->GetItemCount(); int width = 0; @@ -782,9 +782,8 @@ void Combobox::ShowDropDownMenu(ui::MenuSourceType source_type) { dropdown_open_ = true; 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) == + if (dropdown_list_menu_runner_->RunMenuAt( + GetWidget(), NULL, bounds, anchor_position, source_type) == MenuRunner::MENU_DELETED) { return; } diff --git a/ui/views/controls/menu/menu_model_adapter_unittest.cc b/ui/views/controls/menu/menu_model_adapter_unittest.cc index cba4d2f..afcb823 100644 --- a/ui/views/controls/menu/menu_model_adapter_unittest.cc +++ b/ui/views/controls/menu/menu_model_adapter_unittest.cc @@ -207,7 +207,7 @@ TEST_F(MenuModelAdapterTest, BasicTest) { // Create menu. Build menu twice to check that rebuilding works properly. MenuItemView* menu = new views::MenuItemView(&delegate); // MenuRunner takes ownership of menu. - scoped_ptr<MenuRunner> menu_runner(new MenuRunner(menu)); + scoped_ptr<MenuRunner> menu_runner(new MenuRunner(menu, 0)); delegate.BuildMenu(menu); delegate.BuildMenu(menu); EXPECT_TRUE(menu->HasSubmenu()); diff --git a/ui/views/controls/menu/menu_runner.cc b/ui/views/controls/menu/menu_runner.cc index ca36d02..047e9f0 100644 --- a/ui/views/controls/menu/menu_runner.cc +++ b/ui/views/controls/menu/menu_runner.cc @@ -280,13 +280,14 @@ bool MenuRunnerImpl::ShouldShowMnemonics(MenuButton* button) { } // namespace internal -MenuRunner::MenuRunner(ui::MenuModel* menu_model) - : menu_model_adapter_(new MenuModelAdapter(menu_model)), +MenuRunner::MenuRunner(ui::MenuModel* menu_model, int32 run_types) + : run_types_(run_types), + menu_model_adapter_(new MenuModelAdapter(menu_model)), holder_(new internal::MenuRunnerImpl(menu_model_adapter_->CreateMenu())) { } -MenuRunner::MenuRunner(MenuItemView* menu) - : holder_(new internal::MenuRunnerImpl(menu)) { +MenuRunner::MenuRunner(MenuItemView* menu_view, int32 run_types) + : run_types_(run_types), holder_(new internal::MenuRunnerImpl(menu_view)) { } MenuRunner::~MenuRunner() { @@ -301,22 +302,21 @@ MenuRunner::RunResult MenuRunner::RunMenuAt(Widget* parent, MenuButton* button, const gfx::Rect& bounds, MenuAnchorPosition anchor, - ui::MenuSourceType source_type, - int32 types) { + ui::MenuSourceType source_type) { if (runner_handler_.get()) { - return runner_handler_->RunMenuAt(parent, button, bounds, anchor, - source_type, types); + return runner_handler_->RunMenuAt( + parent, button, bounds, anchor, source_type, run_types_); } // The parent of the nested menu will have created a DisplayChangeListener, so // we avoid creating a DisplayChangeListener if nested. Drop menus are // transient, so we don't cancel in that case. - if ((types & (IS_NESTED | FOR_DROP)) == 0 && parent) { + if ((run_types_ & (IS_NESTED | FOR_DROP)) == 0 && parent) { display_change_listener_.reset( internal::DisplayChangeListener::Create(parent, this)); } - if (types & CONTEXT_MENU) { + if (run_types_ & CONTEXT_MENU) { switch (source_type) { case ui::MENU_SOURCE_NONE: case ui::MENU_SOURCE_KEYBOARD: @@ -332,7 +332,7 @@ MenuRunner::RunResult MenuRunner::RunMenuAt(Widget* parent, } } - return holder_->RunMenuAt(parent, button, bounds, anchor, types); + return holder_->RunMenuAt(parent, button, bounds, anchor, run_types_); } bool MenuRunner::IsRunning() const { diff --git a/ui/views/controls/menu/menu_runner.h b/ui/views/controls/menu/menu_runner.h index 824afdf..a96bfb2 100644 --- a/ui/views/controls/menu/menu_runner.h +++ b/ui/views/controls/menu/menu_runner.h @@ -93,8 +93,9 @@ class VIEWS_EXPORT MenuRunner { }; // Creates a new MenuRunner. - explicit MenuRunner(ui::MenuModel* menu_model); - explicit MenuRunner(MenuItemView* menu); + // |run_types| is a bitmask of RunTypes. + MenuRunner(ui::MenuModel* menu_model, int32 run_types); + MenuRunner(MenuItemView* menu, int32 run_types); ~MenuRunner(); // Returns the menu. @@ -105,8 +106,8 @@ class VIEWS_EXPORT MenuRunner { // MenuDelegate::GetSiblingMenu. void OwnMenu(MenuItemView* menu); - // Runs the menu. |types| is a bitmask of RunTypes. If this returns - // MENU_DELETED the method is returning because the MenuRunner was deleted. + // Runs the menu. If this returns MENU_DELETED the method is returning + // because the MenuRunner was deleted. // Typically callers should NOT do any processing if this returns // MENU_DELETED. // If |anchor| uses a |BUBBLE_..| type, the bounds will get determined by @@ -115,8 +116,7 @@ class VIEWS_EXPORT MenuRunner { MenuButton* button, const gfx::Rect& bounds, MenuAnchorPosition anchor, - ui::MenuSourceType source_type, - int32 types) WARN_UNUSED_RESULT; + ui::MenuSourceType source_type) WARN_UNUSED_RESULT; // Returns true if we're in a nested message loop running the menu. bool IsRunning() const; @@ -133,6 +133,7 @@ class VIEWS_EXPORT MenuRunner { // Sets an implementation of RunMenuAt. This is intended to be used at test. void SetRunnerHandler(scoped_ptr<MenuRunnerHandler> runner_handler); + const int32 run_types_; scoped_ptr<MenuModelAdapter> menu_model_adapter_; internal::MenuRunnerImpl* holder_; @@ -164,7 +165,7 @@ class DisplayChangeListener { DisplayChangeListener() {} }; -} +} // namespace internal } // namespace views diff --git a/ui/views/controls/scrollbar/base_scroll_bar.cc b/ui/views/controls/scrollbar/base_scroll_bar.cc index 5e4d6a5..c93f48e 100644 --- a/ui/views/controls/scrollbar/base_scroll_bar.cc +++ b/ui/views/controls/scrollbar/base_scroll_bar.cc @@ -294,7 +294,8 @@ void BaseScrollBar::ShowContextMenuForView(View* source, views::MenuItemView* menu = new views::MenuItemView(this); // MenuRunner takes ownership of |menu|. - menu_runner_.reset(new MenuRunner(menu)); + menu_runner_.reset(new MenuRunner( + menu, MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU)); menu->AppendDelegateMenuItem(ScrollBarContextMenuCommand_ScrollHere); menu->AppendSeparator(); menu->AppendDelegateMenuItem(ScrollBarContextMenuCommand_ScrollStart); @@ -305,14 +306,11 @@ 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()), - MENU_ANCHOR_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::MENU_DELETED) { return; } } diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 5cde2ea..d5979a8 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc @@ -987,13 +987,11 @@ 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()), - MENU_ANCHOR_TOPLEFT, - source_type, - MenuRunner::HAS_MNEMONICS | MenuRunner::CONTEXT_MENU)); + ignore_result(context_menu_runner_->RunMenuAt(GetWidget(), + NULL, + gfx::Rect(point, gfx::Size()), + MENU_ANCHOR_TOPLEFT, + source_type)); } //////////////////////////////////////////////////////////////////////////////// @@ -1703,7 +1701,9 @@ void Textfield::UpdateContextMenu() { if (controller_) controller_->UpdateContextMenu(context_menu_contents_.get()); } - context_menu_runner_.reset(new MenuRunner(context_menu_contents_.get())); + context_menu_runner_.reset( + new MenuRunner(context_menu_contents_.get(), + MenuRunner::HAS_MNEMONICS | MenuRunner::CONTEXT_MENU)); } void Textfield::TrackMouseClicks(const ui::MouseEvent& event) { diff --git a/ui/views/examples/menu_example.cc b/ui/views/examples/menu_example.cc index 742cfff..bc8845e 100644 --- a/ui/views/examples/menu_example.cc +++ b/ui/views/examples/menu_example.cc @@ -187,14 +187,13 @@ ExampleMenuButton::~ExampleMenuButton() { void ExampleMenuButton::OnMenuButtonClicked(View* source, const gfx::Point& point) { - menu_runner_.reset(new MenuRunner(GetMenuModel())); + menu_runner_.reset(new MenuRunner(GetMenuModel(), MenuRunner::HAS_MNEMONICS)); if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(), this, gfx::Rect(point, gfx::Size()), MENU_ANCHOR_TOPRIGHT, - ui::MENU_SOURCE_NONE, - MenuRunner::HAS_MNEMONICS) == + ui::MENU_SOURCE_NONE) == MenuRunner::MENU_DELETED) { return; } diff --git a/ui/views/examples/tree_view_example.cc b/ui/views/examples/tree_view_example.cc index 2f6cc4c..5da97f7 100644 --- a/ui/views/examples/tree_view_example.cc +++ b/ui/views/examples/tree_view_example.cc @@ -131,13 +131,13 @@ void TreeViewExample::ShowContextMenuForView(View* source, context_menu_model.AddItem(ID_EDIT, ASCIIToUTF16("Edit")); 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)); + context_menu_runner_.reset(new MenuRunner(&context_menu_model, 0)); if (context_menu_runner_->RunMenuAt(source->GetWidget(), NULL, gfx::Rect(point, gfx::Size()), MENU_ANCHOR_TOPLEFT, - source_type, - 0) == MenuRunner::MENU_DELETED) { + source_type) == + MenuRunner::MENU_DELETED) { return; } } |