[dali_2.3.25] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / logical-model-impl.h
index 08c636d..af4510f 100644 (file)
@@ -27,6 +27,8 @@
 #include <dali-toolkit/internal/text/anchor.h>
 #include <dali-toolkit/internal/text/bidirectional-line-info-run.h>
 #include <dali-toolkit/internal/text/bidirectional-paragraph-info-run.h>
+#include <dali-toolkit/internal/text/bounded-paragraph-run.h>
+#include <dali-toolkit/internal/text/character-spacing-character-run.h>
 #include <dali-toolkit/internal/text/color-run.h>
 #include <dali-toolkit/internal/text/embedded-item.h>
 #include <dali-toolkit/internal/text/font-description-run.h>
@@ -158,6 +160,11 @@ public:
    */
   void ClearStrikethroughRuns();
 
+  /**
+   * @brief Clears the underline runs.
+   */
+  void ClearUnderlineRuns();
+
   // Paragraphs
 
   /**
@@ -182,6 +189,34 @@ public:
                       Length                     numberOfCharacters,
                       Vector<ParagraphRunIndex>& paragraphs);
 
+  /**
+   * @brief Retrieves the number of bounded paragraph runs.
+   *
+   * @return The number of bounded paragraph runs.
+   */
+  Length GetNumberOfBoundedParagraphRuns() const;
+
+  /**
+   * @brief Retrieves the reference for bounded paragraph runs.
+   *
+   * @return The reference for bounded paragraph runs.
+   */
+  const Vector<BoundedParagraphRun>& GetBoundedParagraphRuns() const;
+
+  /**
+   * @brief Retrieves the number of character-spacing runs.
+   *
+   * @return The number of character-spacing runs.
+   */
+  Length GetNumberOfCharacterSpacingCharacterRuns() const;
+
+  /**
+   * @brief Retrieves the reference for character-spacing runs.
+   *
+   * @return The reference for character-spacing runs.
+   */
+  const Vector<CharacterSpacingCharacterRun>& GetCharacterSpacingCharacterRuns() const;
+
   // Embedded images
 
   /**
@@ -226,10 +261,17 @@ public:
   Vector<BidirectionalLineInfoRun>      mBidirectionalLineInfo;
   Vector<EmbeddedItem>                  mEmbeddedItems;
   Vector<Anchor>                        mAnchors;
-  Vector<UnderlinedCharacterRun>        mUnderlinedCharacterRuns;    ///< The underlined character run from markup-processor
-  Vector<StrikethroughCharacterRun>     mStrikethroughCharacterRuns; ///< The strikethrough character run from markup-processor
+  Vector<UnderlinedCharacterRun>        mUnderlinedCharacterRuns;       ///< The underlined character run from markup-processor
+  Vector<StrikethroughCharacterRun>     mStrikethroughCharacterRuns;    ///< The strikethrough character run from markup-processor
+  Vector<BoundedParagraphRun>           mBoundedParagraphRuns;          ///< The bounded paragraph is used to handle a paragraph mark-up tag and it's attributes. Like TextAlign, TextDirection, TextIndent, LineHeight, etc.
+  Vector<CharacterSpacingCharacterRun>  mCharacterSpacingCharacterRuns; ///< The character-spacing character run from markup-processor.
 
   BidirectionalLineRunIndex mBidirectionalLineIndex; ///< The last fetched bidirectional line info.
+  bool                      mSpannedTextPlaced : 1;  ///< Whether the spanned-text is placed.
+
+  bool mUnderlineRunsUpdated : 1;        /// Whether the UnderlinedCharacterRuns is updated. (Added for SpannedText)
+  bool mCharacterSpacingRunsUpdated : 1; // Flag for updating character-spacing.
+  bool mStrikethroughRunsUpdated : 1;    /// Whether the StrikethroughCharacterRuns is updated. (Added for SpannedText)
 };
 
 } // namespace Text