[4.0] Line spacing for TextLabel and vertical line alignment feature
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-Text-Layout.cpp
index 80c4631..48c4476 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 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.
@@ -157,6 +157,7 @@ bool LayoutTextTest( const LayoutTextData& data )
   engine.SetLayout( data.layout );
 
   const Length totalNumberOfGlyphs = visualModel->mGlyphs.Count();
+  float outlineWidth = visualModel->GetOutlineWidth();
 
   Layout::Parameters layoutParameters( data.textArea,
                                        logicalModel->mText.Begin(),
@@ -169,7 +170,9 @@ bool LayoutTextTest( const LayoutTextData& data )
                                        visualModel->mCharactersToGlyph.Begin(),
                                        visualModel->mGlyphsPerCharacter.Begin(),
                                        totalNumberOfGlyphs,
-                                       Layout::HORIZONTAL_ALIGN_BEGIN );
+                                       Text::HorizontalAlignment::BEGIN,
+                                       Text::LineWrap::WORD,
+                                       outlineWidth );
 
   layoutParameters.isLastNewParagraph = isLastNewParagraph;
 
@@ -373,6 +376,7 @@ bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data )
   Layout::Engine engine;
   engine.SetMetrics( metrics );
 
+  float outlineWidth = visualModel->GetOutlineWidth();
   Layout::Parameters layoutParameters( data.textArea,
                                        logicalModel->mText.Begin(),
                                        logicalModel->mLineBreakInfo.Begin(),
@@ -384,7 +388,9 @@ bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data )
                                        visualModel->mCharactersToGlyph.Begin(),
                                        visualModel->mGlyphsPerCharacter.Begin(),
                                        visualModel->mGlyphs.Count(),
-                                       Layout::HORIZONTAL_ALIGN_BEGIN  );
+                                       Text::HorizontalAlignment::BEGIN,
+                                       Text::LineWrap::WORD,
+                                       outlineWidth );
 
   layoutParameters.numberOfBidirectionalInfoRuns = logicalModel->mBidirectionalLineInfo.Count();
   layoutParameters.lineBidirectionalInfoRunsBuffer = logicalModel->mBidirectionalLineInfo.Begin();
@@ -426,17 +432,17 @@ bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data )
 
 struct AlignData
 {
-  std::string                 description;
-  std::string                 text;
-  Size                        textArea;
-  unsigned int                numberOfFonts;
-  FontDescriptionRun*         fontDescriptions;
-  Layout::HorizontalAlignment horizontalAlignment;
-  Layout::VerticalAlignment   verticalAlignment;
-  unsigned int                startIndex;
-  unsigned int                numberOfCharacters;
-  unsigned int                numberOfLines;
-  float*                      lineOffsets;
+  std::string                       description;
+  std::string                       text;
+  Size                              textArea;
+  unsigned int                      numberOfFonts;
+  FontDescriptionRun*               fontDescriptions;
+  Text::HorizontalAlignment::Type   horizontalAlignment;
+  Text::VerticalAlignment::Type     verticalAlignment;
+  unsigned int                      startIndex;
+  unsigned int                      numberOfCharacters;
+  unsigned int                      numberOfLines;
+  float*                            lineOffsets;
 };
 
 bool AlignTest( const AlignData& data )
@@ -482,11 +488,13 @@ bool AlignTest( const AlignData& data )
   Layout::Engine engine;
   engine.SetMetrics( metrics );
 
+  float alignmentOffset = 0.f;
   engine.Align( data.textArea,
                 data.startIndex,
                 data.numberOfCharacters,
                 data.horizontalAlignment,
-                visualModel->mLines );
+                visualModel->mLines,
+                alignmentOffset );
 
   // Compare results.
   if( data.numberOfLines != visualModel->mLines.Count() )
