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-label-impl.h;h=31167d8d19143abedc023e7446fd10f943045aea;hp=fb78d60e37f104908801d6475bd020b3f080ef69;hb=HEAD;hpb=549e79b19f4d24588121f55739f9fc53e00fcdaf diff --git a/dali-toolkit/internal/controls/text-controls/text-label-impl.h b/dali-toolkit/internal/controls/text-controls/text-label-impl.h index fb78d60..5730cc5 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.h @@ -19,23 +19,24 @@ */ // EXTERNAL INCLUDES +#include #include #include #include // INTERNAL INCLUDES +#include #include #include +#include #include #include #include -#include #include #include #include #include #include - namespace Dali { namespace Toolkit @@ -124,6 +125,107 @@ 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 textis 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 textLabel + * 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); + + /** + * @brief Set text fit array to text label. + * + * @param[in] enable Whether the text fit array is enabled or not. + * @param[in] fitOptions list of the fit options. + */ + void SetTextFitArray(const bool enable, std::vector& fitOptions); + + /** + * @brief Get the text fit array of text label. + * + * @return list of the fit options. + */ + std::vector& GetTextFitArray(); + + /** + * @brief Whether the text fit array is enabled or not. + * + * @return True if the text fit array is enabled. + */ + bool IsTextFitArrayEnabled() const; + + /** + * @brief Gets the locale. + */ + std::string GetLocale(); + + /** + * @brief Set removing front inset to text label. + * + * @param[in] remove Whether front inset of text label has to be removed or not. + */ + void SetRemoveFrontInset(const bool remove); + + /** + * @brief Whether front inset of text label is removed or not. + * + * @return True if the front inset of text label is removed. + */ + bool IsRemoveFrontInset() const; + + /** + * @brief Set removing back inset to text label. + * + * @param[in] remove Whether back inset of text label has to be removed or not. + */ + void SetRemoveBackInset(const bool remove); + + /** + * @brief Whether back inset of text label is removed or not. + * + * @return True if the back inset of text label is removed. + */ + bool IsRemoveBackInset() const; + private: // From Control /** * @copydoc Control::OnInitialize() @@ -131,6 +233,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; @@ -160,6 +267,16 @@ private: // From Control */ void OnPropertySet(Property::Index index, const Property::Value& propertyValue) override; + /** + * @copydoc Control::OnSceneConnection() + */ + void OnSceneConnection(int depth) override; + + /** + * @copydoc Control::OnSceneDisconnection() + */ + void OnSceneDisconnection() override; + // From ControlInterface /** @@ -223,6 +340,12 @@ private: void OnLayoutDirectionChanged(Actor actor, LayoutDirection::Type type); /** + * @brief Callback function for when the locale is changed. + * @param[in] locale The new system locale. + */ + void OnLocaleChanged(std::string locale); + + /** * @brief Emits TextFitChanged signal. */ void EmitTextFitChangedSignal(); @@ -240,8 +363,11 @@ private: // Data Toolkit::DevelTextLabel::AnchorClickedSignalType mAnchorClickedSignal; Toolkit::DevelTextLabel::TextFitChangedSignalType mTextFitChangedSignal; + std::string mLocale; + int mRenderingBackend; bool mTextUpdateNeeded : 1; + bool mLastAutoScrollEnabled : 1; protected: /**