Outline effect has been fixed to be not front cropped.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / layouts / layout-parameters.h
index 8d875bf..7f3e169 100644 (file)
@@ -1,8 +1,8 @@
-#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.
@@ -22,6 +22,7 @@
 #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>
 
 namespace Dali
@@ -35,10 +36,13 @@ namespace Text
 
 struct BidirectionalLineInfoRun;
 
+namespace Layout
+{
+
 /**
  * @brief Struct used to pass parameters.
  */
-struct LayoutParameters
+struct Parameters
 {
   /**
    * Constructor with the needed parameters to layout the text.
@@ -54,18 +58,23 @@ struct LayoutParameters
    * @param[in] charactersToGlyphsBuffer Vector with indices pointing the first glyph of each character.
    * @param[in] glyphsPerCharacterBuffer Vector with the number of glyphs shaped from the character.
    * @param[in] totalNumberOfGlyphs The number of glyphs.
+   * @param[in] horizontalAlignment The horizontal alignment.
+   * @param[in] lineWrapMode The text wrap mode.
    */
-  LayoutParameters( const Vector2& boundingBox,
-                    const Character* const textBuffer,
-                    const LineBreakInfo* const lineBreakInfoBuffer,
-                    const WordBreakInfo* const wordBreakInfoBuffer,
-                    const CharacterDirection* const characterDirectionBuffer,
-                    const GlyphInfo* const glyphsBuffer,
-                    const CharacterIndex* const glyphsToCharactersBuffer,
-                    const Length* const charactersPerGlyphBuffer,
-                    const GlyphIndex* const charactersToGlyphsBuffer,
-                    const Length* const glyphsPerCharacterBuffer,
-                    Length totalNumberOfGlyphs )
+  Parameters( const Vector2& boundingBox,
+              const Character* const textBuffer,
+              const LineBreakInfo* const lineBreakInfoBuffer,
+              const WordBreakInfo* const wordBreakInfoBuffer,
+              const CharacterDirection* const characterDirectionBuffer,
+              const GlyphInfo* const glyphsBuffer,
+              const CharacterIndex* const glyphsToCharactersBuffer,
+              const Length* const charactersPerGlyphBuffer,
+              const GlyphIndex* const charactersToGlyphsBuffer,
+              const Length* const glyphsPerCharacterBuffer,
+              Length totalNumberOfGlyphs,
+              Text::HorizontalAlignment::Type horizontalAlignment,
+              Text::LineWrap::Mode lineWrapMode,
+              float outlineWidth )
   : boundingBox( boundingBox ),
     textBuffer( textBuffer ),
     lineBreakInfoBuffer( lineBreakInfoBuffer ),
@@ -81,9 +90,12 @@ struct LayoutParameters
     startGlyphIndex( 0u ),
     numberOfGlyphs( 0u ),
     totalNumberOfGlyphs( totalNumberOfGlyphs ),
+    horizontalAlignment( horizontalAlignment ),
     startLineIndex( 0u ),
     estimatedNumberOfLines( 0u ),
-    isLastNewParagraph( false )
+    lineWrapMode( lineWrapMode ),
+    isLastNewParagraph( false ),
+    outlineWidth( outlineWidth )
   {}
 
   Vector2                         boundingBox;                     ///< The size of the box containing the text.
@@ -101,15 +113,20 @@ struct LayoutParameters
   GlyphIndex                      startGlyphIndex;                 ///< Index to the first glyph to layout.
   Length                          numberOfGlyphs;                  ///< The number of glyphs to layout.
   Length                          totalNumberOfGlyphs;             ///< The number of glyphs.
+  HorizontalAlignment::Type       horizontalAlignment;             ///< The horizontal alignment.
   LineIndex                       startLineIndex;                  ///< The line index where to insert the new lines.
   Length                          estimatedNumberOfLines;          ///< The estimated number of lines.
+  Text::LineWrap::Mode            lineWrapMode;                    ///< The line wrap mode for moving to next line.
   bool                            isLastNewParagraph;              ///< Whether the last character is a new paragraph character.
+  float                           outlineWidth;                    ///< The outline width.
 };
 
+} // namespace Layout
+
 } // namespace Text
 
 } // namespace Toolkit
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
+#endif // DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H