OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/android/compositor/layer/tab_layer.h" | 5 #include "chrome/browser/android/compositor/layer/tab_layer.h" |
6 | 6 |
7 #include "base/base_switches.h" | |
8 #include "base/command_line.h" | |
9 #include "base/i18n/rtl.h" | 7 #include "base/i18n/rtl.h" |
10 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
11 #include "cc/layers/layer.h" | 9 #include "cc/layers/layer.h" |
12 #include "cc/layers/layer_collections.h" | 10 #include "cc/layers/layer_collections.h" |
13 #include "cc/layers/nine_patch_layer.h" | 11 #include "cc/layers/nine_patch_layer.h" |
14 #include "cc/layers/solid_color_layer.h" | 12 #include "cc/layers/solid_color_layer.h" |
15 #include "cc/layers/ui_resource_layer.h" | 13 #include "cc/layers/ui_resource_layer.h" |
16 #include "cc/resources/scoped_ui_resource.h" | 14 #include "cc/resources/scoped_ui_resource.h" |
17 #include "chrome/browser/android/compositor/decoration_title.h" | 15 #include "chrome/browser/android/compositor/decoration_title.h" |
18 #include "chrome/browser/android/compositor/layer/content_layer.h" | 16 #include "chrome/browser/android/compositor/layer/content_layer.h" |
19 #include "chrome/browser/android/compositor/layer/toolbar_layer.h" | 17 #include "chrome/browser/android/compositor/layer/toolbar_layer.h" |
20 #include "chrome/browser/android/compositor/layer_title_cache.h" | 18 #include "chrome/browser/android/compositor/layer_title_cache.h" |
21 #include "chrome/browser/android/compositor/tab_content_manager.h" | 19 #include "chrome/browser/android/compositor/tab_content_manager.h" |
22 #include "chrome/common/chrome_switches.h" | |
23 #include "content/public/browser/android/compositor.h" | 20 #include "content/public/browser/android/compositor.h" |
24 #include "ui/android/resources/resource_manager.h" | 21 #include "ui/android/resources/resource_manager.h" |
25 #include "ui/base/l10n/l10n_util_android.h" | 22 #include "ui/base/l10n/l10n_util_android.h" |
26 #include "ui/gfx/geometry/insets_f.h" | 23 #include "ui/gfx/geometry/insets_f.h" |
27 #include "ui/gfx/geometry/point_f.h" | 24 #include "ui/gfx/geometry/point_f.h" |
28 #include "ui/gfx/geometry/rect_f.h" | 25 #include "ui/gfx/geometry/rect_f.h" |
29 #include "ui/gfx/geometry/safe_integer_conversions.h" | 26 #include "ui/gfx/geometry/safe_integer_conversions.h" |
30 #include "ui/gfx/geometry/size.h" | 27 #include "ui/gfx/geometry/size.h" |
31 #include "ui/gfx/transform.h" | 28 #include "ui/gfx/transform.h" |
32 | 29 |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
475 contour_shadow_->SetOpacity(contour_alpha); | 472 contour_shadow_->SetOpacity(contour_alpha); |
476 } | 473 } |
477 | 474 |
478 front_border_->SetHideLayerAndSubtree(!border_visible); | 475 front_border_->SetHideLayerAndSubtree(!border_visible); |
479 if (border_visible) { | 476 if (border_visible) { |
480 front_border_->SetPosition(border_position); | 477 front_border_->SetPosition(border_position); |
481 front_border_->SetBounds(border_size); | 478 front_border_->SetBounds(border_size); |
482 front_border_->SetOpacity(border_alpha); | 479 front_border_->SetOpacity(border_alpha); |
483 front_border_->SetNearestNeighbor(toolbar_visible); | 480 front_border_->SetNearestNeighbor(toolbar_visible); |
484 | 481 |
485 int tab_switcher_color = default_theme_color; | |
486 | |
487 // Colorize the tab decoration if enabled. | |
488 if (tab_switcher_themes_enabled_) { | |
489 tab_switcher_color = toolbar_background_color; | |
490 } | |
491 | |
492 if (toolbar_background_color != toolbar_background_color_) { | 482 if (toolbar_background_color != toolbar_background_color_) { |
493 toolbar_background_color_ = toolbar_background_color; | 483 toolbar_background_color_ = toolbar_background_color; |
494 front_border_->SetFilters( | 484 front_border_->SetFilters( |
495 *makeSolidColorFilter(tab_switcher_color).get()); | 485 *makeSolidColorFilter(toolbar_background_color).get()); |
496 } | 486 } |
497 } | 487 } |
498 | 488 |
499 front_border_inner_shadow_->SetHideLayerAndSubtree( | 489 front_border_inner_shadow_->SetHideLayerAndSubtree( |
500 !border_inner_shadow_visible); | 490 !border_inner_shadow_visible); |
501 if (border_inner_shadow_visible) { | 491 if (border_inner_shadow_visible) { |
502 front_border_inner_shadow_->SetPosition(border_inner_shadow_position); | 492 front_border_inner_shadow_->SetPosition(border_inner_shadow_position); |
503 front_border_inner_shadow_->SetBounds(border_inner_shadow_size); | 493 front_border_inner_shadow_->SetBounds(border_inner_shadow_size); |
504 front_border_inner_shadow_->SetOpacity(border_inner_shadow_alpha); | 494 front_border_inner_shadow_->SetOpacity(border_inner_shadow_alpha); |
505 } | 495 } |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 return layer_; | 646 return layer_; |
657 } | 647 } |
658 | 648 |
659 TabLayer::TabLayer(bool incognito, | 649 TabLayer::TabLayer(bool incognito, |
660 ui::ResourceManager* resource_manager, | 650 ui::ResourceManager* resource_manager, |
661 LayerTitleCache* layer_title_cache, | 651 LayerTitleCache* layer_title_cache, |
662 TabContentManager* tab_content_manager) | 652 TabContentManager* tab_content_manager) |
663 : incognito_(incognito), | 653 : incognito_(incognito), |
664 toolbar_background_color_(0), | 654 toolbar_background_color_(0), |
665 close_button_color_(0), | 655 close_button_color_(0), |
666 tab_switcher_themes_enabled_(false), | |
667 resource_manager_(resource_manager), | 656 resource_manager_(resource_manager), |
668 layer_title_cache_(layer_title_cache), | 657 layer_title_cache_(layer_title_cache), |
669 layer_(cc::Layer::Create()), | 658 layer_(cc::Layer::Create()), |
670 toolbar_layer_(ToolbarLayer::Create(resource_manager)), | 659 toolbar_layer_(ToolbarLayer::Create(resource_manager)), |
671 title_(cc::Layer::Create()), | 660 title_(cc::Layer::Create()), |
672 content_(ContentLayer::Create(tab_content_manager)), | 661 content_(ContentLayer::Create(tab_content_manager)), |
673 side_padding_(cc::SolidColorLayer::Create()), | 662 side_padding_(cc::SolidColorLayer::Create()), |
674 bottom_padding_(cc::SolidColorLayer::Create()), | 663 bottom_padding_(cc::SolidColorLayer::Create()), |
675 close_button_(cc::UIResourceLayer::Create()), | 664 close_button_(cc::UIResourceLayer::Create()), |
676 front_border_(cc::NinePatchLayer::Create()), | 665 front_border_(cc::NinePatchLayer::Create()), |
(...skipping 17 matching lines...) Expand all Loading... |
694 contour_shadow_->SetIsDrawable(true); | 683 contour_shadow_->SetIsDrawable(true); |
695 side_padding_->SetIsDrawable(true); | 684 side_padding_->SetIsDrawable(true); |
696 bottom_padding_->SetIsDrawable(true); | 685 bottom_padding_->SetIsDrawable(true); |
697 front_border_->SetIsDrawable(true); | 686 front_border_->SetIsDrawable(true); |
698 front_border_inner_shadow_->SetIsDrawable(true); | 687 front_border_inner_shadow_->SetIsDrawable(true); |
699 shadow_->SetIsDrawable(true); | 688 shadow_->SetIsDrawable(true); |
700 close_button_->SetIsDrawable(true); | 689 close_button_->SetIsDrawable(true); |
701 back_logo_->SetIsDrawable(true); | 690 back_logo_->SetIsDrawable(true); |
702 | 691 |
703 front_border_->SetFillCenter(false); | 692 front_border_->SetFillCenter(false); |
704 | |
705 tab_switcher_themes_enabled_ = | |
706 base::CommandLine::ForCurrentProcess()->HasSwitch( | |
707 switches::kEnableTabSwitcherThemeColors); | |
708 } | 693 } |
709 | 694 |
710 TabLayer::~TabLayer() { | 695 TabLayer::~TabLayer() { |
711 } | 696 } |
712 | 697 |
713 void TabLayer::SetTitle(DecorationTitle* title) { | 698 void TabLayer::SetTitle(DecorationTitle* title) { |
714 scoped_refptr<cc::Layer> layer = title ? title->layer() : nullptr; | 699 scoped_refptr<cc::Layer> layer = title ? title->layer() : nullptr; |
715 | 700 |
716 if (!layer.get()) { | 701 if (!layer.get()) { |
717 title_->RemoveAllChildren(); | 702 title_->RemoveAllChildren(); |
718 } else { | 703 } else { |
719 const cc::LayerList& children = title_->children(); | 704 const cc::LayerList& children = title_->children(); |
720 if (children.size() == 0 || children[0]->id() != layer->id()) { | 705 if (children.size() == 0 || children[0]->id() != layer->id()) { |
721 title_->RemoveAllChildren(); | 706 title_->RemoveAllChildren(); |
722 title_->AddChild(layer); | 707 title_->AddChild(layer); |
723 } | 708 } |
724 } | 709 } |
725 | 710 |
726 if (title) | 711 if (title) |
727 title->SetUIResourceIds(); | 712 title->SetUIResourceIds(); |
728 } | 713 } |
729 | 714 |
730 } // namespace android | 715 } // namespace android |
731 } // namespace chrome | 716 } // namespace chrome |
OLD | NEW |