text: Fix checking NULL after dereferencing
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-controller.h
index da396c9..81a0318 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_CONTROLLER_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -962,6 +962,20 @@ public: // Default style & Input style
   float GetFontSizeScale() const;
 
   /**
+   * @brief Set the font size scale enabled flag.
+   *
+   * @param[in] enabled whether to enable the font size scale.
+   */
+  void SetFontSizeScaleEnabled(bool enabled);
+
+  /**
+   * @brief Returns whether the font size scale is enabled or not.
+   *
+   * @return @e true if the font size scale is enabled, otherwise returns @e false.
+   */
+  bool IsFontSizeScaleEnabled() const;
+
+  /**
    * @brief Sets the Placeholder text font size.
    * @param[in] fontSize The placeholder text font size
    * @param[in] type The font size type is point size or pixel size
@@ -1088,6 +1102,46 @@ public: // Default style & Input style
   float GetUnderlineHeight() const;
 
   /**
+   * @brief Sets the underline type.
+   * @param[in] type The underline type.
+   */
+  void SetUnderlineType(Text::Underline::Type type);
+
+  /**
+   * @brief Retrieve underline type.
+   * @return The underline type.
+   */
+  Text::Underline::Type GetUnderlineType() const;
+
+  /**
+   * @brief Set the width of the dashes of the dashed underline.
+   *
+   * @param[in] width The width in pixels of the dashes of the dashed underline.
+   */
+  void SetDashedUnderlineWidth(float width);
+
+  /**
+   * @brief Retrieves the width of the dashes of the dashed underline.
+   *
+   * @return The width of the dashes of the dashed underline.
+   */
+  float GetDashedUnderlineWidth() const;
+
+  /**
+   * @brief Set the gap between the dashes of the dashed underline.
+   *
+   * @param[in] gap The gap between the dashes of the dashed underline.
+   */
+  void SetDashedUnderlineGap(float gap);
+
+  /**
+   * @brief Retrieves the gap between the dashes of the dashed underline.
+   *
+   * @return The The gap between the dashes of the dashed underline.
+   */
+  float GetDashedUnderlineGap() const;
+
+  /**
    * @brief Set the outline color.
    *
    * @param[in] color color of outline.
@@ -1208,6 +1262,22 @@ public: // Default style & Input style
   float GetDefaultLineSize() const;
 
   /**
+   * @brief Sets the relative line size to the original line size.
+   *
+   * @param[in] relativeLineSize The relativeline size.
+   *
+   * @return True if relativeLineSize has been updated, false otherwise
+   */
+  bool SetRelativeLineSize(float lineSize);
+
+  /**
+   * @brief Retrieves the relative line size.
+   *
+   * @return The relative line size.
+   */
+  float GetRelativeLineSize() const;
+
+  /**
    * @brief Sets the input text's color.
    *
    * @param[in] color The input text's color.
@@ -1414,6 +1484,24 @@ public: // Default style & Input style
    */
   void SetAnchorControlInterface(AnchorControlInterface* anchorControlInterface);
 
+  /**
+   * @brief Sets the character spacing.
+   *
+   * @note A positive value will make the characters far apart (expanded) and a negative value will bring them closer (condensed).
+   *
+   * @param[in] characterSpacing The character spacing.
+   */
+  void SetCharacterSpacing(float characterSpacing);
+
+  /**
+   * @brief Retrieves the character spacing.
+   *
+   * @note A positive value will make the characters far apart (expanded) and a negative value will bring them closer (condensed).
+   *
+   * @return The character spacing.
+   */
+  const float GetCharacterSpacing() const;
+
 public: // Queries & retrieves.
   /**
    * @brief Return the layout engine.
@@ -1608,6 +1696,15 @@ public: // Queries & retrieves.
   Vector<Vector2> GetTextPosition(CharacterIndex startIndex, CharacterIndex endIndex);
 
   /**
+   * @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(CharacterIndex startIndex, CharacterIndex endIndex);
+
+  /**
    * @brief Sets the layout direction changed.
    */
   void ChangedLayoutDirection();
@@ -1863,7 +1960,7 @@ protected: // Inherit from Text::Decorator::ControllerInterface.
   /**
    * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::AddDecoration()
    */
-  void AddDecoration(Actor& actor, bool needsClipping) override;
+  void AddDecoration(Actor& actor, DecorationType type, bool needsClipping) override;
 
   /**
    * @copydoc Dali::Toolkit::Text::Decorator::ControllerInterface::DecorationEvent()