Add CursorPositionChanged Signal
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-field-impl.h
index b1f5991..dfd12a2 100644 (file)
@@ -117,6 +117,11 @@ public:
   DevelTextField::AnchorClickedSignalType& AnchorClickedSignal();
 
   /**
+   * @copydoc TextField::CursorPositionChangedSignal()
+   */
+  DevelTextField::CursorPositionChangedSignalType& CursorPositionChangedSignal();
+
+  /**
    * @copydoc TextField::InputFilteredSignal()
    */
   DevelTextField::InputFilteredSignalType& InputFilteredSignal();
@@ -207,9 +212,9 @@ private: // From Control
   void TextDeleted(unsigned int position, unsigned int length, const std::string& content) override;
 
   /**
-   * @copydoc Text::EditableControlInterface::CursorMoved()
+   * @copydoc Text::EditableControlInterface::CursorPositionChanged()
    */
-  void CursorMoved(unsigned int position) override;
+  void CursorPositionChanged(unsigned int oldPosition, unsigned int newPosition) override;
 
   /**
    * @copydoc Text::EditableControlInterface::TextChanged()
@@ -343,6 +348,11 @@ private: // Implementation
   void EmitTextChangedSignal();
 
   /**
+   * @brief Emits CursorPositionChanged signal.
+   */
+  void EmitCursorPositionChangedSignal();
+
+  /**
    * @brief Callback function for when the layout is changed.
    * @param[in] actor The actor whose layoutDirection is changed.
    * @param[in] type  The layoutDirection.
@@ -381,11 +391,12 @@ private: // Implementation
 
 private: // Data
   // Signals
-  Toolkit::TextField::TextChangedSignalType        mTextChangedSignal;
-  Toolkit::TextField::MaxLengthReachedSignalType   mMaxLengthReachedSignal;
-  Toolkit::TextField::InputStyleChangedSignalType  mInputStyleChangedSignal;
-  Toolkit::DevelTextField::AnchorClickedSignalType mAnchorClickedSignal;
-  Toolkit::DevelTextField::InputFilteredSignalType mInputFilteredSignal;
+  Toolkit::TextField::TextChangedSignalType                mTextChangedSignal;
+  Toolkit::TextField::MaxLengthReachedSignalType           mMaxLengthReachedSignal;
+  Toolkit::TextField::InputStyleChangedSignalType          mInputStyleChangedSignal;
+  Toolkit::DevelTextField::AnchorClickedSignalType         mAnchorClickedSignal;
+  Toolkit::DevelTextField::InputFilteredSignalType         mInputFilteredSignal;
+  Toolkit::DevelTextField::CursorPositionChangedSignalType mCursorPositionChangedSignal;
 
   InputMethodContext       mInputMethodContext;
   Text::ControllerPtr      mController;
@@ -404,7 +415,11 @@ private: // Data
   int   mRenderingBackend;
   int   mExceedPolicy;
   bool  mHasBeenStaged : 1;
-  bool  mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout().
+  bool  mTextChanged : 1;           ///< If true, emits TextChangedSignal in next OnRelayout().
+  bool  mCursorPositionChanged : 1; ///< If true, emits CursorPositionChangedSignal at the end of OnRelayout().
+
+  //args for cursor position changed event
+  unsigned int mOldPosition;
 
 protected:
   /**