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 |