Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / webkit / renderer / compositor_bindings / web_scrollbar_layer_impl.h
1 // Copyright 2012 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 WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_
6 #define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "third_party/WebKit/public/platform/WebScrollbar.h"
10 #include "third_party/WebKit/public/platform/WebScrollbarLayer.h"
11 #include "webkit/renderer/compositor_bindings/webkit_compositor_bindings_export.h"
12
13 namespace blink {
14 class WebScrollbarThemeGeometry;
15 class WebScrollbarThemePainter;
16 }
17
18 namespace webkit {
19
20 class WebLayerImpl;
21
22 class WebScrollbarLayerImpl : public blink::WebScrollbarLayer {
23  public:
24   WEBKIT_COMPOSITOR_BINDINGS_EXPORT WebScrollbarLayerImpl(
25       blink::WebScrollbar* scrollbar,
26       blink::WebScrollbarThemePainter painter,
27       blink::WebScrollbarThemeGeometry* geometry);
28   WEBKIT_COMPOSITOR_BINDINGS_EXPORT WebScrollbarLayerImpl(
29       blink::WebScrollbar::Orientation orientation,
30       int thumb_thickness,
31       bool is_left_side_vertical_scrollbar);
32   virtual ~WebScrollbarLayerImpl();
33
34   // blink::WebScrollbarLayer implementation.
35   virtual blink::WebLayer* layer();
36   virtual void setScrollLayer(blink::WebLayer* layer);
37   virtual void setClipLayer(blink::WebLayer* layer);
38
39  private:
40   scoped_ptr<WebLayerImpl> layer_;
41
42   DISALLOW_COPY_AND_ASSIGN(WebScrollbarLayerImpl);
43 };
44
45 }  // namespace webkit
46
47 #endif  // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_SCROLLBAR_LAYER_IMPL_H_