X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fscrollable%2Fscroll-view%2Fscroll-view.h;h=508b3d201dc80cd8954ea0fbb132250e581278b9;hp=e7b02f28ee32770c57f04c209a0311a86a0184e4;hb=07bbc876b9b069903dd4ed86c9dd5f2f66fc3b86;hpb=df92f45e89c92ca9b2286d51116ff7b69e75c569 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 e7b02f2..508b3d2 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 @@ -34,6 +34,10 @@ namespace Internal DALI_INTERNAL { class ScrollView; } +/** + * @addtogroup dali-toolkit-controls-scroll-view + * @{ + */ /** * @brief How axes/rotation or scale are clamped @@ -46,13 +50,12 @@ enum ClampState }; /** - * @brief A 3 dimensional clamp + * @brief A 2 dimensional clamp */ -struct ClampState3D +struct ClampState2D { ClampState x; ///< The clamp state of the x axis ClampState y; ///< The clamp state of the y axis - ClampState z; ///< The clamp state of the z axis }; /** @@ -132,6 +135,9 @@ public: }; +// Forward declare future extension interface +class RulerExtension; + /** * @brief Abstract class to define scroll axes. * @@ -201,6 +207,13 @@ public: */ virtual unsigned int GetTotalPages() const = 0; + /** + * @brief Gets the extension interface of the Ruler. + * + * @return The extension interface of the Ruler + */ + virtual RulerExtension* GetExtension() { return NULL; } + public: /** @@ -407,19 +420,6 @@ class ScrollView; */ class DALI_IMPORT_API ScrollView : public Scrollable { -public: - - // Default settings - - static const float DEFAULT_SLOW_SNAP_ANIMATION_DURATION; ///< Default Drag-Release animation time. - static const float DEFAULT_FAST_SNAP_ANIMATION_DURATION; ///< Default Drag-Flick animation time. - static const float DEFAULT_SNAP_OVERSHOOT_DURATION; ///< Default Overshoot snapping animation time. - static const float DEFAULT_MAX_OVERSHOOT; ///< Default maximum allowed overshoot - - static const float DEFAULT_AXIS_AUTO_LOCK_GRADIENT; ///< Default Axis-AutoLock gradient threshold. default is 0.36:1 (20 degrees) - static const float DEFAULT_FRICTION_COEFFICIENT; ///< Default Friction Co-efficient. (in stage diagonals per second) - static const float DEFAULT_FLICK_SPEED_COEFFICIENT; ///< Default Flick speed coefficient (multiples input touch velocity) - static const float DEFAULT_MAX_FLICK_SPEED; ///< Default Maximum flick speed. (in stage diagonals per second) public: @@ -428,8 +428,8 @@ public: */ struct ClampEvent { - ClampState3D scale; ///< Clamp information for scale axes - ClampState3D position; ///< Clamp information for position axes + ClampState2D scale; ///< Clamp information for scale axes + ClampState2D position; ///< Clamp information for position axes ClampState rotation; ///< Clamp information for rotation }; @@ -439,7 +439,7 @@ public: struct SnapEvent { SnapType type; ///< Current snap commencing - Vector3 position; ///< Target snap position + Vector2 position; ///< Target snap position float duration; ///< Duration of snap animation. }; @@ -459,27 +459,33 @@ public: { enum { - SCROLL_POSITION = ANIMATABLE_PROPERTY_START_INDEX, ///< Property, name "scroll-position", type Vector3 - SCROLL_PRE_POSITION, ///< Property, name "scroll-pre-position", type Vector3 - OVERSHOOT_X, ///< Property, name "overshoot-x", type float - OVERSHOOT_Y, ///< Property, name "overshoot-y", type float - SCROLL_FINAL, ///< Property, name "scroll-final", type Vector3 - WRAP, ///< Property, name "wrap", type bool - PANNING, ///< Property, name "panning", type bool - SCROLLING, ///< Property, name "scrolling", type bool - SCROLL_DOMAIN_OFFSET, ///< Property, name "scroll-domain-offset" type Vector3 - SCROLL_POSITION_DELTA, ///< Property, name "scroll-position-delta" type Vector3 - START_PAGE_POSITION ///< Property, name "start-page-position" type Vector3 + SCROLL_POSITION = ANIMATABLE_PROPERTY_START_INDEX, ///< Property, name "scroll-position", type Vector2 + SCROLL_PRE_POSITION, ///< Property, name "scroll-pre-position", type Vector2 + SCROLL_PRE_POSITION_X, ///< Property, name "scroll-pre-position-x", type float + SCROLL_PRE_POSITION_Y, ///< Property, name "scroll-pre-position-y", type float + SCROLL_PRE_POSITION_MAX, ///< Property, name "scroll-pre-position-max", type Vector2 + SCROLL_PRE_POSITION_MAX_X, ///< Property, name "scroll-pre-position-max-x", type float + SCROLL_PRE_POSITION_MAX_Y, ///< Property, name "scroll-pre-position-max-y", type float + OVERSHOOT_X, ///< Property, name "overshoot-x", type float + OVERSHOOT_Y, ///< Property, name "overshoot-y", type float + SCROLL_FINAL, ///< Property, name "scroll-final", type Vector2 + SCROLL_FINAL_X, ///< Property, name "scroll-final-x", type float + SCROLL_FINAL_Y, ///< Property, name "scroll-final-y", type float + WRAP, ///< Property, name "wrap", type bool + PANNING, ///< Property, name "panning", type bool + SCROLLING, ///< Property, name "scrolling", type bool + SCROLL_DOMAIN_SIZE, ///< Property, name "scroll-domain-size" type Vector2 + SCROLL_DOMAIN_SIZE_X, ///< Property, name "scroll-domain-size-x" type float + SCROLL_DOMAIN_SIZE_Y, ///< Property, name "scroll-domain-size-y" type float + SCROLL_DOMAIN_OFFSET, ///< Property, name "scroll-domain-offset" type Vector2 + SCROLL_POSITION_DELTA, ///< Property, name "scroll-position-delta" type Vector2 + START_PAGE_POSITION ///< Property, name "start-page-position" type Vector3 }; }; - typedef Signal< void ( const SnapEvent& ) > SnapStartedSignalType; ///< SnapStarted signal type + // Typedefs - /** - * @brief Signal emitted when the ScrollView has started to snap or flick (it tells the target - * position, scale, rotation for the snap or flick) - */ - SnapStartedSignalType& SnapStartedSignal(); + typedef Signal< void ( const SnapEvent& ) > SnapStartedSignalType; ///< SnapStarted signal type public: @@ -838,39 +844,31 @@ public: /** * @brief Gets the step of scroll distance in actor coordinates for - * each mouse wheel event received in free panning mode. + * each wheel event received in free panning mode. * * @return The step of scroll distance(pixel) in X and Y axes. */ - Vector2 GetMouseWheelScrollDistanceStep() const; + Vector2 GetWheelScrollDistanceStep() const; /** * @brief Sets the step of scroll distance in actor coordinates for - * each mouse wheel event received in free panning mode. + * each wheel event received in free panning mode. * * @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 - * receiving the mouse wheel events. + * receiving the wheel events. * */ - void SetMouseWheelScrollDistanceStep(Vector2 step); + void SetWheelScrollDistanceStep(Vector2 step); /** * @brief Retrieves current scroll position. * * @returns The current scroll position. */ - Vector3 GetCurrentScrollPosition() const; - - /** - * @brief Sets the current scroll position, overriding current scroll animations. If panning is currently taking place - * SetScrollPosition will have no effect. Try to ensure panning has stopped before calling this function. - * - * @param[in] position The new scroll position to set. - */ - void SetScrollPosition(const Vector3& position); + Vector2 GetCurrentScrollPosition() const; /** * @brief Retrieves current scroll page based on ScrollView @@ -895,7 +893,7 @@ public: * * @param[in] position The position to scroll to. */ - void ScrollTo(const Vector3 &position); + void ScrollTo(const Vector2& position); /** * @brief Scrolls View to position specified (contents will scroll to this position). @@ -909,7 +907,7 @@ public: * @param[in] position The position to scroll to. * @param[in] duration The duration of the animation in seconds */ - void ScrollTo(const Vector3 &position, float duration); + void ScrollTo(const Vector2& position, float duration); /** * @brief Scrolls View to position specified (contents will scroll to this position) @@ -924,7 +922,7 @@ public: * @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); + void ScrollTo(const Vector2& position, float duration, AlphaFunction alpha); /** * @brief Scrolls View to position specified (contents will scroll to this position). @@ -943,7 +941,7 @@ public: * @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 Vector2& position, float duration, DirectionBias horizontalBias, DirectionBias verticalBias); /** @@ -964,7 +962,7 @@ public: * @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, + void ScrollTo(const Vector2& position, float duration, AlphaFunction alpha, DirectionBias horizontalBias, DirectionBias verticalBias); /** @@ -1110,6 +1108,21 @@ public: */ 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) + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName(const SnapEvent& event); + * @endcode + * @pre The Object has been initialized. + * @return The signal to connect to. + */ + SnapStartedSignalType& SnapStartedSignal(); + public: // Not intended for application developers /** @@ -1127,6 +1140,9 @@ public: // Not intended for application developers explicit DALI_INTERNAL ScrollView( Dali::Internal::CustomActor* internal ); }; +/** + * @} + */ } // namespace Toolkit } // namespace Dali