| 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 *createSolidColorFilter(tab_switcher_color).get()); | 485 *createSolidColorFilter(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 |