| 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 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 ui::Accelerator* accelerator) { | 534 ui::Accelerator* accelerator) { |
| 535 return GetWidget()->GetAccelerator(command_id, accelerator); | 535 return GetWidget()->GetAccelerator(command_id, accelerator); |
| 536 } | 536 } |
| 537 | 537 |
| 538 //////////////////////////////////////////////////////////////////////////////// | 538 //////////////////////////////////////////////////////////////////////////////// |
| 539 // ToolbarView, views::View overrides: | 539 // ToolbarView, views::View overrides: |
| 540 | 540 |
| 541 gfx::Size ToolbarView::GetPreferredSize() { | 541 gfx::Size ToolbarView::GetPreferredSize() { |
| 542 gfx::Size size(location_bar_->GetPreferredSize()); | 542 gfx::Size size(location_bar_->GetPreferredSize()); |
| 543 if (is_display_mode_normal()) { | 543 if (is_display_mode_normal()) { |
| 544 size.Enlarge( | 544 int content_width = kLeftEdgeSpacing + back_->GetPreferredSize().width() + |
| 545 kLeftEdgeSpacing + back_->GetPreferredSize().width() + | 545 forward_->GetPreferredSize().width() + |
| 546 forward_->GetPreferredSize().width() + | 546 reload_->GetPreferredSize().width() + |
| 547 reload_->GetPreferredSize().width() + kStandardSpacing + | 547 (show_home_button_.GetValue() ? home_->GetPreferredSize().width() : 0) + |
| 548 (show_home_button_.GetValue() ? | 548 kStandardSpacing + browser_actions_->GetPreferredSize().width() + |
| 549 home_->GetPreferredSize().width() : 0) + | 549 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing; |
| 550 (origin_chip_view_->visible() ? | 550 content_width += origin_chip_view_->visible() ? |
| 551 (origin_chip_view_->GetPreferredSize().width() + | 551 (origin_chip_view_->GetPreferredSize().width() + kStandardSpacing) : 0; |
| 552 2 * kStandardSpacing) : | 552 size.Enlarge(content_width, 0); |
| 553 0) + | |
| 554 browser_actions_->GetPreferredSize().width() + | |
| 555 app_menu_->GetPreferredSize().width() + kRightEdgeSpacing, | |
| 556 0); | |
| 557 gfx::ImageSkia* normal_background = | |
| 558 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); | |
| 559 size.SetToMax( | |
| 560 gfx::Size(0, normal_background->height() - content_shadow_height())); | |
| 561 } else { | |
| 562 const int kPopupBottomSpacingGlass = 1; | |
| 563 const int kPopupBottomSpacingNonGlass = 2; | |
| 564 size.Enlarge( | |
| 565 0, | |
| 566 PopupTopSpacing() + (GetWidget()->ShouldWindowContentsBeTransparent() ? | |
| 567 kPopupBottomSpacingGlass : kPopupBottomSpacingNonGlass)); | |
| 568 } | 553 } |
| 569 return size; | 554 return SizeForContentSize(size); |
| 555 } |
| 556 |
| 557 gfx::Size ToolbarView::GetMinimumSize() { |
| 558 gfx::Size size(location_bar_->GetMinimumSize()); |
| 559 if (is_display_mode_normal()) { |
| 560 int content_width = kLeftEdgeSpacing + back_->GetMinimumSize().width() + |
| 561 forward_->GetMinimumSize().width() + reload_->GetMinimumSize().width() + |
| 562 (show_home_button_.GetValue() ? home_->GetMinimumSize().width() : 0) + |
| 563 kStandardSpacing + browser_actions_->GetMinimumSize().width() + |
| 564 app_menu_->GetMinimumSize().width() + kRightEdgeSpacing; |
| 565 content_width += origin_chip_view_->visible() ? |
| 566 (origin_chip_view_->GetMinimumSize().width() + kStandardSpacing) : 0; |
| 567 size.Enlarge(content_width, 0); |
| 568 } |
| 569 return SizeForContentSize(size); |
| 570 } | 570 } |
| 571 | 571 |
| 572 void ToolbarView::Layout() { | 572 void ToolbarView::Layout() { |
| 573 // If we have not been initialized yet just do nothing. | 573 // If we have not been initialized yet just do nothing. |
| 574 if (back_ == NULL) | 574 if (back_ == NULL) |
| 575 return; | 575 return; |
| 576 | 576 |
| 577 if (!is_display_mode_normal()) { | 577 if (!is_display_mode_normal()) { |
| 578 location_bar_->SetBounds(0, PopupTopSpacing(), width(), | 578 location_bar_->SetBounds(0, PopupTopSpacing(), width(), |
| 579 location_bar_->GetPreferredSize().height()); | 579 location_bar_->GetPreferredSize().height()); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 773 EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance(); | 773 EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance(); |
| 774 loaded_modules->MaybePostScanningTask(); | 774 loaded_modules->MaybePostScanningTask(); |
| 775 return loaded_modules->ShouldShowConflictWarning(); | 775 return loaded_modules->ShouldShowConflictWarning(); |
| 776 #else | 776 #else |
| 777 return false; | 777 return false; |
| 778 #endif | 778 #endif |
| 779 } | 779 } |
| 780 | 780 |
| 781 int ToolbarView::PopupTopSpacing() const { | 781 int ToolbarView::PopupTopSpacing() const { |
| 782 const int kPopupTopSpacingNonGlass = 3; | 782 const int kPopupTopSpacingNonGlass = 3; |
| 783 return GetWidget()->ShouldWindowContentsBeTransparent() | 783 return GetWidget()->ShouldWindowContentsBeTransparent() ? |
| 784 ? 0 | 784 0 : kPopupTopSpacingNonGlass; |
| 785 : kPopupTopSpacingNonGlass; | 785 } |
| 786 |
| 787 gfx::Size ToolbarView::SizeForContentSize(gfx::Size size) const { |
| 788 if (is_display_mode_normal()) { |
| 789 gfx::ImageSkia* normal_background = |
| 790 GetThemeProvider()->GetImageSkiaNamed(IDR_CONTENT_TOP_CENTER); |
| 791 size.SetToMax( |
| 792 gfx::Size(0, normal_background->height() - content_shadow_height())); |
| 793 } else { |
| 794 const int kPopupBottomSpacingGlass = 1; |
| 795 const int kPopupBottomSpacingNonGlass = 2; |
| 796 size.Enlarge( |
| 797 0, |
| 798 PopupTopSpacing() + (GetWidget()->ShouldWindowContentsBeTransparent() ? |
| 799 kPopupBottomSpacingGlass : kPopupBottomSpacingNonGlass)); |
| 800 } |
| 801 return size; |
| 786 } | 802 } |
| 787 | 803 |
| 788 void ToolbarView::LoadImages() { | 804 void ToolbarView::LoadImages() { |
| 789 ui::ThemeProvider* tp = GetThemeProvider(); | 805 ui::ThemeProvider* tp = GetThemeProvider(); |
| 790 | 806 |
| 791 back_->SetImage(views::Button::STATE_NORMAL, | 807 back_->SetImage(views::Button::STATE_NORMAL, |
| 792 *(tp->GetImageSkiaNamed(IDR_BACK))); | 808 *(tp->GetImageSkiaNamed(IDR_BACK))); |
| 793 back_->SetImage(views::Button::STATE_DISABLED, | 809 back_->SetImage(views::Button::STATE_DISABLED, |
| 794 *(tp->GetImageSkiaNamed(IDR_BACK_D))); | 810 *(tp->GetImageSkiaNamed(IDR_BACK_D))); |
| 795 | 811 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 877 | 893 |
| 878 void ToolbarView::OnShowHomeButtonChanged() { | 894 void ToolbarView::OnShowHomeButtonChanged() { |
| 879 Layout(); | 895 Layout(); |
| 880 SchedulePaint(); | 896 SchedulePaint(); |
| 881 } | 897 } |
| 882 | 898 |
| 883 int ToolbarView::content_shadow_height() const { | 899 int ToolbarView::content_shadow_height() const { |
| 884 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? | 900 return browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH ? |
| 885 kContentShadowHeightAsh : kContentShadowHeight; | 901 kContentShadowHeightAsh : kContentShadowHeight; |
| 886 } | 902 } |
| OLD | NEW |