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

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

Issue 8201006: Views: Rebuild wrench menu if error is added or removed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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
« no previous file with comments | « chrome/browser/ui/views/toolbar_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/views/toolbar_view.h" 5 #include "chrome/browser/ui/views/toolbar_view.h"
6 6
7 #include "base/i18n/number_formatting.h" 7 #include "base/i18n/number_formatting.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/app/chrome_command_ids.h"
10 #include "chrome/browser/prefs/pref_service.h" 10 #include "chrome/browser/prefs/pref_service.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 ToolbarView::ToolbarView(Browser* browser) 91 ToolbarView::ToolbarView(Browser* browser)
92 : model_(browser->toolbar_model()), 92 : model_(browser->toolbar_model()),
93 back_(NULL), 93 back_(NULL),
94 forward_(NULL), 94 forward_(NULL),
95 reload_(NULL), 95 reload_(NULL),
96 home_(NULL), 96 home_(NULL),
97 location_bar_(NULL), 97 location_bar_(NULL),
98 browser_actions_(NULL), 98 browser_actions_(NULL),
99 app_menu_(NULL), 99 app_menu_(NULL),
100 browser_(browser), 100 browser_(browser),
101 profiles_menu_contents_(NULL) { 101 profiles_menu_contents_(NULL),
102 is_wrench_menu_model_valid_(true) {
102 set_id(VIEW_ID_TOOLBAR); 103 set_id(VIEW_ID_TOOLBAR);
103 104
104 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); 105 browser_->command_updater()->AddCommandObserver(IDC_BACK, this);
105 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); 106 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this);
106 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); 107 browser_->command_updater()->AddCommandObserver(IDC_HOME, this);
107 108
108 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ? 109 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ?
109 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION; 110 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION;
110 111
111 if (!kPopupBackgroundEdge) { 112 if (!kPopupBackgroundEdge) {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 return GetWidget()->GetAccelerator(id, accel); 331 return GetWidget()->GetAccelerator(id, accel);
331 } 332 }
332 333
333 //////////////////////////////////////////////////////////////////////////////// 334 ////////////////////////////////////////////////////////////////////////////////
334 // ToolbarView, views::ViewMenuDelegate implementation: 335 // ToolbarView, views::ViewMenuDelegate implementation:
335 336
336 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /* pt */) { 337 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /* pt */) {
337 DCHECK_EQ(VIEW_ID_APP_MENU, source->id()); 338 DCHECK_EQ(VIEW_ID_APP_MENU, source->id());
338 339
339 wrench_menu_.reset(new WrenchMenu(browser_)); 340 wrench_menu_.reset(new WrenchMenu(browser_));
341
342 if (!is_wrench_menu_model_valid_) {
sky 2011/10/07 19:40:17 Is this really enough? What happens if a global er
sail 2011/10/07 20:42:08 I believe if the bookmark model changes while the
343 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_));
344 is_wrench_menu_model_valid_ = true;
345 }
340 wrench_menu_->Init(wrench_menu_model_.get()); 346 wrench_menu_->Init(wrench_menu_model_.get());
341 347
342 FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened()); 348 FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened());
343 349
344 wrench_menu_->RunMenu(app_menu_); 350 wrench_menu_->RunMenu(app_menu_);
345 } 351 }
346 352
347 //////////////////////////////////////////////////////////////////////////////// 353 ////////////////////////////////////////////////////////////////////////////////
348 // ToolbarView, LocationBarView::Delegate implementation: 354 // ToolbarView, LocationBarView::Delegate implementation:
349 355
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 case chrome::NOTIFICATION_PREF_CHANGED: { 417 case chrome::NOTIFICATION_PREF_CHANGED: {
412 std::string* pref_name = Details<std::string>(details).ptr(); 418 std::string* pref_name = Details<std::string>(details).ptr();
413 if (*pref_name == prefs::kShowHomeButton) { 419 if (*pref_name == prefs::kShowHomeButton) {
414 Layout(); 420 Layout();
415 SchedulePaint(); 421 SchedulePaint();
416 } 422 }
417 break; 423 break;
418 } 424 }
419 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: 425 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED:
420 case chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE: 426 case chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE:
427 UpdateAppMenuBadge();
428 break;
421 case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED: 429 case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED:
430 is_wrench_menu_model_valid_ = false;
422 UpdateAppMenuBadge(); 431 UpdateAppMenuBadge();
423 break; 432 break;
424 default: 433 default:
425 NOTREACHED(); 434 NOTREACHED();
426 } 435 }
427 } 436 }
428 437
429 //////////////////////////////////////////////////////////////////////////////// 438 ////////////////////////////////////////////////////////////////////////////////
430 // ToolbarView, ui::AcceleratorProvider implementation: 439 // ToolbarView, ui::AcceleratorProvider implementation:
431 440
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); 719 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT));
711 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); 720 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED));
712 } 721 }
713 722
714 void ToolbarView::UpdateAppMenuBadge() { 723 void ToolbarView::UpdateAppMenuBadge() {
715 app_menu_->SetIcon(GetAppMenuIcon(views::CustomButton::BS_NORMAL)); 724 app_menu_->SetIcon(GetAppMenuIcon(views::CustomButton::BS_NORMAL));
716 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); 725 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT));
717 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); 726 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED));
718 SchedulePaint(); 727 SchedulePaint();
719 } 728 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/toolbar_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698