@@ -708,6 +716,7 @@ int UtcDaliTextLayoutSmallTextArea02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -798,6 +807,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -810,6 +820,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -822,6 +833,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     -4.f,
     5.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -834,6 +846,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     -4.f,
     5.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -846,6 +859,7 @@ int UtcDaliTextLayoutMultilineText01(void)
     -4.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -993,6 +1007,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1005,6 +1020,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1017,6 +1033,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1029,6 +1046,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1041,6 +1059,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1053,6 +1072,7 @@ int UtcDaliTextLayoutMultilineText02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1134,6 +1154,7 @@ int UtcDaliTextLayoutMultilineText03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1146,6 +1167,7 @@ int UtcDaliTextLayoutMultilineText03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1158,6 +1180,7 @@ int UtcDaliTextLayoutMultilineText03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1245,6 +1268,7 @@ int UtcDaliTextLayoutMultilineText04(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1347,6 +1371,7 @@ int UtcDaliTextLayoutMultilineText05(void)
     -8.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1359,6 +1384,7 @@ int UtcDaliTextLayoutMultilineText05(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1677,6 +1703,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1689,6 +1716,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1701,6 +1729,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1713,6 +1742,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1725,6 +1755,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1737,6 +1768,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1749,6 +1781,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1761,6 +1794,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1773,6 +1807,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1785,6 +1820,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1797,6 +1833,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1809,6 +1846,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1821,6 +1859,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1833,6 +1872,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1845,6 +1885,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1857,6 +1898,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1869,6 +1911,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1881,6 +1924,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -1893,6 +1937,7 @@ int UtcDaliTextUpdateLayout01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2233,6 +2278,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2245,6 +2291,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2257,6 +2304,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2269,6 +2317,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2281,6 +2330,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2293,6 +2343,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2305,6 +2356,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2317,6 +2369,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2329,6 +2382,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2341,6 +2395,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2353,6 +2408,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2365,6 +2421,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2377,6 +2434,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2389,6 +2447,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2401,6 +2460,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2413,6 +2473,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2425,6 +2486,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2437,6 +2499,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2449,6 +2512,7 @@ int UtcDaliTextUpdateLayout02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2789,6 +2853,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2801,6 +2866,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2813,6 +2879,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2825,6 +2892,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2837,6 +2905,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2849,6 +2918,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2861,6 +2931,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2873,6 +2944,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2885,6 +2957,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2897,6 +2970,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2909,6 +2983,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2921,6 +2996,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2933,6 +3009,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2945,6 +3022,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2957,6 +3035,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2969,6 +3048,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2981,6 +3061,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -2993,6 +3074,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -3005,6 +3087,7 @@ int UtcDaliTextUpdateLayout03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -3096,6 +3179,7 @@ int UtcDaliTextLayoutEllipsis01(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     true
   };
@@ -3172,6 +3256,7 @@ int UtcDaliTextLayoutEllipsis02(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -3184,6 +3269,7 @@ int UtcDaliTextLayoutEllipsis02(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     true
   };
@@ -3328,6 +3414,7 @@ int UtcDaliTextLayoutEllipsis03(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     true
   };
@@ -3470,6 +3557,7 @@ int UtcDaliTextLayoutEllipsis04(void)
     -5.f,
     3.f,
     0.f,
+    0.f,
     false,
     false
   };
@@ -3482,6 +3570,7 @@ int UtcDaliTextLayoutEllipsis04(void)
     -5.f,
     4.f,
     0.f,
+    0.f,
     false,
     true
   };
@@ -3558,6 +3647,7 @@ int UtcDaliTextLayoutEllipsis05(void)
     -5.f,
     0.f,
     0.f,
+    0.f,
     false,
     true
   };
@@ -4137,8 +4227,8 @@ int UtcDaliTextAlign01(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_BEGIN,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::BEGIN,
+    Text::VerticalAlignment::TOP,
     0u,
     22u,
     6u,
@@ -4256,8 +4346,8 @@ int UtcDaliTextAlign02(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_BEGIN,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::BEGIN,
+    Text::VerticalAlignment::TOP,
     22u,
     26u,
     6u,
@@ -4375,8 +4465,8 @@ int UtcDaliTextAlign03(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_BEGIN,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::BEGIN,
+    Text::VerticalAlignment::TOP,
     48u,
     26u,
     6u,
@@ -4494,8 +4584,8 @@ int UtcDaliTextAlign04(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_CENTER,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::CENTER,
+    Text::VerticalAlignment::TOP,
     0u,
     22u,
     6u,
@@ -4613,8 +4703,8 @@ int UtcDaliTextAlign05(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_CENTER,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::CENTER,
+    Text::VerticalAlignment::TOP,
     22u,
     26u,
     6u,
@@ -4732,8 +4822,8 @@ int UtcDaliTextAlign06(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_CENTER,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::CENTER,
+    Text::VerticalAlignment::TOP,
     48u,
     26u,
     6u,
@@ -4851,8 +4941,8 @@ int UtcDaliTextAlign07(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_END,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::END,
+    Text::VerticalAlignment::TOP,
     0u,
     22u,
     6u,
@@ -4970,8 +5060,8 @@ int UtcDaliTextAlign08(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_END,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::END,
+    Text::VerticalAlignment::TOP,
     22u,
     26u,
     6u,
@@ -5089,8 +5179,8 @@ int UtcDaliTextAlign09(void)
     textArea,
     6u,
     fontDescriptionRuns.Begin(),
-    Layout::HORIZONTAL_ALIGN_END,
-    Layout::VERTICAL_ALIGN_TOP,
+    Text::HorizontalAlignment::END,
+    Text::VerticalAlignment::TOP,
     48u,
     26u,
     6u,