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

Side by Side Diff: chrome/browser/ui/panels/panel_browser_frame_view.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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/panels/panel_browser_frame_view.h" 5 #include "chrome/browser/ui/panels/panel_browser_frame_view.h"
6 6
7 #include "chrome/browser/extensions/extension_service.h" 7 #include "chrome/browser/extensions/extension_service.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/themes/theme_service.h" 9 #include "chrome/browser/themes/theme_service.h"
10 #include "chrome/browser/ui/panels/panel.h" 10 #include "chrome/browser/ui/panels/panel.h"
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 frame_(frame), 207 frame_(frame),
208 browser_view_(browser_view), 208 browser_view_(browser_view),
209 paint_state_(NOT_PAINTED), 209 paint_state_(NOT_PAINTED),
210 settings_button_(NULL), 210 settings_button_(NULL),
211 is_settings_button_visible_(false), 211 is_settings_button_visible_(false),
212 close_button_(NULL), 212 close_button_(NULL),
213 title_icon_(NULL), 213 title_icon_(NULL),
214 title_label_(NULL), 214 title_label_(NULL),
215 ALLOW_THIS_IN_INITIALIZER_LIST(settings_menu_contents_(this)), 215 ALLOW_THIS_IN_INITIALIZER_LIST(settings_menu_contents_(this)),
216 settings_menu_adapter_(&settings_menu_contents_), 216 settings_menu_adapter_(&settings_menu_contents_),
217 settings_menu_(&settings_menu_adapter_) { 217 settings_menu_(new views::MenuItemView(&settings_menu_adapter_)),
218 settings_menu_runner_(settings_menu_) {
218 EnsureResourcesInitialized(); 219 EnsureResourcesInitialized();
219 frame_->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM); 220 frame_->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM);
220 221
221 settings_button_ = new views::MenuButton(NULL, std::wstring(), this, false); 222 settings_button_ = new views::MenuButton(NULL, std::wstring(), this, false);
222 settings_button_->SetIcon(*(settings_button_resources.normal_image)); 223 settings_button_->SetIcon(*(settings_button_resources.normal_image));
223 settings_button_->SetHoverIcon(*(settings_button_resources.hover_image)); 224 settings_button_->SetHoverIcon(*(settings_button_resources.hover_image));
224 settings_button_->SetPushedIcon(*(settings_button_resources.pushed_image)); 225 settings_button_->SetPushedIcon(*(settings_button_resources.pushed_image));
225 settings_button_->set_alignment(views::TextButton::ALIGN_CENTER); 226 settings_button_->set_alignment(views::TextButton::ALIGN_CENTER);
226 settings_button_->set_border(NULL); 227 settings_button_->set_border(NULL);
227 settings_button_->SetTooltipText( 228 settings_button_->SetTooltipText(
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 if (sender == close_button_) 436 if (sender == close_button_)
436 frame_->Close(); 437 frame_->Close();
437 } 438 }
438 439
439 void PanelBrowserFrameView::RunMenu(View* source, const gfx::Point& pt) { 440 void PanelBrowserFrameView::RunMenu(View* source, const gfx::Point& pt) {
440 EnsureSettingsMenuCreated(); 441 EnsureSettingsMenuCreated();
441 442
442 DCHECK_EQ(settings_button_, source); 443 DCHECK_EQ(settings_button_, source);
443 gfx::Point screen_point; 444 gfx::Point screen_point;
444 views::View::ConvertPointToScreen(source, &screen_point); 445 views::View::ConvertPointToScreen(source, &screen_point);
445 settings_menu_.RunMenuAt(source->GetWidget(), 446 if (settings_menu_runner_.RunMenuAt(source->GetWidget(),
446 settings_button_, gfx::Rect(screen_point, source->size()), 447 settings_button_, gfx::Rect(screen_point, source->size()),
447 views::MenuItemView::TOPRIGHT, true); 448 views::MenuItemView::TOPRIGHT, views::MenuRunner::HAS_MNEMONICS) ==
449 views::MenuRunner::MENU_DELETED)
450 return;
448 } 451 }
449 452
450 bool PanelBrowserFrameView::IsCommandIdChecked(int command_id) const { 453 bool PanelBrowserFrameView::IsCommandIdChecked(int command_id) const {
451 // Nothing in the menu is checked. 454 // Nothing in the menu is checked.
452 return false; 455 return false;
453 } 456 }
454 457
455 bool PanelBrowserFrameView::IsCommandIdEnabled(int command_id) const { 458 bool PanelBrowserFrameView::IsCommandIdEnabled(int command_id) const {
456 const Extension* extension = GetExtension(); 459 const Extension* extension = GetExtension();
457 if (!extension) 460 if (!extension)
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 settings_menu_contents_.AddItem( 746 settings_menu_contents_.AddItem(
744 COMMAND_CONFIGURE, l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS)); 747 COMMAND_CONFIGURE, l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS));
745 settings_menu_contents_.AddItem( 748 settings_menu_contents_.AddItem(
746 COMMAND_DISABLE, l10n_util::GetStringUTF16(IDS_EXTENSIONS_DISABLE)); 749 COMMAND_DISABLE, l10n_util::GetStringUTF16(IDS_EXTENSIONS_DISABLE));
747 settings_menu_contents_.AddItem( 750 settings_menu_contents_.AddItem(
748 COMMAND_UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL)); 751 COMMAND_UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL));
749 settings_menu_contents_.AddSeparator(); 752 settings_menu_contents_.AddSeparator();
750 settings_menu_contents_.AddItem( 753 settings_menu_contents_.AddItem(
751 COMMAND_MANAGE, l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS)); 754 COMMAND_MANAGE, l10n_util::GetStringUTF16(IDS_MANAGE_EXTENSIONS));
752 755
753 settings_menu_adapter_.BuildMenu(&settings_menu_); 756 settings_menu_adapter_.BuildMenu(settings_menu_);
754 } 757 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698