Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / layers / scrollbar_layer_impl_base.h
index 6bba749..4a96b49 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,15 +16,23 @@ 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;
+  }
+  int ClipLayerId() const {
+    return clip_layer_ ? clip_layer_->id() : Layer::INVALID_ID;
+  }
+
+  void SetScrollLayerAndClipLayerByIds(int scroll_layer_id, int clip_layer_id);
+  void ClearScrollLayer() { scroll_layer_ = nullptr; }
+  void ClearClipLayer() { clip_layer_ = nullptr; }
 
   float current_pos() const { return current_pos_; }
-  void SetCurrentPos(float current_pos);
+  bool SetCurrentPos(float current_pos);
   int maximum() const { return maximum_; }
-  void SetMaximum(int maximum);
+  bool SetMaximum(int maximum);
 
-  void SetVerticalAdjust(float vertical_adjust);
+  bool SetVerticalAdjust(float vertical_adjust);
 
   bool is_overlay_scrollbar() const { return is_overlay_scrollbar_; }
   void set_is_overlay_scrollbar(bool is_overlay) {
@@ -35,23 +44,29 @@ class CC_EXPORT ScrollbarLayerImplBase : public LayerImpl {
     return is_left_side_vertical_scrollbar_;
   }
 
-  virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
-  virtual ScrollbarLayerImplBase* ToScrollbarLayer() OVERRIDE;
+  bool CanScrollOrientation() const;
 
-  void SetVisibleToTotalLengthRatio(float ratio);
+  void PushPropertiesTo(LayerImpl* layer) override;
+  ScrollbarLayerImplBase* ToScrollbarLayer() override;
+  void PushScrollClipPropertiesTo(LayerImpl* layer);
+
+  bool SetVisibleToTotalLengthRatio(float ratio);
   virtual gfx::Rect ComputeThumbQuadRect() const;
 
   float thumb_thickness_scale_factor() {
     return thumb_thickness_scale_factor_;
   }
-  void SetThumbThicknessScaleFactor(float thumb_thickness_scale_factor);
+  bool SetThumbThicknessScaleFactor(float thumb_thickness_scale_factor);
+
+  void ScrollbarParametersDidChange(bool on_resize);
 
  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);
+  ~ScrollbarLayerImplBase() override;
 
   gfx::Rect ScrollbarLayerRectToContentRect(const gfx::RectF& layer_rect) const;
 
@@ -69,7 +84,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_;