OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |