| 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 | 
|---|