X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fscrollable%2Fscroll-view%2Fscroll-view.h;h=76f3e20c0012a9392695701dcf52b3b895e4dde4;hb=HEAD;hp=a4545a8be39ed16de36636a2952aca4b1ae94618;hpb=6b7c807d4a72e4fae1bbcc7aa64c024f5f84944d;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h b/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h index a4545a8..76f3e20 100644 --- a/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h +++ b/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_SCROLL_VIEW_H__ -#define __DALI_TOOLKIT_SCROLL_VIEW_H__ +#ifndef DALI_TOOLKIT_SCROLL_VIEW_H +#define DALI_TOOLKIT_SCROLL_VIEW_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,10 +26,8 @@ namespace Dali { - namespace Toolkit { - namespace Internal DALI_INTERNAL { class ScrollView; @@ -40,18 +38,18 @@ class ScrollView; */ /** - * @brief How axes/rotation or scale are clamped + * @brief Enumeration for how axes/rotation or scale are clamped. * @SINCE_1_0.0 */ enum ClampState { - NotClamped, ///< The quantity isn't clamped @SINCE_1_0.0 - ClampedToMin, ///< The quantity is clamped to the min value @SINCE_1_0.0 - ClampedToMax ///< The quantity is clamped to the max value @SINCE_1_0.0 + NOT_CLAMPED, ///< The quantity isn't clamped @SINCE_1_9.28 + CLAMPED_TO_MIN, ///< The quantity is clamped to the min value @SINCE_1_9.28 + CLAMPED_TO_MAX ///< The quantity is clamped to the max value @SINCE_1_9.28 }; /** - * @brief A 2 dimensional clamp + * @brief A 2 dimensional clamp. * @SINCE_1_0.0 */ struct ClampState2D @@ -61,49 +59,47 @@ struct ClampState2D }; /** - * @brief The snap type + * @brief Enumeration for the snap type. * @SINCE_1_0.0 */ enum SnapType { - Snap, ///< Snap @SINCE_1_0.0 - Flick ///< Flick @SINCE_1_0.0 + SNAP, ///< SNAP @SINCE_1_9.28 + FLICK ///< FLICK @SINCE_1_9.28 }; /** - * @brief DirectionBias types. + * @brief Enumeration for DirectionBias types. * @SINCE_1_0.0 */ enum DirectionBias { - DirectionBiasLeft = -1, ///< Bias scroll snap to Left @SINCE_1_0.0 - DirectionBiasNone = 0, ///< Don't bias scroll snap @SINCE_1_0.0 - DirectionBiasRight = 1 ///< Bias scroll snap to Right @SINCE_1_0.0 + DIRECTION_BIAS_LEFT = -1, ///< Bias scroll snap to Left @SINCE_1_9.28 + DIRECTION_BIAS_NONE = 0, ///< Don't bias scroll snap @SINCE_1_9.28 + DIRECTION_BIAS_RIGHT = 1 ///< Bias scroll snap to Right @SINCE_1_9.28 }; /** * @brief Used for specifying minimum/maximum extents of a ruler. * @SINCE_1_0.0 */ -class DALI_IMPORT_API RulerDomain +class DALI_TOOLKIT_API RulerDomain { public: - /** * @brief Creates Ruler domain allowing a point to traverse between min and max extents. * * @SINCE_1_0.0 * @param[in] min Minimum extent (point cannot traverse less than this) * @param[in] max Maximum extent (point cannot traverse greater than this) - * @param[in] enabled Whether domain has been enabled or not. + * @param[in] enabled Whether domain has been enabled or not */ explicit RulerDomain(float min, float max, bool enabled = true); public: - - float min; ///< Minimum extent (point cannot traverse less than this) - float max; ///< Maximum extent (point cannot traverse greater than this) - bool enabled; ///< Whether domain has been enabled or not. + float min; ///< Minimum extent (point cannot traverse less than this) + float max; ///< Maximum extent (point cannot traverse greater than this) + bool enabled; ///< Whether domain has been enabled or not. /** * @brief Clamps value (x) from (min) to (max). @@ -112,10 +108,10 @@ public: * subject is not a point but a line to that should be clamped. * * @SINCE_1_0.0 - * @param[in] x X point to be clamped between (min) and (max) extents. - * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @return The clamped value. + * @param[in] x X point to be clamped between (min) and (max) extents + * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @return The clamped value */ float Clamp(float x, float length = 0.0f, float scale = 1.0f) const; @@ -126,47 +122,49 @@ public: * subject is not a point but a line to that should be clamped. * * @SINCE_1_0.0 - * @param[in] x X point to be clamped between (min) and (max) extents. - * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @param[out] clamped Whether clamping occured and which size (None, Min or Max) - * @return The clamped value. + * @param[in] x X point to be clamped between (min) and (max) extents + * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @param[out] clamped Whether clamping occurred and which size (None, Min or Max) + * @return The clamped value */ - float Clamp(float x, float length, float scale, ClampState &clamped) const; + float Clamp(float x, float length, float scale, ClampState& clamped) const; /** * @brief Returns (max-min) size of ruler. * * @SINCE_1_0.0 - * @return The size of the ruler from min to max. + * @return The size of the ruler from min to max */ float GetSize() const; - }; // Forward declare future extension interface class RulerExtension; /** - * @brief Abstract class to define scroll axes. + * @brief Abstracts class to define scroll axes. * - * It can specify whether they are traversable, where their snap - * points are and their domain. + * It can specify whether they are traversable, + * where their snap points are and their domain. * @SINCE_1_0.0 */ -class DALI_IMPORT_API Ruler : public RefObject +class DALI_TOOLKIT_API Ruler : public RefObject { public: - /// @brief The type of the ruler - enum RulerType { - Fixed, ///< A fixed ruler @SINCE_1_0.0 - Free ///< A free ruler @SINCE_1_0.0 + /** + * @brief Enumeration for the type of the ruler. + * @SINCE_1_0.0 + */ + enum RulerType + { + FIXED, ///< A fixed ruler @SINCE_1_9.28 + FREE ///< A free ruler @SINCE_1_9.28 }; public: - /** - * @brief Constructs ruler, default enabled, with limitless domain. + * @brief Constructs ruler, enabled by default, with limitless domain. * @SINCE_1_0.0 */ Ruler(); @@ -175,7 +173,7 @@ public: * @brief Snaps (x) in accordance to the ruler settings. * * @SINCE_1_0.0 - * @param[in] x The input value on the ruler to be snapped. + * @param[in] x The input value on the ruler to be snapped * @param[in] bias (optional) The biasing employed for snapping * 0 floor input (floor x) "Used for Flick Left" * 0.5 round input (floor x + 0.5) "Used for Release" @@ -197,9 +195,9 @@ public: * @param[in] page The page index * @param[out] volume The overflow volume when the page exceeds the domain (wrap must be enabled) * @param[in] wrap Enable wrap mode - * @return The position representing this page point. + * @return The position representing this page point */ - virtual float GetPositionFromPage(unsigned int page, unsigned int &volume, bool wrap) const = 0; + virtual float GetPositionFromPage(unsigned int page, unsigned int& volume, bool wrap) const = 0; /** * @brief Returns page from position, based on whatever the ruler @@ -210,7 +208,7 @@ public: * @SINCE_1_0.0 * @param[in] position The position on the domain * @param[in] wrap Enable wrap mode - * @return The page where this position resides. + * @return The page where this position resides */ virtual unsigned int GetPageFromPosition(float position, bool wrap) const = 0; @@ -218,7 +216,7 @@ public: * @brief Returns the total number of pages within this Ruler. * * @SINCE_1_0.0 - * @return The number of pages in the Ruler. + * @return The number of pages in the Ruler */ virtual unsigned int GetTotalPages() const = 0; @@ -228,15 +226,17 @@ public: * @SINCE_1_0.0 * @return The extension interface of the Ruler */ - virtual RulerExtension* GetExtension() { return NULL; } + virtual RulerExtension* GetExtension() + { + return NULL; + } public: - /** * @brief Gets the ruler type. * * @SINCE_1_0.0 - * @return The ruler type. + * @return The ruler type */ Ruler::RulerType GetType() const; @@ -261,20 +261,20 @@ public: void Disable(); /** - * @brief Sets Domain. + * @brief Sets the Domain. * * @SINCE_1_0.0 - * @param[in] domain Ruler domain object. + * @param[in] domain Ruler domain object */ void SetDomain(RulerDomain domain); /** - * @brief Gets Domain. + * @brief Gets the Domain. * * @SINCE_1_0.0 * @return The domain */ - const RulerDomain &GetDomain() const; + const RulerDomain& GetDomain() const; /** * @brief Disables Domain (minimum/maximum extents for this axis). @@ -289,14 +289,13 @@ public: * subject is not a point but a line that should be clamped. * * @SINCE_1_0.0 - * @param[in] x X point to be clamped between (min) and (max) extents. - * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @return The clamped value. + * @param[in] x X point to be clamped between (min) and (max) extents + * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @return The clamped value */ float Clamp(float x, float length = 0.0f, float scale = 1.0f) const; - /** * @brief Clamps value (x) from (min) to (max). * @@ -304,28 +303,28 @@ public: * subject is not a point but a line to that should be clamped. * * @SINCE_1_0.0 - * @param[in] x X point to be clamped between (min) and (max) extents. - * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @param[out] clamped Whether clamping occured and which size (None, Min or Max) - * @return The clamped value. + * @param[in] x X point to be clamped between (min) and (max) extents + * @param[in] length (optional) The Length of the line from (x) to (x + length) to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @param[out] clamped Whether clamping occurred and which size (None, Min or Max) + * @return The clamped value */ - float Clamp(float x, float length, float scale, ClampState &clamped) const; + float Clamp(float x, float length, float scale, ClampState& clamped) const; /** * @brief Snaps and Clamps (x) in accordance to ruler settings. * * @SINCE_1_0.0 - * @param[in] x value to be snapped in accordance to ruler snap value, - * and clamped in accordance to the ruler's domain (if set). + * @param[in] x X value to be snapped in accordance to ruler snap value, + * and clamped in accordance to the ruler's domain (if set) * @param[in] bias (optional) The biasing employed for snapping * 0 floor input (floor x) "Used for Flick Left" * 0.5 round input (floor x + 0.5) "Used for Release" * 1 ceil input (floor x + 1.0) "Used for Flick Right" * @param[in] length (optional) The Length of the line from (x) to (x + length) - * to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @return the clamped value after snapping + * to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @return The clamped value after snapping */ float SnapAndClamp(float x, float bias = 0.5f, float length = 0.0f, float scale = 1.0f) const; @@ -333,22 +332,21 @@ public: * @brief Snaps and Clamps (x) in accordance to ruler settings. * * @SINCE_1_0.0 - * @param[in] x value to be snapped in accordance to ruler snap value, - * and clamped in accordance to the ruler's domain (if set). + * @param[in] x X value to be snapped in accordance to ruler snap value, + * and clamped in accordance to the ruler's domain (if set) * @param[in] bias (optional) The biasing employed for snapping * 0 floor input (floor x) "Used for Flick Left" * 0.5 round input (floor x + 0.5) "Used for Release" * 1 ceil input (floor x + 1.0) "Used for Flick Right" * @param[in] length (optional) The Length of the line from (x) to (x + length) - * to be clamped. - * @param[in] scale Scaling parameter which treats domain as scaled in calculations. - * @param[out] clamped Whether clamping occured and which size (None, Min or Max) + * to be clamped + * @param[in] scale Scaling parameter which treats domain as scaled in calculations + * @param[out] clamped Whether clamping occurred and which size (None, Min or Max) * @return The clamped value after snapping */ - float SnapAndClamp(float x, float bias, float length, float scale, ClampState &clamped) const; + float SnapAndClamp(float x, float bias, float length, float scale, ClampState& clamped) const; protected: - /** * @brief Destructor - A reference counted object may only be deleted by calling Unreference(). * @SINCE_1_0.0 @@ -356,11 +354,9 @@ protected: virtual ~Ruler(); protected: - - RulerType mType; ///< Type of Ruler (Fixed or Free). - bool mEnabled; ///< If the ruler is enabled. - RulerDomain mDomain; ///< The domain of the ruler. - + RulerType mType; ///< Type of Ruler (FIXED or FREE). + bool mEnabled; ///< If the ruler is enabled. + RulerDomain mDomain; ///< The domain of the ruler. }; typedef IntrusivePtr RulerPtr; ///< Pointer to Dali::Toolkit::Ruler object @SINCE_1_0.0 @@ -369,7 +365,7 @@ typedef IntrusivePtr RulerPtr; ///< Pointer to Dali::Toolkit::Ruler objec * @brief Concrete implementation of Ruler that has no snapping and has one single page. * @SINCE_1_0.0 */ -class DALI_IMPORT_API DefaultRuler : public Ruler +class DALI_TOOLKIT_API DefaultRuler : public Ruler { public: /** @@ -381,58 +377,58 @@ public: /** * @copydoc Toolkit::Ruler::Snap */ - virtual float Snap(float x, float bias) const; + float Snap(float x, float bias) const override; /** * @copydoc Toolkit::Ruler::GetPositionFromPage */ - virtual float GetPositionFromPage(unsigned int page, unsigned int &volume, bool wrap) const; + float GetPositionFromPage(unsigned int page, unsigned int& volume, bool wrap) const override; /** * @copydoc Toolkit::Ruler::GetPageFromPosition */ - virtual unsigned int GetPageFromPosition(float position, bool wrap) const; + unsigned int GetPageFromPosition(float position, bool wrap) const override; /** * @copydoc Toolkit::Ruler::GetTotalPages */ - virtual unsigned int GetTotalPages() const; + unsigned int GetTotalPages() const override; }; /** * @brief Concrete implementation of Ruler that has fixed snapping. * @SINCE_1_0.0 */ -class DALI_IMPORT_API FixedRuler : public Ruler +class DALI_TOOLKIT_API FixedRuler : public Ruler { public: /** - * @brief Constructor + * @brief Constructor. * * @SINCE_1_0.0 - * @param[in] spacing The spacing between each interval on this ruler. + * @param[in] spacing The spacing between each interval on this ruler */ FixedRuler(float spacing = 1.0f); /** * @copydoc Toolkit::Ruler::Snap */ - virtual float Snap(float x, float bias) const; + float Snap(float x, float bias) const override; /** * @copydoc Toolkit::Ruler::GetPositionFromPage */ - virtual float GetPositionFromPage(unsigned int page, unsigned int &volume, bool wrap) const; + float GetPositionFromPage(unsigned int page, unsigned int& volume, bool wrap) const override; /** * @copydoc Toolkit::Ruler::GetPageFromPosition */ - virtual unsigned int GetPageFromPosition(float position, bool wrap) const; + unsigned int GetPageFromPosition(float position, bool wrap) const override; /** * @copydoc Toolkit::Ruler::GetTotalPages */ - virtual unsigned int GetTotalPages() const; + unsigned int GetTotalPages() const override; private: float mSpacing; ///< The spacing between each interval @@ -451,90 +447,269 @@ class ScrollView; * | snap-started | @ref SnapStartedSignal() | * @SINCE_1_0.0 */ -class DALI_IMPORT_API ScrollView : public Scrollable +class DALI_TOOLKIT_API ScrollView : public Scrollable { - public: - /** - * @brief Clamp signal event's data + * @brief Clamps signal event's data. * @SINCE_1_0.0 */ struct ClampEvent { - ClampState2D scale; ///< Clamp information for scale axes - ClampState2D position; ///< Clamp information for position axes - ClampState rotation; ///< Clamp information for rotation + ClampState2D scale; ///< Clamp information for scale axes + ClampState2D position; ///< Clamp information for position axes + ClampState rotation; ///< Clamp information for rotation }; /** - * @brief Snap signal event's data. + * @brief Snaps signal event's data. * @SINCE_1_0.0 */ struct SnapEvent { - SnapType type; ///< Current snap commencing - Vector2 position; ///< Target snap position - float duration; ///< Duration of snap animation. + SnapType type; ///< Current snap commencing + Vector2 position; ///< Target snap position + float duration; ///< Duration of snap animation. }; /** - * @brief The start and end property ranges for this control. + * @brief Enumeration for the start and end property ranges for this control. * @SINCE_1_0.0 */ enum PropertyRange { - PROPERTY_START_INDEX = Toolkit::Scrollable::PROPERTY_END_INDEX + 1, ///< @SINCE_1_1.18 - PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000, ///< Reserve property indices, @SINCE_1_1.18 + PROPERTY_START_INDEX = Toolkit::Scrollable::PROPERTY_END_INDEX + 1, ///< @SINCE_1_1.18 + PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000, ///< Reserve property indices, @SINCE_1_1.18 ANIMATABLE_PROPERTY_START_INDEX = Toolkit::Scrollable::ANIMATABLE_PROPERTY_END_INDEX + 1, - ANIMATABLE_PROPERTY_END_INDEX = ANIMATABLE_PROPERTY_START_INDEX + 1000 ///< Reserve animatable property indices @SINCE_1_0.0 + ANIMATABLE_PROPERTY_END_INDEX = ANIMATABLE_PROPERTY_START_INDEX + 1000 ///< Reserve animatable property indices @SINCE_1_0.0 }; /** - * @brief An enumeration of properties belonging to the ScrollView class. + * @brief Enumeration for the instance of properties belonging to the ScrollView class. * @SINCE_1_0.0 */ struct Property { + /** + * @brief Enumeration for the instance of properties belonging to the ScrollView class. + * @SINCE_1_0.0 + */ enum { - // Event side properties - WRAP_ENABLED = PROPERTY_START_INDEX, ///< Property, name "wrapEnabled", @see SetWrapMode(), type bool, @SINCE_1_1.18 - PANNING_ENABLED, ///< Property, name "panningEnabled", @see SetScrollSensitive(), type bool, @SINCE_1_1.18 - AXIS_AUTO_LOCK_ENABLED, ///< Property, name "axisAutoLockEnabled", @see SetAxisAutoLock(), type bool, @SINCE_1_1.18 - WHEEL_SCROLL_DISTANCE_STEP, ///< Property, name "wheelScrollDistanceStep", @see SetWheelScrollDistanceStep(), type Vector2, @SINCE_1_1.18 - - SCROLL_POSITION = ANIMATABLE_PROPERTY_START_INDEX, ///< Property, name "scrollPosition", type Vector2 @SINCE_1_0.0 - SCROLL_PRE_POSITION, ///< Property, name "scrollPrePosition", type Vector2 @SINCE_1_0.0 - SCROLL_PRE_POSITION_X, ///< Property, name "scrollPrePositionX", type float @SINCE_1_0.0 - SCROLL_PRE_POSITION_Y, ///< Property, name "scrollPrePositionY", type float @SINCE_1_0.0 - SCROLL_PRE_POSITION_MAX, ///< Property, name "scrollPrePositionMax", type Vector2 @SINCE_1_0.0 - SCROLL_PRE_POSITION_MAX_X, ///< Property, name "scrollPrePositionMaxX", type float @SINCE_1_0.0 - SCROLL_PRE_POSITION_MAX_Y, ///< Property, name "scrollPrePositionMaxY", type float @SINCE_1_0.0 - OVERSHOOT_X, ///< Property, name "overshootX", type float @SINCE_1_0.0 - OVERSHOOT_Y, ///< Property, name "overshootY", type float @SINCE_1_0.0 - SCROLL_FINAL, ///< Property, name "scrollFinal", type Vector2 @SINCE_1_0.0 - SCROLL_FINAL_X, ///< Property, name "scrollFinalX", type float @SINCE_1_0.0 - SCROLL_FINAL_Y, ///< Property, name "scrollFinalY", type float @SINCE_1_0.0 - WRAP, ///< Property, name "wrap", type bool @SINCE_1_0.0 - PANNING, ///< Property, name "panning", type bool @SINCE_1_0.0 - SCROLLING, ///< Property, name "scrolling", type bool @SINCE_1_0.0 - SCROLL_DOMAIN_SIZE, ///< Property, name "scrollDomainSize", type Vector2 @SINCE_1_0.0 - SCROLL_DOMAIN_SIZE_X, ///< Property, name "scrollDomainSizeX", type float @SINCE_1_0.0 - SCROLL_DOMAIN_SIZE_Y, ///< Property, name "scrollDomainSizeY", type float @SINCE_1_0.0 - SCROLL_DOMAIN_OFFSET, ///< Property, name "scrollDomainOffset", type Vector2 @SINCE_1_0.0 - SCROLL_POSITION_DELTA, ///< Property, name "scrollPositionDelta", type Vector2 @SINCE_1_0.0 - START_PAGE_POSITION ///< Property, name "startPagePosition", type Vector3 @SINCE_1_0.0 + /////////////////////////////////////////////////////////////////////////////// + // Event side (non-animatable) properties + /////////////////////////////////////////////////////////////////////////////// + + /** + * @brief Whether wrapping is enabled. + * @details Name "wrapEnabled", type Property::BOOLEAN. + * @SINCE_1_1.18 + * @see SetWrapMode() + */ + WRAP_ENABLED = PROPERTY_START_INDEX, + + /** + * @brief Whether panning is enabled. + * @details Name "panningEnabled", type Property::BOOLEAN. + * @SINCE_1_1.18 + * @see SetScrollSensitive() + */ + PANNING_ENABLED, + + /** + * @brief Whether the Axis Auto Lock mode for panning within the ScrollView is enabled. + * @details Name "axisAutoLockEnabled", type Property::BOOLEAN. + * @SINCE_1_1.18 + * @see SetAxisAutoLock() + */ + AXIS_AUTO_LOCK_ENABLED, + + /** + * @brief The step of scroll distance in actor coordinates for each wheel event received in free panning mode. + * @details Name "wheelScrollDistanceStep", type Property::VECTOR2. + * @SINCE_1_1.18 + * @see SetWheelScrollDistanceStep() + */ + WHEEL_SCROLL_DISTANCE_STEP, + + /** + * @brief The scroll mode. + * @details Name "scrollMode", type Property::MAP. + * The scroll mode map is a frontend for the Ruler helper class, containing the following keys: + * + * | %Property Name | Type | Required | Description | + * |----------------------|----------|----------|---------------------------------------------------------------------------------------------------------------------------------------| + * | xAxisScrollEnabled | BOOLEAN | No | True if the content can be scrolled in X axis or false if not. | + * | xAxisSnapToInterval | FLOAT | No | When set, causes scroll view to snap to multiples of the value of the interval in the X axis while flicking. (by default no snapping) | + * | xAxisScrollBoundary | FLOAT | No | When set, causes scroll view unable to scroll beyond the value of the boundary in the X axis (by default no boundary) | + * | yAxisScrollEnabled | BOOLEAN | No | True if the content can be scrolled in Y axis or false if not. | + * | yAxisSnapToInterval | FLOAT | No | When set, causes scroll view to snap to multiples of the value of the interval in the Y axis while flicking. (by default no snapping) | + * | yAxisScrollBoundary | FLOAT | No | When set, causes scroll view unable to scroll beyond the value of the boundary in the Y axis (by default no boundary) | + * + * Alternatively, one can use the keys defined in the Dali::Toolkit::ScrollMode::Type enumeration. + * @SINCE_1_2.60 + */ + SCROLL_MODE, + + /////////////////////////////////////////////////////////////////////////////// + // Animatable Properties + /////////////////////////////////////////////////////////////////////////////// + + /** + * @brief The current scroll position. + * @details Name "scrollPosition", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_POSITION = ANIMATABLE_PROPERTY_START_INDEX, + + /** + * @brief The position before we set the clamp at scroll boundaries. + * @details Name "scrollPrePosition", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION, + + /** + * @brief The X component of SCROLL_PRE_POSITION. + * @details Name "scrollPrePositionX", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION_X, + + /** + * @brief The Y component of SCROLL_PRE_POSITION. + * @details Name "scrollPrePositionY", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION_Y, + + /** + * @brief The maximum value that SCROLL_PRE_POSITION can be. + * @details Name "scrollPrePositionMax", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION_MAX, + + /** + * @brief The X component of SCROLL_PRE_POSITION_MAX. + * @details Name "scrollPrePositionMaxX", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION_MAX_X, + + /** + * @brief The Y component of SCROLL_PRE_POSITION_MAX. + * @details Name "scrollPrePositionMaxY", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_PRE_POSITION_MAX_Y, + + /** + * @brief The amount that we can scroll beyond the boundary along the X axis. + * @details Name "overshootX", type Property::FLOAT. + * @SINCE_1_0.0 + */ + OVERSHOOT_X, + + /** + * @brief The amount that we can scroll beyond the boundary along the Y axis. + * @details Name "overshootY", type Property::FLOAT. + * @SINCE_1_0.0 + */ + OVERSHOOT_Y, + + /** + * @brief The position after the overshoot value has been considered in the calculation. + * @details Name "scrollFinal", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_FINAL, + + /** + * @brief The X component of SCROLL_FINAL. + * @details Name "scrollFinalX", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_FINAL_X, + + /** + * @brief The Y component of SCROLL_FINAL. + * @details Name "scrollFinalY", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_FINAL_Y, + + /** + * @brief Whether scrolling wraps. + * @details Name "wrap", type Property::BOOLEAN. + * @SINCE_1_0.0 + */ + WRAP, + + /** + * @brief Whether we are currently panning. + * @details Name "panning", type Property::BOOLEAN. + * @SINCE_1_0.0 + */ + PANNING, + + /** + * @brief Whether we are currently scrolling. + * @details Name "scrolling", type Property::BOOLEAN. + * @SINCE_1_0.0 + */ + SCROLLING, + + /** + * @brief The size of the scrolling domain. + * @details Name "scrollDomainSize", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_DOMAIN_SIZE, + + /** + * @brief The X component of SCROLL_DOMAIN_SIZE. + * @details Name "scrollDomainSizeX", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_DOMAIN_SIZE_X, + + /** + * @brief The Y component of SCROLL_DOMAIN_SIZE. + * @details Name "scrollDomainSizeY", type Property::FLOAT. + * @SINCE_1_0.0 + */ + SCROLL_DOMAIN_SIZE_Y, + + /** + * @brief The offset of the scroll domain. + * @details Name "scrollDomainOffset", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_DOMAIN_OFFSET, + + /** + * @brief The delta in the position when scrolling. + * @details Name "scrollPositionDelta", type Property::VECTOR2. + * @SINCE_1_0.0 + */ + SCROLL_POSITION_DELTA, + + /** + * @brief The starting page position. + * @details Name "startPagePosition", type Property::VECTOR3. + * @SINCE_1_0.0 + */ + START_PAGE_POSITION, }; }; // Typedefs - typedef Signal< void ( const SnapEvent& ) > SnapStartedSignalType; ///< SnapStarted signal type @SINCE_1_0.0 + typedef Signal SnapStartedSignalType; ///< SnapStarted signal type @SINCE_1_0.0 public: - /** * @brief Creates an empty ScrollView handle. * @SINCE_1_0.0 @@ -547,9 +722,17 @@ public: * Creates another handle that points to the same real object. * * @SINCE_1_0.0 - * @param[in] handle to copy from + * @param[in] handle Handle to copy from + */ + ScrollView(const ScrollView& handle); + + /** + * @brief Move constructor + * @SINCE_1_9.23 + * + * @param[in] rhs A reference to the moved handle */ - ScrollView( const ScrollView& handle ); + ScrollView(ScrollView&& rhs) noexcept; /** * @brief Assignment operator. @@ -559,10 +742,19 @@ public: * @param[in] handle The handle to copy from * @return A reference to this */ - ScrollView& operator=( const ScrollView& handle ); + ScrollView& operator=(const ScrollView& handle); /** - * @brief Destructor + * @brief Move assignment + * @SINCE_1_9.23 + * + * @param[in] rhs A reference to the moved handle + * @return A reference to this + */ + ScrollView& operator=(ScrollView&& rhs) noexcept; + + /** + * @brief Destructor. * * This is non-virtual since derived Handle types must not contain data or virtual methods. * @SINCE_1_0.0 @@ -570,56 +762,55 @@ public: ~ScrollView(); /** - * @brief Create an initialized ScrollView. + * @brief Creates an initialized ScrollView. * * @SINCE_1_0.0 - * @return A handle to a newly allocated Dali resource. + * @return A handle to a newly allocated Dali resource */ static ScrollView New(); /** - * @brief Downcast a handle to ScrollView handle. + * @brief Downcasts a handle to ScrollView handle. * - * If handle points to a ScrollView the downcast produces valid - * handle. If not the returned handle is left uninitialized. + * If handle points to a ScrollView, the downcast produces valid handle. + * If not, the returned handle is left uninitialized. * * @SINCE_1_0.0 * @param[in] handle Handle to an object * @return A handle to a ScrollView or an uninitialized handle */ - static ScrollView DownCast( BaseHandle handle ); + static ScrollView DownCast(BaseHandle handle); public: - /** - * @brief Get snap-animation's AlphaFunction. + * @brief Gets snap-animation's AlphaFunction. * * @SINCE_1_0.0 - * @return Current easing alpha function of the snap animation. + * @return Current easing alpha function of the snap animation */ AlphaFunction GetScrollSnapAlphaFunction() const; /** - * @brief Set snap-animation's AlphaFunction. + * @brief Sets snap-animation's AlphaFunction. * * @SINCE_1_0.0 - * @param[in] alpha Easing alpha function of the snap animation. + * @param[in] alpha Easing alpha function of the snap animation */ void SetScrollSnapAlphaFunction(AlphaFunction alpha); /** - * @brief Get flick-animation's AlphaFunction. + * @brief Gets flick-animation's AlphaFunction. * * @SINCE_1_0.0 - * @return Current easing alpha function of the flick animation. + * @return Current easing alpha function of the flick animation */ AlphaFunction GetScrollFlickAlphaFunction() const; /** - * @brief Set flick-animation's AlphaFunction. + * @brief Sets flick-animation's AlphaFunction. * * @SINCE_1_0.0 - * @param[in] alpha Easing alpha function of the flick animation. + * @param[in] alpha Easing alpha function of the flick animation */ void SetScrollFlickAlphaFunction(AlphaFunction alpha); @@ -629,7 +820,7 @@ public: * This animation occurs when the user drags, and releases. * * @SINCE_1_0.0 - * @return The time in seconds for the animation to take. + * @return The time in seconds for the animation to take */ float GetScrollSnapDuration() const; @@ -639,7 +830,7 @@ public: * This animation occurs when the user drags, and releases. * * @SINCE_1_0.0 - * @param[in] time The time in seconds for the animation to take. + * @param[in] time The time in seconds for the animation to take */ void SetScrollSnapDuration(float time); @@ -649,7 +840,7 @@ public: * This animation occurs when the user flicks scroll view. * * @SINCE_1_0.0 - * @return The time in seconds for the animation to take. + * @return The time in seconds for the animation to take */ float GetScrollFlickDuration() const; @@ -659,12 +850,12 @@ public: * This animation occurs when the user flicks scroll view. * * @SINCE_1_0.0 - * @param[in] time The time in seconds for the animation to take. + * @param[in] time The time in seconds for the animation to take */ void SetScrollFlickDuration(float time); /** - * @brief Set X axis ruler. + * @brief Sets X axis ruler. * * Defines how scrolling horizontally is snapped, and * the boundary (domain) in which the ScrollView can pan. @@ -675,7 +866,7 @@ public: void SetRulerX(RulerPtr ruler); /** - * @brief Set Y axis ruler. + * @brief Sets Y axis ruler. * * Defines how scrolling vertically is snapped, and the boundary * (domain) in which the ScrollView can pan. @@ -686,18 +877,18 @@ public: void SetRulerY(RulerPtr ruler); /** - * @brief Set scroll sensibility of pan gesture. + * @brief Sets scroll sensitivity of pan gesture. * * @SINCE_1_0.0 - * @param[in] sensitive true to enable scroll, false to disable scrolling - * @note Unlike Actor::SetSensitive(), this determines whether this ScrollView - * should react (e.g. pan), without disrupting the sensitivity of it's children. + * @param[in] sensitive @c true to enable scroll, @c false to disable scrolling + * @note Unlike Actor::Property::SENSITIVE, this determines whether this ScrollView + * should react (e.g. pan), without disrupting the sensitivity of its children. * */ void SetScrollSensitive(bool sensitive); /** - * @brief Set maximum overshoot amount. + * @brief Sets maximum overshoot amount. * * The final overshoot value is within 0.0f to 1.0f, but the maximum * overshoot is in pixels (e.g. if you scroll 75 pixels beyond the @@ -711,19 +902,19 @@ public: void SetMaxOvershoot(float overshootX, float overshootY); /** - * @brief Set Snap Overshoot animation's AlphaFunction. + * @brief Sets Snap Overshoot animation's AlphaFunction. * * @SINCE_1_0.0 - * @param[in] alpha Easing alpha function of the overshoot snap animation. + * @param[in] alpha Easing alpha function of the overshoot snap animation */ void SetSnapOvershootAlphaFunction(AlphaFunction alpha); /** - * @brief Set Snap Overshoot animation's Duration. + * @brief Sets Snap Overshoot animation's Duration. * * @SINCE_1_0.0 - * @param[in] duration The duration of the overshoot snap animation. - * @note Set duration to 0 seconds, to disable Animation. + * @param[in] duration The duration of the overshoot snap animation + * @note Set duration to 0 seconds to disable Animation. * */ void SetSnapOvershootDuration(float duration); @@ -746,7 +937,7 @@ public: * When enabled, the ScrollView contents are wrapped over the X/Y Domain. * * @SINCE_1_0.0 - * @param[in] enable Enables (true), or disables (false) Wrap Mode. + * @param[in] enable Enables (true), or disables (false) Wrap Mode * @note You must apply a position constraint that causes Wrapping * to all children. * @@ -776,7 +967,7 @@ public: * @brief Returns state of Axis Auto Lock mode. * * @SINCE_1_0.0 - * @return Whether Axis Auto Lock mode has been enabled or not. + * @return Whether Axis Auto Lock mode has been enabled or not */ bool GetAxisAutoLock() const; @@ -788,7 +979,7 @@ public: * only panning, until the pan gesture has completed. * * @SINCE_1_0.0 - * @param[in] enable Enables (true), or disables (false) AxisAutoLock mode. + * @param[in] enable Enables (true), or disables (false) AxisAutoLock mode */ void SetAxisAutoLock(bool enable); @@ -797,7 +988,7 @@ public: * should be locked to the Horizontal or Vertical axis. * * @SINCE_1_0.0 - * @return The gradient, a value between 0.0 and 1.0f. + * @return The gradient, a value between 0.0 and 1.0f */ float GetAxisAutoLockGradient() const; @@ -805,13 +996,13 @@ public: * @brief Sets the gradient threshold at which a panning gesture should be locked to the * Horizontal or Vertical axis. * - * By default this is 0.36 (0.36:1) which means angles less than 20 + * By default, this is 0.36 (0.36:1) which means angles less than 20 * degrees to an axis will lock to that axis. * * @SINCE_1_0.0 * @param[in] gradient A value between 0.0 and 1.0 (auto-lock for all angles) * @note Specifying a value of 1.0 (the maximum value accepted) indicates that - * all panning gestures will auto-lock. Either to the horizontal or vertical axis. + * all panning gestures will auto-lock either to the horizontal or vertical axis. * */ void SetAxisAutoLockGradient(float gradient); @@ -823,7 +1014,7 @@ public: * This is a value in stage-diagonals per second^2. * stage-diagonal = Length( stage.width, stage.height ) * @SINCE_1_0.0 - * @return Friction coefficient is returned. + * @return Friction coefficient is returned */ float GetFrictionCoefficient() const; @@ -838,7 +1029,7 @@ public: * Friction coefficient of 1.0 means the swipe velocity will * reduce by 1.0 * 933 pixels/sec^2. * @SINCE_1_0.0 - * @param[in] friction Friction coefficient, must be greater than 0.0 (default = 1.0) + * @param[in] friction Friction coefficient must be greater than 0.0 (default = 1.0) */ void SetFrictionCoefficient(float friction); @@ -850,7 +1041,7 @@ public: * flick velocity to determine the actual velocity at * which to move the scrolling area. * @SINCE_1_0.0 - * @return The flick speed coefficient is returned. + * @return The flick speed coefficient is returned */ float GetFlickSpeedCoefficient() const; @@ -862,7 +1053,7 @@ public: * flick velocity to determine the actual velocity at * which to move the scrolling area. * @SINCE_1_0.0 - * @param[in] speed The flick speed coefficient (default = 1.0). + * @param[in] speed The flick speed coefficient (default = 1.0) */ void SetFlickSpeedCoefficient(float speed); @@ -877,12 +1068,12 @@ public: /** * @brief Sets the minimum pan distance required for a flick in pixels. * - * Takes a Vector2 containing separate x and y values. As long as the pan distance exceeds one of these axes a flick will be allowed. + * Takes a Vector2 containing separate x and y values. As long as the pan distance exceeds one of these axes, a flick will be allowed. * * @SINCE_1_0.0 * @param[in] distance The minimum pan distance for a flick */ - void SetMinimumDistanceForFlick( const Vector2& distance ); + void SetMinimumDistanceForFlick(const Vector2& distance); /** * @brief Returns the minimum pan speed required for a flick gesture in pixels per second. @@ -898,7 +1089,7 @@ public: * @SINCE_1_0.0 * @param[in] speed The minimum pan speed for a flick */ - void SetMinimumSpeedForFlick( float speed ); + void SetMinimumSpeedForFlick(float speed); /** * @brief Gets the maximum flick speed setting for ScrollView when @@ -931,7 +1122,7 @@ public: * each wheel event received in free panning mode. * * @SINCE_1_0.0 - * @return The step of scroll distance(pixel) in X and Y axes. + * @return The step of scroll distance(pixel) in X and Y axes */ Vector2 GetWheelScrollDistanceStep() const; @@ -940,7 +1131,7 @@ public: * each wheel event received in free panning mode. * * @SINCE_1_0.0 - * @param[in] step The step of scroll distance(pixel) in X and Y axes. + * @param[in] step The step of scroll distance(pixel) in X and Y axes * * @note If snap points are defined in the rulers, it will always * scroll to the next snap point towards the scroll direction while @@ -952,8 +1143,8 @@ public: /** * @brief Retrieves current scroll position. * - * @returns The current scroll position. * @SINCE_1_0.0 + * @return The current scroll position */ Vector2 GetCurrentScrollPosition() const; @@ -966,7 +1157,7 @@ public: * @SINCE_1_0.0 * @note Pages start from 0 as the first page, not 1. * - * @returns The Current page. + * @return The Current page */ unsigned int GetCurrentPage() const; @@ -978,7 +1169,7 @@ public: * - If Rulers have been applied to the axes, then the contents will scroll until * reaching the domain boundary. * @SINCE_1_0.0 - * @param[in] position The position to scroll to. + * @param[in] position The position to scroll to * @note Contents will not snap to ruler snap points. * */ @@ -992,7 +1183,7 @@ public: * - If Rulers have been applied to the axes, then the contents will scroll until * reaching the domain boundary. * @SINCE_1_0.0 - * @param[in] position The position to scroll to. + * @param[in] position The position to scroll to * @param[in] duration The duration of the animation in seconds * @note Contents will not snap to ruler snap points. * @@ -1007,7 +1198,7 @@ public: * - If Rulers have been applied to the axes, then the contents will scroll until * reaching the domain boundary. * @SINCE_1_0.0 - * @param[in] position The position to scroll to. + * @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 * @note Contents will not snap to ruler snap points. @@ -1023,18 +1214,17 @@ public: * - If Rulers have been applied to the axes, then the contents will scroll until * reaching the domain boundary. * @SINCE_1_0.0 - * @param[in] position The position to scroll to. + * @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] horizontalBias Whether to bias scrolling to left or right + * @param[in] verticalBias Whether to bias scrolling to top or bottom * @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. * */ - void ScrollTo(const Vector2& position, float duration, - DirectionBias horizontalBias, DirectionBias verticalBias); + void ScrollTo(const Vector2& position, float duration, DirectionBias horizontalBias, DirectionBias verticalBias); /** * @brief Scrolls View to position specified (contents will scroll to this position). @@ -1044,10 +1234,10 @@ public: * - If Rulers have been applied to the axes, then the contents will scroll until * reaching the domain boundary. * @SINCE_1_0.0 - * @param[in] position The position to scroll to. + * @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] 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 * @note Contents will not snap to ruler snap points. * Biasing parameters are provided such that in scenarios with 2 or 2x2 pages in @@ -1055,15 +1245,14 @@ public: * to get to the target page. * */ - void ScrollTo(const Vector2& position, float duration, AlphaFunction alpha, - DirectionBias horizontalBias, DirectionBias verticalBias); + void ScrollTo(const Vector2& 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". * * @SINCE_1_0.0 - * @param[in] page to scroll to + * @param[in] page The page to scroll to * @note Should probably be upgraded so that page is an abstract class, that can be * a function of ScrollViewSize, ruler domain, ruler snap points etc. as pages may be * orchestrated in a 2D grid fashion, or variable width. @@ -1076,7 +1265,7 @@ public: * "(page) * ScrollViewSize.width, 0". * * @SINCE_1_0.0 - * @param[in] page to scroll to + * @param[in] page The page to scroll to * @param[in] duration The duration of the animation in seconds * @note Should probably be upgraded so that page is an abstract class, that can be * a function of ScrollViewSize, ruler domain, ruler snap points etc. as pages may be @@ -1090,9 +1279,9 @@ public: * "(page) * ScrollViewSize.width, 0". * * @SINCE_1_0.0 - * @param[in] page to scroll to + * @param[in] page The page to scroll to * @param[in] duration The duration of the animation in seconds - * @param[in] bias Whether to bias scrolling to left or right. + * @param[in] bias Whether to bias scrolling to left or right * @note Should probably be upgraded so that page is an abstract class, that can be * a function of ScrollViewSize, ruler domain, ruler snap points etc. as pages may be * orchestrated in a 2D grid fashion, or variable width. @@ -1107,7 +1296,7 @@ public: * @brief Scrolls View such that actor appears in the center of the ScrollView. * * @SINCE_1_0.0 - * @param[in] actor The actor to center in on (via Scrolling). + * @param[in] actor The actor to center in on (via Scrolling) * @note Actor must be a direct child of ScrollView, otherwise will * cause an assertion failure. */ @@ -1117,7 +1306,7 @@ public: * @brief Scrolls View such that actor appears in the center of the ScrollView. * * @SINCE_1_0.0 - * @param[in] actor The actor to center in on (via Scrolling). + * @param[in] actor The actor to center in on (via Scrolling) * @param[in] duration The duration of the animation in seconds * @note Actor must be a direct child of ScrollView, otherwise will * cause an assertion failure. @@ -1130,7 +1319,7 @@ public: * If already at snap points, then will return false, and not scroll. * * @SINCE_1_0.0 - * @return True if Snapping necessary. + * @return True if Snapping necessary */ bool ScrollToSnapPoint(); @@ -1153,7 +1342,7 @@ public: void RemoveConstraintsFromChildren(); /** - * @brief Apply Effect to ScrollView. + * @brief Applies Effect to ScrollView. * * @SINCE_1_0.0 * @param[in] effect The effect to apply to scroll view @@ -1161,10 +1350,10 @@ public: void ApplyEffect(ScrollViewEffect effect); /** - * @brief Remove Effect from ScrollView. + * @brief Removes Effect from ScrollView. * * @SINCE_1_0.0 - * @param[in] effect The effect to remove. + * @param[in] effect The effect to remove */ void RemoveEffect(ScrollViewEffect effect); @@ -1181,16 +1370,16 @@ public: * that ScrollView's properties. * * @SINCE_1_0.0 - * @param[in] child The actor to add to this ScrollView. + * @param[in] child The actor to add to this ScrollView */ void BindActor(Actor child); /** - * @brief Unbind Actor from this ScrollView. + * @brief Unbinds Actor from this ScrollView. * * Once Unbound, this ScrollView will not affect the actor. * @SINCE_1_0.0 - * @param[in] child The actor to be unbound. + * @param[in] child The actor to be unbound * @note This does not remove the child from the ScrollView container * */ @@ -1202,22 +1391,21 @@ public: * @SINCE_1_0.0 * @param[in] direction The axis to constrain the scroll-view to. * Usually set to PanGestureDetector::DIRECTION_VERTICAL or PanGestureDetector::DIRECTION_HORIZONTAL (but can be any other angle if desired). - * @param[in] threshold The threshold to apply around the axis. + * @param[in] threshold The threshold to apply around the axis * @note If no threshold is specified, then the default threshold of PI * 0.25 radians (or 45 degrees) is used. */ - void SetScrollingDirection( Radian direction, Radian threshold = PanGestureDetector::DEFAULT_THRESHOLD ); + void SetScrollingDirection(Radian direction, Radian threshold = PanGestureDetector::DEFAULT_THRESHOLD); /** - * @brief Remove a direction constraint from the scroll view. + * @brief Removes a direction constraint from the scroll view. * * @SINCE_1_0.0 * @param[in] direction The axis to stop constraining to. * Usually will be PanGestureDetector::DIRECTION_VERTICAL or PanGestureDetector::DIRECTION_HORIZONTAL (but can be any other angle if desired). */ - void RemoveScrollingDirection( Radian direction ); + void RemoveScrollingDirection(Radian direction); public: // Signals - /** * @brief Signal emitted when the ScrollView has started to snap or flick (it tells the target * position, scale, rotation for the snap or flick). @@ -1227,19 +1415,18 @@ public: // Signals * void YourCallbackName(const SnapEvent& event); * @endcode * @SINCE_1_0.0 - * @return The signal to connect to. + * @return The signal to connect to * @pre The Object has been initialized. */ SnapStartedSignalType& SnapStartedSignal(); public: // Not intended for application developers - /// @cond internal /** * @brief Creates a handle using the Toolkit::Internal implementation. * * @SINCE_1_0.0 - * @param[in] implementation The Control implementation. + * @param[in] implementation The Control implementation */ DALI_INTERNAL ScrollView(Internal::ScrollView& implementation); @@ -1247,9 +1434,9 @@ public: // Not intended for application developers * @brief Allows the creation of this Control from an Internal::CustomActor pointer. * * @SINCE_1_0.0 - * @param[in] internal A pointer to the internal CustomActor. + * @param[in] internal A pointer to the internal CustomActor */ - explicit DALI_INTERNAL ScrollView( Dali::Internal::CustomActor* internal ); + explicit DALI_INTERNAL ScrollView(Dali::Internal::CustomActor* internal); /// @endcond }; @@ -1260,4 +1447,4 @@ public: // Not intended for application developers } // namespace Dali -#endif // __DALI_TOOLKIT_SCROLL_VIEW_H__ +#endif // DALI_TOOLKIT_SCROLL_VIEW_H