| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 ToolbarView::ToolbarView(Browser* browser) | 81 ToolbarView::ToolbarView(Browser* browser) |
| 82 : model_(browser->toolbar_model()), | 82 : model_(browser->toolbar_model()), |
| 83 back_(NULL), | 83 back_(NULL), |
| 84 forward_(NULL), | 84 forward_(NULL), |
| 85 reload_(NULL), | 85 reload_(NULL), |
| 86 home_(NULL), | 86 home_(NULL), |
| 87 location_bar_(NULL), | 87 location_bar_(NULL), |
| 88 browser_actions_(NULL), | 88 browser_actions_(NULL), |
| 89 app_menu_(NULL), | 89 app_menu_(NULL), |
| 90 profile_(NULL), | |
| 91 browser_(browser), | 90 browser_(browser), |
| 92 profiles_menu_contents_(NULL) { | 91 profiles_menu_contents_(NULL) { |
| 93 set_id(VIEW_ID_TOOLBAR); | 92 set_id(VIEW_ID_TOOLBAR); |
| 94 | 93 |
| 95 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); | 94 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); |
| 96 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); | 95 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); |
| 97 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); | 96 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); |
| 98 | 97 |
| 99 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ? | 98 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ? |
| 100 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION; | 99 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION; |
| 101 | 100 |
| 102 if (!kPopupBackgroundEdge) { | 101 if (!kPopupBackgroundEdge) { |
| 103 kPopupBackgroundEdge = ResourceBundle::GetSharedInstance().GetBitmapNamed( | 102 kPopupBackgroundEdge = ResourceBundle::GetSharedInstance().GetBitmapNamed( |
| 104 IDR_LOCATIONBG_POPUPMODE_EDGE); | 103 IDR_LOCATIONBG_POPUPMODE_EDGE); |
| 105 } | 104 } |
| 106 | 105 |
| 107 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, | 106 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, |
| 108 NotificationService::AllSources()); | 107 NotificationService::AllSources()); |
| 109 registrar_.Add(this, | 108 registrar_.Add(this, |
| 110 chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE, | 109 chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE, |
| 111 NotificationService::AllSources()); | 110 NotificationService::AllSources()); |
| 112 } | 111 } |
| 113 | 112 |
| 114 ToolbarView::~ToolbarView() { | 113 ToolbarView::~ToolbarView() { |
| 115 // NOTE: Don't remove the command observers here. This object gets destroyed | 114 // NOTE: Don't remove the command observers here. This object gets destroyed |
| 116 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is | 115 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is |
| 117 // already gone. | 116 // already gone. |
| 118 } | 117 } |
| 119 | 118 |
| 120 void ToolbarView::Init(Profile* profile) { | 119 void ToolbarView::Init() { |
| 121 back_menu_model_.reset(new BackForwardMenuModel( | 120 back_menu_model_.reset(new BackForwardMenuModel( |
| 122 browser_, BackForwardMenuModel::BACKWARD_MENU)); | 121 browser_, BackForwardMenuModel::BACKWARD_MENU)); |
| 123 forward_menu_model_.reset(new BackForwardMenuModel( | 122 forward_menu_model_.reset(new BackForwardMenuModel( |
| 124 browser_, BackForwardMenuModel::FORWARD_MENU)); | 123 browser_, BackForwardMenuModel::FORWARD_MENU)); |
| 125 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); | 124 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); |
| 126 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); | 125 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); |
| 127 back_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | | 126 back_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | |
| 128 ui::EF_MIDDLE_BUTTON_DOWN); | 127 ui::EF_MIDDLE_BUTTON_DOWN); |
| 129 back_->set_tag(IDC_BACK); | 128 back_->set_tag(IDC_BACK); |
| 130 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, | 129 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, |
| 131 views::ImageButton::ALIGN_TOP); | 130 views::ImageButton::ALIGN_TOP); |
| 132 back_->SetTooltipText( | 131 back_->SetTooltipText( |
| 133 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_BACK))); | 132 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_BACK))); |
| 134 back_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK)); | 133 back_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK)); |
| 135 back_->set_id(VIEW_ID_BACK_BUTTON); | 134 back_->set_id(VIEW_ID_BACK_BUTTON); |
| 136 | 135 |
| 137 forward_ = new views::ButtonDropDown(this, forward_menu_model_.get()); | 136 forward_ = new views::ButtonDropDown(this, forward_menu_model_.get()); |
| 138 forward_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | | 137 forward_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | |
| 139 ui::EF_MIDDLE_BUTTON_DOWN); | 138 ui::EF_MIDDLE_BUTTON_DOWN); |
| 140 forward_->set_tag(IDC_FORWARD); | 139 forward_->set_tag(IDC_FORWARD); |
| 141 forward_->SetTooltipText( | 140 forward_->SetTooltipText( |
| 142 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_FORWARD))); | 141 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_FORWARD))); |
| 143 forward_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD)); | 142 forward_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD)); |
| 144 forward_->set_id(VIEW_ID_FORWARD_BUTTON); | 143 forward_->set_id(VIEW_ID_FORWARD_BUTTON); |
| 145 | 144 |
| 146 // Have to create this before |reload_| as |reload_|'s constructor needs it. | 145 // Have to create this before |reload_| as |reload_|'s constructor needs it. |
| 147 location_bar_ = new LocationBarView(profile, browser_, | 146 location_bar_ = new LocationBarView(browser_, model_, this, |
| 148 model_, this, (display_mode_ == DISPLAYMODE_LOCATION) ? | 147 (display_mode_ == DISPLAYMODE_LOCATION) ? |
| 149 LocationBarView::POPUP : LocationBarView::NORMAL); | 148 LocationBarView::POPUP : LocationBarView::NORMAL); |
| 150 | 149 |
| 151 reload_ = new ReloadButton(location_bar_, browser_); | 150 reload_ = new ReloadButton(location_bar_, browser_); |
| 152 reload_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | | 151 reload_->set_triggerable_event_flags(ui::EF_LEFT_BUTTON_DOWN | |
| 153 ui::EF_MIDDLE_BUTTON_DOWN); | 152 ui::EF_MIDDLE_BUTTON_DOWN); |
| 154 reload_->set_tag(IDC_RELOAD); | 153 reload_->set_tag(IDC_RELOAD); |
| 155 reload_->SetTooltipText( | 154 reload_->SetTooltipText( |
| 156 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_RELOAD))); | 155 UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_RELOAD))); |
| 157 reload_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_RELOAD)); | 156 reload_->SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_RELOAD)); |
| 158 reload_->set_id(VIEW_ID_RELOAD_BUTTON); | 157 reload_->set_id(VIEW_ID_RELOAD_BUTTON); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 // Always add children in order from left to right, for accessibility. | 189 // Always add children in order from left to right, for accessibility. |
| 191 AddChildView(back_); | 190 AddChildView(back_); |
| 192 AddChildView(forward_); | 191 AddChildView(forward_); |
| 193 AddChildView(reload_); | 192 AddChildView(reload_); |
| 194 AddChildView(home_); | 193 AddChildView(home_); |
| 195 AddChildView(location_bar_); | 194 AddChildView(location_bar_); |
| 196 AddChildView(browser_actions_); | 195 AddChildView(browser_actions_); |
| 197 AddChildView(app_menu_); | 196 AddChildView(app_menu_); |
| 198 | 197 |
| 199 location_bar_->Init(); | 198 location_bar_->Init(); |
| 200 show_home_button_.Init(prefs::kShowHomeButton, profile->GetPrefs(), this); | 199 show_home_button_.Init(prefs::kShowHomeButton, |
| 200 browser_->profile()->GetPrefs(), this); |
| 201 browser_actions_->Init(); | 201 browser_actions_->Init(); |
| 202 | 202 |
| 203 SetProfile(profile); | |
| 204 | |
| 205 // Accessibility specific tooltip text. | 203 // Accessibility specific tooltip text. |
| 206 if (BrowserAccessibilityState::GetInstance()->IsAccessibleBrowser()) { | 204 if (BrowserAccessibilityState::GetInstance()->IsAccessibleBrowser()) { |
| 207 back_->SetTooltipText( | 205 back_->SetTooltipText( |
| 208 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_TOOLTIP_BACK))); | 206 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_TOOLTIP_BACK))); |
| 209 forward_->SetTooltipText( | 207 forward_->SetTooltipText( |
| 210 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_TOOLTIP_FORWARD))); | 208 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_TOOLTIP_FORWARD))); |
| 211 } | 209 } |
| 212 } | 210 } |
| 213 | 211 |
| 214 void ToolbarView::SetProfile(Profile* profile) { | |
| 215 if (profile != profile_) { | |
| 216 profile_ = profile; | |
| 217 location_bar_->SetProfile(profile); | |
| 218 } | |
| 219 } | |
| 220 | |
| 221 void ToolbarView::Update(TabContents* tab, bool should_restore_state) { | 212 void ToolbarView::Update(TabContents* tab, bool should_restore_state) { |
| 222 if (location_bar_) | 213 if (location_bar_) |
| 223 location_bar_->Update(should_restore_state ? tab : NULL); | 214 location_bar_->Update(should_restore_state ? tab : NULL); |
| 224 | 215 |
| 225 if (browser_actions_) | 216 if (browser_actions_) |
| 226 browser_actions_->RefreshBrowserActionViews(); | 217 browser_actions_->RefreshBrowserActionViews(); |
| 227 } | 218 } |
| 228 | 219 |
| 229 void ToolbarView::SetPaneFocusAndFocusLocationBar(int view_storage_id) { | 220 void ToolbarView::SetPaneFocusAndFocusLocationBar(int view_storage_id) { |
| 230 SetPaneFocus(view_storage_id, location_bar_); | 221 SetPaneFocus(view_storage_id, location_bar_); |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); | 688 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); |
| 698 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); | 689 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); |
| 699 } | 690 } |
| 700 | 691 |
| 701 void ToolbarView::UpdateAppMenuBadge() { | 692 void ToolbarView::UpdateAppMenuBadge() { |
| 702 app_menu_->SetIcon(GetAppMenuIcon(views::CustomButton::BS_NORMAL)); | 693 app_menu_->SetIcon(GetAppMenuIcon(views::CustomButton::BS_NORMAL)); |
| 703 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); | 694 app_menu_->SetHoverIcon(GetAppMenuIcon(views::CustomButton::BS_HOT)); |
| 704 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); | 695 app_menu_->SetPushedIcon(GetAppMenuIcon(views::CustomButton::BS_PUSHED)); |
| 705 SchedulePaint(); | 696 SchedulePaint(); |
| 706 } | 697 } |
| OLD | NEW |