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_H_ 6 #define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_ 7 8 #include "cc/base/cc_export.h" 9 #include "cc/layers/layer.h" 10 #include "cc/layers/scrollbar_layer_interface.h" 11 12 namespace cc { 13 14 class CC_EXPORT SolidColorScrollbarLayer : public ScrollbarLayerInterface, 15 public Layer { 16 public: 17 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 18 OVERRIDE; 19 20 static scoped_refptr<SolidColorScrollbarLayer> Create( 21 ScrollbarOrientation orientation, 22 int thumb_thickness, 23 int track_start, 24 bool is_left_side_vertical_scrollbar, 25 int scroll_layer_id); 26 27 // Layer overrides. 28 virtual bool OpacityCanAnimateOnImplThread() const OVERRIDE; 29 virtual ScrollbarLayerInterface* ToScrollbarLayer() OVERRIDE; 30 31 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 32 virtual void PushScrollClipPropertiesTo(LayerImpl* layer) OVERRIDE; 33 34 virtual void SetNeedsDisplayRect(const gfx::RectF&) OVERRIDE; 35 36 // ScrollbarLayerInterface 37 virtual int ScrollLayerId() const OVERRIDE; 38 virtual void SetScrollLayer(int layer_id) OVERRIDE; 39 virtual void SetClipLayer(int layer_id) OVERRIDE; 40 41 virtual ScrollbarOrientation orientation() const OVERRIDE; 42 43 protected: 44 SolidColorScrollbarLayer(ScrollbarOrientation orientation, 45 int thumb_thickness, 46 int track_start, 47 bool is_left_side_vertical_scrollbar, 48 int scroll_layer_id); 49 virtual ~SolidColorScrollbarLayer(); 50 51 private: 52 int scroll_layer_id_; 53 int clip_layer_id_; 54 ScrollbarOrientation orientation_; 55 int thumb_thickness_; 56 int track_start_; 57 bool is_left_side_vertical_scrollbar_; 58 59 DISALLOW_COPY_AND_ASSIGN(SolidColorScrollbarLayer); 60 }; 61 62 } // namespace cc 63 64 #endif // CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_ 65