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

Side by Side Diff: chrome/browser/views/toolbar_view.cc

Issue 3163023: Clean up the WrenchMenuModel so that it uses SimpleMenu::Delegate. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Fix stray rb Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/views/toolbar_view.h" 5 #include "chrome/browser/views/toolbar_view.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "chrome/app/chrome_dll_resource.h" 9 #include "chrome/app/chrome_dll_resource.h"
10 #include "chrome/browser/browser.h" 10 #include "chrome/browser/browser.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 // NOTE: Don't remove the command observers here. This object gets destroyed 103 // NOTE: Don't remove the command observers here. This object gets destroyed
104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is 104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is
105 // already gone. 105 // already gone.
106 } 106 }
107 107
108 void ToolbarView::Init(Profile* profile) { 108 void ToolbarView::Init(Profile* profile) {
109 back_menu_model_.reset(new BackForwardMenuModel( 109 back_menu_model_.reset(new BackForwardMenuModel(
110 browser_, BackForwardMenuModel::BACKWARD_MENU)); 110 browser_, BackForwardMenuModel::BACKWARD_MENU));
111 forward_menu_model_.reset(new BackForwardMenuModel( 111 forward_menu_model_.reset(new BackForwardMenuModel(
112 browser_, BackForwardMenuModel::FORWARD_MENU)); 112 browser_, BackForwardMenuModel::FORWARD_MENU));
113 app_menu_model_.reset(new WrenchMenuModel(this, browser_)); 113 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_));
114 114
115 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); 115 back_ = new views::ButtonDropDown(this, back_menu_model_.get());
116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | 116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN |
117 views::Event::EF_MIDDLE_BUTTON_DOWN); 117 views::Event::EF_MIDDLE_BUTTON_DOWN);
118 back_->set_tag(IDC_BACK); 118 back_->set_tag(IDC_BACK);
119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, 119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT,
120 views::ImageButton::ALIGN_TOP); 120 views::ImageButton::ALIGN_TOP);
121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK)); 121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK));
122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK)); 122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK));
123 back_->SetID(VIEW_ID_BACK_BUTTON); 123 back_->SetID(VIEW_ID_BACK_BUTTON);
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 241
242 //////////////////////////////////////////////////////////////////////////////// 242 ////////////////////////////////////////////////////////////////////////////////
243 // ToolbarView, views::MenuDelegate implementation: 243 // ToolbarView, views::MenuDelegate implementation:
244 244
245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) { 245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) {
246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID()); 246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID());
247 247
248 bool destroyed_flag = false; 248 bool destroyed_flag = false;
249 destroyed_flag_ = &destroyed_flag; 249 destroyed_flag_ = &destroyed_flag;
250 wrench_menu_.reset(new WrenchMenu(browser_)); 250 wrench_menu_.reset(new WrenchMenu(browser_));
251 wrench_menu_->Init(app_menu_model_.get()); 251 wrench_menu_->Init(wrench_menu_model_->menu_model());
252 252
253 for (size_t i = 0; i < menu_listeners_.size(); ++i) 253 for (size_t i = 0; i < menu_listeners_.size(); ++i)
254 menu_listeners_[i]->OnMenuOpened(); 254 menu_listeners_[i]->OnMenuOpened();
255 255
256 wrench_menu_->RunMenu(app_menu_); 256 wrench_menu_->RunMenu(app_menu_);
257 257
258 if (destroyed_flag) 258 if (destroyed_flag)
259 return; 259 return;
260 destroyed_flag_ = NULL; 260 destroyed_flag_ = NULL;
261 261
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 if (*pref_name == prefs::kShowHomeButton) { 337 if (*pref_name == prefs::kShowHomeButton) {
338 Layout(); 338 Layout();
339 SchedulePaint(); 339 SchedulePaint();
340 } 340 }
341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { 341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) {
342 ShowUpgradeReminder(); 342 ShowUpgradeReminder();
343 } 343 }
344 } 344 }
345 345
346 //////////////////////////////////////////////////////////////////////////////// 346 ////////////////////////////////////////////////////////////////////////////////
347 // ToolbarView, menus::SimpleMenuModel::Delegate implementation: 347 // ToolbarView, menus::AcceleratorProvider implementation:
348
349 bool ToolbarView::IsCommandIdChecked(int command_id) const {
350 #if defined(OS_CHROMEOS)
351 if (command_id == IDC_TOGGLE_VERTICAL_TABS) {
352 return browser_->UseVerticalTabs();
353 }
354 #endif
355 return (command_id == IDC_SHOW_BOOKMARK_BAR) &&
356 profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar);
357 }
358
359 bool ToolbarView::IsCommandIdEnabled(int command_id) const {
360 return browser_->command_updater()->IsCommandEnabled(command_id);
361 }
362 348
363 bool ToolbarView::GetAcceleratorForCommandId(int command_id, 349 bool ToolbarView::GetAcceleratorForCommandId(int command_id,
364 menus::Accelerator* accelerator) { 350 menus::Accelerator* accelerator) {
365 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators 351 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators
366 // anywhere so we need to check for them explicitly here. 352 // anywhere so we need to check for them explicitly here.
367 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. 353 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings.
368 switch (command_id) { 354 switch (command_id) {
369 case IDC_CUT: 355 case IDC_CUT:
370 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); 356 *accelerator = views::Accelerator(base::VKEY_X, false, true, false);
371 return true; 357 return true;
372 case IDC_COPY: 358 case IDC_COPY:
373 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); 359 *accelerator = views::Accelerator(base::VKEY_C, false, true, false);
374 return true; 360 return true;
375 case IDC_PASTE: 361 case IDC_PASTE:
376 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); 362 *accelerator = views::Accelerator(base::VKEY_V, false, true, false);
377 return true; 363 return true;
378 } 364 }
379 // Else, we retrieve the accelerator information from the frame. 365 // Else, we retrieve the accelerator information from the frame.
380 return GetWidget()->GetAccelerator(command_id, accelerator); 366 return GetWidget()->GetAccelerator(command_id, accelerator);
381 } 367 }
382 368
383 void ToolbarView::ExecuteCommand(int command_id) {
384 browser_->ExecuteCommand(command_id);
385 }
386
387 //////////////////////////////////////////////////////////////////////////////// 369 ////////////////////////////////////////////////////////////////////////////////
388 // ToolbarView, views::View overrides: 370 // ToolbarView, views::View overrides:
389 371
390 gfx::Size ToolbarView::GetPreferredSize() { 372 gfx::Size ToolbarView::GetPreferredSize() {
391 if (IsDisplayModeNormal()) { 373 if (IsDisplayModeNormal()) {
392 int min_width = kEdgeSpacing + 374 int min_width = kEdgeSpacing +
393 back_->GetPreferredSize().width() + kButtonSpacing + 375 back_->GetPreferredSize().width() + kButtonSpacing +
394 forward_->GetPreferredSize().width() + kButtonSpacing + 376 forward_->GetPreferredSize().width() + kButtonSpacing +
395 reload_->GetPreferredSize().width() + kStandardSpacing + 377 reload_->GetPreferredSize().width() + kStandardSpacing +
396 (show_home_button_.GetValue() ? 378 (show_home_button_.GetValue() ?
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), 617 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE),
636 value); 618 value);
637 } 619 }
638 620
639 static const int kBadgeLeftSpacing = 8; 621 static const int kBadgeLeftSpacing = 8;
640 static const int kBadgeTopSpacing = 18; 622 static const int kBadgeTopSpacing = 18;
641 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); 623 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing);
642 624
643 return canvas->ExtractBitmap(); 625 return canvas->ExtractBitmap();
644 } 626 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698