X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-scroller.h;h=17824b6526e684216096fb8c14416a8ba28d161d;hp=a40be3f59678b63d6765e49ea82a102ba7a73851;hb=406208364fe0ee31f31f475ba7ee7709e56d3e27;hpb=4a0101828ec38e0cbdc450de769f11530044ea7f;ds=sidebyside diff --git a/dali-toolkit/internal/text/text-scroller.h b/dali-toolkit/internal/text/text-scroller.h index a40be3f..17824b6 100644 --- a/dali-toolkit/internal/text/text-scroller.h +++ b/dali-toolkit/internal/text/text-scroller.h @@ -37,7 +37,6 @@ namespace Text class TextScroller; class ScrollerInterface; -struct ScrollerData; typedef IntrusivePtr TextScrollerPtr; @@ -47,6 +46,7 @@ typedef IntrusivePtr TextScrollerPtr; class TextScroller : public RefObject, public ConnectionTracker { public: + /** * @brief Text Scrolling helper, used to automatically scroll text, SetParameters should be called before scrolling is needed. * CleanUp removes the Scrolling actors from stage whilst keeping the Scroller object alive and preserving Speed, Gap and Loop count. @@ -56,19 +56,52 @@ public: static TextScrollerPtr New( ScrollerInterface& scrollerInterface ); /** - * @brief Starts the text scrolling. + * @brief Set parameters relating to source required for scrolling * * @param[in] sourceActor source actor to be scrolled - * @param[in] data Parameters needed to set up the text scrolling. + * @param[in] controlSize size of the control to scroll within + * @param[in] offScreenSize size of the sourceActor + * @param[in] direction text direction true for right to left text + * @param[in] alignmentOffset alignment of source text * */ - void StartScrolling( Actor sourceActor, - const ScrollerData& data ); + void SetParameters( Actor sourceActor, const Size& controlSize, const Size& offScreenSize, CharacterDirection direction, float alignmentOffset ); + + /** + * @brief Set the gap distance to elapse before the text wraps around + * @param[in] gap distance to elapse + */ + void SetGap( int gap ); + + /** + * @brief Get the distance before scrolling wraps + * @return gap distance to elapse + */ + int GetGap() const; + + /** + * @brief Set speed the text should scroll + * @param[in] scrollSpeed pixels per second + */ + void SetSpeed( int scrollSpeed ); /** - * @brief Stops the text scrolling. + * @brief Get the speed of text scrolling + * @return speed in pixels per second */ - void StopScrolling(); + int GetSpeed() const; + + /** + * @brief Set the number of times the text scrolling should loop, can stop current scrolling by passing in 0; + * @param[in] loopCount number of times the scrolled text should loop, 0 to stop scrolling + */ + void SetLoopCount( int loopCount ); + + /** + * @brief Get the number of loops + * @return int number of loops + */ + int GetLoopCount() const; /** * @brief Get the camera used to look at source, should be added to the parent of target actor. @@ -107,6 +140,14 @@ private: // Implementation void AutoScrollAnimationFinished( Dali::Animation& animation ); /** + * @brief variables required to set up scrolling animation + * @param[in] scrollAmount distance to animate text for the given duration + * @param[in] scrollDuration duration of aninmation + * @param[in] loopCount number of times to loop the scrolling text + */ + void StartScrolling( float scrollAmount, float scrollDuration, int loopCount ); + + /** * @brief When scrolling ended, the actors are cleaned up so no longer staged. */ void CleanUp(); @@ -120,6 +161,10 @@ private: Property::Index mScrollDeltaIndex; // Property used by shader to represent distance to scroll Animation mScrollAnimation; // Animation used to update the mScrollDeltaIndex + int mScrollSpeed; ///< Speed which text should automatically scroll at + int mLoopCount; ///< Number of time the text should scroll + float mWrapGap; ///< Gap before text wraps around when scrolling + }; // TextScroller class } // namespace Text