X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-editor-impl.h;h=9a06ea5f97bb75240dd20fa9460b4c4cfef278de;hp=ed8d039f1875ff5daa31b665292ba94580cedf6c;hb=ec503e92aa01bc67f8ea118cf14aa3b1ed9d390e;hpb=ebc31d0e211cb33fe359071bcab608dbdc400080 diff --git a/dali-toolkit/internal/controls/text-controls/text-editor-impl.h b/dali-toolkit/internal/controls/text-controls/text-editor-impl.h index ed8d039..9a06ea5 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.h @@ -25,11 +25,13 @@ #include // INTERNAL INCLUDES +#include #include #include #include #include #include +#include #include #include #include @@ -47,7 +49,7 @@ namespace Internal /** * @brief A control which renders a long text string with styles. */ -class TextEditor : public Control, public Text::ControlInterface, public Text::EditableControlInterface, public Text::SelectableControlInterface +class TextEditor : public Control, public Text::ControlInterface, public Text::EditableControlInterface, public Text::SelectableControlInterface, public Text::AnchorControlInterface { public: /** @@ -86,6 +88,11 @@ public: DevelTextEditor::MaxLengthReachedSignalType& MaxLengthReachedSignal(); /** + * @copydoc Dali::Toollkit::TextEditor::AnchorClickedSignal() + */ + DevelTextEditor::AnchorClickedSignalType& AnchorClickedSignal(); + + /** * Connects a callback function with the object's signals. * @param[in] object The object providing the signal. * @param[in] tracker Used to disconnect the signal. @@ -204,7 +211,7 @@ private: // From Control /** * @copydoc Text::EditableControlInterface::TextChanged() */ - void TextChanged() override; + void TextChanged(bool immediate) override; /** * @copydoc Text::EditableControlInterface::MaxLengthReached() @@ -275,7 +282,15 @@ public: /** * @copydoc Text::EditableControlInterface::SetEditable() */ - void SetEditable(bool editable) override; + void SetEditable(bool editable) override; + + // From AnchorControlInterface + + /** + * @copydoc Text::AnchorControlInterface::AnchorClicked() + */ + void AnchorClicked(const std::string& href) override; + Text::ControllerPtr getController(); private: // Implementation @@ -328,6 +343,11 @@ private: // Implementation void OnIdleSignal(); /** + * @brief Emits TextChanged signal. + */ + void EmitTextChangedSignal(); + + /** * @brief set RenderActor's position with new scrollPosition * * Apply updated scroll position or start scroll animation if VerticalScrollAnimation is enabled @@ -361,7 +381,7 @@ private: // Implementation * @param[in] actor The actor to be resized. * @param[in] size Size to change. */ - void ResizeActor( Actor& actor, const Vector2& size ); + void ResizeActor(Actor& actor, const Vector2& size); /** * @brief Render view, create and attach actor(s) to this text editor. @@ -377,6 +397,7 @@ private: // Data Toolkit::TextEditor::InputStyleChangedSignalType mInputStyleChangedSignal; Toolkit::TextEditor::ScrollStateChangedSignalType mScrollStateChangedSignal; Toolkit::DevelTextEditor::MaxLengthReachedSignalType mMaxLengthReachedSignal; + Toolkit::DevelTextEditor::AnchorClickedSignalType mAnchorClickedSignal; InputMethodContext mInputMethodContext; Text::ControllerPtr mController; @@ -388,6 +409,7 @@ private: // Data Dali::Animation mAnimation; ///< Scroll indicator Show/Hide Animation. Dali::TimePeriod mAnimationPeriod; std::vector mClippingDecorationActors; ///< Decoration actors which need clipping. + Dali::InputMethodOptions mInputMethodOptions; Actor mRenderableActor; Actor mActiveLayer; @@ -401,12 +423,13 @@ private: // Data bool mScrollAnimationEnabled : 1; bool mScrollBarEnabled : 1; bool mScrollStarted : 1; + bool mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout(). - struct AccessibleImpl : public Control::Impl::AccessibleImpl, + struct AccessibleImpl : public DevelControl::AccessibleImpl, public virtual Dali::Accessibility::Text, public virtual Dali::Accessibility::EditableText { - using Control::Impl::AccessibleImpl::AccessibleImpl; + using DevelControl::AccessibleImpl::AccessibleImpl; std::string GetName() override; std::string GetText(size_t startOffset, size_t endOffset) override; @@ -420,6 +443,9 @@ private: // Data bool CopyText(size_t startPosition, size_t endPosition) override; bool CutText(size_t startPosition, size_t endPosition) override; Accessibility::States CalculateStates() override; + bool InsertText(size_t startPosition, std::string text) override; + bool SetTextContents(std::string newContents) override; + bool DeleteText(size_t startPosition, size_t endPosition) override; }; };