| 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 "cc/layers/solid_color_scrollbar_layer.h" | 5 #include "cc/layers/solid_color_scrollbar_layer.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "cc/layers/layer_impl.h" | 8 #include "cc/layers/layer_impl.h" |
| 9 #include "cc/layers/solid_color_scrollbar_layer_impl.h" | 9 #include "cc/layers/solid_color_scrollbar_layer_impl.h" |
| 10 | 10 |
| 11 namespace cc { | 11 namespace cc { |
| 12 | 12 |
| 13 scoped_ptr<LayerImpl> SolidColorScrollbarLayer::CreateLayerImpl( | 13 scoped_ptr<LayerImpl> SolidColorScrollbarLayer::CreateLayerImpl( |
| 14 LayerTreeImpl* tree_impl) { | 14 LayerTreeImpl* tree_impl) { |
| 15 const bool kIsOverlayScrollbar = true; | |
| 16 return SolidColorScrollbarLayerImpl::Create( | 15 return SolidColorScrollbarLayerImpl::Create( |
| 17 tree_impl, | 16 tree_impl, id(), orientation(), thumb_thickness_, |
| 18 id(), | 17 is_left_side_vertical_scrollbar_).PassAs<LayerImpl>(); |
| 19 orientation(), | |
| 20 thumb_thickness_, | |
| 21 is_left_side_vertical_scrollbar_, | |
| 22 kIsOverlayScrollbar).PassAs<LayerImpl>(); | |
| 23 } | 18 } |
| 24 | 19 |
| 25 scoped_refptr<SolidColorScrollbarLayer> SolidColorScrollbarLayer::Create( | 20 scoped_refptr<SolidColorScrollbarLayer> SolidColorScrollbarLayer::Create( |
| 26 ScrollbarOrientation orientation, | 21 ScrollbarOrientation orientation, |
| 27 int thumb_thickness, | 22 int thumb_thickness, |
| 28 bool is_left_side_vertical_scrollbar, | 23 bool is_left_side_vertical_scrollbar, |
| 29 Layer* scroll_layer) { | 24 int scroll_layer_id) { |
| 30 return make_scoped_refptr(new SolidColorScrollbarLayer( | 25 return make_scoped_refptr(new SolidColorScrollbarLayer( |
| 31 orientation, | 26 orientation, |
| 32 thumb_thickness, | 27 thumb_thickness, |
| 33 is_left_side_vertical_scrollbar, | 28 is_left_side_vertical_scrollbar, |
| 34 scroll_layer)); | 29 scroll_layer_id)); |
| 35 } | 30 } |
| 36 | 31 |
| 37 SolidColorScrollbarLayer::SolidColorScrollbarLayer( | 32 SolidColorScrollbarLayer::SolidColorScrollbarLayer( |
| 38 ScrollbarOrientation orientation, | 33 ScrollbarOrientation orientation, |
| 39 int thumb_thickness, | 34 int thumb_thickness, |
| 40 bool is_left_side_vertical_scrollbar, | 35 bool is_left_side_vertical_scrollbar, |
| 41 Layer* scroll_layer) | 36 int scroll_layer_id) |
| 42 : scroll_layer_(scroll_layer), | 37 : scroll_layer_id_(scroll_layer_id), |
| 43 clip_layer_(NULL), | |
| 44 orientation_(orientation), | 38 orientation_(orientation), |
| 45 thumb_thickness_(thumb_thickness), | 39 thumb_thickness_(thumb_thickness), |
| 46 is_left_side_vertical_scrollbar_(is_left_side_vertical_scrollbar) {} | 40 is_left_side_vertical_scrollbar_(is_left_side_vertical_scrollbar) {} |
| 47 | 41 |
| 48 SolidColorScrollbarLayer::~SolidColorScrollbarLayer() {} | 42 SolidColorScrollbarLayer::~SolidColorScrollbarLayer() {} |
| 49 | 43 |
| 50 ScrollbarLayerInterface* SolidColorScrollbarLayer::ToScrollbarLayer() { | 44 ScrollbarLayerInterface* SolidColorScrollbarLayer::ToScrollbarLayer() { |
| 51 return this; | 45 return this; |
| 52 } | 46 } |
| 53 | 47 |
| 54 void SolidColorScrollbarLayer::PushPropertiesTo(LayerImpl* layer) { | |
| 55 Layer::PushPropertiesTo(layer); | |
| 56 PushScrollClipPropertiesTo(layer); | |
| 57 } | |
| 58 | |
| 59 void SolidColorScrollbarLayer::PushScrollClipPropertiesTo(LayerImpl* layer) { | |
| 60 SolidColorScrollbarLayerImpl* scrollbar_layer = | |
| 61 static_cast<SolidColorScrollbarLayerImpl*>(layer); | |
| 62 | |
| 63 scrollbar_layer->SetScrollLayerById(scroll_layer_ ? scroll_layer_->id() | |
| 64 : Layer::INVALID_ID); | |
| 65 scrollbar_layer->SetClipLayerById(clip_layer_ ? clip_layer_->id() | |
| 66 : Layer::INVALID_ID); | |
| 67 } | |
| 68 | |
| 69 bool SolidColorScrollbarLayer::OpacityCanAnimateOnImplThread() const { | 48 bool SolidColorScrollbarLayer::OpacityCanAnimateOnImplThread() const { |
| 70 return true; | 49 return true; |
| 71 } | 50 } |
| 72 | 51 |
| 73 int SolidColorScrollbarLayer::ScrollLayerId() const { | 52 int SolidColorScrollbarLayer::ScrollLayerId() const { |
| 74 return scroll_layer_->id(); | 53 return scroll_layer_id_; |
| 75 } | 54 } |
| 76 | 55 |
| 77 void SolidColorScrollbarLayer::SetScrollLayer(scoped_refptr<Layer> layer) { | 56 void SolidColorScrollbarLayer::SetScrollLayerId(int id) { |
| 78 if (layer == scroll_layer_) | 57 if (id == scroll_layer_id_) |
| 79 return; | 58 return; |
| 80 | 59 |
| 81 scroll_layer_ = layer; | 60 scroll_layer_id_ = id; |
| 82 SetNeedsFullTreeSync(); | 61 SetNeedsFullTreeSync(); |
| 83 } | 62 } |
| 84 | 63 |
| 85 void SolidColorScrollbarLayer::SetClipLayer(scoped_refptr<Layer> layer) { | |
| 86 if (layer == clip_layer_) | |
| 87 return; | |
| 88 | |
| 89 clip_layer_ = layer; | |
| 90 SetNeedsFullTreeSync(); | |
| 91 } | |
| 92 | |
| 93 ScrollbarOrientation SolidColorScrollbarLayer::orientation() const { | 64 ScrollbarOrientation SolidColorScrollbarLayer::orientation() const { |
| 94 return orientation_; | 65 return orientation_; |
| 95 } | 66 } |
| 96 | 67 |
| 97 } // namespace cc | 68 } // namespace cc |
| OLD | NEW |