-#ifndef __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
-#define __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
+#ifndef DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H
+#define DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
#include <dali/public-api/math/vector2.h>
// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/text/text-enumerations.h>
#include <dali-toolkit/internal/text/text-definitions.h>
+#include <dali-toolkit/internal/text/text-model.h>
namespace Dali
{
struct BidirectionalLineInfoRun;
+namespace Layout
+{
+
/**
* @brief Struct used to pass parameters.
*/
-struct LayoutParameters
+struct Parameters
{
/**
* Constructor with the needed parameters to layout the text.
*
* @param[in] boundingBox The size of the box containing the text.
- * @param[in] lineBreakInfoBuffer The line break info.
- * @param[in] wordBreakInfoBuffer The word break info.
- * @param[in] totalNumberOfGlyphs The number of glyphs.
- * @param[in] glyphsBuffer A vector with glyphs.
- * @param[in] glyphsToCharactersBuffer Vector with indices pointing the first character of each glyph.
- * @param[in] charactersPerGlyphBuffer Vector with the number of characters that forms each glyph.
+ * @param[in,out] textModel The text's model.
*/
- LayoutParameters( const Vector2& boundingBox,
- const LineBreakInfo* const lineBreakInfoBuffer,
- const WordBreakInfo* const wordBreakInfoBuffer,
- Length totalNumberOfGlyphs,
- const GlyphInfo* const glyphsBuffer,
- const CharacterIndex* const glyphsToCharactersBuffer,
- const Length* const charactersPerGlyphBuffer )
- : boundingBox( boundingBox ),
- lineBreakInfoBuffer( lineBreakInfoBuffer ),
- wordBreakInfoBuffer( wordBreakInfoBuffer ),
- totalNumberOfGlyphs( totalNumberOfGlyphs ),
- glyphsBuffer( glyphsBuffer ),
- glyphsToCharactersBuffer( glyphsToCharactersBuffer ),
- charactersPerGlyphBuffer( charactersPerGlyphBuffer ),
- charactersToGlyphsBuffer( NULL ),
- glyphsPerCharacterBuffer( NULL ),
- lineBidirectionalInfoRunsBuffer( NULL ),
- numberOfBidirectionalInfoRuns( 0u )
+ Parameters( const Vector2& boundingBox,
+ ModelPtr textModel )
+ : boundingBox{ boundingBox },
+ textModel{ textModel },
+ lineBidirectionalInfoRunsBuffer{ nullptr },
+ numberOfBidirectionalInfoRuns{ 0u },
+ startGlyphIndex{ 0u },
+ numberOfGlyphs{ 0u },
+ startLineIndex{ 0u },
+ estimatedNumberOfLines{ 0u },
+ interGlyphExtraAdvance{ 0.f },
+ isLastNewParagraph{ false }
{}
- Vector2 boundingBox;
- const LineBreakInfo* const lineBreakInfoBuffer;
- const WordBreakInfo* const wordBreakInfoBuffer;
- Length totalNumberOfGlyphs;
- const GlyphInfo* const glyphsBuffer;
- const CharacterIndex* const glyphsToCharactersBuffer;
- const Length* const charactersPerGlyphBuffer;
- GlyphIndex* charactersToGlyphsBuffer; ///< The character to glyph conversion table.
- Length* glyphsPerCharacterBuffer; ///< The number of glyphs per character.
- BidirectionalLineInfoRun* lineBidirectionalInfoRunsBuffer; ///< Bidirectional conversion tables per line.
- Length numberOfBidirectionalInfoRuns; ///< The number of lines with bidirectional info.
+ Vector2 boundingBox; ///< The size of the box containing the text.
+ ModelPtr textModel;
+ BidirectionalLineInfoRun* lineBidirectionalInfoRunsBuffer; ///< Bidirectional conversion tables per line.
+ Length numberOfBidirectionalInfoRuns; ///< The number of lines with bidirectional info.
+ GlyphIndex startGlyphIndex; ///< Index to the first glyph to layout.
+ Length numberOfGlyphs; ///< The number of glyphs to layout.
+ LineIndex startLineIndex; ///< The line index where to insert the new lines.
+ Length estimatedNumberOfLines; ///< The estimated number of lines.
+ float interGlyphExtraAdvance; ///< Extra advance added to each glyph.
+ bool isLastNewParagraph:1; ///< Whether the last character is a new paragraph character.
};
+} // namespace Layout
+
} // namespace Text
} // namespace Toolkit
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
+#endif // DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H