(ScrollView) Provide a ScrollTo API that allows setting a different alpha function... 96/28796/1
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 16 Oct 2014 08:18:26 +0000 (09:18 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 16 Oct 2014 08:18:30 +0000 (09:18 +0100)
Provided by Matthew Stephenson.

Change-Id: I07eec2480b4ae7ece18eee15a54b012c0349a97d

base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp
base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h
base/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.cpp
base/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h

index ff6fbb9..1d3b7b1 100644 (file)
@@ -1208,10 +1208,10 @@ Vector3 ScrollView::GetDomainSize() const
 void ScrollView::TransformTo(const Vector3& position,
                              DirectionBias horizontalBias, DirectionBias verticalBias)
 {
-  TransformTo(position, mSnapDuration, horizontalBias, verticalBias);
+  TransformTo(position, mSnapDuration, mSnapAlphaFunction, horizontalBias, verticalBias);
 }
 
-void ScrollView::TransformTo(const Vector3& position, float duration,
+void ScrollView::TransformTo(const Vector3& position, float duration, AlphaFunction alpha,
                              DirectionBias horizontalBias, DirectionBias verticalBias)
 {
   Actor self( Self() );
@@ -1254,7 +1254,7 @@ void ScrollView::TransformTo(const Vector3& position, float duration,
   mScrollStartedSignalV2.Emit( currentScrollPosition );
   bool animating = AnimateTo(-position,
                              Vector3::ONE * duration,
-                             mSnapAlphaFunction,
+                             alpha,
                              true,
                              horizontalBias,
                              verticalBias,
@@ -1290,13 +1290,22 @@ void ScrollView::ScrollTo(const Vector3& position, float duration)
   ScrollTo(position, duration, DirectionBiasNone, DirectionBiasNone);
 }
 
+void ScrollView::ScrollTo(const Vector3& position, float duration, AlphaFunction alpha)
+{
+  ScrollTo(position, duration, alpha, DirectionBiasNone, DirectionBiasNone);
+}
+
 void ScrollView::ScrollTo(const Vector3& position, float duration,
                           DirectionBias horizontalBias, DirectionBias verticalBias)
 {
-  DALI_LOG_SCROLL_STATE("[0x%X] position[%.2f, %.2f] duration[%.2f]",
-    this, position.x, position.y, duration, int(horizontalBias), int(verticalBias));
+  ScrollTo(position, duration, mSnapAlphaFunction, horizontalBias, verticalBias);
+}
 
-  TransformTo(position, duration, horizontalBias, verticalBias);
+void ScrollView::ScrollTo(const Vector3& position, float duration, AlphaFunction alpha,
+                DirectionBias horizontalBias, DirectionBias verticalBias)
+{
+  DALI_LOG_SCROLL_STATE("[0x%X] position[%.2f, %.2f] duration[%.2f]", this, position.x, position.y, duration, int(horizontalBias), int(verticalBias));
+  TransformTo(position, duration, alpha, horizontalBias, verticalBias);
 }
 
 void ScrollView::ScrollTo(unsigned int page)
index 5f2569d..ad55741 100644 (file)
@@ -366,9 +366,9 @@ public:
                    DirectionBias horizontalBias = DirectionBiasNone, DirectionBias verticalBias = DirectionBiasNone);
 
   /**
-   * @copydoc ScrollTo(const Vector3&, float, DirectionBias, DirectionBias)
+   * @copydoc ScrollTo(const Vector3&, float, AlhpaFunction, DirectionBias, DirectionBias)
    */
-  void TransformTo(const Vector3& position, float duration,
+  void TransformTo(const Vector3& position, float duration, AlphaFunction alpha,
                    DirectionBias horizontalBias = DirectionBiasNone, DirectionBias verticalBias = DirectionBiasNone);
 
   /**
@@ -382,12 +382,23 @@ public:
   void ScrollTo(const Vector3& position, float duration);
 
   /**
+   * @copydoc Toolkit::Scrollable::ScrollTo(const Vector3& position, float duration, AlphaFunction alpha)
+   */
+  void ScrollTo(const Vector3& position, float duration, AlphaFunction alpha);
+
+  /**
    * @copydoc Toolkit::ScrollView::ScrollTo(const Vector3 &position, float duration, DirectionBias horizontalBias, DirectionBias verticalBias)
    */
   void ScrollTo(const Vector3& position, float duration,
                 DirectionBias horizontalBias, DirectionBias verticalBias);
 
   /**
+   * @copydoc Toolkit::ScrollView::ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha, DirectionBias horizontalBias, DirectionBias verticalBias)
+   */
+  void ScrollTo(const Vector3& position, float duration, AlphaFunction alpha,
+                DirectionBias horizontalBias, DirectionBias verticalBias);
+
+  /**
    * @copydoc Toolkit::ScrollView::ScrollTo(unsigned int page)
    */
   void ScrollTo(unsigned int page);
index 30e95d0..5007fdc 100644 (file)
@@ -541,12 +541,23 @@ void ScrollView::ScrollTo(const Vector3 &position, float duration)
   GetImpl(*this).ScrollTo(position, duration);
 }
 
+void ScrollView::ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha)
+{
+  GetImpl(*this).ScrollTo(position, duration, alpha);
+}
+
 void ScrollView::ScrollTo(const Vector3 &position, float duration,
                           DirectionBias horizontalBias, DirectionBias verticalBias)
 {
   GetImpl(*this).ScrollTo(position, duration, horizontalBias, verticalBias);
 }
 
+void ScrollView::ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha,
+                          DirectionBias horizontalBias, DirectionBias verticalBias)
+{
+  GetImpl(*this).ScrollTo(position, duration, alpha, horizontalBias, verticalBias);
+}
+
 void ScrollView::ScrollTo(unsigned int page)
 {
   GetImpl(*this).ScrollTo(page);
index e09c8ed..5c04e61 100644 (file)
@@ -906,6 +906,21 @@ public:
   void ScrollTo(const Vector3 &position, float duration);
 
   /**
+   * @brief Scrolls View to position specified (contents will scroll to this position)
+   *
+   * Position 0,0 is the origin. Increasing X scrolls contents left, while
+   * increasing Y scrolls contents up.
+   * - If Rulers have been applied to the axes, then the contents will scroll until
+   * reaching the domain boundary.
+   * @note Contents will not snap to ruler snap points.
+   *
+   * @param[in] position The position to scroll to.
+   * @param[in] duration The duration of the animation in seconds
+   * @param[in] alpha The alpha function to use
+   */
+  void ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha);
+
+  /**
    * @brief Scrolls View to position specified (contents will scroll to this position).
    *
    * Position 0,0 is the origin. Increasing X scrolls contents left, while
@@ -926,6 +941,27 @@ public:
                 DirectionBias horizontalBias, DirectionBias verticalBias);
 
   /**
+   * @brief Scrolls View to position specified (contents will scroll to this position)
+   *
+   * Position 0,0 is the origin. Increasing X scrolls contents left, while
+   * increasing Y scrolls contents up.
+   * - If Rulers have been applied to the axes, then the contents will scroll until
+   * reaching the domain boundary.
+   * @note Contents will not snap to ruler snap points.
+   * Biasing parameters are provided such that in scenarios with 2 or 2x2 pages in
+   * wrap mode, the application developer can decide whether to scroll left or right
+   * to get to the target page
+   *
+   * @param[in] position The position to scroll to.
+   * @param[in] duration The duration of the animation in seconds
+   * @param[in] horizontalBias Whether to bias scrolling to left or right.
+   * @param[in] verticalBias Whether to bias scrolling to top or bottom.
+   * @param[in] alpha Alpha function to use
+   */
+  void ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha,
+                DirectionBias horizontalBias, DirectionBias verticalBias);
+
+  /**
    * @brief Scrolls View to page currently based on assumption that each page is
    * "(page) * ScrollViewSize.width, 0".
    *