// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/scrollable/scrollable.h>
-namespace Dali DALI_IMPORT_API
+namespace Dali
{
namespace Toolkit
/**
* @brief Used for specifying minimum/maximum extents of a ruler.
*/
-class RulerDomain
+class DALI_IMPORT_API RulerDomain
{
public:
* It can specify whether they are traversable, where their snap
* points are and their domain.
*/
-class Ruler : public RefObject
+class DALI_IMPORT_API Ruler : public RefObject
{
public:
/// @brief The type of the ruler
/**
* @brief Concrete implementation of Ruler that has no snapping and has one single page.
*/
-class DefaultRuler : public Ruler
+class DALI_IMPORT_API DefaultRuler : public Ruler
{
public:
/**
/**
* @brief Concrete implementation of Ruler that has fixed snapping.
*/
-class FixedRuler : public Ruler
+class DALI_IMPORT_API FixedRuler : public Ruler
{
public:
/**
* @brief ScrollView contains actors that can be scrolled manually (via touch)
* or automatically.
*/
-class ScrollView : public Scrollable
+class DALI_IMPORT_API ScrollView : public Scrollable
{
public:
/// Page effect types
void SetRulerY(RulerPtr ruler);
/**
- * @brief Set Scale-X axis ruler.
- *
- * Defines how scaling horizontally is snapped, and the extent
- * (domain) to which scaling can be performed e.g. 10% to 200%
- *
- * @param[in] ruler The ruler to be used for the Scale-X axis
- *
- * @deprecated Scaling not supported
- */
- void SetRulerScaleX(RulerPtr ruler);
-
- /**
- * @brief Set Scale-Y axis ruler.
- *
- * Defines how scaling vertically is snapped, and the extent
- * (domain) to which scaling can be performed e.g. 10% to 200%
- *
- * @param[in] ruler The ruler to be used for the Scale-Y axis
- *
- * @deprecated Scaling not supported
- */
- void SetRulerScaleY(RulerPtr ruler);
-
- /**
* @brief Set Scroll's touch sensitivity.
*
* @note Unlike SetSensitive(), this determines whether this ScrollView
void SetWrapMode(bool enable);
/**
- * @deprecated
- * @brief Gets the current refresh interval in milliseconds.
- *
- * @return Current refresh interval in milliseconds
- */
- int GetRefreshInterval() const;
-
- /**
- * @deprecated
- * @brief Sets the refresh interval in milliseconds.
- *
- * The refresh interval is a notification signal
- * (SignalScrollUpdate), that is periodically fired when scrolling
- * animation is occuring.
- *
- * When set to 0. No update signals are sent.
- *
- * @param[in] milliseconds The frequency of the event in milliseconds
- */
- void SetRefreshInterval(int milliseconds);
-
- /**
* @brief Gets the current distance needed to scroll for ScrollUpdatedSignal to be emitted
*
* @return Current scroll update distance
void SetScrollPosition(const Vector3& position);
/**
- * @brief Retrieves current scroll scale.
- *
- * @returns The current scroll scale.
- *
- * @deprecated Scaling not supported
- */
- Vector3 GetCurrentScrollScale() const;
-
- /**
* @brief Retrieves current scroll page based on ScrollView
* dimensions being the size of one page, and all pages laid out in
* a grid fashion, increasing from left to right until the end of
unsigned int GetCurrentPage() const;
/**
- * @brief Transforms View to position, scale and rotation specified.
+ * @brief Scrolls View to position specified (contents will scroll to this position).
*
- * @param[in] position The position to transform to.
- * @param[in] scale The scale to transform to.
- * @param[in] rotation The rotation to transform to.
+ * 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.
*
- * @deprecated Scaling or rotation not supported, use ScrollTo(const Vector3&)
+ * @param[in] position The position to scroll to.
*/
- void TransformTo(const Vector3& position, const Vector3& scale, float rotation);
+ void ScrollTo(const Vector3 &position);
/**
- * @brief Transforms View to position, scale and rotation specified in the duration specified.
+ * @brief Scrolls View to position specified (contents will scroll to this position).
*
- * @param[in] position The position to transform to.
- * @param[in] scale The scale to transform to.
- * @param[in] rotation The rotation to transform to.
- * @param[in] duration The duration for this animation in seconds.
+ * 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.
*
- * @deprecated Scaling or rotation not supported, use ScrollTo(const Vector3&, float)
+ * @param[in] position The position to scroll to.
+ * @param[in] duration The duration of the animation in seconds
*/
- void TransformTo(const Vector3& position, const Vector3& scale, float rotation, float duration);
+ void ScrollTo(const Vector3 &position, float duration);
/**
- * @brief Scrolls View to position specified (contents will scroll to this position).
+ * @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.
* @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);
+ void ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha);
/**
* @brief Scrolls View to position specified (contents will scroll to this position).
* - 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.
*/
- void ScrollTo(const Vector3 &position, float duration);
+ void ScrollTo(const Vector3 &position, float duration,
+ DirectionBias horizontalBias, DirectionBias verticalBias);
/**
- * @brief Scrolls View to position specified (contents will scroll to this position).
+ * @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.
* @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,
+ void ScrollTo(const Vector3 &position, float duration, AlphaFunction alpha,
DirectionBias horizontalBias, DirectionBias verticalBias);
/**
bool ScrollToSnapPoint();
/**
- * @brief Scales View to (scale).
- *
- * @param[in] scale The scale factor the animate to.
- *
- * @deprecated Scaling not supported
- */
- void ScaleTo(const Vector3& scale);
-
- /**
- * @brief Scales View to (scale).
- *
- * @param[in] scale The scale factor the animate to.
- * @param[in] duration The duration of the animation in seconds.
- *
- * @deprecated Scaling not supported
- */
- void ScaleTo(const Vector3& scale, float duration);
-
- /**
* @brief Applies a constraint that will affect the children of ScrollView.
*
* @note this affects all existing and future Actors that are added to scrollview.
*
* @param[in] implementation The Control implementation.
*/
- ScrollView(Internal::ScrollView& implementation);
+ DALI_INTERNAL ScrollView(Internal::ScrollView& implementation);
/**
* @brief Allows the creation of this Control from an Internal::CustomActor pointer.
*
* @param[in] internal A pointer to the internal CustomActor.
*/
- ScrollView( Dali::Internal::CustomActor* internal );
+ explicit DALI_INTERNAL ScrollView( Dali::Internal::CustomActor* internal );
};
} // namespace Toolkit