X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-view-interface.h;h=67875b8336515170d6f0681a82d9d35ede9cdf8c;hp=55e4aca86f9cc1e1381a229c69cc6682cb2f63dc;hb=0c862d5823332bc2161c64f901395f2390c82fd2;hpb=e2aa6c795f24794c33e2d2bfde3adeefefad6cf4 diff --git a/dali-toolkit/internal/text/text-view-interface.h b/dali-toolkit/internal/text/text-view-interface.h index 55e4aca..67875b8 100644 --- a/dali-toolkit/internal/text/text-view-interface.h +++ b/dali-toolkit/internal/text/text-view-interface.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__ -#define __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__ +#ifndef DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H +#define DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H /* - * Copyright (c) 2015 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. @@ -18,27 +18,25 @@ * */ -// EXTERNAL INCLUDES -#include - // INTERNAL INCLUDES +#include #include +#include namespace Dali { - struct Vector2; +struct Vector4; namespace Toolkit { - namespace Text { - -struct LineRun; +struct GlyphRun; +struct StrikethroughGlyphRun; /** - * @brief Abstract interface to provide the information necessary displaying text. + * @brief Abstract interface to provide the information necessary to display text. * * This includes: * - The font & glyph IDs needed to get bitmaps etc. from TextAbstraction @@ -48,7 +46,6 @@ struct LineRun; class ViewInterface { public: - /** * @brief Constructor. */ @@ -62,11 +59,19 @@ public: /** * @brief Retrieves the target size of the UI control. * - * @return The text's size. + * @return The control's size. */ virtual const Vector2& GetControlSize() const = 0; /** + * @brief Retrieves the text's layout size. + * + * @return The text's size. Note that this may be larger than the control size, + * in the case where text is scrolling/clipped. + */ + virtual const Vector2& GetLayoutSize() const = 0; + + /** * Retrieves the number of glyphs. * * @return The number of glyphs. @@ -80,16 +85,53 @@ public: * @note The returned number of glyphs may be less than @p numberOfGlyphs if a line has ellipsis. * * @param[out] glyphs Pointer to a buffer where the glyphs are copied. - * @param[out] glyphPositions Pointer to a buffer where the glyph positions are copied. + * @param[out] glyphPositions Pointer to a buffer where the glyph's positions are copied. + * @param[out] minLineOffset The minimum line offset. * @param[in] glyphIndex Index to the first glyph. * @param[in] numberOfGlyphs Number of glyphs to be copied. * * @return The number of glyphs. */ - virtual Length GetGlyphs( GlyphInfo* glyphs, - Vector2* glyphPositions, - GlyphIndex glyphIndex, - Length numberOfGlyphs ) const = 0; + virtual Length GetGlyphs(GlyphInfo* glyphs, + Vector2* glyphPositions, + float& minLineOffset, + GlyphIndex glyphIndex, + Length numberOfGlyphs) const = 0; + + /** + * @brief Retrieves the vector of colors. + * + * @return Pointer to the vector of colors. + */ + virtual const Vector4* const GetColors() const = 0; + + /** + * @brief Retrieves the vector of indices to the vector of colors. + * + * @return Pointer to a vector which stores for each glyph the index to the vector of colors. + */ + virtual const ColorIndex* const GetColorIndices() const = 0; + + /** + * @brief Retrieves the vector of background colors. + * + * @return Pointer to the vector of background colors. + */ + virtual const Vector4* const GetBackgroundColors() const = 0; + + /** + * @brief Retrieves the vector of indices to the vector of background colors. + * + * @return Pointer to a vector which stores for each glyph the index to the vector of background colors. + */ + virtual const ColorIndex* const GetBackgroundColorIndices() const = 0; + + /** + * @brief checks if there is background colors set using markup. + * + * @return boolean if there is background colors set using markup . + */ + virtual bool const IsMarkupBackgroundColorSet() const = 0; /** * @brief Retrieves the text color @@ -127,12 +169,165 @@ public: virtual bool IsUnderlineEnabled() const = 0; /** + * @brief Returns the hyphens glyph info. + * + * @return hyphens glyph info. + */ + virtual const GlyphInfo* GetHyphens() const = 0; + + /** + * @brief Returns the indices of the hyphen in the text. + * + * @return the hyphen indices. + */ + virtual const Length* GetHyphenIndices() const = 0; + + /** + * @brief Returns number of hyphens to add in text. + * + * @return number of hyphens. + */ + virtual Length GetHyphensCount() const = 0; + /** * @brief Retrieves the underline height override * * @return Returns the override height for an underline, 0 indicates that adaptor will determine the height */ virtual float GetUnderlineHeight() const = 0; + /** + * @brief Retrieves the underline type override + * + * @return Returns the override type for an underline. + */ + virtual Text::Underline::Type GetUnderlineType() const = 0; + + /** + * @brief Retrieves the dashed underline width override. + * + * @return Returns the override width for the dashed underline. + */ + virtual float GetDashedUnderlineWidth() const = 0; + + /** + * @brief Retrieves the dashed underline gap override. + * + * @return Returns the override gap for the dashed underline. + */ + virtual float GetDashedUnderlineGap() const = 0; + + /** + * @brief Retrieves the number of underline runs. + * + * @return The number of underline runs. + */ + virtual Length GetNumberOfUnderlineRuns() const = 0; + + /** + * @brief Retrieves the underline runs. + * + * @param[out] underlineRuns Pointer to a buffer where the underline runs are copied. + * @param[in] index Index of the first underline run to be copied. + * @param[in] numberOfRuns Number of underline runs to be copied. + */ + virtual void GetUnderlineRuns(GlyphRun* underlineRuns, + UnderlineRunIndex index, + Length numberOfRuns) const = 0; + + /** + * @brief Retrieve the outline color. + * + * @return The outline color. + */ + virtual const Vector4& GetOutlineColor() const = 0; + + /** + * @brief Retrieves the width of an outline + * + * @return The width of the outline. + */ + virtual uint16_t GetOutlineWidth() const = 0; + + /** + * @brief Retrieves ellipsis position for text. + * + * @return The ellipsis position. + */ + virtual DevelText::EllipsisPosition::Type GetEllipsisPosition() const = 0; + + /** + * @brief Whether the text elide property is enabled. + * + * @return @e true if the text elide property is enabled, @e false otherwise. + */ + virtual bool IsTextElideEnabled() const = 0; + + /** + * @brief Retrieves the start index of laid-out glyphs. + * + * @return The start index of laid-out glyphs. + */ + virtual GlyphIndex GetStartIndexOfElidedGlyphs() const = 0; + + /** + * @brief Retrieves the end index of laid-out glyphs. + * + * @return The end index of laid-out glyphs. + */ + virtual GlyphIndex GetEndIndexOfElidedGlyphs() const = 0; + + /** + * @brief Retrieves the first middle index of elided glyphs, index before ellipsis of middle. + * + * @return The first middle index of elided glyphs, index before ellipsis of middle. + */ + virtual GlyphIndex GetFirstMiddleIndexOfElidedGlyphs() const = 0; + + /** + * @brief Retrieves the second middle index of elided glyphs, index of ellipsis of middle. + * + * @return The second middle index of elided glyphs, index of ellipsis of middle. + */ + virtual GlyphIndex GetSecondMiddleIndexOfElidedGlyphs() const = 0; + + /** + * @brief Retrieves the strikethrough color. + * + * @return The strikethrough color. + */ + virtual const Vector4& GetStrikethroughColor() const = 0; + + /** + * @brief Returns whether strikethrough is enabled or not. + * + * @return The strikethrough state. + */ + virtual bool IsStrikethroughEnabled() const = 0; + + /** + * @brief Retrieves the strikethrough height override + * + * @return Returns the override height for a strikethrough, 0 indicates that adaptor will determine the height + */ + virtual float GetStrikethroughHeight() const = 0; + + /** + * @brief Retrieves the number of strikethrough runs. + * + * @return The number of strikethrough runs. + */ + virtual Length GetNumberOfStrikethroughRuns() const = 0; + + /** + * @brief Retrieves the strikethrough runs. + * + * @param[out] strikethroughRuns Pointer to a buffer where the strikethrough runs are copied. + * @param[in] index Index of the first strikethrough run to be copied. + * @param[in] numberOfRuns Number of strikethrough runs to be copied. + */ + virtual void GetStrikethroughRuns(StrikethroughGlyphRun* strikethroughRuns, + StrikethroughRunIndex index, + Length numberOfRuns) const = 0; }; } // namespace Text @@ -141,4 +336,4 @@ public: } // namespace Dali -#endif // __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__ +#endif // DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H