X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Frendering%2Fview-model.h;h=c127ebbad528adbb5411a22d07da9823b9f60139;hp=fe77f6727d792971688916616a3fa8fae506452e;hb=HEAD;hpb=41d36118a13932bcf1db39b780ac437fcda8aa08 diff --git a/dali-toolkit/internal/text/rendering/view-model.h b/dali-toolkit/internal/text/rendering/view-model.h old mode 100755 new mode 100644 index fe77f67..4de580d --- a/dali-toolkit/internal/text/rendering/view-model.h +++ b/dali-toolkit/internal/text/rendering/view-model.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_TEXT_VIEW_MODEL_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -22,19 +22,17 @@ #include // INTERNAL INCLUDES -#include -#include #include +#include +#include +#include namespace Dali { - namespace Toolkit { - namespace Text { - /** * @brief Responsible of creating and store temporary modifications of the text model. * i.e. The elide of text. @@ -49,7 +47,7 @@ public: * * @param[in] model Pointer to the text's model interface. */ - ViewModel( const ModelInterface* const model ); + ViewModel(const ModelInterface* const model); /** * @brief Virtual destructor. @@ -61,173 +59,334 @@ public: /** * @copydoc ModelInterface::GetControlSize() */ - virtual const Size& GetControlSize() const; + const Size& GetControlSize() const override; /** * @copydoc ModelInterface::GetLayoutSize() */ - virtual const Size& GetLayoutSize() const; + const Size& GetLayoutSize() const override; /** * @copydoc ModelInterface::GetScrollPosition() */ - virtual const Vector2& GetScrollPosition() const; + const Vector2& GetScrollPosition() const override; /** * @copydoc ModelInterface::GetHorizontalAlignment() */ - virtual Text::HorizontalAlignment::Type GetHorizontalAlignment() const; + Text::HorizontalAlignment::Type GetHorizontalAlignment() const override; /** * @copydoc ModelInterface::GetVerticalAlignment() */ - virtual Text::VerticalAlignment::Type GetVerticalAlignment() const; + Text::VerticalAlignment::Type GetVerticalAlignment() const override; /** - * @copydoc ModelInterface::GetVerticalLineAlignment() - */ - virtual DevelText::VerticalLineAlignment::Type GetVerticalLineAlignment() const; + * @copydoc ModelInterface::GetVerticalLineAlignment() + */ + DevelText::VerticalLineAlignment::Type GetVerticalLineAlignment() const override; + + /** + * @copydoc ModelInterface::GetEllipsisPosition() + */ + DevelText::EllipsisPosition::Type GetEllipsisPosition() const override; /** * @copydoc ModelInterface::IsTextElideEnabled() */ - virtual bool IsTextElideEnabled() const; + bool IsTextElideEnabled() const override; /** * @copydoc ModelInterface::GetNumberOfLines() */ - virtual Length GetNumberOfLines() const; + Length GetNumberOfLines() const override; /** * @copydoc ModelInterface::GetLines() */ - virtual const LineRun* const GetLines() const; + const LineRun* GetLines() const override; /** * @copydoc ModelInterface::GetNumberOfScripts() */ - virtual Length GetNumberOfScripts() const; + Length GetNumberOfScripts() const override; /** * @copydoc ModelInterface::GetScriptRuns() */ - virtual const ScriptRun* const GetScriptRuns() const; + const ScriptRun* GetScriptRuns() const override; + + /** + * @copydoc ModelInterface::GetNumberOfCharacters() + */ + Length GetNumberOfCharacters() const override; /** * @copydoc ModelInterface::GetNumberOfGlyphs() */ - virtual Length GetNumberOfGlyphs() const; + Length GetNumberOfGlyphs() const override; + + /** + * @copydoc ModelInterface::GetStartIndexOfElidedGlyphs() + */ + GlyphIndex GetStartIndexOfElidedGlyphs() const override; + + /** + * @copydoc ModelInterface::GetEndIndexOfElidedGlyphs() + */ + GlyphIndex GetEndIndexOfElidedGlyphs() const override; + + /** + * @copydoc ModelInterface::GetFirstMiddleIndexOfElidedGlyphs() + */ + GlyphIndex GetFirstMiddleIndexOfElidedGlyphs() const override; + + /** + * @copydoc ModelInterface::GetSecondMiddleIndexOfElidedGlyphs() + */ + GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const override; /** * @copydoc ModelInterface::GetGlyphs() */ - virtual const GlyphInfo* const GetGlyphs() const; + const GlyphInfo* GetGlyphs() const override; /** * @copydoc ModelInterface::GetLayout() */ - virtual const Vector2* const GetLayout() const; + const Vector2* GetLayout() const override; /** * @copydoc ModelInterface::GetColors() */ - virtual const Vector4* const GetColors() const; + const Vector4* GetColors() const override; /** * @copydoc ModelInterface::GetColorIndices() */ - virtual const ColorIndex* const GetColorIndices() const; + const ColorIndex* GetColorIndices() const override; /** * @copydoc ModelInterface::GetBackgroundColors() */ - virtual const Vector4* const GetBackgroundColors() const; + const Vector4* GetBackgroundColors() const override; /** * @copydoc ModelInterface::GetBackgroundColorIndices() */ - virtual const ColorIndex* const GetBackgroundColorIndices() const; + const ColorIndex* GetBackgroundColorIndices() const override; + + /** + * @copydoc ModelInterface::IsMarkupBackgroundColorSet() + */ + bool IsMarkupBackgroundColorSet() const override; /** * @copydoc ModelInterface::GetDefaultColor() */ - virtual const Vector4& GetDefaultColor() const; + const Vector4& GetDefaultColor() const override; /** * @copydoc ModelInterface::GetShadowOffset() */ - virtual const Vector2& GetShadowOffset() const; + const Vector2& GetShadowOffset() const override; /** * @copydoc ModelInterface::GetShadowColor() */ - virtual const Vector4& GetShadowColor() const; + const Vector4& GetShadowColor() const override; /** * @copydoc ModelInterface::GetShadowBlurRadius() */ - virtual const float& GetShadowBlurRadius() const; + const float& GetShadowBlurRadius() const override; /** * @copydoc ModelInterface::GetUnderlineColor() */ - virtual const Vector4& GetUnderlineColor() const; + const Vector4& GetUnderlineColor() const override; /** * @copydoc ModelInterface::IsUnderlineEnabled() */ - virtual bool IsUnderlineEnabled() const; + bool IsUnderlineEnabled() const override; + + /** + * @copydoc ModelInterface::IsMarkupUnderlineSet() + */ + bool IsMarkupUnderlineSet() const override; /** * @copydoc ModelInterface::GetUnderlineHeight() */ - virtual float GetUnderlineHeight() const; + float GetUnderlineHeight() const override; + + /** + * @copydoc ModelInterface::GetUnderlineType() + */ + Text::Underline::Type GetUnderlineType() const override; + + /** + * @copydoc ModelInterface::GetDashedUnderlineWidth() + */ + float GetDashedUnderlineWidth() const override; + + /** + * @copydoc ModelInterface::GetDashedUnderlineGap() + */ + float GetDashedUnderlineGap() const override; /** * @copydoc ModelInterface::GetNumberOfUnderlineRuns() */ - virtual Length GetNumberOfUnderlineRuns() const; + Length GetNumberOfUnderlineRuns() const override; /** * @copydoc ModelInterface::GetUnderlineRuns() */ - virtual void GetUnderlineRuns( GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns ) const; + void GetUnderlineRuns(UnderlinedGlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const override; /** * @copydoc ModelInterface::GetOutlineColor() */ - virtual const Vector4& GetOutlineColor() const; + const Vector4& GetOutlineColor() const override; /** * @copydoc ModelInterface::GetOutlineWidth() */ - virtual uint16_t GetOutlineWidth() const; + uint16_t GetOutlineWidth() const override; /** * @copydoc ModelInterface::GetBackgroundColor() */ - virtual const Vector4& GetBackgroundColor() const; + const Vector4& GetBackgroundColor() const override; /** * @copydoc ModelInterface::IsBackgroundEnabled() */ - virtual bool IsBackgroundEnabled() const; + bool IsBackgroundEnabled() const override; -/** - * @brief Does the text elide. + /** + * @copydoc ModelInterface::IsMarkupProcessorEnabled() + */ + bool IsMarkupProcessorEnabled() const override; + + /** + * @copydoc ModelInterface::IsSpannedTextPlaced() + */ + bool IsSpannedTextPlaced() const override; + + /** + * @copydoc ModelInterface::GetHyphens() + */ + const GlyphInfo* GetHyphens() const override; + + /** + * @copydoc ModelInterface::GetHyphens() + */ + const Length* GetHyphenIndices() const override; + + /** + * @copydoc ModelInterface::GetHyphens() + */ + Length GetHyphensCount() const override; + + /** + * @copydoc ModelInterface::GetCharacterSpacing() + */ + float GetCharacterSpacing() const override; + + /** + * @copydoc ModelInterface::GetTextBuffer() + */ + const Character* GetTextBuffer() const override; + + /** + * @copydoc ModelInterface::GetGlyphsToCharacters() + */ + const Vector& GetGlyphsToCharacters() const override; + + /** + * @brief Does the text elide at the end, start or middle of text according to ellipsis position * * It stores a copy of the visible glyphs and removes as many glyphs as needed - * from the last visible line to add the ellipsis glyph. + * from the last visible line to add the ellipsis glyph in END case, + * from the first visible line to add the ellipsis glyph in START case, + * between the first and last visible lines to add the ellipsis glyph. * * It stores as well a copy of the positions for each visible glyph. */ void ElideGlyphs(); + /** + * @copydoc ModelInterface::GetStrikethroughHeight() + */ + float GetStrikethroughHeight() const override; + + /** + * @copydoc ModelInterface::GetStrikethroughColor() + */ + const Vector4& GetStrikethroughColor() const override; + + /** + * @copydoc ModelInterface::IsStrikethroughEnabled() + */ + bool IsStrikethroughEnabled() const override; + + /** + * @copydoc ModelInterface::IsMarkupStrikethroughSet() + */ + bool IsMarkupStrikethroughSet() const override; + + /** + * @copydoc ModelInterface::GetNumberOfStrikethroughRuns() + */ + Length GetNumberOfStrikethroughRuns() const override; + + /** + * @copydoc ModelInterface::GetNumberOfBoundedParagraphRuns() + */ + virtual Length GetNumberOfBoundedParagraphRuns() const override; + + /** + * @copydoc ModelInterface::GetBoundedParagraphRuns() + */ + virtual const Vector& GetBoundedParagraphRuns() const override; + + /** + * @copydoc ModelInterface::GetStrikethroughRuns() + */ + void GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns, StrikethroughRunIndex index, Length numberOfRuns) const override; + + /** + * @copydoc ModelInterface::GetNumberOfCharacterSpacingGlyphRuns() + */ + Length GetNumberOfCharacterSpacingGlyphRuns() const override; + + /** + * @copydoc ModelInterface::GetCharacterSpacingGlyphRuns() + */ + const Vector& GetCharacterSpacingGlyphRuns() const override; + + /** + * @copydoc ModelInterface::GetFontRuns() + */ + const Vector& GetFontRuns() const override; + + /** + * @copydoc ModelInterface::GetFontDescriptionRuns() + */ + const Vector& GetFontDescriptionRuns() const override; + private: - const ModelInterface* const mModel; ///< Pointer to the text's model. - Vector mElidedGlyphs; ///< Stores the glyphs of the elided text. - Vector mElidedLayout; ///< Stores the positions of each glyph of the elided text. - bool mIsTextElided : 1; ///< Whether the text has been elided. + const ModelInterface* const mModel; ///< Pointer to the text's model. + Vector mElidedGlyphs; ///< Stores the glyphs of the elided text. + Vector mElidedLayout; ///< Stores the positions of each glyph of the elided text. + bool mIsTextElided : 1; ///< Whether the text has been elided. + GlyphIndex mStartIndexOfElidedGlyphs; ///< The start index of elided glyphs. + GlyphIndex mEndIndexOfElidedGlyphs; ///< The end index of elided glyphs. + GlyphIndex mFirstMiddleIndexOfElidedGlyphs; ///< The first end index of elided glyphs, index before ellipsis of middle. + GlyphIndex mSecondMiddleIndexOfElidedGlyphs; ///< The second end index of elided glyphs, index of ellipsis of middle. }; } // namespace Text