Chromium Code Reviews| 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/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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |