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 |