4cea04b4abc707f708de822614dcc7d2b04a623b
[platform/framework/web/crosswalk.git] / src / cc / layers / solid_color_scrollbar_layer_impl.h
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
3 // found in the LICENSE file.
4
5 #ifndef CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
6 #define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
7
8 #include "cc/base/cc_export.h"
9 #include "cc/layers/scrollbar_layer_impl_base.h"
10
11 namespace cc {
12
13 class CC_EXPORT SolidColorScrollbarLayerImpl : public ScrollbarLayerImplBase {
14  public:
15   static scoped_ptr<SolidColorScrollbarLayerImpl> Create(
16       LayerTreeImpl* tree_impl,
17       int id,
18       ScrollbarOrientation orientation,
19       int thumb_thickness,
20       int track_start,
21       bool is_left_side_vertical_scrollbar,
22       bool is_overlay);
23   virtual ~SolidColorScrollbarLayerImpl();
24
25   // LayerImpl overrides.
26   virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
27       OVERRIDE;
28   virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
29
30   virtual void AppendQuads(QuadSink* quad_sink,
31                            AppendQuadsData* append_quads_data) OVERRIDE;
32
33
34  protected:
35   SolidColorScrollbarLayerImpl(LayerTreeImpl* tree_impl,
36                                int id,
37                                ScrollbarOrientation orientation,
38                                int thumb_thickness,
39                                int track_start,
40                                bool is_left_side_vertical_scrollbar,
41                                bool is_overlay);
42
43   // ScrollbarLayerImplBase implementation.
44   virtual int ThumbThickness() const OVERRIDE;
45   virtual int ThumbLength() const OVERRIDE;
46   virtual float TrackLength() const OVERRIDE;
47   virtual int TrackStart() const OVERRIDE;
48   virtual bool IsThumbResizable() const OVERRIDE;
49
50  private:
51   int thumb_thickness_;
52   int track_start_;
53   SkColor color_;
54 };
55
56 }  // namespace cc
57
58 #endif  // CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_