| 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 "cc/blink/web_scrollbar_layer_impl.h" | 5 #include "cc/blink/web_scrollbar_layer_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "cc/blink/scrollbar_impl.h" | 10 #include "cc/blink/scrollbar_impl.h" |
| 11 #include "cc/blink/web_layer_impl.h" | 11 #include "cc/blink/web_layer_impl.h" |
| 12 #include "cc/layers/layer.h" | 12 #include "cc/layers/layer.h" |
| 13 #include "cc/layers/painted_overlay_scrollbar_layer.h" | 13 #include "cc/layers/painted_overlay_scrollbar_layer.h" |
| 14 #include "cc/layers/painted_scrollbar_layer.h" | 14 #include "cc/layers/painted_scrollbar_layer.h" |
| 15 #include "cc/layers/scrollbar_layer_interface.h" | 15 #include "cc/layers/scrollbar_layer_interface.h" |
| 16 #include "cc/layers/solid_color_scrollbar_layer.h" | 16 #include "cc/layers/solid_color_scrollbar_layer.h" |
| 17 #include "cc/trees/element_id.h" |
| 17 | 18 |
| 18 using cc::PaintedOverlayScrollbarLayer; | 19 using cc::PaintedOverlayScrollbarLayer; |
| 19 using cc::PaintedScrollbarLayer; | 20 using cc::PaintedScrollbarLayer; |
| 20 using cc::SolidColorScrollbarLayer; | 21 using cc::SolidColorScrollbarLayer; |
| 21 | 22 |
| 22 namespace { | 23 namespace { |
| 23 | 24 |
| 24 cc::ScrollbarOrientation ConvertOrientation( | 25 cc::ScrollbarOrientation ConvertOrientation( |
| 25 blink::WebScrollbar::Orientation orientation) { | 26 blink::WebScrollbar::Orientation orientation) { |
| 26 return orientation == blink::WebScrollbar::kHorizontal ? cc::HORIZONTAL | 27 return orientation == blink::WebScrollbar::kHorizontal ? cc::HORIZONTAL |
| 27 : cc::VERTICAL; | 28 : cc::VERTICAL; |
| 28 } | 29 } |
| 29 | 30 |
| 30 } // namespace | 31 } // namespace |
| 31 | 32 |
| 32 namespace cc_blink { | 33 namespace cc_blink { |
| 33 | 34 |
| 34 WebScrollbarLayerImpl::WebScrollbarLayerImpl( | 35 WebScrollbarLayerImpl::WebScrollbarLayerImpl( |
| 35 std::unique_ptr<blink::WebScrollbar> scrollbar, | 36 std::unique_ptr<blink::WebScrollbar> scrollbar, |
| 36 blink::WebScrollbarThemePainter painter, | 37 blink::WebScrollbarThemePainter painter, |
| 37 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry, | 38 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry, |
| 38 bool is_overlay) | 39 bool is_overlay) |
| 39 : layer_(is_overlay | 40 : layer_(is_overlay |
| 40 ? new WebLayerImpl(PaintedOverlayScrollbarLayer::Create( | 41 ? new WebLayerImpl(PaintedOverlayScrollbarLayer::Create( |
| 41 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), | 42 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), |
| 42 painter, | 43 painter, |
| 43 std::move(geometry)), | 44 std::move(geometry)), |
| 44 cc::Layer::INVALID_ID)) | 45 cc::Layer::INVALID_ID, |
| 46 cc::ElementId())) |
| 45 : new WebLayerImpl(PaintedScrollbarLayer::Create( | 47 : new WebLayerImpl(PaintedScrollbarLayer::Create( |
| 46 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), | 48 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), |
| 47 painter, | 49 painter, |
| 48 std::move(geometry)), | 50 std::move(geometry)), |
| 49 cc::Layer::INVALID_ID))) {} | 51 cc::Layer::INVALID_ID, |
| 52 cc::ElementId()))) {} |
| 50 | 53 |
| 51 WebScrollbarLayerImpl::WebScrollbarLayerImpl( | 54 WebScrollbarLayerImpl::WebScrollbarLayerImpl( |
| 52 blink::WebScrollbar::Orientation orientation, | 55 blink::WebScrollbar::Orientation orientation, |
| 53 int thumb_thickness, | 56 int thumb_thickness, |
| 54 int track_start, | 57 int track_start, |
| 55 bool is_left_side_vertical_scrollbar) | 58 bool is_left_side_vertical_scrollbar) |
| 56 : layer_(new WebLayerImpl( | 59 : layer_(new WebLayerImpl( |
| 57 SolidColorScrollbarLayer::Create(ConvertOrientation(orientation), | 60 SolidColorScrollbarLayer::Create(ConvertOrientation(orientation), |
| 58 thumb_thickness, | 61 thumb_thickness, |
| 59 track_start, | 62 track_start, |
| 60 is_left_side_vertical_scrollbar, | 63 is_left_side_vertical_scrollbar, |
| 61 cc::Layer::INVALID_ID))) {} | 64 cc::Layer::INVALID_ID, |
| 65 cc::ElementId()))) {} |
| 62 | 66 |
| 63 WebScrollbarLayerImpl::~WebScrollbarLayerImpl() { | 67 WebScrollbarLayerImpl::~WebScrollbarLayerImpl() { |
| 64 } | 68 } |
| 65 | 69 |
| 66 blink::WebLayer* WebScrollbarLayerImpl::Layer() { | 70 blink::WebLayer* WebScrollbarLayerImpl::Layer() { |
| 67 return layer_.get(); | 71 return layer_.get(); |
| 68 } | 72 } |
| 69 | 73 |
| 70 void WebScrollbarLayerImpl::SetScrollLayer(blink::WebLayer* layer) { | 74 void WebScrollbarLayerImpl::SetScrollLayer(blink::WebLayer* layer) { |
| 71 cc::Layer* scroll_layer = | 75 cc::Layer* scroll_layer = |
| 72 layer ? static_cast<WebLayerImpl*>(layer)->layer() : 0; | 76 layer ? static_cast<WebLayerImpl*>(layer)->layer() : 0; |
| 73 layer_->layer()->ToScrollbarLayer()->SetScrollLayer( | 77 layer_->layer()->ToScrollbarLayer()->SetScrollInfo( |
| 74 scroll_layer ? scroll_layer->id() : cc::Layer::INVALID_ID); | 78 scroll_layer ? scroll_layer->id() : cc::Layer::INVALID_ID, |
| 79 scroll_layer ? scroll_layer->element_id() : cc::ElementId()); |
| 75 } | 80 } |
| 76 | 81 |
| 77 } // namespace cc_blink | 82 } // namespace cc_blink |
| OLD | NEW |