X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-field-impl.h;h=0472aa826d286d3d1aae9165bcfa3da40df1b344;hb=HEAD;hp=7b5d2f61af56928d532c0a55afd63d0d39520674;hpb=d4938b4b2872ea432f45fcdedbc13e85af0d08df;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 7b5d2f6..ed1a008 100644 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_TEXT_FIELD_H /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ */ // EXTERNAL INCLUDES -#include #include #include #include @@ -54,8 +53,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 @@ -385,6 +385,25 @@ public: 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 @@ -393,17 +412,39 @@ public: */ void SetSpannedText(const Text::Spanned& spannedText); -private: // Implementation /** - * @copydoc Dali::Toolkit::Text::Controller::(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent) + * @brief Set removing front inset to TextField. + * + * @param[in] remove Whether front inset of TextField has to be removed or not. */ - InputMethodContext::CallbackData OnInputMethodContextEvent(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent); + void SetRemoveFrontInset(const bool remove); + + /** + * @brief Whether front inset of TextField is removed or not. + * + * @return True if the front inset of TextField is removed. + */ + bool IsRemoveFrontInset() const; /** - * @brief Callback when Clipboard signals an item should be pasted - * @param[in] clipboard handle to Clipboard Event Notifier + * @brief Set removing back inset to TextField. + * + * @param[in] remove Whether back inset of TextField has to be removed or not. + */ + void SetRemoveBackInset(const bool remove); + + /** + * @brief Whether back inset of TextField is removed or not. + * + * @return True if the back inset of TextField is removed. + */ + bool IsRemoveBackInset() const; + +private: // Implementation + /** + * @copydoc Dali::Toolkit::Text::Controller::(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent) */ - void OnClipboardTextSelected(ClipboardEventNotifier& clipboard); + InputMethodContext::CallbackData OnInputMethodContextEvent(InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent); /** * @brief Get a Property Map for the image used for the required Handle Image @@ -434,13 +475,6 @@ private: // Implementation bool OnTouched(Actor actor, const TouchEvent& touch); /** - * @brief Callbacks called on idle. - * - * If there are notifications of change of input style on the queue, Toolkit::TextField::InputStyleChangedSignal() are emitted. - */ - void OnIdleSignal(); - - /** * @brief Emits TextChanged signal. */ void EmitTextChangedSignal(); @@ -481,8 +515,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() @@ -533,11 +569,10 @@ private: // Data std::vector mAnchorActors; Dali::InputMethodOptions mInputMethodOptions; - Actor mRenderableActor; - Actor mActiveLayer; - Actor mCursorLayer; - Actor mBackgroundActor; - CallbackBase* mIdleCallback; + Actor mRenderableActor; + Actor mActiveLayer; + Actor mCursorLayer; + Actor mBackgroundActor; float mAlignmentOffset; int mRenderingBackend;