X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-model.h;h=139b8a3799bbe582642458f7df5ddbf00f1119bd;hp=4256421efbd4c965790334408073c8cf63d85186;hb=646440beeb663fc5efcccadeba73dd46016ed1b3;hpb=723acb540264b5f3bfc98ec3284891aa58d765c4 diff --git a/dali-toolkit/internal/text/text-model.h b/dali-toolkit/internal/text/text-model.h index 4256421..139b8a3 100644 --- a/dali-toolkit/internal/text/text-model.h +++ b/dali-toolkit/internal/text/text-model.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_TEXT_MODEL_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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,21 +22,17 @@ #include // INTERNAL INCLUDES -#include -#include #include #include #include +#include namespace Dali { - namespace Toolkit { - namespace Text { - // Forward declarations. class Model; @@ -47,9 +43,7 @@ typedef IntrusivePtr ModelPtr; */ class Model : public RefObject, public ModelInterface { - public: // Constructor. - /** * @brief Create a new instance of a text Model. * @@ -58,111 +52,221 @@ public: // Constructor. static ModelPtr New(); 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 Layout::HorizontalAlignment GetHorizontalAlignment() const; + HorizontalAlignment::Type GetHorizontalAlignment() const override; /** * @copydoc ModelInterface::GetVerticalAlignment() */ - virtual Layout::VerticalAlignment GetVerticalAlignment() const; + VerticalAlignment::Type GetVerticalAlignment() const override; + + /** + * @copydoc ModelInterface::GetVerticalLineAlignment() + */ + DevelText::VerticalLineAlignment::Type GetVerticalLineAlignment() 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* const GetLines() const override; + + /** + * @copydoc ModelInterface::GetNumberOfScripts() + */ + Length GetNumberOfScripts() const override; + + /** + * @copydoc ModelInterface::GetScriptRuns() + */ + const ScriptRun* const GetScriptRuns() const override; /** * @copydoc ModelInterface::GetNumberOfGlyphs() */ - virtual Length GetNumberOfGlyphs() const; + Length GetNumberOfGlyphs() const override; /** * @copydoc ModelInterface::GetGlyphs() */ - virtual const GlyphInfo* const GetGlyphs() const; + const GlyphInfo* const GetGlyphs() const override; /** * @copydoc ModelInterface::GetLayout() */ - virtual const Vector2* const GetLayout() const; + const Vector2* const GetLayout() const override; /** * @copydoc ModelInterface::GetColors() */ - virtual const Vector4* const GetColors() const; + const Vector4* const GetColors() const override; /** * @copydoc ModelInterface::GetColorIndices() */ - virtual const ColorIndex* const GetColorIndices() const; + const ColorIndex* const GetColorIndices() const override; + + /** + * @copydoc ModelInterface::GetBackgroundColors() + */ + const Vector4* const GetBackgroundColors() const override; + + /** + * @copydoc ModelInterface::GetBackgroundColorIndices() + */ + const ColorIndex* const GetBackgroundColorIndices() const override; + + /** + * @copydoc ModelInterface::IsMarkupBackgroundColorSet() + */ + bool const IsMarkupBackgroundColorSet() const override; /** * @copydoc ModelInterface::GetDefaultColor() */ - virtual const Vector4& GetDefaultColor() const; + const Vector4& GetDefaultColor() const override; -private: // Private contructors & copy operator. + /** + * @copydoc ModelInterface::GetShadowOffset() + */ + const Vector2& GetShadowOffset() const override; + + /** + * @copydoc ModelInterface::GetShadowColor() + */ + const Vector4& GetShadowColor() const override; + + /** + * @copydoc ModelInterface::GetShadowBlurRadius() + */ + const float& GetShadowBlurRadius() const override; + + /** + * @copydoc ModelInterface::GetUnderlineColor() + */ + const Vector4& GetUnderlineColor() const override; /** + * @copydoc ModelInterface::IsUnderlineEnabled() + */ + bool IsUnderlineEnabled() const override; + + /** + * @copydoc ModelInterface::GetUnderlineHeight() + */ + float GetUnderlineHeight() const override; + + /** + * @copydoc ModelInterface::GetNumberOfUnderlineRuns() + */ + Length GetNumberOfUnderlineRuns() const override; + + /** + * @copydoc ModelInterface::GetUnderlineRuns() + */ + void GetUnderlineRuns(GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const override; + + /** + * @copydoc ModelInterface::GetOutlineColor() + */ + const Vector4& GetOutlineColor() const override; + + /** + * @copydoc ModelInterface::GetOutlineWidth() + */ + uint16_t GetOutlineWidth() const override; + + /** + * @copydoc ModelInterface::GetBackgroundColor() + */ + const Vector4& GetBackgroundColor() const override; + + /** + * @copydoc ModelInterface::IsBackgroundEnabled() + */ + bool IsBackgroundEnabled() const override; + + /** + * @copydoc ModelInterface::IsMarkupProcessorEnabled() + */ + bool IsMarkupProcessorEnabled() 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; + +private: // Private contructors & copy operator. + /** * @brief Private constructor. */ Model(); // Undefined. - Model( const Model& handle ); + Model(const Model& handle); // Undefined. - Model& operator=( const Model& handle ); + Model& operator=(const Model& handle); protected: - /** * @brief A reference counted object may only be deleted by calling Unreference(). */ virtual ~Model(); public: - LogicalModelPtr mLogicalModel; ///< Pointer to the logical model. - VisualModelPtr mVisualModel; ///< Pointer to the visual model. + LogicalModelPtr mLogicalModel; ///< Pointer to the logical model. + VisualModelPtr mVisualModel; ///< Pointer to the visual model. /** * 0,0 means that the top-left corner of the layout matches the top-left corner of the UI control. * Typically this will have a negative value with scrolling occurs. */ - Vector2 mScrollPosition; ///< The text is offset by this position when scrolling. - Vector2 mScrollPositionLast; ///< The last offset value of mScrollPosition - Layout::HorizontalAlignment mHorizontalAlignment; ///< The layout's horizontal alignment. - Layout::VerticalAlignment mVerticalAlignment; ///< The layout's vertical alignment. - Layout::LineWrap::Mode mLineWrapMode; ///< The text wrap mode - float mAlignmentOffset; ///< The alignment offset. - bool mElideEnabled:1; ///< Whether the text's elide is enabled. + Vector2 mScrollPosition; ///< The text is offset by this position when scrolling. + Vector2 mScrollPositionLast; ///< The last offset value of mScrollPosition + HorizontalAlignment::Type mHorizontalAlignment; ///< The layout's horizontal alignment. + VerticalAlignment::Type mVerticalAlignment; ///< The layout's vertical alignment. + DevelText::VerticalLineAlignment::Type mVerticalLineAlignment; ///< The layout's vertical line alignment. + Text::LineWrap::Mode mLineWrapMode; ///< The text wrap mode + float mAlignmentOffset; ///< The alignment offset. + bool mElideEnabled : 1; ///< Whether the text's elide is enabled. + bool mIgnoreSpacesAfterText : 1; ///< Whether ignoring spaces after text or not. Default is true. + DevelText::MatchLayoutDirection mMatchLayoutDirection; ///< Whether to match text alignment with layout direction or not. }; } // namespace Text