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 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_ 6 #define CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "content/common/content_export.h" 10 #include "third_party/WebKit/public/platform/WebScrollbar.h" 11 #include "third_party/WebKit/public/platform/WebScrollbarLayer.h" 12 13 namespace blink { 14 class WebScrollbarThemeGeometry; 15 class WebScrollbarThemePainter; 16 } 17 18 namespace content { 19 20 class WebLayerImpl; 21 22 class WebScrollbarLayerImpl : public blink::WebScrollbarLayer { 23 public: 24 CONTENT_EXPORT WebScrollbarLayerImpl( 25 blink::WebScrollbar* scrollbar, 26 blink::WebScrollbarThemePainter painter, 27 blink::WebScrollbarThemeGeometry* geometry); 28 CONTENT_EXPORT WebScrollbarLayerImpl( 29 blink::WebScrollbar::Orientation orientation, 30 int thumb_thickness, 31 int track_start, 32 bool is_left_side_vertical_scrollbar); 33 virtual ~WebScrollbarLayerImpl(); 34 35 // blink::WebScrollbarLayer implementation. 36 virtual blink::WebLayer* layer(); 37 virtual void setScrollLayer(blink::WebLayer* layer); 38 virtual void setClipLayer(blink::WebLayer* layer); 39 40 private: 41 scoped_ptr<WebLayerImpl> layer_; 42 43 DISALLOW_COPY_AND_ASSIGN(WebScrollbarLayerImpl); 44 }; 45 46 } // namespace content 47 48 #endif // CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_ 49