-#ifndef __DALI_TOOLKIT_TEXT_SCROLLER_H__
-#define __DALI_TOOLKIT_TEXT_SCROLLER_H__
+#ifndef DALI_TOOLKIT_TEXT_SCROLLER_H
+#define DALI_TOOLKIT_TEXT_SCROLLER_H
/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
#include <dali/public-api/rendering/renderer.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/controls/text-controls/text-label-devel.h>
#include <dali-toolkit/internal/text/text-definitions.h>
-#include <dali-toolkit/internal/text/layouts/layout-alignment.h>
+#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
namespace Dali
{
-
namespace Toolkit
{
-
namespace Text
{
-
class TextScroller;
class ScrollerInterface;
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.
*
* @param[in] scrollerInterface scroller interface
*/
- static TextScrollerPtr New( ScrollerInterface& scrollerInterface );
+ static TextScrollerPtr New(ScrollerInterface& scrollerInterface);
/**
* @brief Set parameters relating to source required for scrolling
* @param[in] renderer renderer to render the text
* @param[in] textureSet texture of the text to be scrolled
* @param[in] controlSize size of the control to scroll within
- * @param[in] textNaturalSize natural size of the text
+ * @param[in] textureSize size of the texture
+ * @param[in] wrapGap The gap before scrolling wraps
* @param[in] direction text direction true for right to left text
* @param[in] horizontalAlignment horizontal alignment of the text
* @param[in] verticalAlignment vertical alignment of the text
*/
- void SetParameters( Actor scrollingTextActor, Dali::Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& offScreenSize, CharacterDirection direction, Layout::HorizontalAlignment horizontalAlignment, Layout::VerticalAlignment verticalAlignment );
+ void SetParameters(Actor scrollingTextActor, Dali::Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment);
/**
* @brief Set the gap distance to elapse before the text wraps around
* @param[in] gap distance to elapse
*/
- void SetGap( int gap );
+ void SetGap(int gap);
/**
* @brief Get the distance before scrolling wraps
* @brief Set speed the text should scroll
* @param[in] scrollSpeed pixels per second
*/
- void SetSpeed( int scrollSpeed );
+ void SetSpeed(int scrollSpeed);
/**
* @brief Get the speed of text scrolling
* @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 );
+ void SetLoopCount(int loopCount);
/**
* @brief Get the number of loops
* @brief Set the delay time of scroll animation loop
* @param[in] float delay time seconds of loops
*/
- void SetLoopDelay( float delay );
+ void SetLoopDelay(float delay);
/**
* @brief Get the delay time of scroll
* @brief Set the mode of scrolling stop
* @param[in] stopMode type when text scrolling is stoped.
*/
- void SetStopMode( DevelTextLabel::AutoScrollStopMode::Type stopMode );
+ void SetStopMode(TextLabel::AutoScrollStopMode::Type stopMode);
/**
* @brief Stop the auto scrolling.
* @brief Get the mode of scrolling stop
* @return stopMode type when text scrolling is stoped.
*/
- DevelTextLabel::AutoScrollStopMode::Type GetStopMode() const;
+ TextLabel::AutoScrollStopMode::Type GetStopMode() const;
private: // Implementation
-
/**
* Constructor
*/
- TextScroller( ScrollerInterface& scrollerInterface );
+ TextScroller(ScrollerInterface& scrollerInterface);
/**
* Destructor
~TextScroller();
// Undefined
- TextScroller( const TextScroller& handle );
+ TextScroller(const TextScroller& handle);
// Undefined
- TextScroller& operator=( const TextScroller& handle );
+ TextScroller& operator=(const TextScroller& handle);
/**
* @brief Callback for end of animation
* @param[in] animation Animation handle
*/
- void AutoScrollAnimationFinished( Dali::Animation& animation );
+ void AutoScrollAnimationFinished(Dali::Animation& animation);
/**
* @brief variables required to set up scrolling animation
* @param[in] scrollDuration duration of aninmation
* @param[in] loopCount number of times to loop the scrolling text
*/
- void StartScrolling( Actor scrollingTextActor, float scrollAmount, float scrollDuration, int loopCount );
+ void StartScrolling(Actor scrollingTextActor, float scrollAmount, float scrollDuration, int loopCount);
private:
-
- ScrollerInterface& mScrollerInterface; // Interface implemented by control that requires scrolling
- Property::Index mScrollDeltaIndex; // Property used by shader to represent distance to scroll
- Animation mScrollAnimation; // Animation used to update the mScrollDeltaIndex
- Dali::Renderer mRenderer; // Renderer used to render the text
- Shader mShader; // Shader originally used by the renderer while not scrolling
- TextureSet mTextureSet; // Texture originally used by the renderer while not scrolling
-
- int mScrollSpeed; ///< Speed which text should automatically scroll at
- int mLoopCount; ///< Number of time the text should scroll
- float mLoopDelay; ///< Time delay of loop start
- float mWrapGap; ///< Gap before text wraps around when scrolling
- DevelTextLabel::AutoScrollStopMode::Type mStopMode; ///< Stop mode of scrolling text, when loop count is 0.
+ ScrollerInterface& mScrollerInterface; // Interface implemented by control that requires scrolling
+ Property::Index mScrollDeltaIndex; // Property used by shader to represent distance to scroll
+ Animation mScrollAnimation; // Animation used to update the mScrollDeltaIndex
+ Dali::Renderer mRenderer; // Renderer used to render the text
+ Shader mShader; // Shader originally used by the renderer while not scrolling
+ TextureSet mTextureSet; // Texture originally used by the renderer while not scrolling
+
+ int mScrollSpeed; ///< Speed which text should automatically scroll at
+ int mLoopCount; ///< Number of time the text should scroll
+ float mLoopDelay; ///< Time delay of loop start
+ float mWrapGap; ///< Gap before text wraps around when scrolling
+ TextLabel::AutoScrollStopMode::Type mStopMode; ///< Stop mode of scrolling text, when loop count is 0.
}; // TextScroller class
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEXT_SCROLLER_H__
-
+#endif // DALI_TOOLKIT_TEXT_SCROLLER_H