Home | History | Annotate | Download | only in layers
      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