OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/views/toolbar_view.h" | 5 #include "chrome/browser/views/toolbar_view.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
9 #include "chrome/app/chrome_dll_resource.h" | 9 #include "chrome/app/chrome_dll_resource.h" |
10 #include "chrome/browser/browser.h" | 10 #include "chrome/browser/browser.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 // NOTE: Don't remove the command observers here. This object gets destroyed | 103 // NOTE: Don't remove the command observers here. This object gets destroyed |
104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is | 104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is |
105 // already gone. | 105 // already gone. |
106 } | 106 } |
107 | 107 |
108 void ToolbarView::Init(Profile* profile) { | 108 void ToolbarView::Init(Profile* profile) { |
109 back_menu_model_.reset(new BackForwardMenuModel( | 109 back_menu_model_.reset(new BackForwardMenuModel( |
110 browser_, BackForwardMenuModel::BACKWARD_MENU)); | 110 browser_, BackForwardMenuModel::BACKWARD_MENU)); |
111 forward_menu_model_.reset(new BackForwardMenuModel( | 111 forward_menu_model_.reset(new BackForwardMenuModel( |
112 browser_, BackForwardMenuModel::FORWARD_MENU)); | 112 browser_, BackForwardMenuModel::FORWARD_MENU)); |
113 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); | 113 app_menu_model_.reset(new WrenchMenuModel(this, browser_)); |
114 | 114 |
115 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); | 115 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); |
116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | | 116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | |
117 views::Event::EF_MIDDLE_BUTTON_DOWN); | 117 views::Event::EF_MIDDLE_BUTTON_DOWN); |
118 back_->set_tag(IDC_BACK); | 118 back_->set_tag(IDC_BACK); |
119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, | 119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, |
120 views::ImageButton::ALIGN_TOP); | 120 views::ImageButton::ALIGN_TOP); |
121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK)); | 121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK)); |
122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK)); | 122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK)); |
123 back_->SetID(VIEW_ID_BACK_BUTTON); | 123 back_->SetID(VIEW_ID_BACK_BUTTON); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 | 241 |
242 //////////////////////////////////////////////////////////////////////////////// | 242 //////////////////////////////////////////////////////////////////////////////// |
243 // ToolbarView, views::MenuDelegate implementation: | 243 // ToolbarView, views::MenuDelegate implementation: |
244 | 244 |
245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) { | 245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) { |
246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID()); | 246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID()); |
247 | 247 |
248 bool destroyed_flag = false; | 248 bool destroyed_flag = false; |
249 destroyed_flag_ = &destroyed_flag; | 249 destroyed_flag_ = &destroyed_flag; |
250 wrench_menu_.reset(new WrenchMenu(browser_)); | 250 wrench_menu_.reset(new WrenchMenu(browser_)); |
251 wrench_menu_->Init(wrench_menu_model_->menu_model()); | 251 wrench_menu_->Init(app_menu_model_.get()); |
252 | 252 |
253 for (size_t i = 0; i < menu_listeners_.size(); ++i) | 253 for (size_t i = 0; i < menu_listeners_.size(); ++i) |
254 menu_listeners_[i]->OnMenuOpened(); | 254 menu_listeners_[i]->OnMenuOpened(); |
255 | 255 |
256 wrench_menu_->RunMenu(app_menu_); | 256 wrench_menu_->RunMenu(app_menu_); |
257 | 257 |
258 if (destroyed_flag) | 258 if (destroyed_flag) |
259 return; | 259 return; |
260 destroyed_flag_ = NULL; | 260 destroyed_flag_ = NULL; |
261 | 261 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 if (*pref_name == prefs::kShowHomeButton) { | 337 if (*pref_name == prefs::kShowHomeButton) { |
338 Layout(); | 338 Layout(); |
339 SchedulePaint(); | 339 SchedulePaint(); |
340 } | 340 } |
341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { | 341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { |
342 ShowUpgradeReminder(); | 342 ShowUpgradeReminder(); |
343 } | 343 } |
344 } | 344 } |
345 | 345 |
346 //////////////////////////////////////////////////////////////////////////////// | 346 //////////////////////////////////////////////////////////////////////////////// |
347 // ToolbarView, menus::AcceleratorProvider implementation: | 347 // ToolbarView, menus::SimpleMenuModel::Delegate implementation: |
| 348 |
| 349 bool ToolbarView::IsCommandIdChecked(int command_id) const { |
| 350 #if defined(OS_CHROMEOS) |
| 351 if (command_id == IDC_TOGGLE_VERTICAL_TABS) { |
| 352 return browser_->UseVerticalTabs(); |
| 353 } |
| 354 #endif |
| 355 return (command_id == IDC_SHOW_BOOKMARK_BAR) && |
| 356 profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); |
| 357 } |
| 358 |
| 359 bool ToolbarView::IsCommandIdEnabled(int command_id) const { |
| 360 return browser_->command_updater()->IsCommandEnabled(command_id); |
| 361 } |
348 | 362 |
349 bool ToolbarView::GetAcceleratorForCommandId(int command_id, | 363 bool ToolbarView::GetAcceleratorForCommandId(int command_id, |
350 menus::Accelerator* accelerator) { | 364 menus::Accelerator* accelerator) { |
351 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators | 365 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators |
352 // anywhere so we need to check for them explicitly here. | 366 // anywhere so we need to check for them explicitly here. |
353 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. | 367 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. |
354 switch (command_id) { | 368 switch (command_id) { |
355 case IDC_CUT: | 369 case IDC_CUT: |
356 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); | 370 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); |
357 return true; | 371 return true; |
358 case IDC_COPY: | 372 case IDC_COPY: |
359 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); | 373 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); |
360 return true; | 374 return true; |
361 case IDC_PASTE: | 375 case IDC_PASTE: |
362 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); | 376 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); |
363 return true; | 377 return true; |
364 } | 378 } |
365 // Else, we retrieve the accelerator information from the frame. | 379 // Else, we retrieve the accelerator information from the frame. |
366 return GetWidget()->GetAccelerator(command_id, accelerator); | 380 return GetWidget()->GetAccelerator(command_id, accelerator); |
367 } | 381 } |
368 | 382 |
| 383 void ToolbarView::ExecuteCommand(int command_id) { |
| 384 browser_->ExecuteCommand(command_id); |
| 385 } |
| 386 |
369 //////////////////////////////////////////////////////////////////////////////// | 387 //////////////////////////////////////////////////////////////////////////////// |
370 // ToolbarView, views::View overrides: | 388 // ToolbarView, views::View overrides: |
371 | 389 |
372 gfx::Size ToolbarView::GetPreferredSize() { | 390 gfx::Size ToolbarView::GetPreferredSize() { |
373 if (IsDisplayModeNormal()) { | 391 if (IsDisplayModeNormal()) { |
374 int min_width = kEdgeSpacing + | 392 int min_width = kEdgeSpacing + |
375 back_->GetPreferredSize().width() + kButtonSpacing + | 393 back_->GetPreferredSize().width() + kButtonSpacing + |
376 forward_->GetPreferredSize().width() + kButtonSpacing + | 394 forward_->GetPreferredSize().width() + kButtonSpacing + |
377 reload_->GetPreferredSize().width() + kStandardSpacing + | 395 reload_->GetPreferredSize().width() + kStandardSpacing + |
378 (show_home_button_.GetValue() ? | 396 (show_home_button_.GetValue() ? |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), | 637 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), |
620 value); | 638 value); |
621 } | 639 } |
622 | 640 |
623 static const int kBadgeLeftSpacing = 8; | 641 static const int kBadgeLeftSpacing = 8; |
624 static const int kBadgeTopSpacing = 18; | 642 static const int kBadgeTopSpacing = 18; |
625 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); | 643 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); |
626 | 644 |
627 return canvas->ExtractBitmap(); | 645 return canvas->ExtractBitmap(); |
628 } | 646 } |
OLD | NEW |