| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/toolbar_view.h" | 5 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/i18n/number_formatting.h" | 9 #include "base/i18n/number_formatting.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 ui::Accelerator* accelerator) { | 530 ui::Accelerator* accelerator) { |
| 531 return GetWidget()->GetAccelerator(command_id, accelerator); | 531 return GetWidget()->GetAccelerator(command_id, accelerator); |
| 532 } | 532 } |
| 533 | 533 |
| 534 //////////////////////////////////////////////////////////////////////////////// | 534 //////////////////////////////////////////////////////////////////////////////// |
| 535 // ToolbarView, views::View overrides: | 535 // ToolbarView, views::View overrides: |
| 536 | 536 |
| 537 gfx::Size ToolbarView::GetPreferredSize() { | 537 gfx::Size ToolbarView::GetPreferredSize() { |
| 538 gfx::Size size(location_bar_->GetPreferredSize()); | 538 gfx::Size size(location_bar_->GetPreferredSize()); |
| 539 if (is_display_mode_normal()) { | 539 if (is_display_mode_normal()) { |
| 540 size.Enlarge( | 540 int content_width = kLeftEdgeSpacing + back_->GetPreferredSize().width() + |
| 541 kLeftEdgeSpacing + back_->GetPreferredSize().width() + | 541 forward_->GetPreferredSize().width() + |
| 542 forward_->GetPreferredSize().width() + | 542 reload_->GetPreferredSize().width() + |
| 543 reload_->GetPreferredSize().width() + kStandardSpacing + | 543 (show_home_button_.GetValue() ? home_->GetPreferredSize().width() : 0) + |
| 544 (show_home_button_.GetValue() ? | 544 kStandardSpacing + browser_actions_->GetPreferredSize().width() + |
| 545 home_->GetPreferredSize().width() : 0) + | 545 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing; |
| 546 (origin_chip_view_->visible() ? | 546 content_width += origin_chip_view_->visible() ? |
| 547 (origin_chip_view_->GetPreferredSize().width() + | 547 (origin_chip_view_->GetPreferredSize().width() + kStandardSpacing) : 0; |
| 548 2 * kStandardSpacing) : | 548 size.Enlarge(content_width, 0); |
| 549 0) + | |
| 550 browser_actions_->GetPreferredSize().width() + | |
| 551 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing, | |
| 552 0); | |
| 553 gfx::ImageSkia* normal_background = | |
| 554 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); | |
| 555 size.SetToMax( | |
| 556 gfx::Size(0, normal_background->height() - content_shadow_height())); | |
| 557 } else { | |
| 558 const int kPopupBottomSpacingGlass = 1; | |
| 559 const int kPopupBottomSpacingNonGlass = 2; | |
| 560 size.Enlarge( | |
| 561 0, | |
| 562 PopupTopSpacing() + (GetWidget()->ShouldWindowContentsBeTransparent() ? | |
| 563 kPopupBottomSpacingGlass : kPopupBottomSpacingNonGlass)); | |
| 564 } | 549 } |
| 565 return size; | 550 return SizeForContentSize(size); |
| 551 } |
| 552 |
| 553 gfx::Size ToolbarView::GetMinimumSize() { |
| 554 gfx::Size size(location_bar_->GetMinimumSize()); |
| 555 if (is_display_mode_normal()) { |
| 556 int content_width = kLeftEdgeSpacing + back_->GetMinimumSize().width() + |
| 557 forward_->GetMinimumSize().width() + reload_->GetMinimumSize().width() + |
| 558 (show_home_button_.GetValue() ? home_->GetMinimumSize().width() : 0) + |
| 559 kStandardSpacing + browser_actions_->GetMinimumSize().width() + |
| 560 app_menu_->GetMinimumSize().width() + kRightEdgeSpacing; |
| 561 content_width += origin_chip_view_->visible() ? |
| 562 (origin_chip_view_->GetMinimumSize().width() + kStandardSpacing) : 0; |
| 563 size.Enlarge(content_width, 0); |
| 564 } |
| 565 return SizeForContentSize(size); |
| 566 } | 566 } |
| 567 | 567 |
| 568 void ToolbarView::Layout() { | 568 void ToolbarView::Layout() { |
| 569 // If we have not been initialized yet just do nothing. | 569 // If we have not been initialized yet just do nothing. |
| 570 if (back_ == NULL) | 570 if (back_ == NULL) |
| 571 return; | 571 return; |
| 572 | 572 |
| 573 if (!is_display_mode_normal()) { | 573 if (!is_display_mode_normal()) { |
| 574 location_bar_->SetBounds(0, PopupTopSpacing(), width(), | 574 location_bar_->SetBounds(0, PopupTopSpacing(), width(), |
| 575 location_bar_->GetPreferredSize().height()); | 575 location_bar_->GetPreferredSize().height()); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 769 EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance(); | 769 EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance(); |
| 770 loaded_modules->MaybePostScanningTask(); | 770 loaded_modules->MaybePostScanningTask(); |
| 771 return loaded_modules->ShouldShowConflictWarning(); | 771 return loaded_modules->ShouldShowConflictWarning(); |
| 772 #else | 772 #else |
| 773 return false; | 773 return false; |
| 774 #endif | 774 #endif |
| 775 } | 775 } |
| 776 | 776 |
| 777 int ToolbarView::PopupTopSpacing() const { | 777 int ToolbarView::PopupTopSpacing() const { |
| 778 const int kPopupTopSpacingNonGlass = 3; | 778 const int kPopupTopSpacingNonGlass = 3; |
| 779 return GetWidget()->ShouldWindowContentsBeTransparent() | 779 return GetWidget()->ShouldWindowContentsBeTransparent() ? |
| 780 ? 0 | 780 0 : kPopupTopSpacingNonGlass; |
| 781 : kPopupTopSpacingNonGlass; | 781 } |
| 782 |
| 783 gfx::Size ToolbarView::SizeForContentSize(gfx::Size size) const { |
| 784 if (is_display_mode_normal()) { |
| 785 gfx::ImageSkia* normal_background = |
| 786 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); |
| 787 size.SetToMax( |
| 788 gfx::Size(0, normal_background->height() - content_shadow_height())); |
| 789 } else { |
| 790 const int kPopupBottomSpacingGlass = 1; |
| 791 const int kPopupBottomSpacingNonGlass = 2; |
| 792 size.Enlarge( |
| 793 0, |
| 794 PopupTopSpacing() + (GetWidget()->ShouldWindowContentsBeTransparent() ? |
| 795 kPopupBottomSpacingGlass : kPopupBottomSpacingNonGlass)); |
| 796 } |
| 797 return size; |
| 782 } | 798 } |
| 783 | 799 |
| 784 void ToolbarView::LoadImages() { | 800 void ToolbarView::LoadImages() { |
| 785 ui::ThemeProvider* tp = GetThemeProvider(); | 801 ui::ThemeProvider* tp = GetThemeProvider(); |
| 786 | 802 |
| 787 back_->SetImage(views::Button::STATE_NORMAL, | 803 back_->SetImage(views::Button::STATE_NORMAL, |
| 788 *(tp->GetImageSkiaNamed(IDR_BACK))); | 804 *(tp->GetImageSkiaNamed(IDR_BACK))); |
| 789 back_->SetImage(views::Button::STATE_DISABLED, | 805 back_->SetImage(views::Button::STATE_DISABLED, |
| 790 *(tp->GetImageSkiaNamed(IDR_BACK_D))); | 806 *(tp->GetImageSkiaNamed(IDR_BACK_D))); |
| 791 | 807 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 873 | 889 |
| 874 void ToolbarView::OnShowHomeButtonChanged() { | 890 void ToolbarView::OnShowHomeButtonChanged() { |
| 875 Layout(); | 891 Layout(); |
| 876 SchedulePaint(); | 892 SchedulePaint(); |
| 877 } | 893 } |
| 878 | 894 |
| 879 int ToolbarView::content_shadow_height() const { | 895 int ToolbarView::content_shadow_height() const { |
| 880 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? | 896 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? |
| 881 kContentShadowHeightAsh : kContentShadowHeight; | 897 kContentShadowHeightAsh : kContentShadowHeight; |
| 882 } | 898 } |
| OLD | NEW |