X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-field-impl.h;h=36fe57f791959b338d1e38782c79adc904cb9832;hb=557926c429fa6d9f4fad47e45caa7cf71644d57b;hp=223fa71c7f518271b5070d766b898600037cbd0c;hpb=549e79b19f4d24588121f55739f9fc53e00fcdaf;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.h b/dali-toolkit/internal/controls/text-controls/text-field-impl.h index 223fa71..36fe57f 100644 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.h @@ -19,7 +19,7 @@ */ // EXTERNAL INCLUDES -#include +#include #include #include #include @@ -30,11 +30,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include @@ -54,8 +54,9 @@ class TextField : public Control, public Text::ControlInterface, public Text::Ed public: /** * @copydoc Dali::Toollkit::TextField::New() + * @param[in] additionalBehaviour custom behavior flags for this TextField. Default is CONTROL_BEHAVIOUR_DEFAULT */ - static Toolkit::TextField New(); + static Toolkit::TextField New(ControlBehaviour additionalBehaviour = ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT); // Properties @@ -152,6 +153,11 @@ private: // From Control void OnInitialize() override; /** + * @copydoc Toolkit::Internal::Control::CreateAccessibleObject() + */ + DevelControl::ControlAccessible* CreateAccessibleObject() override; + + /** * @copydoc Control::OnStyleChange() */ void OnStyleChange(Toolkit::StyleManager styleManager, StyleChange::Type change) override; @@ -207,6 +213,11 @@ private: // From Control void OnSceneConnection(int depth) override; /** + * @copydoc Control::OnPropertySet() + */ + void OnPropertySet(Property::Index index, const Property::Value& propertyValue) override; + + /** * @copydoc Dali::CustomActorImpl::OnKeyEvent(const KeyEvent&) */ bool OnKeyEvent(const KeyEvent& event) override; @@ -272,7 +283,6 @@ private: // From Control // From SelectableControlInterface public: - /** * @copydoc Text::SelectableControlInterface::SetTextSelectionRange() */ @@ -357,6 +367,52 @@ public: */ Vector GetTextPosition(const uint32_t startIndex, const uint32_t endIndex) const; + /** + * @brief Get the line bounding rectangle. + * if the requested index is out of range or the line is not yet rendered, a rect of {0, 0, 0, 0} is returned. + * + * @param[in] lineIndex line index to which we want to calculate the geometry for. + * @return bounding rectangle. + */ + Rect GetLineBoundingRectangle(const uint32_t lineIndex) const; + + /** + * @brief Get the character bounding rectangle. + * If the text is not yet rendered or the index > text.Count(); a rect of {0, 0, 0, 0} is returned. + * + * @param[in] charIndex character index to which we want to calculate the geometry for. + * @return bounding rectangle. + */ + Rect GetCharacterBoundingRectangle(const uint32_t charIndex) const; + + /** + * @brief Get the character index. + * If the text is not yet rendered or the text is empty, -1 is returned. + * + * @param[in] visualX visual x position. + * @param[in] visualY visual y position. + * @return character index. + */ + int GetCharacterIndexAtPosition(float visualX, float visualY) const; + + /** + * @brief Gets the bounding box of a specific text range. + * + * @param[in] startIndex start index of the text requested to get bounding box to. + * @param[in] endIndex end index(included) of the text requested to get bounding box to. + * @return bounding box of the requested text. + */ + Rect<> GetTextBoundingRectangle(uint32_t startIndex, uint32_t endIndex) const; + + /** + * @brief Set the @p spannedText into current textField + * the spanned text contains content (text) and format (spans with ranges) + * the text is copied into text-controller and the spans are applied on ranges + * + * @param[in] spannedText the text with spans. + */ + void SetSpannedText(const Text::Spanned& spannedText); + private: // Implementation /** * @copydoc Dali::Toolkit::Text::Controller::(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent) @@ -365,9 +421,9 @@ private: // Implementation /** * @brief Callback when Clipboard signals an item should be pasted - * @param[in] clipboard handle to Clipboard Event Notifier + * @param[in] clipboard handle to TextClipboard Event Notifier */ - void OnClipboardTextSelected(ClipboardEventNotifier& clipboard); + void OnClipboardTextSelected(TextClipboardEventNotifier& clipboard); /** * @brief Get a Property Map for the image used for the required Handle Image @@ -445,8 +501,10 @@ private: // Implementation /** * Construct a new TextField. + * + * @param[in] additionalBehaviour additional behaviour flags for this TextField */ - TextField(); + TextField(ControlBehaviour additionalBehaviour); /** * A reference counted object may only be deleted by calling Unreference()