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 11namespace cc { 12 13class 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(RenderPass* render_pass, 31 const OcclusionTracker<LayerImpl>& occlusion_tracker, 32 AppendQuadsData* append_quads_data) OVERRIDE; 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_ 59