#include <dali-toolkit/internal/controls/control/control-data-impl.h>
#include <dali-toolkit/internal/text/decorator/text-decorator.h>
#include <dali-toolkit/internal/text/rendering/text-renderer.h>
+#include <dali-toolkit/internal/text/text-anchor-control-interface.h>
#include <dali-toolkit/internal/text/text-control-interface.h>
#include <dali-toolkit/internal/text/text-controller.h>
#include <dali-toolkit/internal/text/text-editable-control-interface.h>
/**
* @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:
/**
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.
/**
* @copydoc Text::EditableControlInterface::TextChanged()
*/
- void TextChanged() override;
+ void TextChanged(bool immediate) override;
/**
* @copydoc Text::EditableControlInterface::MaxLengthReached()
/**
* @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
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
Toolkit::TextEditor::InputStyleChangedSignalType mInputStyleChangedSignal;
Toolkit::TextEditor::ScrollStateChangedSignalType mScrollStateChangedSignal;
Toolkit::DevelTextEditor::MaxLengthReachedSignalType mMaxLengthReachedSignal;
+ Toolkit::DevelTextEditor::AnchorClickedSignalType mAnchorClickedSignal;
InputMethodContext mInputMethodContext;
Text::ControllerPtr mController;
Dali::Animation mAnimation; ///< Scroll indicator Show/Hide Animation.
Dali::TimePeriod mAnimationPeriod;
std::vector<Actor> mClippingDecorationActors; ///< Decoration actors which need clipping.
+ Dali::InputMethodOptions mInputMethodOptions;
Actor mRenderableActor;
Actor mActiveLayer;
bool mScrollAnimationEnabled : 1;
bool mScrollBarEnabled : 1;
bool mScrollStarted : 1;
- bool mTextChanged : 1;
+ bool mTextChanged : 1; ///< If true, emits TextChangedSignal in next OnRelayout().
struct AccessibleImpl : public DevelControl::AccessibleImpl,
public virtual Dali::Accessibility::Text,
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;
};
};