Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / cc / layers / scrollbar_layer_impl_base.h
index 6bba749..e7a2fc7 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "cc/base/cc_export.h"
 #include "cc/input/scrollbar.h"
+#include "cc/layers/layer.h"
 #include "cc/layers/layer_impl.h"
 
 namespace cc {
@@ -15,8 +16,16 @@ class LayerTreeImpl;
 
 class CC_EXPORT ScrollbarLayerImplBase : public LayerImpl {
  public:
-  int ScrollLayerId() const { return scroll_layer_id_; }
-  void set_scroll_layer_id(int id) { scroll_layer_id_ = id; }
+  int ScrollLayerId() const {
+    return scroll_layer_ ? scroll_layer_->id() : Layer::INVALID_ID;
+  }
+  void ClearScrollLayer() { scroll_layer_ = NULL; }
+  void SetScrollLayerById(int id);
+  int ClipLayerId() const {
+    return clip_layer_ ? clip_layer_->id() : Layer::INVALID_ID;
+  }
+  void ClearClipLayer() { clip_layer_ = NULL; }
+  void SetClipLayerById(int id);
 
   float current_pos() const { return current_pos_; }
   void SetCurrentPos(float current_pos);
@@ -37,6 +46,7 @@ class CC_EXPORT ScrollbarLayerImplBase : public LayerImpl {
 
   virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
   virtual ScrollbarLayerImplBase* ToScrollbarLayer() OVERRIDE;
+  void PushScrollClipPropertiesTo(LayerImpl* layer);
 
   void SetVisibleToTotalLengthRatio(float ratio);
   virtual gfx::Rect ComputeThumbQuadRect() const;
@@ -46,12 +56,15 @@ class CC_EXPORT ScrollbarLayerImplBase : public LayerImpl {
   }
   void SetThumbThicknessScaleFactor(float thumb_thickness_scale_factor);
 
+  void ScrollbarParametersDidChange();
+
  protected:
   ScrollbarLayerImplBase(LayerTreeImpl* tree_impl,
                          int id,
                          ScrollbarOrientation orientation,
-                         bool is_left_side_vertical_scrollbar);
-  virtual ~ScrollbarLayerImplBase() {}
+                         bool is_left_side_vertical_scrollbar,
+                         bool is_overlay);
+  virtual ~ScrollbarLayerImplBase();
 
   gfx::Rect ScrollbarLayerRectToContentRect(const gfx::RectF& layer_rect) const;
 
@@ -69,7 +82,8 @@ class CC_EXPORT ScrollbarLayerImplBase : public LayerImpl {
   virtual bool IsThumbResizable() const = 0;
 
  private:
-  int scroll_layer_id_;
+  LayerImpl* scroll_layer_;
+  LayerImpl* clip_layer_;
   bool is_overlay_scrollbar_;
 
   float thumb_thickness_scale_factor_;