[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / text-controls / text-label-impl.h
index edf0a20..5730cc5 100644 (file)
@@ -144,6 +144,25 @@ public:
   Rect<float> 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
@@ -152,6 +171,61 @@ public:
    */
   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<Toolkit::DevelTextLabel::FitOption>& fitOptions);
+
+  /**
+   * @brief Get the text fit array of text label.
+   *
+   * @return list of the fit options.
+   */
+  std::vector<Toolkit::DevelTextLabel::FitOption>& 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()
@@ -266,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();
@@ -283,6 +363,8 @@ private: // Data
   Toolkit::DevelTextLabel::AnchorClickedSignalType  mAnchorClickedSignal;
   Toolkit::DevelTextLabel::TextFitChangedSignalType mTextFitChangedSignal;
 
+  std::string mLocale;
+
   int  mRenderingBackend;
   bool mTextUpdateNeeded : 1;
   bool mLastAutoScrollEnabled : 1;