+ float mScrollAnimationDuration;
+ float mLineSpacing;
+ int mRenderingBackend;
+ bool mHasBeenStaged : 1;
+ bool mScrollAnimationEnabled : 1;
+ bool mScrollBarEnabled : 1;
+ bool mScrollStarted : 1;
+ bool mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout().
+ bool mCursorPositionChanged : 1; ///< If true, emits CursorPositionChangedSignal at the end of OnRelayout().
+ bool mSelectionChanged : 1; ///< If true, emits SelectionChangedSignal at the end of OnRelayout().
+ bool mSelectionCleared : 1; ///< If true, emits SelectionClearedSignal at the end of OnRelayout().
+
+ //args for cursor PositionChanged event
+ unsigned int mOldPosition;
+
+ //args for selection changed event
+ uint32_t mOldSelectionStart;
+ uint32_t mOldSelectionEnd;
+
+ bool mSelectionStarted : 1; ///< If true, emits SelectionStartedSignal at the end of OnRelayout().
+
+ struct PropertyHandler;
+
+ /**
+ * @brief This structure is to connect TextEditor with Accessible functions.
+ */
+ struct AccessibleImpl : public DevelControl::ControlAccessible,
+ public virtual Dali::Accessibility::EditableText,
+ public virtual Dali::Accessibility::Hypertext
+ {
+ using DevelControl::ControlAccessible::ControlAccessible;
+
+ /**
+ * @copydoc Dali::Accessibility::Accessible::GetName()
+ */
+ std::string GetName() const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetText()
+ */
+ std::string GetText(size_t startOffset, size_t endOffset) const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetCharacterCount()
+ */
+ size_t GetCharacterCount() const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetCursorOffset()
+ */
+ size_t GetCursorOffset() const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::SetCursorOffset()
+ */
+ bool SetCursorOffset(size_t offset) override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetTextAtOffset()
+ */
+ Accessibility::Range GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetRangeOfSelection()
+ */
+ Accessibility::Range GetRangeOfSelection(size_t selectionIndex) const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::RemoveSelection()
+ */
+ bool RemoveSelection(size_t selectionIndex) override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::SetRangeOfSelection()
+ */
+ bool SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset) override;
+
+ /**
+ * @copydoc Dali::Accessibility::Text::GetRangeExtents()
+ */
+ Rect<> GetRangeExtents(size_t startOffset, size_t endOffset, Accessibility::CoordinateType type) override;
+
+ /**
+ * @copydoc Dali::Accessibility::EditableText::CopyText()
+ */
+ bool CopyText(size_t startPosition, size_t endPosition) override;
+
+ /**
+ * @copydoc Dali::Accessibility::EditableText::CutText()
+ */
+ bool CutText(size_t startPosition, size_t endPosition) override;
+
+ /**
+ * @copydoc Dali::Accessibility::Accessible::GetStates()
+ */
+ Accessibility::States CalculateStates() override;
+
+ /**
+ * @copydoc Dali::Accessibility::EditableText::InsertText()
+ */
+ bool InsertText(size_t startPosition, std::string text) override;
+
+ /**
+ * @copydoc Dali::Accessibility::EditableText::SetTextContents()
+ */
+ bool SetTextContents(std::string newContents) override;
+
+ /**
+ * @copydoc Dali::Accessibility::EditableText::DeleteText()
+ */
+ bool DeleteText(size_t startPosition, size_t endPosition) override;
+
+ /**
+ * @copydoc Dali::Accessibility::Hypertext::GetLink()
+ */
+ Accessibility::Hyperlink* GetLink(int32_t linkIndex) const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Hypertext::GetLinkIndex()
+ */
+ int32_t GetLinkIndex(int32_t characterOffset) const override;
+
+ /**
+ * @copydoc Dali::Accessibility::Hypertext::GetLinkCount()
+ */
+ int32_t GetLinkCount() const override;
+ };