Implement vertical scroll animation on text input
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-editor-impl.h
index 12bbe0d..09465a8 100644 (file)
  *
  */
 
+// EXTERNAL INCLUDES
+#include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
+
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control-impl.h>
 #include <dali-toolkit/public-api/controls/text-controls/text-editor.h>
-#include <dali-toolkit/internal/text/clipping/text-clipper.h>
 #include <dali-toolkit/internal/text/decorator/text-decorator.h>
 #include <dali-toolkit/internal/text/text-control-interface.h>
 #include <dali-toolkit/internal/text/text-editable-control-interface.h>
 #include <dali-toolkit/internal/text/text-controller.h>
+#include <dali-toolkit/internal/text/text-vertical-scroller.h>
 #include <dali-toolkit/internal/text/rendering/text-renderer.h>
 
-// EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
-
 namespace Dali
 {
 
@@ -206,13 +206,6 @@ private: // Implementation
   void GetHandleImagePropertyValue(  Property::Value& value, Text::HandleType handleType, Text::HandleImageType handleImageType );
 
   /**
-   * @brief Enable or disable clipping.
-   *
-   * @param[in] size The area to clip within.
-   */
-  void EnableClipping( const Vector2& size );
-
-  /**
    * @brief Callback when keyboard is shown/hidden.
    *
    * @param[in] keyboardShown True if keyboard is shown.
@@ -235,6 +228,13 @@ private: // Implementation
   void OnIdleSignal();
 
   /**
+   * @brief set RenderActor's position with new scrollPosition
+   *
+   * Apply updated scroll position or start scroll animation if VerticalScrollAnimation is enabled
+   */
+  void ApplyScrollPosition();
+
+  /**
    * Construct a new TextEditor.
    */
   TextEditor();
@@ -265,14 +265,18 @@ private: // Data
   Text::ControllerPtr mController;
   Text::RendererPtr mRenderer;
   Text::DecoratorPtr mDecorator;
-  Text::ClipperPtr mClipper;
+  Text::TextVerticalScrollerPtr mTextVerticalScroller;
+  Toolkit::Control mStencil;
   std::vector<Actor> mClippingDecorationActors;   ///< Decoration actors which need clipping.
 
   Actor mRenderableActor;
   CallbackBase* mIdleCallback;
 
+  float mAlignmentOffset;
+  float mScrollAnimationDuration;
   int mRenderingBackend;
   bool mHasBeenStaged:1;
+  bool mScrollAnimationEnabled:1;
 };
 
 } // namespace Internal