158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file.
458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "cc/base/cc_export.h"
958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "cc/layers/scrollbar_layer_impl_base.h"
1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace cc {
1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class CC_EXPORT SolidColorScrollbarLayerImpl : public ScrollbarLayerImplBase {
1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public:
1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  static scoped_ptr<SolidColorScrollbarLayerImpl> Create(
1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      LayerTreeImpl* tree_impl,
1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      int id,
1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      ScrollbarOrientation orientation,
1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      int thumb_thickness,
2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      bool is_left_side_vertical_scrollbar);
2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual ~SolidColorScrollbarLayerImpl();
2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  // LayerImpl overrides.
2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)      OVERRIDE;
2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual void AppendQuads(QuadSink* quad_sink,
2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                           AppendQuadsData* append_quads_data) OVERRIDE;
3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) protected:
3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  SolidColorScrollbarLayerImpl(LayerTreeImpl* tree_impl,
3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                               int id,
3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                               ScrollbarOrientation orientation,
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                               int thumb_thickness,
3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                               bool is_left_side_vertical_scrollbar);
3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  // ScrollbarLayerImplBase implementation.
4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual int ThumbThickness() const OVERRIDE;
4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual int ThumbLength() const OVERRIDE;
4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual float TrackLength() const OVERRIDE;
4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  virtual int TrackStart() const OVERRIDE;
4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private:
4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  int thumb_thickness_;
4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  SkColor color_;
4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)};
4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}  // namespace cc
5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif  // CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_IMPL_H_
53