Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2371)

Unified Diff: chrome/browser/chromeos/status/network_menu.cc

Issue 7720012: Moves ownership of MenuItemView to MenuRunner as well as responbility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.h ('k') | chrome/browser/chromeos/status/power_menu_button.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/status/network_menu.cc
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc
index 7aeb2db934dcdcbe2df41f99e3f0f5a7b78e0291..61901df37e58864713d7f9d36159f9e6ba30ea86 100644
--- a/chrome/browser/chromeos/status/network_menu.cc
+++ b/chrome/browser/chromeos/status/network_menu.cc
@@ -37,6 +37,7 @@
#include "ui/gfx/skbitmap_operations.h"
#include "views/controls/menu/menu_item_view.h"
#include "views/controls/menu/menu_model_adapter.h"
+#include "views/controls/menu/menu_runner.h"
#include "views/controls/menu/submenu_view.h"
#include "views/widget/widget.h"
@@ -1029,11 +1030,12 @@ NetworkMenu::NetworkMenu(Delegate* delegate, bool is_browser_mode)
: delegate_(delegate),
is_browser_mode_(is_browser_mode),
refreshing_menu_(false),
+ menu_item_view_(NULL),
min_width_(kDefaultMinimumWidth) {
main_menu_model_.reset(new MainMenuModel(this));
menu_model_adapter_.reset(
new views::MenuModelAdapter(main_menu_model_.get()));
- menu_item_view_.reset(new views::MenuItemView(menu_model_adapter_.get()));
+ menu_item_view_ = new views::MenuItemView(menu_model_adapter_.get());
menu_item_view_->set_has_icons(true);
menu_item_view_->set_menu_position(
views::MenuItemView::POSITION_BELOW_BOUNDS);
@@ -1047,7 +1049,7 @@ ui::MenuModel* NetworkMenu::GetMenuModel() {
}
void NetworkMenu::CancelMenu() {
- menu_item_view_->Cancel();
+ menu_runner_->Cancel();
}
void NetworkMenu::UpdateMenu() {
@@ -1057,8 +1059,8 @@ void NetworkMenu::UpdateMenu() {
main_menu_model_->InitMenuItems(
is_browser_mode(), delegate_->ShouldOpenButtonOptions());
- menu_model_adapter_->BuildMenu(menu_item_view_.get());
- SetMenuMargins(menu_item_view_.get(), kTopMargin, kBottomMargin);
+ menu_model_adapter_->BuildMenu(menu_item_view_);
+ SetMenuMargins(menu_item_view_, kTopMargin, kBottomMargin);
menu_item_view_->ChildrenChanged();
refreshing_menu_ = false;
@@ -1074,9 +1076,10 @@ void NetworkMenu::RunMenu(views::View* source) {
views::View::ConvertPointToScreen(source, &screen_location);
gfx::Rect bounds(screen_location, source->size());
menu_item_view_->GetSubmenu()->set_minimum_preferred_width(min_width_);
- menu_item_view_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
- delegate_->GetMenuButton(), bounds,
- views::MenuItemView::TOPRIGHT, true);
+ if (menu_runner_->RunMenuAt(source->GetWidget()->GetTopLevelWidget(),
Dmitry Polukhin 2011/08/25 09:01:45 It looks like menu_runner_ is not set to initializ
+ delegate_->GetMenuButton(), bounds, views::MenuItemView::TOPRIGHT,
+ views::MenuRunner::HAS_MNEMONICS) == views::MenuRunner::MENU_DELETED)
+ return;
}
void NetworkMenu::ShowTabbedNetworkSettings(const Network* network) const {
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.h ('k') | chrome/browser/chromeos/status/power_menu_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698