[dali_2.1.31] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-view.h
old mode 100755 (executable)
new mode 100644 (file)
index 91b7867..7cccf19
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_TEXT_VIEW_H
 
 /*
- * Copyright (c) 2019 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.
  */
 
 // INTERNAL INCLUDES
+#include <dali-toolkit/internal/text/bounded-paragraph-run.h>
+#include <dali-toolkit/internal/text/logical-model-impl.h>
 #include <dali-toolkit/internal/text/text-view-interface.h>
 #include <dali-toolkit/internal/text/visual-model-impl.h>
 
 namespace Dali
 {
-
 namespace Toolkit
 {
-
 namespace Text
 {
-
 /**
  * @brief View provides an interface between the Text layout engine and rendering back-end.
  */
 class View : public ViewInterface
 {
 public:
-
   /**
    * @brief Create a new instance of a View.
    */
@@ -53,114 +51,256 @@ public:
    *
    * @param[in] visualModel The visual model used by the View.
    */
-  void SetVisualModel( VisualModelPtr visualModel );
+  void SetVisualModel(VisualModelPtr visualModel);
+
+  /**
+   * @brief Set the logical model.
+   *
+   * @param[in] logicalModel The logical model used by the View.
+   */
+  void SetLogicalModel(LogicalModelPtr logicalModel);
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetControlSize()
    */
-  virtual const Vector2& GetControlSize() const;
+  const Vector2& GetControlSize() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetLayoutSize()
    */
-  virtual const Vector2& GetLayoutSize() const;
+  const Vector2& GetLayoutSize() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfGlyphs()
    */
-  virtual Length GetNumberOfGlyphs() const;
+  Length GetNumberOfGlyphs() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetGlyphs()
    */
-  virtual Length GetGlyphs( GlyphInfo* glyphs,
-                            Vector2* glyphPositions,
-                            float& minLineOffset,
-                            GlyphIndex glyphIndex,
-                            Length numberOfGlyphs ) const;
+  virtual Length GetGlyphs(GlyphInfo* glyphs,
+                           Vector2*   glyphPositions,
+                           float&     minLineOffset,
+                           GlyphIndex glyphIndex,
+                           Length     numberOfGlyphs) const;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetColors()
    */
-  virtual const Vector4* const GetColors() const;
+  const Vector4* const GetColors() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetColorIndices()
    */
-  virtual const ColorIndex* const GetColorIndices() const;
+  const ColorIndex* const GetColorIndices() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetBackgroundColors()
    */
-  virtual const Vector4* const GetBackgroundColors() const;
+  const Vector4* const GetBackgroundColors() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetBackgroundColorIndices()
    */
-  virtual const ColorIndex* const GetBackgroundColorIndices() const;
+  const ColorIndex* const GetBackgroundColorIndices() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsMarkupBackgroundColorSet()
+   */
+  bool const IsMarkupBackgroundColorSet() const;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetTextColor()
    */
-  virtual const Vector4& GetTextColor() const;
+  const Vector4& GetTextColor() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetShadowOffset()
    */
-  virtual const Vector2& GetShadowOffset() const;
+  const Vector2& GetShadowOffset() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetShadowColor()
    */
-  virtual const Vector4& GetShadowColor() const;
+  const Vector4& GetShadowColor() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetUnderlineColor()
    */
-  virtual const Vector4& GetUnderlineColor() const;
+  const Vector4& GetUnderlineColor() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::IsUnderlineEnabled()
    */
-  virtual bool IsUnderlineEnabled() const;
+  bool IsUnderlineEnabled() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsMarkupUnderlineSet()
+   */
+  bool const IsMarkupUnderlineSet() const;
+
+  /**
+  * @copydoc Dali::Toolkit::Text::ViewInterface::GetHyphens()
+  */
+  const GlyphInfo* GetHyphens() const override;
+
+  /**
+  * @copydoc Dali::Toolkit::Text::ViewInterface::GetHyphens()
+  */
+  const Length* GetHyphenIndices() const override;
+
+  /**
+  * @copydoc Dali::Toolkit::Text::ViewInterface::GetHyphens()
+  */
+  Length GetHyphensCount() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetUnderlineHeight()
    */
-  virtual float GetUnderlineHeight() const;
+  float GetUnderlineHeight() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetUnderlineType()
+   */
+  Text::Underline::Type GetUnderlineType() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetDashedUnderlineWidth()
+   */
+  float GetDashedUnderlineWidth() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetDashedUnderlineGap()
+   */
+  float GetDashedUnderlineGap() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfUnderlineRuns()
    */
-  virtual Length GetNumberOfUnderlineRuns() const;
+  Length GetNumberOfUnderlineRuns() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetUnderlineRuns()
    */
-  virtual void GetUnderlineRuns( GlyphRun* underlineRuns,
-                                 UnderlineRunIndex index,
-                                 Length numberOfRuns ) const;
+  virtual void GetUnderlineRuns(UnderlinedGlyphRun* underlineRuns,
+                                UnderlineRunIndex   index,
+                                Length              numberOfRuns) const;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetOutlineColor()
    */
-  virtual const Vector4& GetOutlineColor() const;
+  const Vector4& GetOutlineColor() const override;
 
   /**
    * @copydoc Dali::Toolkit::Text::ViewInterface::GetOutlineWidth()
    */
-  virtual uint16_t GetOutlineWidth() const;
+  uint16_t GetOutlineWidth() const override;
 
-private:
+  /**
+  * @copydoc Dali::Toolkit::Text::ViewInterface::GetEllipsisPosition()
+  */
+  DevelText::EllipsisPosition::Type GetEllipsisPosition() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsTextElideEnabled()
+   */
+  bool IsTextElideEnabled() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStartIndexOfElidedGlyphs()
+   */
+  GlyphIndex GetStartIndexOfElidedGlyphs() const override;
 
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetEndIndexOfElidedGlyphs()
+   */
+  GlyphIndex GetEndIndexOfElidedGlyphs() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetFirstMiddleIndexOfElidedGlyphs()
+   */
+  GlyphIndex GetFirstMiddleIndexOfElidedGlyphs() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetSecondMiddleIndexOfElidedGlyphs()
+   */
+  GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStrikethroughColor()
+   */
+  const Vector4& GetStrikethroughColor() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsStrikethroughEnabled()
+   */
+  bool IsStrikethroughEnabled() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::IsMarkupStrikethroughSet()
+   */
+  bool const IsMarkupStrikethroughSet() const;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStrikethroughHeight()
+   */
+  float GetStrikethroughHeight() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfStrikethroughRuns()
+   */
+  Length GetNumberOfStrikethroughRuns() const;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetStrikethroughRuns()
+   */
+  void GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns,
+                            StrikethroughRunIndex  index,
+                            Length                 numberOfRuns) const;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfBoundedParagraphRuns()
+   */
+  virtual Length GetNumberOfBoundedParagraphRuns() const;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetBoundedParagraphRuns()
+   */
+  virtual const Vector<BoundedParagraphRun>& GetBoundedParagraphRuns() const;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfCharacterSpacingGlyphRuns()
+   */
+  Length GetNumberOfCharacterSpacingGlyphRuns() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetCharacterSpacingGlyphRuns()
+   */
+  const Vector<CharacterSpacingGlyphRun>& GetCharacterSpacingGlyphRuns() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetCharacterSpacing()
+   */
+  const float GetCharacterSpacing() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetTextBuffer()
+   */
+  const Character* GetTextBuffer() const override;
+
+  /**
+   * @copydoc Dali::Toolkit::Text::ViewInterface::GetGlyphsToCharacters()
+   */
+  const Vector<CharacterIndex>& GetGlyphsToCharacters() const override;
+
+private:
   // Undefined
-  View( const View& handle );
+  View(const View& handle);
 
   // Undefined
-  View& operator=( const View& handle );
+  View& operator=(const View& handle);
 
 private:
-
   struct Impl;
   Impl* mImpl;
 };