// 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 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
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".
*
*
* @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