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=4aad47b2465267c9dd8e7c205c2e79a8a7426906;hp=d005a4a36fcff753f5dd77c844164c0eaa72a751;hb=528aa3699cd51dab5115bca1aaebb65d4bc67c15;hpb=10d2080e1d25b75347daa2f8c2dcee494fbcb175 diff --git a/dali-toolkit/internal/text/text-view-interface.h b/dali-toolkit/internal/text/text-view-interface.h old mode 100644 new mode 100755 index d005a4a..4aad47b --- 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) 2019 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. @@ -25,6 +25,7 @@ namespace Dali { struct Vector2; +struct Vector4; namespace Toolkit { @@ -32,8 +33,10 @@ namespace Toolkit namespace Text { +struct GlyphRun; + /** - * @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 @@ -55,6 +58,21 @@ public: virtual ~ViewInterface(); /** + * @brief Retrieves the target size of the UI control. + * + * @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. @@ -62,28 +80,127 @@ public: virtual Length GetNumberOfGlyphs() const = 0; /** - * @brief Retrieves glyphs in the given buffer. + * @brief Retrieves glyphs and positions in the given buffers. + * + * @note The size of the @p glyphs and @p glyphPositions buffers need to be big enough to copy the @p numberOfGlyphs glyphs and positions. + * @note The returned number of glyphs may be less than @p numberOfGlyphs if a line has ellipsis. * - * The size of the @p glyphs buffer needs to be big enough to copy the @p numberOfGlyphs. * @param[out] glyphs Pointer to a buffer where the glyphs 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, + float& minLineOffset, + GlyphIndex glyphIndex, + Length numberOfGlyphs ) const = 0; + + /** + * @brief Retrieves the vector of colors. + * + * @return Pointer to the vector of colors. */ - virtual void GetGlyphs( GlyphInfo* glyphs, - GlyphIndex glyphIndex, - Length numberOfGlyphs ) const = 0; + virtual const Vector4* const GetColors() const = 0; /** - * @brief Retrieves the glyph positions. + * @brief Retrieves the vector of indices to the vector of colors. * - * @pre The size of the @p positions buffer needs to be big enough to copy the @p numberOfGlyphs positions. - * @param[out] glyphPositions Pointer to a buffer where the glyph positions are copied. - * @param[in] glyphIndex Index to the first glyph position. - * @param[in] numberOfGlyphs The number of positions to be copied. + * @return Pointer to a vector which stores for each glyph the index to the vector of colors. */ - virtual void GetGlyphPositions( Vector2* glyphPositions, - GlyphIndex glyphIndex, - Length numberOfGlyphs ) const = 0; + 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 Retrieves the text color + * + * @return The text color + */ + virtual const Vector4& GetTextColor() const = 0; + + /** + * @brief Retrieves the shadow offset, 0 indicates no shadow. + * + * @return The shadow offset. + */ + virtual const Vector2& GetShadowOffset() const = 0; + + /** + * @brief Retrieves the shadow color. + * + * @return The shadow color. + */ + virtual const Vector4& GetShadowColor() const = 0; + + /** + * @brief Retrieves the underline color. + * + * @return The underline color. + */ + virtual const Vector4& GetUnderlineColor() const = 0; + + /** + * @brief Returns whether underline is enabled or not. + * + * @return The underline state. + */ + virtual bool IsUnderlineEnabled() 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 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; + }; } // namespace Text @@ -92,4 +209,4 @@ public: } // namespace Dali -#endif // __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__ +#endif // DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H