X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit-internal%2Futc-Dali-Text-Layout.cpp;h=281dbbaf2892d4251eee90df22707f8ce2b1dd7c;hp=3e4eb3301613fcca187157426c69604d034ed743;hb=f25afa77b0b54726b8e12d91e8fdb84f6172d666;hpb=2c41553e8144b52da80b174939367a34ac2a871d diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp index 3e4eb33..281dbba 100755 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Layout.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -41,28 +41,29 @@ const std::string DEFAULT_FONT_DIR( "/resources/fonts" ); struct LayoutTextData { - std::string description; - std::string text; - Size textArea; - unsigned int numberOfFonts; - FontDescriptionRun* fontDescriptions; - Size layoutSize; - unsigned int totalNumberOfGlyphs; - float* positions; - unsigned int numberOfLines; - LineRun* lines; - Layout::Engine::Type layout; - unsigned int startIndex; - unsigned int numberOfGlyphs; - bool ellipsis:1; - bool updated:1; + std::string description; + std::string text; + Size textArea; + unsigned int numberOfFonts; + FontDescriptionRun* fontDescriptions; + Size layoutSize; + unsigned int totalNumberOfGlyphs; + float* positions; + unsigned int numberOfLines; + LineRun* lines; + Layout::Engine::Type layout; + unsigned int startIndex; + unsigned int numberOfGlyphs; + bool ellipsis:1; + DevelText::EllipsisPosition::Type ellipsisPosition; + bool updated:1; }; void Print( const LineRun& line ) { std::cout << " glyph run, index : " << line.glyphRun.glyphIndex << ", num glyphs : " << line.glyphRun.numberOfGlyphs << std::endl; std::cout << " character run, index : " << line.characterRun.characterIndex << ", num chars : " << line.characterRun.numberOfCharacters << std::endl; - std::cout << " width : " << line.width << std::endl; + std::cout << " width : " << floor(line.width) << std::endl; std::cout << " ascender : " << line.ascender << std::endl; std::cout << " descender : " << line.descender << std::endl; std::cout << " extraLength : " << line.extraLength << std::endl; @@ -100,7 +101,6 @@ bool LayoutTextTest( const LayoutTextData& data ) } LayoutOptions options; - options.reorder = false; options.align = false; CreateTextModel( data.text, data.textArea, @@ -109,7 +109,10 @@ bool LayoutTextTest( const LayoutTextData& data ) layoutSize, textModel, metrics, - false ); + false, + LineWrap::WORD, + false, + Toolkit::DevelText::EllipsisPosition::END ); LogicalModelPtr logicalModel = textModel->mLogicalModel; VisualModelPtr visualModel = textModel->mVisualModel; @@ -162,7 +165,6 @@ bool LayoutTextTest( const LayoutTextData& data ) textModel->mHorizontalAlignment = Text::HorizontalAlignment::BEGIN; textModel->mLineWrapMode = LineWrap::WORD; textModel->mIgnoreSpacesAfterText = true; - textModel->mMatchSystemLanguageDirection = false; Layout::Parameters layoutParameters( data.textArea, textModel ); @@ -178,11 +180,10 @@ bool LayoutTextTest( const LayoutTextData& data ) bool isAutoScroll = false; const bool updated = engine.LayoutText( layoutParameters, - glyphPositions, - lines, layoutSize, data.ellipsis, - isAutoScroll ); + isAutoScroll, + data.ellipsisPosition ); // 4) Compare the results. @@ -202,7 +203,7 @@ bool LayoutTextTest( const LayoutTextData& data ) { const Vector2& position = *( glyphPositions.Begin() + index ); - if( fabsf( position.x - *( data.positions + 2u * index ) ) > Math::MACHINE_EPSILON_1000 ) + if( fabsf( std::round( position.x ) - *( data.positions + 2u * index ) ) > Math::MACHINE_EPSILON_1000 ) { std::cout << " Different position for glyph " << index << " x : " << position.x << ", expected : " << *( data.positions + 2u * index ) << std::endl; return false; @@ -259,7 +260,7 @@ bool LayoutTextTest( const LayoutTextData& data ) return false; } - if( fabsf( line.width - expectedLine.width ) > Math::MACHINE_EPSILON_1 ) + if( fabsf( floor( line.width ) - expectedLine.width ) > Math::MACHINE_EPSILON_1 ) { std::cout << " Different line info for line : " << index << std::endl; Print( line ); @@ -313,110 +314,6 @@ bool LayoutTextTest( const LayoutTextData& data ) ////////////////////////////////////////////////////////// -struct ReLayoutRightToLeftLinesData -{ - std::string description; - std::string text; - Size textArea; - unsigned int numberOfFonts; - FontDescriptionRun* fontDescriptions; - unsigned int totalNumberOfGlyphs; - float* positions; - unsigned int startIndex; - unsigned int numberOfCharacters; -}; - -bool ReLayoutRightToLeftLinesTest( const ReLayoutRightToLeftLinesData& data ) -{ - // Load some fonts. - TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get(); - fontClient.SetDpi( 96u, 96u ); - - char* pathNamePtr = get_current_dir_name(); - const std::string pathName( pathNamePtr ); - free( pathNamePtr ); - - fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf" ); - fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansHebrewRegular.ttf" ); - fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansArabicRegular.ttf" ); - - // 1) Create the model. - ModelPtr textModel; - MetricsPtr metrics; - Size layoutSize; - - Vector fontDescriptionRuns; - if( 0u != data.numberOfFonts ) - { - fontDescriptionRuns.Insert( fontDescriptionRuns.End(), - data.fontDescriptions, - data.fontDescriptions + data.numberOfFonts ); - } - - LayoutOptions options; - options.reorder = false; - options.align = false; - CreateTextModel( data.text, - data.textArea, - fontDescriptionRuns, - options, - layoutSize, - textModel, - metrics, - false ); - - LogicalModelPtr logicalModel = textModel->mLogicalModel; - VisualModelPtr visualModel = textModel->mVisualModel; - - // 2) Call the ReLayoutRightToLeftLines() method. - Layout::Engine engine; - engine.SetMetrics( metrics ); - - textModel->mHorizontalAlignment = Text::HorizontalAlignment::BEGIN; - textModel->mLineWrapMode = LineWrap::WORD; - textModel->mIgnoreSpacesAfterText = true; - textModel->mMatchSystemLanguageDirection = false; - Layout::Parameters layoutParameters( data.textArea, - textModel ); - - layoutParameters.numberOfBidirectionalInfoRuns = logicalModel->mBidirectionalLineInfo.Count(); - layoutParameters.lineBidirectionalInfoRunsBuffer = logicalModel->mBidirectionalLineInfo.Begin(); - - engine.ReLayoutRightToLeftLines( layoutParameters, - data.startIndex, - data.numberOfCharacters, - visualModel->mGlyphPositions ); - - // 3) Compare the results. - Vector& glyphPositions = visualModel->mGlyphPositions; - - if( data.totalNumberOfGlyphs != visualModel->mGlyphs.Count() ) - { - std::cout << " Different number of glyphs : " << visualModel->mGlyphs.Count() << ", expected : " << data.totalNumberOfGlyphs << std::endl; - return false; - } - - for( unsigned int index = 0u; index < data.totalNumberOfGlyphs; ++index ) - { - const Vector2& position = *( glyphPositions.Begin() + index ); - - if( fabsf( position.x - *( data.positions + 2u * index ) ) > Math::MACHINE_EPSILON_1000 ) - { - std::cout << " Different position for glyph " << index << " x : " << position.x << ", expected : " << *( data.positions + 2u * index ) << std::endl; - return false; - } - if( fabsf( position.y - *( data.positions + 2u * index + 1u ) ) > Math::MACHINE_EPSILON_1000 ) - { - std::cout << " Different position for glyph " << index << " y : " << position.y << ", expected : " << *( data.positions + 2u * index + 1u ) << std::endl; - return false; - } - } - - return true; -} - -////////////////////////////////////////////////////////// - struct AlignData { std::string description; @@ -470,7 +367,10 @@ bool AlignTest( const AlignData& data ) layoutSize, textModel, metrics, - false ); + false, + LineWrap::WORD, + false, + Toolkit::DevelText::EllipsisPosition::END ); LogicalModelPtr logicalModel = textModel->mLogicalModel; VisualModelPtr visualModel = textModel->mVisualModel; @@ -527,6 +427,7 @@ bool AlignTest( const AlignData& data ) // UtcDaliTextLayoutMultilineText03 // UtcDaliTextLayoutMultilineText04 // UtcDaliTextLayoutMultilineText05 +// UtcDaliTextLayoutMultilineText06 // UtcDaliTextUpdateLayout01 // UtcDaliTextUpdateLayout02 // UtcDaliTextUpdateLayout03 @@ -606,6 +507,7 @@ int UtcDaliTextLayoutNoText(void) 0u, 0u, false, + DevelText::EllipsisPosition::END, false }; @@ -660,6 +562,7 @@ int UtcDaliTextLayoutSmallTextArea01(void) 0u, 11u, false, + DevelText::EllipsisPosition::END, false }; @@ -697,15 +600,15 @@ int UtcDaliTextLayoutSmallTextArea02(void) Vector fontDescriptionRuns; fontDescriptionRuns.PushBack( fontDescriptionRun ); Size textArea(1.f, 1.f); - Size layoutSize(78.f, 19.f); - float positions[] = { 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f }; + Size layoutSize(81.f, 20.f); + float positions[] = { 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f }; struct LineRun line = { { 0u, 11u }, { 0u, 11u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -731,6 +634,7 @@ int UtcDaliTextLayoutSmallTextArea02(void) 0u, 11u, false, + DevelText::EllipsisPosition::END, true }; @@ -781,22 +685,22 @@ int UtcDaliTextLayoutMultilineText01(void) fontDescriptionRuns.PushBack( fontDescriptionRun1 ); fontDescriptionRuns.PushBack( fontDescriptionRun2 ); Size textArea(100.f, 300.f); - Size layoutSize(91.f, 95.f); + Size layoutSize(98.f, 97.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, 42.f, -12.f, - 0.f, -12.f, 8.f, -9.f, 16.f, -9.f, 26.f, -9.f, 35.f, -9.f, 44.f, -11.f, 50.f, -0.f, - 0.f, -12.f, 10.f, -12.f, 14.f, -12.f, 25.f, -9.f, 34.f, -9.f, 40.f, -9.f, 49.f, -9.f, 58.f, -11.f, 64.f, -0.f, - 0.f, -12.f, 4.f, -12.f, 8.f, -9.f, 18.f, -9.f, 27.f, -9.f, 34.f, -0.f, 40.f, -9.f, 49.f, -12.f, 53.f, -0.f, 58.f, -11.f, 65.f, -9.f, 74.f, -9.f, 82.f, -11.f, 90.f, -2.f + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -2.f, 45.f, -12.f, + 0.f, -12.f, 8.f, -9.f, 18.f, -9.f, 27.f, -9.f, 38.f, -9.f, 47.f, -11.f, 53.f, -0.f, + 0.f, -12.f, 11.f, -12.f, 15.f, -12.f, 26.f, -9.f, 36.f, -9.f, 42.f, -9.f, 53.f, -9.f, 62.f, -11.f, 68.f, -0.f, + 0.f, -12.f, 4.f, -12.f, 9.f, -9.f, 18.f, -9.f, 28.f, -9.f, 36.f, -0.f, 41.f, -9.f, 51.f, -12.f, 57.f, -0.f, 62.f, -11.f, 68.f, -9.f, 78.f, -9.f, 87.f, -11.f, 94.f, -2.f }; struct LineRun line0 = { { 0u, 12u }, { 0u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -807,9 +711,9 @@ int UtcDaliTextLayoutMultilineText01(void) { { 12u, 6u }, { 12u, 6u }, - 42.f, + 44.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -820,10 +724,10 @@ int UtcDaliTextLayoutMultilineText01(void) { { 18u, 7u }, { 18u, 7u }, - 49.f, + 54.f, 15.f, -4.f, - 5.f, + 6.f, 0.f, 0.f, false, @@ -833,10 +737,10 @@ int UtcDaliTextLayoutMultilineText01(void) { { 25u, 9u }, { 25u, 10u }, - 63.f, + 68.f, 15.f, -4.f, - 5.f, + 6.f, 0.f, 0.f, false, @@ -846,7 +750,7 @@ int UtcDaliTextLayoutMultilineText01(void) { { 34u, 14u }, { 35u, 14u }, - 91.f, + 98.f, 15.f, -4.f, 0.f, @@ -879,6 +783,7 @@ int UtcDaliTextLayoutMultilineText01(void) 0u, 48u, false, + DevelText::EllipsisPosition::END, true }; @@ -980,23 +885,23 @@ int UtcDaliTextLayoutMultilineText02(void) fontDescriptionRuns.PushBack( fontDescriptionRun4 ); fontDescriptionRuns.PushBack( fontDescriptionRun5 ); Size textArea(100.f, 300.f); - Size layoutSize(78.f, 114.f); + Size layoutSize(81.f, 120.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 0 .. 11 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 12 .. 21 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 22 .. 27 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 28 .. 37 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 38 .. 49 + 4.f, -13.f, 13.f, -9.f, 23.f, -9.f, 36.f, -9.f, 0.f, -2.f, // 50 .. 54 }; struct LineRun line0 = { { 0u, 12u }, { 0u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1007,10 +912,10 @@ int UtcDaliTextLayoutMultilineText02(void) { { 12u, 10u }, { 12u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -1020,9 +925,9 @@ int UtcDaliTextLayoutMultilineText02(void) { { 22u, 6u }, { 22u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1033,10 +938,10 @@ int UtcDaliTextLayoutMultilineText02(void) { { 28u, 10u }, { 28u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -1046,9 +951,9 @@ int UtcDaliTextLayoutMultilineText02(void) { { 38u, 12u }, { 38u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1059,9 +964,9 @@ int UtcDaliTextLayoutMultilineText02(void) { { 50u, 5u }, { 50u, 5u }, - 42.f, + 45.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1093,6 +998,7 @@ int UtcDaliTextLayoutMultilineText02(void) 0u, 55u, false, + DevelText::EllipsisPosition::END, true }; @@ -1130,20 +1036,20 @@ int UtcDaliTextLayoutMultilineText03(void) Vector fontDescriptionRuns; fontDescriptionRuns.PushBack( fontDescriptionRun ); Size textArea(100.f, 300.f); - Size layoutSize(94.f, 57.f); + Size layoutSize(98.f, 60.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -9.f, 46.f, -9.f, 56.f, -9.f, 62.f, -13.f, 65.f, -13.f, 74.f, -13.f, 83.f, -9.f, - 0.f, -9.f, 12.f, -9.f, 22.f, -13.f, 30.f, -9.f, 39.f, -13.f, 43.f, -13.f, 46.f, -9.f, 55.f, -9.f, 66.f, -9.f, 76.f, -9.f, 82.f, -13.f, 85.f, -13.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -9.f, 48.f, -9.f, 58.f, -9.f, 65.f, -13.f, 68.f, -13.f, 77.f, -13.f, 86.f, -9.f, + 0.f, -9.f, 13.f, -9.f, 23.f, -13.f, 31.f, -9.f, 41.f, -13.f, 45.f, -13.f, 48.f, -9.f, 57.f, -9.f, 69.f, -9.f, 79.f, -9.f, 85.f, -13.f, 88.f, -13.f, + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -2.f, }; struct LineRun line0 = { { 0u, 12u }, { 0u, 12u }, - 91.f, + 95.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1154,9 +1060,9 @@ int UtcDaliTextLayoutMultilineText03(void) { { 12u, 12u }, { 12u, 12u }, - 94.f, + 98.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1167,9 +1073,9 @@ int UtcDaliTextLayoutMultilineText03(void) { { 24u, 5u }, { 24u, 5u }, - 42.f, + 44.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1197,6 +1103,7 @@ int UtcDaliTextLayoutMultilineText03(void) 0u, 29u, false, + DevelText::EllipsisPosition::END, true }; @@ -1234,18 +1141,18 @@ int UtcDaliTextLayoutMultilineText04(void) Vector fontDescriptionRuns; fontDescriptionRuns.PushBack( fontDescriptionRun ); Size textArea(100.f, 300.f); - Size layoutSize(81.f, 38.f); + Size layoutSize(84.f, 40.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -2.f, 81.f, -12.f + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -2.f, 85.f, -12.f }; struct LineRun line0 = { { 0u, 13u }, { 0u, 13u }, - 81.f, + 84.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, false, @@ -1257,7 +1164,7 @@ int UtcDaliTextLayoutMultilineText04(void) { 13u, 0u }, 0.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1284,6 +1191,7 @@ int UtcDaliTextLayoutMultilineText04(void) 0u, 13u, false, + DevelText::EllipsisPosition::END, true }; @@ -1348,19 +1256,19 @@ int UtcDaliTextLayoutMultilineText05(void) fontDescriptionRuns.PushBack( fontDescriptionRun2 ); fontDescriptionRuns.PushBack( fontDescriptionRun3 ); Size textArea(100.f, 300.f); - Size layoutSize(87.f, 51.f); + Size layoutSize(89.f, 53.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -14.f, 59.f, -9.f, 69.f, -9.f, 75.f, -13.f, 78.f, -13.f, 87.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -14.f, 60.f, -9.f, 70.f, -9.f, 76.f, -13.f, 80.f, -13.f, 89.f, -0.f, + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -2.f }; struct LineRun line0 = { { 0u, 12u }, { 0u, 12u }, - 87.f, + 89.f, 25.f, - -7.f, + -8.f, 4.f, 0.f, 0.f, @@ -1371,9 +1279,9 @@ int UtcDaliTextLayoutMultilineText05(void) { { 12u, 5u }, { 12u, 5u }, - 42.f, + 44.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1400,6 +1308,200 @@ int UtcDaliTextLayoutMultilineText05(void) 0u, 17u, false, + DevelText::EllipsisPosition::END, + true + }; + + if( !LayoutTextTest( data ) ) + { + tet_result(TET_FAIL); + } + + tet_result(TET_PASS); + END_TEST; +} + +int UtcDaliTextLayoutMultilineText06(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextLayoutMultilineText06"); + + const std::string fontFamily( "TizenSansHebrew" ); + + // Set a known font description + FontDescriptionRun fontDescriptionRun; + fontDescriptionRun.characterRun.characterIndex = 0u; + fontDescriptionRun.characterRun.numberOfCharacters = 10u; + fontDescriptionRun.familyLength = fontFamily.size(); + fontDescriptionRun.familyName = new char[fontDescriptionRun.familyLength]; + memcpy( fontDescriptionRun.familyName, fontFamily.c_str(), fontDescriptionRun.familyLength ); + fontDescriptionRun.familyDefined = true; + fontDescriptionRun.weightDefined = false; + fontDescriptionRun.widthDefined = false; + fontDescriptionRun.slantDefined = false; + fontDescriptionRun.sizeDefined = false; + + Vector fontDescriptionRuns; + fontDescriptionRuns.PushBack( fontDescriptionRun ); + + Size textArea(64.f, 100.f); + Size layoutSize(34.f, 40.f); + float positions[] = + { + 27.f, -13.f, 18.f, -10.f, 9.f, -10.f, 4.f, -10.f, 0.f, -0.f, + 22.f, -10.f, 17.f, -10.f, 12.f, -10.f, 4.f, -10.f, 0.f, -10.f + }; + struct LineRun line0 = + { + { 0u, 5u }, + { 0u, 5u }, + 32.f, + 15.f, + -5.f, + 5.f, + 0.f, + 0.f, + true, + false + }; + struct LineRun line1 = + { + { 5u, 5u }, + { 5u, 5u }, + 34.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + true, + false + }; + Vector lines; + lines.PushBack( line0 ); + lines.PushBack( line1 ); + + LayoutTextData data = + { + "Layout right to left text that doesn't fit in the text area after reordering.", + "לכאן שנורו", // If this text is laid-out ltr the width is 64. When reordered, the length is 66. This might cause alignment issues. + textArea, + 1u, + fontDescriptionRuns.Begin(), + layoutSize, + 10u, + positions, + 2u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, + 0u, + 10u, + false, + DevelText::EllipsisPosition::END, + true + }; + + if( !LayoutTextTest( data ) ) + { + tet_result(TET_FAIL); + } + + tet_result(TET_PASS); + END_TEST; +} + +int UtcDaliTextLayoutMultilineText07(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliTextLayoutMultilineText07"); + + const std::string fontFamily( "TizenSansHebrew" ); + + // Set a known font description + FontDescriptionRun fontDescriptionRun; + fontDescriptionRun.characterRun.characterIndex = 0u; + fontDescriptionRun.characterRun.numberOfCharacters = 9u; + fontDescriptionRun.familyLength = fontFamily.size(); + fontDescriptionRun.familyName = new char[fontDescriptionRun.familyLength]; + memcpy( fontDescriptionRun.familyName, fontFamily.c_str(), fontDescriptionRun.familyLength ); + fontDescriptionRun.familyDefined = true; + fontDescriptionRun.weightDefined = false; + fontDescriptionRun.widthDefined = false; + fontDescriptionRun.slantDefined = false; + fontDescriptionRun.sizeDefined = false; + + Vector fontDescriptionRuns; + fontDescriptionRuns.PushBack( fontDescriptionRun ); + + Size textArea(26.f, 100.f); + Size layoutSize(24.f, 60.f); + float positions[] = + { + 10.f, -10.f, 4.f, -10.f, 0.f, -10.f, + 13.f, -10.f, 9.f, -10.f, 0.f, -13.f, + 14.f, -10.f, 4.f, -10.f, 0.f, -10.f + }; + struct LineRun line0 = + { + { 0u, 3u }, + { 0u, 3u }, + 21.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + true, + false + }; + struct LineRun line1 = + { + { 3u, 3u }, + { 3u, 3u }, + 22.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + true, + false + }; + struct LineRun line2 = + { + { 6u, 3u }, + { 6u, 3u }, + 24.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + true, + false + }; + Vector lines; + lines.PushBack( line0 ); + lines.PushBack( line1 ); + lines.PushBack( line2 ); + + LayoutTextData data = + { + "Layout a single word of right to left text that doesn't fit in one single line. When layouting ltr a piece of word fits in the line but it doesn't after reordering.", + "שנורולכאן", // If a piece of this text is laid-out ltr the width is 26. When reordered, the length is 27. This might cause alignment issues. + textArea, + 1u, + fontDescriptionRuns.Begin(), + layoutSize, + 9u, + positions, + 3u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, + 0u, + 9u, + false, + DevelText::EllipsisPosition::END, true }; @@ -1663,36 +1765,36 @@ int UtcDaliTextUpdateLayout01(void) fontDescriptionRuns.PushBack( fontDescriptionRun16 ); fontDescriptionRuns.PushBack( fontDescriptionRun17 ); Size textArea(100.f, 300.f); - Size layoutSize(92.f, 361.f); + Size layoutSize(100.f, 380.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -13.f, 67.f, -9.f, 76.f, -13.f, 80.f, -13.f, 83.f, -9.f, 92.f, -0.f, - 0.f, -9.f, 11.f, -9.f, 21.f, -9.f, 27.f, -13.f, 30.f, -13.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, 42.f, -12.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -10.f, 70.f, -13.f, 77.f, -10.f, 82.f, -10.f, 90.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 0 .. 11 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 12 .. 21 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 22 .. 27 + 58.f, -8.f, 52.f, -6.f, 45.f, -8.f, 41.f, -7.f, 39.f, -11.f, 34.f, -0.f, 30.f, -7.f, 28.f, -11.f, 23.f, -11.f, 16.f, -8.f, 15.f, -11.f, 9.f, -11.f, 4.f, -8.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, // 28 .. 47 + 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, 59.f, -10.f, 50.f, -13.f, 46.f, -10.f, 36.f, -10.f, 32.f, -0.f, // 48 .. 58 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, // 59 .. 63 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 64 .. 73 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 74 .. 85 + 4.f, -13.f, 13.f, -9.f, 23.f, -9.f, 36.f, -9.f, 0.f, -2.f, 0.f, -12.f, // 86 .. 91 + 0.f, -13.f, 8.f, -9.f, 18.f, -13.f, 22.f, -13.f, 25.f, -9.f, 34.f, -0.f, 38.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 79.f, -0.f, // 92 .. 103 + 92.f, -8.f, 86.f, -6.f, 79.f, -8.f, 75.f, -7.f, 73.f, -11.f, 68.f, -0.f, 64.f, -7.f, 62.f, -11.f, 57.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 99.f, -0.f, // 104 .. 122 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, // 123 .. 127 + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 128 .. 139 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 140 .. 149 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 150 .. 155 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 156 .. 165 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 166 .. 177 + 54.f, -8.f, 49.f, -6.f, 41.f, -8.f, 37.f, -7.f, 35.f, -11.f, 31.f, -0.f, 26.f, -7.f, 24.f, -11.f, 19.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f, // 178 .. 191 }; struct LineRun line01 = { { 0u, 12u }, { 0u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1703,10 +1805,10 @@ int UtcDaliTextUpdateLayout01(void) { { 12u, 10u }, { 12u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -1716,9 +1818,9 @@ int UtcDaliTextUpdateLayout01(void) { { 22u, 6u }, { 22u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1727,11 +1829,11 @@ int UtcDaliTextUpdateLayout01(void) }; struct LineRun line04 = { - { 28u, 20u }, - { 28u, 20u }, - 92.f, + { 28u, 14u }, + { 28u, 14u }, + 63.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1740,24 +1842,24 @@ int UtcDaliTextUpdateLayout01(void) }; struct LineRun line05 = { - { 48u, 11u }, - { 48u, 11u }, - 75.f, + { 42, 12u }, + { 42, 12u }, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, - false, + true, false }; struct LineRun line06 = { - { 59u, 5u }, - { 59u, 5u }, - 29.f, + { 54u, 10u }, + { 54u, 10u }, + 70.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1768,10 +1870,10 @@ int UtcDaliTextUpdateLayout01(void) { { 64u, 10u }, { 64u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, true, @@ -1781,9 +1883,9 @@ int UtcDaliTextUpdateLayout01(void) { { 74u, 12u }, { 74u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1794,9 +1896,9 @@ int UtcDaliTextUpdateLayout01(void) { { 86u, 6u }, { 86u, 6u }, - 42.f, + 45.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1807,9 +1909,9 @@ int UtcDaliTextUpdateLayout01(void) { { 92u, 12u }, { 92u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1820,10 +1922,10 @@ int UtcDaliTextUpdateLayout01(void) { { 104u, 19u }, { 104u, 19u }, - 90.f, + 100.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -1833,9 +1935,9 @@ int UtcDaliTextUpdateLayout01(void) { { 123u, 5u }, { 123u, 5u }, - 29.f, + 32.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1846,9 +1948,9 @@ int UtcDaliTextUpdateLayout01(void) { { 128u, 12u }, { 128u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1859,10 +1961,10 @@ int UtcDaliTextUpdateLayout01(void) { { 140u, 10u }, { 140u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -1872,9 +1974,9 @@ int UtcDaliTextUpdateLayout01(void) { { 150u, 6u }, { 150u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1885,10 +1987,10 @@ int UtcDaliTextUpdateLayout01(void) { { 156u, 10u }, { 156u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, true, @@ -1898,9 +2000,9 @@ int UtcDaliTextUpdateLayout01(void) { { 166u, 12u }, { 166u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -1911,9 +2013,9 @@ int UtcDaliTextUpdateLayout01(void) { { 178u, 14u }, { 178u, 14u }, - 56.f, + 63.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1926,7 +2028,7 @@ int UtcDaliTextUpdateLayout01(void) { 192u, 0u }, 0.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -1975,6 +2077,7 @@ int UtcDaliTextUpdateLayout01(void) 0u, 64u, false, + DevelText::EllipsisPosition::END, true }; @@ -2238,36 +2341,36 @@ int UtcDaliTextUpdateLayout02(void) fontDescriptionRuns.PushBack( fontDescriptionRun16 ); fontDescriptionRuns.PushBack( fontDescriptionRun17 ); Size textArea(100.f, 300.f); - Size layoutSize(92.f, 361.f); + Size layoutSize(100.f, 380.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -13.f, 67.f, -9.f, 76.f, -13.f, 80.f, -13.f, 83.f, -9.f, 92.f, -0.f, - 0.f, -9.f, 11.f, -9.f, 21.f, -9.f, 27.f, -13.f, 30.f, -13.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, 42.f, -12.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -10.f, 70.f, -13.f, 77.f, -10.f, 82.f, -10.f, 90.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 0 .. 11 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 12 .. 21 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 22 .. 27 + 58.f, -8.f, 52.f, -6.f, 45.f, -8.f, 41.f, -7.f, 39.f, -11.f, 34.f, -0.f, 30.f, -7.f, 28.f, -11.f, 23.f, -11.f, 16.f, -8.f, 15.f, -11.f, 9.f, -11.f, 4.f, -8.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, // 28 .. 47 + 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, 59.f, -10.f, 50.f, -13.f, 46.f, -10.f, 36.f, -10.f, 32.f, -0.f, // 48 .. 58 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, // 59 .. 63 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 64 .. 73 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 74 .. 85 + 4.f, -13.f, 13.f, -9.f, 23.f, -9.f, 36.f, -9.f, 0.f, -2.f, 0.f, -12.f, // 86 .. 91 + 0.f, -13.f, 8.f, -9.f, 18.f, -13.f, 22.f, -13.f, 25.f, -9.f, 34.f, -0.f, 38.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 79.f, -0.f, // 92 .. 103 + 92.f, -8.f, 86.f, -6.f, 79.f, -8.f, 75.f, -7.f, 73.f, -11.f, 68.f, -0.f, 64.f, -7.f, 62.f, -11.f, 57.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 99.f, -0.f, // 104 .. 122 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, // 123 .. 127 + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 128 .. 139 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 140 .. 149 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 150 .. 155 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 156 .. 165 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 166 .. 177 + 54.f, -8.f, 49.f, -6.f, 41.f, -8.f, 37.f, -7.f, 35.f, -11.f, 31.f, -0.f, 26.f, -7.f, 24.f, -11.f, 19.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f, // 178 .. 191 }; struct LineRun line01 = { { 0u, 12u }, { 0u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2278,10 +2381,10 @@ int UtcDaliTextUpdateLayout02(void) { { 12u, 10u }, { 12u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2291,9 +2394,9 @@ int UtcDaliTextUpdateLayout02(void) { { 22u, 6u }, { 22u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2302,11 +2405,11 @@ int UtcDaliTextUpdateLayout02(void) }; struct LineRun line04 = { - { 28u, 20u }, - { 28u, 20u }, - 92.f, + { 28u, 14u }, + { 28u, 14u }, + 63.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2315,11 +2418,11 @@ int UtcDaliTextUpdateLayout02(void) }; struct LineRun line05 = { - { 48u, 11u }, - { 48u, 11u }, - 75.f, + { 42u, 12u }, + { 42u, 12u }, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2328,11 +2431,11 @@ int UtcDaliTextUpdateLayout02(void) }; struct LineRun line06 = { - { 59u, 5u }, - { 59u, 5u }, - 29.f, + { 54u, 10u }, + { 54u, 10u }, + 70.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2343,10 +2446,10 @@ int UtcDaliTextUpdateLayout02(void) { { 64u, 10u }, { 64u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2356,9 +2459,9 @@ int UtcDaliTextUpdateLayout02(void) { { 74u, 12u }, { 74u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 1.f, 0.f, @@ -2369,9 +2472,9 @@ int UtcDaliTextUpdateLayout02(void) { { 86u, 6u }, { 86u, 6u }, - 42.f, + 45.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2382,9 +2485,9 @@ int UtcDaliTextUpdateLayout02(void) { { 92u, 12u }, { 92u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2395,10 +2498,10 @@ int UtcDaliTextUpdateLayout02(void) { { 104u, 19u }, { 104u, 19u }, - 90.f, + 100.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2408,9 +2511,9 @@ int UtcDaliTextUpdateLayout02(void) { { 123u, 5u }, { 123u, 5u }, - 29.f, + 32.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2421,9 +2524,9 @@ int UtcDaliTextUpdateLayout02(void) { { 128u, 12u }, { 128u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2434,10 +2537,10 @@ int UtcDaliTextUpdateLayout02(void) { { 140u, 10u }, { 140u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2447,9 +2550,9 @@ int UtcDaliTextUpdateLayout02(void) { { 150u, 6u }, { 150u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2460,10 +2563,10 @@ int UtcDaliTextUpdateLayout02(void) { { 156u, 10u }, { 156u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2473,9 +2576,9 @@ int UtcDaliTextUpdateLayout02(void) { { 166u, 12u }, { 166u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2486,9 +2589,9 @@ int UtcDaliTextUpdateLayout02(void) { { 178u, 14u }, { 178u, 14u }, - 56.f, + 63.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2501,7 +2604,7 @@ int UtcDaliTextUpdateLayout02(void) { 192u, 0u }, 0.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2550,6 +2653,7 @@ int UtcDaliTextUpdateLayout02(void) 64u, 64u, false, + DevelText::EllipsisPosition::END, true }; @@ -2813,36 +2917,36 @@ int UtcDaliTextUpdateLayout03(void) fontDescriptionRuns.PushBack( fontDescriptionRun16 ); fontDescriptionRuns.PushBack( fontDescriptionRun17 ); Size textArea(100.f, 300.f); - Size layoutSize(92.f, 361.f); + Size layoutSize(100.f, 380.f); float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -13.f, 67.f, -9.f, 76.f, -13.f, 80.f, -13.f, 83.f, -9.f, 92.f, -0.f, - 0.f, -9.f, 11.f, -9.f, 21.f, -9.f, 27.f, -13.f, 30.f, -13.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -2.f, 42.f, -12.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -10.f, 70.f, -13.f, 77.f, -10.f, 82.f, -10.f, 90.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -10.f, 55.f, -13.f, 62.f, -10.f, 67.f, -10.f, 75.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -2.f, 32.f, -12.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, - 0.f, -13.f, 8.f, -9.f, 17.f, -13.f, 21.f, -13.f, 24.f, -9.f, 33.f, -0.f, 37.f, -9.f, 48.f, -9.f, 58.f, -9.f, 64.f, -13.f, 67.f, -13.f, 76.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 0 .. 11 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 12 .. 21 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 22 .. 27 + 58.f, -8.f, 52.f, -6.f, 45.f, -8.f, 41.f, -7.f, 39.f, -11.f, 34.f, -0.f, 30.f, -7.f, 28.f, -11.f, 23.f, -11.f, 16.f, -8.f, 15.f, -11.f, 9.f, -11.f, 4.f, -8.f, 0.f, -0.f, 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, // 28 .. 47 + 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, 59.f, -10.f, 50.f, -13.f, 46.f, -10.f, 36.f, -10.f, 32.f, -0.f, // 48 .. 58 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 0.f, -0.f, // 59 .. 63 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 64 .. 73 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 74 .. 85 + 4.f, -13.f, 13.f, -9.f, 23.f, -9.f, 36.f, -9.f, 0.f, -2.f, 0.f, -12.f, // 86 .. 91 + 0.f, -13.f, 8.f, -9.f, 18.f, -13.f, 22.f, -13.f, 25.f, -9.f, 34.f, -0.f, 38.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 79.f, -0.f, // 92 .. 103 + 92.f, -8.f, 86.f, -6.f, 79.f, -8.f, 75.f, -7.f, 73.f, -11.f, 68.f, -0.f, 64.f, -7.f, 62.f, -11.f, 57.f, -11.f, 50.f, -8.f, 49.f, -11.f, 43.f, -11.f, 38.f, -8.f, 34.f, -0.f, 23.f, -10.f, 14.f, -13.f, 10.f, -10.f, 0.f, -10.f, 99.f, -0.f, // 104 .. 122 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -0.f, // 123 .. 127 + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, // 128 .. 139 + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 68.f, -10.f, 59.f, -13.f, 54.f, -10.f, 45.f, -10.f, 79.f, -0.f, // 140 .. 149 + 23.f, -10.f, 19.f, -10.f, 10.f, -13.f, 0.f, -10.f, 32.f, -2.f, 36.f, -12.f, // 150 .. 155 + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, // 156 .. 165 + 4.f, -13.f, 12.f, -9.f, 22.f, -13.f, 26.f, -13.f, 29.f, -9.f, 38.f, -0.f, 42.f, -9.f, 54.f, -9.f, 64.f, -9.f, 70.f, -13.f, 73.f, -13.f, 0.f, -0.f, // 166 .. 177 + 54.f, -8.f, 49.f, -6.f, 41.f, -8.f, 37.f, -7.f, 35.f, -11.f, 31.f, -0.f, 26.f, -7.f, 24.f, -11.f, 19.f, -11.f, 12.f, -8.f, 11.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f, // 178 .. 191 }; struct LineRun line01 = { { 0u, 12u }, { 0u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2853,10 +2957,10 @@ int UtcDaliTextUpdateLayout03(void) { { 12u, 10u }, { 12u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2866,9 +2970,9 @@ int UtcDaliTextUpdateLayout03(void) { { 22u, 6u }, { 22u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2877,11 +2981,11 @@ int UtcDaliTextUpdateLayout03(void) }; struct LineRun line04 = { - { 28u, 20u }, - { 28u, 20u }, - 92.f, + { 28u, 14u }, + { 28u, 14u }, + 63.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2890,11 +2994,11 @@ int UtcDaliTextUpdateLayout03(void) }; struct LineRun line05 = { - { 48u, 11u }, - { 48u, 11u }, - 75.f, + { 42u, 12u }, + { 42u, 12u }, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2903,11 +3007,11 @@ int UtcDaliTextUpdateLayout03(void) }; struct LineRun line06 = { - { 59u, 5u }, - { 59u, 5u }, - 29.f, + { 54u, 10u }, + { 54u, 10u }, + 70.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2918,10 +3022,10 @@ int UtcDaliTextUpdateLayout03(void) { { 64u, 10u }, { 64u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2931,9 +3035,9 @@ int UtcDaliTextUpdateLayout03(void) { { 74u, 12u }, { 74u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 1.f, 0.f, @@ -2944,9 +3048,9 @@ int UtcDaliTextUpdateLayout03(void) { { 86u, 6u }, { 86u, 6u }, - 42.f, + 45.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2957,9 +3061,9 @@ int UtcDaliTextUpdateLayout03(void) { { 92u, 12u }, { 92u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -2970,10 +3074,10 @@ int UtcDaliTextUpdateLayout03(void) { { 104u, 19u }, { 104u, 19u }, - 90.f, + 100.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -2983,9 +3087,9 @@ int UtcDaliTextUpdateLayout03(void) { { 123u, 5u }, { 123u, 5u }, - 29.f, + 32.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -2996,9 +3100,9 @@ int UtcDaliTextUpdateLayout03(void) { { 128u, 12u }, { 128u, 12u }, - 78.f, + 81.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -3009,10 +3113,10 @@ int UtcDaliTextUpdateLayout03(void) { { 140u, 10u }, { 140u, 10u }, - 75.f, + 79.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -3022,9 +3126,9 @@ int UtcDaliTextUpdateLayout03(void) { { 150u, 6u }, { 150u, 6u }, - 32.f, + 35.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -3035,10 +3139,10 @@ int UtcDaliTextUpdateLayout03(void) { { 156u, 10u }, { 156u, 10u }, - 65.f, + 70.f, 15.f, - -4.f, - 4.f, + -5.f, + 5.f, 0.f, 0.f, false, @@ -3048,9 +3152,9 @@ int UtcDaliTextUpdateLayout03(void) { { 166u, 12u }, { 166u, 12u }, - 76.f, + 79.f, 15.f, - -4.f, + -5.f, 4.f, 0.f, 0.f, @@ -3061,9 +3165,9 @@ int UtcDaliTextUpdateLayout03(void) { { 178u, 14u }, { 178u, 14u }, - 56.f, + 63.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -3076,7 +3180,7 @@ int UtcDaliTextUpdateLayout03(void) { 192u, 0u }, 0.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -3125,6 +3229,7 @@ int UtcDaliTextUpdateLayout03(void) 128u, 64u, false, + DevelText::EllipsisPosition::END, true }; @@ -3164,11 +3269,11 @@ int UtcDaliTextLayoutEllipsis01(void) struct LineRun line01 = { - { 0u, 14u }, - { 0u, 14u }, - 99.f, + { 0u, 13u }, + { 0u, 13u }, + 93.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -3180,11 +3285,11 @@ int UtcDaliTextLayoutEllipsis01(void) float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, 82.f, -13.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, 85.f, -13.f, }; Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 19.f ); + Size layoutSize( 100.f, 20.f ); LayoutTextData data = { @@ -3198,478 +3303,11 @@ int UtcDaliTextLayoutEllipsis01(void) positions, 1u, lines.Begin(), - Layout::Engine::SINGLE_LINE_BOX, - 0u, - 51u, - true, - true - }; - - if( !LayoutTextTest( data ) ) - { - tet_result(TET_FAIL); - } - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutEllipsis02(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutEllipsis02"); - - // Layout multi-line LTR text with ellipsis. - - const std::string fontLatin( "TizenSans" ); - - // Set a known font description - FontDescriptionRun fontDescriptionRun01; - fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 51u; - fontDescriptionRun01.familyLength = fontLatin.size(); - fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; - memcpy( fontDescriptionRun01.familyName, fontLatin.c_str(), fontDescriptionRun01.familyLength ); - fontDescriptionRun01.familyDefined = true; - fontDescriptionRun01.weightDefined = false; - fontDescriptionRun01.widthDefined = false; - fontDescriptionRun01.slantDefined = false; - fontDescriptionRun01.sizeDefined = false; - - Vector fontDescriptionRuns; - fontDescriptionRuns.PushBack( fontDescriptionRun01 ); - - struct LineRun line01 = - { - { 0u, 12u }, - { 0u, 12u }, - 78.f, - 15.f, - -4.f, - 4.f, - 0.f, - 0.f, - false, - false - }; - struct LineRun line02 = - { - { 12u, 12u }, - { 12u, 12u }, - 93.f, - 15.f, - -4.f, - 0.f, - 0.f, - 0.f, - false, - true - }; - Vector lines; - lines.PushBack( line01 ); - lines.PushBack( line02 ); - - float positions[] = - { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, 78.f, -0.f, - 0.f, -13.f, 9.f, -9.f, 18.f, -9.f, 30.f, -9.f, 39.f, -0.f, 44.f, -13.f, 52.f, -9.f, 61.f, -13.f, 65.f, -13.f, 68.f, -9.f, 77.f, -0.f, 81.f, -9.f, - }; - - Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 38.f ); - - LayoutTextData data = - { - "Layout multi-line LTR text with ellipsis.", - "Hello world demo hello world demo hello world demo.", - textArea, - 1u, - fontDescriptionRuns.Begin(), - layoutSize, - 24u, - positions, - 2u, - lines.Begin(), - Layout::Engine::MULTI_LINE_BOX, - 0u, - 51u, - true, - true - }; - - if( !LayoutTextTest( data ) ) - { - tet_result(TET_FAIL); - } - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutEllipsis03(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutEllipsis03"); - - // Layout single-line RTL text with ellipsis. - - const std::string fontHebrew( "TizenSansHebrew" ); - const std::string fontArabic( "TizenSansArabic" ); - - // Set a known font description - FontDescriptionRun fontDescriptionRun01; - fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 10u; - fontDescriptionRun01.familyLength = fontHebrew.size(); - fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; - memcpy( fontDescriptionRun01.familyName, fontHebrew.c_str(), fontDescriptionRun01.familyLength ); - fontDescriptionRun01.familyDefined = true; - fontDescriptionRun01.weightDefined = false; - fontDescriptionRun01.widthDefined = false; - fontDescriptionRun01.slantDefined = false; - fontDescriptionRun01.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun02; - fontDescriptionRun02.characterRun.characterIndex = 10u; - fontDescriptionRun02.characterRun.numberOfCharacters = 14u; - fontDescriptionRun02.familyLength = fontArabic.size(); - fontDescriptionRun02.familyName = new char[fontDescriptionRun02.familyLength]; - memcpy( fontDescriptionRun02.familyName, fontArabic.c_str(), fontDescriptionRun02.familyLength ); - fontDescriptionRun02.familyDefined = true; - fontDescriptionRun02.weightDefined = false; - fontDescriptionRun02.widthDefined = false; - fontDescriptionRun02.slantDefined = false; - fontDescriptionRun02.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun03; - fontDescriptionRun03.characterRun.characterIndex = 24u; - fontDescriptionRun03.characterRun.numberOfCharacters = 10u; - fontDescriptionRun03.familyLength = fontHebrew.size(); - fontDescriptionRun03.familyName = new char[fontDescriptionRun03.familyLength]; - memcpy( fontDescriptionRun03.familyName, fontHebrew.c_str(), fontDescriptionRun03.familyLength ); - fontDescriptionRun03.familyDefined = true; - fontDescriptionRun03.weightDefined = false; - fontDescriptionRun03.widthDefined = false; - fontDescriptionRun03.slantDefined = false; - fontDescriptionRun03.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun04; - fontDescriptionRun04.characterRun.characterIndex = 34u; - fontDescriptionRun04.characterRun.numberOfCharacters = 14u; - fontDescriptionRun04.familyLength = fontArabic.size(); - fontDescriptionRun04.familyName = new char[fontDescriptionRun04.familyLength]; - memcpy( fontDescriptionRun04.familyName, fontArabic.c_str(), fontDescriptionRun04.familyLength ); - fontDescriptionRun04.familyDefined = true; - fontDescriptionRun04.weightDefined = false; - fontDescriptionRun04.widthDefined = false; - fontDescriptionRun04.slantDefined = false; - fontDescriptionRun04.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun05; - fontDescriptionRun05.characterRun.characterIndex = 48u; - fontDescriptionRun05.characterRun.numberOfCharacters = 10u; - fontDescriptionRun05.familyLength = fontHebrew.size(); - fontDescriptionRun05.familyName = new char[fontDescriptionRun05.familyLength]; - memcpy( fontDescriptionRun05.familyName, fontHebrew.c_str(), fontDescriptionRun05.familyLength ); - fontDescriptionRun05.familyDefined = true; - fontDescriptionRun05.weightDefined = false; - fontDescriptionRun05.widthDefined = false; - fontDescriptionRun05.slantDefined = false; - fontDescriptionRun05.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun06; - fontDescriptionRun06.characterRun.characterIndex = 58u; - fontDescriptionRun06.characterRun.numberOfCharacters = 15u; - fontDescriptionRun06.familyLength = fontArabic.size(); - fontDescriptionRun06.familyName = new char[fontDescriptionRun06.familyLength]; - memcpy( fontDescriptionRun06.familyName, fontArabic.c_str(), fontDescriptionRun06.familyLength ); - fontDescriptionRun06.familyDefined = true; - fontDescriptionRun06.weightDefined = false; - fontDescriptionRun06.widthDefined = false; - fontDescriptionRun06.slantDefined = false; - fontDescriptionRun06.sizeDefined = false; - - Vector fontDescriptionRuns; - fontDescriptionRuns.PushBack( fontDescriptionRun01 ); - fontDescriptionRuns.PushBack( fontDescriptionRun02 ); - fontDescriptionRuns.PushBack( fontDescriptionRun03 ); - fontDescriptionRuns.PushBack( fontDescriptionRun04 ); - fontDescriptionRuns.PushBack( fontDescriptionRun05 ); - fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - - struct LineRun line01 = - { - { 0u, 17u }, - { 0u, 17u }, - 99.f, - 15.f, - -4.f, - 0.f, - 0.f, - 0.f, - false, - true - }; - Vector lines; - lines.PushBack( line01 ); - - float positions[] = - { - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - }; - - Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 19.f ); - - LayoutTextData data = - { - "Layout single-line RTL text with ellipsis.", - "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم.", - textArea, - 6u, - fontDescriptionRuns.Begin(), - layoutSize, - 16u, - positions, - 1u, - lines.Begin(), - Layout::Engine::SINGLE_LINE_BOX, - 0u, - 72u, - true, - true - }; - - if( !LayoutTextTest( data ) ) - { - tet_result(TET_FAIL); - } - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutEllipsis04(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutEllipsis04"); - - // Layout multi-line RTL text with ellipsis. - - const std::string fontHebrew( "TizenSansHebrew" ); - const std::string fontArabic( "TizenSansArabic" ); - - // Set a known font description - FontDescriptionRun fontDescriptionRun01; - fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 10u; - fontDescriptionRun01.familyLength = fontHebrew.size(); - fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; - memcpy( fontDescriptionRun01.familyName, fontHebrew.c_str(), fontDescriptionRun01.familyLength ); - fontDescriptionRun01.familyDefined = true; - fontDescriptionRun01.weightDefined = false; - fontDescriptionRun01.widthDefined = false; - fontDescriptionRun01.slantDefined = false; - fontDescriptionRun01.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun02; - fontDescriptionRun02.characterRun.characterIndex = 10u; - fontDescriptionRun02.characterRun.numberOfCharacters = 14u; - fontDescriptionRun02.familyLength = fontArabic.size(); - fontDescriptionRun02.familyName = new char[fontDescriptionRun02.familyLength]; - memcpy( fontDescriptionRun02.familyName, fontArabic.c_str(), fontDescriptionRun02.familyLength ); - fontDescriptionRun02.familyDefined = true; - fontDescriptionRun02.weightDefined = false; - fontDescriptionRun02.widthDefined = false; - fontDescriptionRun02.slantDefined = false; - fontDescriptionRun02.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun03; - fontDescriptionRun03.characterRun.characterIndex = 24u; - fontDescriptionRun03.characterRun.numberOfCharacters = 10u; - fontDescriptionRun03.familyLength = fontHebrew.size(); - fontDescriptionRun03.familyName = new char[fontDescriptionRun03.familyLength]; - memcpy( fontDescriptionRun03.familyName, fontHebrew.c_str(), fontDescriptionRun03.familyLength ); - fontDescriptionRun03.familyDefined = true; - fontDescriptionRun03.weightDefined = false; - fontDescriptionRun03.widthDefined = false; - fontDescriptionRun03.slantDefined = false; - fontDescriptionRun03.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun04; - fontDescriptionRun04.characterRun.characterIndex = 34u; - fontDescriptionRun04.characterRun.numberOfCharacters = 14u; - fontDescriptionRun04.familyLength = fontArabic.size(); - fontDescriptionRun04.familyName = new char[fontDescriptionRun04.familyLength]; - memcpy( fontDescriptionRun04.familyName, fontArabic.c_str(), fontDescriptionRun04.familyLength ); - fontDescriptionRun04.familyDefined = true; - fontDescriptionRun04.weightDefined = false; - fontDescriptionRun04.widthDefined = false; - fontDescriptionRun04.slantDefined = false; - fontDescriptionRun04.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun05; - fontDescriptionRun05.characterRun.characterIndex = 48u; - fontDescriptionRun05.characterRun.numberOfCharacters = 10u; - fontDescriptionRun05.familyLength = fontHebrew.size(); - fontDescriptionRun05.familyName = new char[fontDescriptionRun05.familyLength]; - memcpy( fontDescriptionRun05.familyName, fontHebrew.c_str(), fontDescriptionRun05.familyLength ); - fontDescriptionRun05.familyDefined = true; - fontDescriptionRun05.weightDefined = false; - fontDescriptionRun05.widthDefined = false; - fontDescriptionRun05.slantDefined = false; - fontDescriptionRun05.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun06; - fontDescriptionRun06.characterRun.characterIndex = 58u; - fontDescriptionRun06.characterRun.numberOfCharacters = 15u; - fontDescriptionRun06.familyLength = fontArabic.size(); - fontDescriptionRun06.familyName = new char[fontDescriptionRun06.familyLength]; - memcpy( fontDescriptionRun06.familyName, fontArabic.c_str(), fontDescriptionRun06.familyLength ); - fontDescriptionRun06.familyDefined = true; - fontDescriptionRun06.weightDefined = false; - fontDescriptionRun06.widthDefined = false; - fontDescriptionRun06.slantDefined = false; - fontDescriptionRun06.sizeDefined = false; - - Vector fontDescriptionRuns; - fontDescriptionRuns.PushBack( fontDescriptionRun01 ); - fontDescriptionRuns.PushBack( fontDescriptionRun02 ); - fontDescriptionRuns.PushBack( fontDescriptionRun03 ); - fontDescriptionRuns.PushBack( fontDescriptionRun04 ); - fontDescriptionRuns.PushBack( fontDescriptionRun05 ); - fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - - struct LineRun line01 = - { - { 0u, 16u }, - { 0u, 16u }, - 94.f, - 15.f, - -4.f, - 3.f, - 0.f, - 0.f, - false, - false - }; - struct LineRun line02 = - { - { 16u, 18u }, - { 16u, 18u }, - 97.f, - 15.f, - -4.f, - 4.f, - 0.f, - 0.f, - false, - true - }; - Vector lines; - lines.PushBack( line01 ); - lines.PushBack( line02 ); - - float positions[] = - { - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - 0.f, -7.f, 5.f, -11.f, 6.f, -11.f, 9.f, -8.f, 17.f, -11.f, 18.f, -11.f, 22.f, -8.f, 28.f, -0.f, 32.f, -10.f, 43.f, -13.f, 50.f, -10.f, 55.f, -10.f, 63.f, -0.f, 68.f, -10.f, 76.f, -10.f, 81.f, -13.f, 89.f, -10.f, 97.f, -0.f, - }; - - Size textArea( 100.f, 50.f ); - Size layoutSize( 100.f, 38.f ); - - LayoutTextData data = - { - "Layout single-line RTL text with ellipsis.", - "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم.", - textArea, - 6u, - fontDescriptionRuns.Begin(), - layoutSize, - 34u, - positions, - 2u, - lines.Begin(), - Layout::Engine::MULTI_LINE_BOX, - 0u, - 72u, - true, - true - }; - - if( !LayoutTextTest( data ) ) - { - tet_result(TET_FAIL); - } - - tet_result(TET_PASS); - END_TEST; -} - -int UtcDaliTextLayoutEllipsis05(void) -{ - ToolkitTestApplication application; - tet_infoline(" UtcDaliTextLayoutEllipsis05"); - - const std::string fontLatin( "TizenSans" ); - - // Set a known font description - FontDescriptionRun fontDescriptionRun01; - fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 51u; - fontDescriptionRun01.familyLength = fontLatin.size(); - fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; - memcpy( fontDescriptionRun01.familyName, fontLatin.c_str(), fontDescriptionRun01.familyLength ); - fontDescriptionRun01.familyDefined = true; - fontDescriptionRun01.weightDefined = false; - fontDescriptionRun01.widthDefined = false; - fontDescriptionRun01.slantDefined = false; - fontDescriptionRun01.sizeDefined = false; - - Vector fontDescriptionRuns; - fontDescriptionRuns.PushBack( fontDescriptionRun01 ); - - struct LineRun line01 = - { - { 0u, 11u }, - { 0u, 11u }, - 78.f, - 15.f, - -4.f, - 0.f, - 0.f, - 0.f, - false, - false - }; - Vector lines; - lines.PushBack( line01 ); - - float positions[] = - { - 0.f, -12.f - }; - - Size textArea( 100.f, 19.f ); - Size layoutSize( 78.f, 19.f ); - - LayoutTextData data = - { - "Not enough height.", - "Hello world", - textArea, - 1u, - fontDescriptionRuns.Begin(), - layoutSize, - 1u, - positions, - 1u, - lines.Begin(), - Layout::Engine::MULTI_LINE_BOX, + Layout::Engine::SINGLE_LINE_BOX, 0u, - 11u, + 51u, true, + DevelText::EllipsisPosition::END, true }; @@ -3682,19 +3320,19 @@ int UtcDaliTextLayoutEllipsis05(void) END_TEST; } -int UtcDaliTextReorderLayout01(void) +int UtcDaliTextLayoutEllipsis02(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliTextReorderLayout01"); + tet_infoline(" UtcDaliTextLayoutEllipsis02"); - // Reorder lines. No right to left characters. + // Layout multi-line LTR text with ellipsis. const std::string fontLatin( "TizenSans" ); // Set a known font description FontDescriptionRun fontDescriptionRun01; fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 11u; + fontDescriptionRun01.characterRun.numberOfCharacters = 51u; fontDescriptionRun01.familyLength = fontLatin.size(); fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; memcpy( fontDescriptionRun01.familyName, fontLatin.c_str(), fontDescriptionRun01.familyLength ); @@ -3707,27 +3345,66 @@ int UtcDaliTextReorderLayout01(void) Vector fontDescriptionRuns; fontDescriptionRuns.PushBack( fontDescriptionRun01 ); + struct LineRun line01 = + { + { 0u, 12u }, + { 0u, 12u }, + 81.f, + 15.f, + -5.f, + 4.f, + 0.f, + 0.f, + false, + false + }; + struct LineRun line02 = + { + { 12u, 12u }, + { 12u, 12u }, + 95.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + false, + true + }; + Vector lines; + lines.PushBack( line01 ); + lines.PushBack( line02 ); + float positions[] = { - 0.f, -12.f, 10.f, -9.f, 19.f, -13.f, 23.f, -13.f, 26.f, -9.f, 35.f, -0.f, 39.f, -9.f, 50.f, -9.f, 60.f, -9.f, 66.f, -13.f, 69.f, -13.f, + 0.f, -12.f, 10.f, -9.f, 20.f, -13.f, 24.f, -13.f, 27.f, -9.f, 36.f, -0.f, 40.f, -9.f, 52.f, -9.f, 62.f, -9.f, 69.f, -13.f, 72.f, -13.f, 81.f, -0.f, + 0.f, -13.f, 9.f, -9.f, 19.f, -9.f, 32.f, -9.f, 41.f, -0.f, 46.f, -13.f, 54.f, -9.f, 64.f, -13.f, 68.f, -13.f, 71.f, -9.f, 80.f, -0.f, 84.f, -9.f, }; - Size textArea( 100.f, 300.f ); + Size textArea( 100.f, 50.f ); + Size layoutSize( 100.f, 40.f ); - ReLayoutRightToLeftLinesData data = + LayoutTextData data = { - "Text with no right to left text.", - "Hello world", + "Layout multi-line LTR text with ellipsis.", + "Hello world demo hello world demo hello world demo.", textArea, 1u, fontDescriptionRuns.Begin(), - 11u, + layoutSize, + 24u, positions, + 2u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, 0u, - 11u + 51u, + true, + DevelText::EllipsisPosition::END, + true }; - if( !ReLayoutRightToLeftLinesTest( data ) ) + if( !LayoutTextTest( data ) ) { tet_result(TET_FAIL); } @@ -3736,12 +3413,12 @@ int UtcDaliTextReorderLayout01(void) END_TEST; } -int UtcDaliTextReorderLayout02(void) +int UtcDaliTextLayoutEllipsis03(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliTextReorderLayout02"); + tet_infoline(" UtcDaliTextLayoutEllipsis03"); - // Reorder lines of the first paragraph. + // Layout single-line RTL text with ellipsis. const std::string fontHebrew( "TizenSansHebrew" ); const std::string fontArabic( "TizenSansArabic" ); @@ -3773,10 +3450,10 @@ int UtcDaliTextReorderLayout02(void) FontDescriptionRun fontDescriptionRun03; fontDescriptionRun03.characterRun.characterIndex = 24u; - fontDescriptionRun03.characterRun.numberOfCharacters = 14u; - fontDescriptionRun03.familyLength = fontArabic.size(); + fontDescriptionRun03.characterRun.numberOfCharacters = 10u; + fontDescriptionRun03.familyLength = fontHebrew.size(); fontDescriptionRun03.familyName = new char[fontDescriptionRun03.familyLength]; - memcpy( fontDescriptionRun03.familyName, fontArabic.c_str(), fontDescriptionRun03.familyLength ); + memcpy( fontDescriptionRun03.familyName, fontHebrew.c_str(), fontDescriptionRun03.familyLength ); fontDescriptionRun03.familyDefined = true; fontDescriptionRun03.weightDefined = false; fontDescriptionRun03.widthDefined = false; @@ -3784,11 +3461,11 @@ int UtcDaliTextReorderLayout02(void) fontDescriptionRun03.sizeDefined = false; FontDescriptionRun fontDescriptionRun04; - fontDescriptionRun04.characterRun.characterIndex = 38u; - fontDescriptionRun04.characterRun.numberOfCharacters = 10u; - fontDescriptionRun04.familyLength = fontHebrew.size(); + fontDescriptionRun04.characterRun.characterIndex = 34u; + fontDescriptionRun04.characterRun.numberOfCharacters = 14u; + fontDescriptionRun04.familyLength = fontArabic.size(); fontDescriptionRun04.familyName = new char[fontDescriptionRun04.familyLength]; - memcpy( fontDescriptionRun04.familyName, fontHebrew.c_str(), fontDescriptionRun04.familyLength ); + memcpy( fontDescriptionRun04.familyName, fontArabic.c_str(), fontDescriptionRun04.familyLength ); fontDescriptionRun04.familyDefined = true; fontDescriptionRun04.weightDefined = false; fontDescriptionRun04.widthDefined = false; @@ -3827,34 +3504,51 @@ int UtcDaliTextReorderLayout02(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); + struct LineRun line01 = + { + { 0u, 14u }, + { 0u, 14u }, + 98.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + false, + true + }; + Vector lines; + lines.PushBack( line01 ); + float positions[] = { - 87.f, -10.f, 79.f, -13.f, 74.f, -10.f, 66.f, -10.f, 61.f, -0.f, 53.f, -10.f, 48.f, -10.f, 41.f, -13.f, 32.f, -10.f, 27.f, -0.f, 20.f, -8.f, 15.f, -6.f, 8.f, -8.f, 5.f, -7.f, 4.f, -11.f, 0.f, -0.f, - 23.f, -7.f, 22.f, -11.f, 17.f, -11.f, 11.f, -8.f, 10.f, -11.f, 5.f, -11.f, 0.f, -8.f, 0.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -10.f, 70.f, -13.f, 77.f, -10.f, 82.f, -10.f, 90.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - 0.f, -7.f, 5.f, -11.f, 6.f, -11.f, 9.f, -8.f, 17.f, -11.f, 18.f, -11.f, 22.f, -8.f, 30.f, -2.f, + 87.f, -10.f, 79.f, -13.f, 74.f, -10.f, 65.f, -10.f, 60.f, -0.f, 51.f, -10.f, 47.f, -10.f, 38.f, -13.f, 29.f, -10.f, 24.f, -0.f, 17.f, -8.f, 12.f, -6.f, 4.f, -8.f, 0.f, -7.f, 78.f, -11.f, 73.f, -0.f, }; - Size textArea( 100.f, 300.f ); + Size textArea( 100.f, 50.f ); + Size layoutSize( 100.f, 20.f ); - ReLayoutRightToLeftLinesData data = + LayoutTextData data = { - "Paragraphs with right to left text.", - "שלום עולם مرحبا بالعالم\n" - "مرحبا بالعالم שלום עולם\n" - "שלום עולם مرحبا بالعالم.", + "Layout single-line RTL text with ellipsis.", + "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم.", textArea, 6u, fontDescriptionRuns.Begin(), - 72u, + layoutSize, + 16u, positions, + 1u, + lines.Begin(), + Layout::Engine::SINGLE_LINE_BOX, 0u, - 24u + 72u, + true, + DevelText::EllipsisPosition::END, + true }; - if( !ReLayoutRightToLeftLinesTest( data ) ) + if( !LayoutTextTest( data ) ) { tet_result(TET_FAIL); } @@ -3863,12 +3557,12 @@ int UtcDaliTextReorderLayout02(void) END_TEST; } -int UtcDaliTextReorderLayout03(void) +int UtcDaliTextLayoutEllipsis04(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliTextReorderLayout03"); + tet_infoline(" UtcDaliTextLayoutEllipsis04"); - // Reorder lines of the mid paragraph. + // Layout multi-line RTL text with ellipsis. const std::string fontHebrew( "TizenSansHebrew" ); const std::string fontArabic( "TizenSansArabic" ); @@ -3900,10 +3594,10 @@ int UtcDaliTextReorderLayout03(void) FontDescriptionRun fontDescriptionRun03; fontDescriptionRun03.characterRun.characterIndex = 24u; - fontDescriptionRun03.characterRun.numberOfCharacters = 14u; - fontDescriptionRun03.familyLength = fontArabic.size(); + fontDescriptionRun03.characterRun.numberOfCharacters = 10u; + fontDescriptionRun03.familyLength = fontHebrew.size(); fontDescriptionRun03.familyName = new char[fontDescriptionRun03.familyLength]; - memcpy( fontDescriptionRun03.familyName, fontArabic.c_str(), fontDescriptionRun03.familyLength ); + memcpy( fontDescriptionRun03.familyName, fontHebrew.c_str(), fontDescriptionRun03.familyLength ); fontDescriptionRun03.familyDefined = true; fontDescriptionRun03.weightDefined = false; fontDescriptionRun03.widthDefined = false; @@ -3911,11 +3605,11 @@ int UtcDaliTextReorderLayout03(void) fontDescriptionRun03.sizeDefined = false; FontDescriptionRun fontDescriptionRun04; - fontDescriptionRun04.characterRun.characterIndex = 38u; - fontDescriptionRun04.characterRun.numberOfCharacters = 10u; - fontDescriptionRun04.familyLength = fontHebrew.size(); + fontDescriptionRun04.characterRun.characterIndex = 34u; + fontDescriptionRun04.characterRun.numberOfCharacters = 14u; + fontDescriptionRun04.familyLength = fontArabic.size(); fontDescriptionRun04.familyName = new char[fontDescriptionRun04.familyLength]; - memcpy( fontDescriptionRun04.familyName, fontHebrew.c_str(), fontDescriptionRun04.familyLength ); + memcpy( fontDescriptionRun04.familyName, fontArabic.c_str(), fontDescriptionRun04.familyLength ); fontDescriptionRun04.familyDefined = true; fontDescriptionRun04.weightDefined = false; fontDescriptionRun04.widthDefined = false; @@ -3954,34 +3648,66 @@ int UtcDaliTextReorderLayout03(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); + struct LineRun line01 = + { + { 0u, 10u }, + { 0u, 10u }, + 70.f, + 15.f, + -5.f, + 5.f, + 0.f, + 0.f, + false, + false + }; + struct LineRun line02 = + { + { 10u, 19u }, + { 10u, 19u }, + 99.f, + 15.f, + -5.f, + 5.f, + 0.f, + 0.f, + false, + true + }; + Vector lines; + lines.PushBack( line01 ); + lines.PushBack( line02 ); + float positions[] = { - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - 0.f, -7.f, 5.f, -11.f, 6.f, -11.f, 9.f, -8.f, 17.f, -11.f, 18.f, -11.f, 22.f, -8.f, 28.f, -0.f, - 86.f, -8.f, 81.f, -6.f, 74.f, -8.f, 71.f, -7.f, 70.f, -11.f, 66.f, -0.f, 62.f, -7.f, 61.f, -11.f, 56.f, -11.f, 50.f, -8.f, 49.f, -11.f, 44.f, -11.f, 39.f, -8.f, 36.f, -0.f, 26.f, -10.f, 18.f, -13.f, 13.f, -10.f, 5.f, -10.f, 0.f, -0.f, - 22.f, -10.f, 17.f, -10.f, 10.f, -13.f, 1.f, -10.f, 0.f, -0.f, - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - 0.f, -7.f, 5.f, -11.f, 6.f, -11.f, 9.f, -8.f, 17.f, -11.f, 18.f, -11.f, 22.f, -8.f, 30.f, -2.f, + 63.f, -10.f, 54.f, -13.f, 50.f, -10.f, 41.f, -10.f, 36.f, -0.f, 27.f, -10.f, 23.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 96.f, -8.f, 91.f, -6.f, 83.f, -8.f, 79.f, -7.f, 78.f, -11.f, 73.f, -0.f, + 68.f, -7.f, 67.f, -11.f, 61.f, -11.f, 55.f, -8.f, 53.f, -11.f, 47.f, -11.f, 42.f, -8.f, 38.f, -0.f, 27.f, -10.f, 18.f, -13.f, 14.f, -10.f, 4.f, -10.f, 0.f, -0.f, 92.f, -10.f, 88.f, -10.f, 79.f, -13.f, 70.f, -10.f, 65.f, -0.f, }; - Size textArea( 100.f, 300.f ); + Size textArea( 100.f, 50.f ); + Size layoutSize( 100.f, 40.f ); - ReLayoutRightToLeftLinesData data = + LayoutTextData data = { - "Paragraphs with right to left text.", - "שלום עולם مرحبا بالعالم\n" - "مرحبا بالعالم שלום עולם\n" - "שלום עולם مرحبا بالعالم.", + "Layout multi-line RTL text with ellipsis.", + "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم.", textArea, 6u, fontDescriptionRuns.Begin(), - 72u, + layoutSize, + 34u, positions, - 24u, - 24u + 2u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, + 0u, + 72u, + true, + DevelText::EllipsisPosition::END, + true }; - if( !ReLayoutRightToLeftLinesTest( data ) ) + if( !LayoutTextTest( data ) ) { tet_result(TET_FAIL); } @@ -3990,125 +3716,74 @@ int UtcDaliTextReorderLayout03(void) END_TEST; } -int UtcDaliTextReorderLayout04(void) +int UtcDaliTextLayoutEllipsis05(void) { ToolkitTestApplication application; - tet_infoline(" UtcDaliTextReorderLayout04"); - - // Reorder lines of the last paragraph. + tet_infoline(" UtcDaliTextLayoutEllipsis05"); - const std::string fontHebrew( "TizenSansHebrew" ); - const std::string fontArabic( "TizenSansArabic" ); + const std::string fontLatin( "TizenSans" ); // Set a known font description FontDescriptionRun fontDescriptionRun01; fontDescriptionRun01.characterRun.characterIndex = 0u; - fontDescriptionRun01.characterRun.numberOfCharacters = 10u; - fontDescriptionRun01.familyLength = fontHebrew.size(); + fontDescriptionRun01.characterRun.numberOfCharacters = 51u; + fontDescriptionRun01.familyLength = fontLatin.size(); fontDescriptionRun01.familyName = new char[fontDescriptionRun01.familyLength]; - memcpy( fontDescriptionRun01.familyName, fontHebrew.c_str(), fontDescriptionRun01.familyLength ); + memcpy( fontDescriptionRun01.familyName, fontLatin.c_str(), fontDescriptionRun01.familyLength ); fontDescriptionRun01.familyDefined = true; fontDescriptionRun01.weightDefined = false; fontDescriptionRun01.widthDefined = false; fontDescriptionRun01.slantDefined = false; fontDescriptionRun01.sizeDefined = false; - FontDescriptionRun fontDescriptionRun02; - fontDescriptionRun02.characterRun.characterIndex = 10u; - fontDescriptionRun02.characterRun.numberOfCharacters = 14u; - fontDescriptionRun02.familyLength = fontArabic.size(); - fontDescriptionRun02.familyName = new char[fontDescriptionRun02.familyLength]; - memcpy( fontDescriptionRun02.familyName, fontArabic.c_str(), fontDescriptionRun02.familyLength ); - fontDescriptionRun02.familyDefined = true; - fontDescriptionRun02.weightDefined = false; - fontDescriptionRun02.widthDefined = false; - fontDescriptionRun02.slantDefined = false; - fontDescriptionRun02.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun03; - fontDescriptionRun03.characterRun.characterIndex = 24u; - fontDescriptionRun03.characterRun.numberOfCharacters = 14u; - fontDescriptionRun03.familyLength = fontArabic.size(); - fontDescriptionRun03.familyName = new char[fontDescriptionRun03.familyLength]; - memcpy( fontDescriptionRun03.familyName, fontArabic.c_str(), fontDescriptionRun03.familyLength ); - fontDescriptionRun03.familyDefined = true; - fontDescriptionRun03.weightDefined = false; - fontDescriptionRun03.widthDefined = false; - fontDescriptionRun03.slantDefined = false; - fontDescriptionRun03.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun04; - fontDescriptionRun04.characterRun.characterIndex = 38u; - fontDescriptionRun04.characterRun.numberOfCharacters = 10u; - fontDescriptionRun04.familyLength = fontHebrew.size(); - fontDescriptionRun04.familyName = new char[fontDescriptionRun04.familyLength]; - memcpy( fontDescriptionRun04.familyName, fontHebrew.c_str(), fontDescriptionRun04.familyLength ); - fontDescriptionRun04.familyDefined = true; - fontDescriptionRun04.weightDefined = false; - fontDescriptionRun04.widthDefined = false; - fontDescriptionRun04.slantDefined = false; - fontDescriptionRun04.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun05; - fontDescriptionRun05.characterRun.characterIndex = 48u; - fontDescriptionRun05.characterRun.numberOfCharacters = 10u; - fontDescriptionRun05.familyLength = fontHebrew.size(); - fontDescriptionRun05.familyName = new char[fontDescriptionRun05.familyLength]; - memcpy( fontDescriptionRun05.familyName, fontHebrew.c_str(), fontDescriptionRun05.familyLength ); - fontDescriptionRun05.familyDefined = true; - fontDescriptionRun05.weightDefined = false; - fontDescriptionRun05.widthDefined = false; - fontDescriptionRun05.slantDefined = false; - fontDescriptionRun05.sizeDefined = false; - - FontDescriptionRun fontDescriptionRun06; - fontDescriptionRun06.characterRun.characterIndex = 58u; - fontDescriptionRun06.characterRun.numberOfCharacters = 15u; - fontDescriptionRun06.familyLength = fontArabic.size(); - fontDescriptionRun06.familyName = new char[fontDescriptionRun06.familyLength]; - memcpy( fontDescriptionRun06.familyName, fontArabic.c_str(), fontDescriptionRun06.familyLength ); - fontDescriptionRun06.familyDefined = true; - fontDescriptionRun06.weightDefined = false; - fontDescriptionRun06.widthDefined = false; - fontDescriptionRun06.slantDefined = false; - fontDescriptionRun06.sizeDefined = false; - Vector fontDescriptionRuns; fontDescriptionRuns.PushBack( fontDescriptionRun01 ); - fontDescriptionRuns.PushBack( fontDescriptionRun02 ); - fontDescriptionRuns.PushBack( fontDescriptionRun03 ); - fontDescriptionRuns.PushBack( fontDescriptionRun04 ); - fontDescriptionRuns.PushBack( fontDescriptionRun05 ); - fontDescriptionRuns.PushBack( fontDescriptionRun06 ); + + struct LineRun line01 = + { + { 0u, 11u }, + { 0u, 11u }, + 80.f, + 15.f, + -5.f, + 0.f, + 0.f, + 0.f, + false, + true + }; + Vector lines; + lines.PushBack( line01 ); float positions[] = { - 0.f, -10.f, 11.f, -13.f, 18.f, -10.f, 23.f, -10.f, 31.f, -0.f, 36.f, -10.f, 44.f, -10.f, 49.f, -13.f, 57.f, -10.f, 65.f, -0.f, 68.f, -8.f, 75.f, -6.f, 80.f, -8.f, 86.f, -7.f, 91.f, -11.f, 93.f, -0.f, - 0.f, -7.f, 5.f, -11.f, 6.f, -11.f, 9.f, -8.f, 17.f, -11.f, 18.f, -11.f, 22.f, -8.f, 28.f, -0.f, - 0.f, -8.f, 7.f, -6.f, 12.f, -8.f, 18.f, -7.f, 23.f, -11.f, 25.f, -0.f, 27.f, -7.f, 32.f, -11.f, 33.f, -11.f, 36.f, -8.f, 44.f, -11.f, 45.f, -11.f, 49.f, -8.f, 55.f, -0.f, 59.f, -10.f, 70.f, -13.f, 77.f, -10.f, 82.f, -10.f, 90.f, -0.f, - 0.f, -10.f, 8.f, -10.f, 13.f, -13.f, 21.f, -10.f, 29.f, -0.f, - 87.f, -10.f, 79.f, -13.f, 74.f, -10.f, 66.f, -10.f, 61.f, -0.f, 53.f, -10.f, 48.f, -10.f, 41.f, -13.f, 32.f, -10.f, 27.f, -0.f, 20.f, -8.f, 15.f, -6.f, 8.f, -8.f, 5.f, -7.f, 4.f, -11.f, 0.f, -0.f, - 26.f, -7.f, 25.f, -11.f, 20.f, -11.f, 14.f, -8.f, 13.f, -11.f, 8.f, -11.f, 3.f, -8.f, 0.f, -2.f, + 0.f, -12.f }; - Size textArea( 100.f, 300.f ); + Size textArea( 100.f, 19.f ); + Size layoutSize( 100.f, 20.f ); - ReLayoutRightToLeftLinesData data = + LayoutTextData data = { - "Paragraphs with right to left text.", - "שלום עולם مرحبا بالعالم\n" - "مرحبا بالعالم שלום עולם\n" - "שלום עולם مرحبا بالعالم.", + "Not enough height.", + "Hello world", textArea, - 6u, + 1u, fontDescriptionRuns.Begin(), - 72u, + layoutSize, + 1u, positions, - 48u, - 24u + 1u, + lines.Begin(), + Layout::Engine::MULTI_LINE_BOX, + 0u, + 11u, + true, + DevelText::EllipsisPosition::END, + true }; - if( !ReLayoutRightToLeftLinesTest( data ) ) + if( !LayoutTextTest( data ) ) { tet_result(TET_FAIL); } @@ -4330,7 +4005,7 @@ int UtcDaliTextAlign02(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 0.f, 0.f, 2.f, 61.f, 0.f, 0.f }; + float positions[] = { 0.f, 0.f, 33.f, 19.f, 0.f, 0.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -4572,7 +4247,7 @@ int UtcDaliTextAlign04(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 11.f, 17.f, 0.f, 0.f, 0.f, 0.f }; + float positions[] = { 9.f, 15.f, 0.f, 0.f, 0.f, 0.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -4693,7 +4368,7 @@ int UtcDaliTextAlign05(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 0.f, 0.f, -1.f, 30.f, 0.f, 0.f }; + float positions[] = { 0.f, 0.f, 14.f, 9.f, 0.f, 0.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -4814,7 +4489,7 @@ int UtcDaliTextAlign06(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 0.f, 0.f, 0.f, 0.f, 11.f, 21.f }; + float positions[] = { 0.f, 0.f, 0.f, 0.f, 9.f, 16.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -4935,7 +4610,7 @@ int UtcDaliTextAlign07(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 22.f, 35.f, 0.f, 0.f, 0.f, 0.f }; + float positions[] = { 19.f, 30.f, 0.f, 0.f, 0.f, 0.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -5177,7 +4852,7 @@ int UtcDaliTextAlign09(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 0.f, 0.f, 0.f, 0.f, 22.f, 42.f }; + float positions[] = { 0.f, 0.f, 0.f, 0.f, 19.f, 33.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -5419,7 +5094,7 @@ int UtcDaliTextAlign11(void) fontDescriptionRuns.PushBack( fontDescriptionRun05 ); fontDescriptionRuns.PushBack( fontDescriptionRun06 ); - float positions[] = { 22.f, 35.f, 2.f, 0.f, 0.f, 0.f }; + float positions[] = { 19.f, 30.f, 33.f, 0.f, 0.f, 0.f }; Size textArea( 100.f, 300.f ); AlignData data = @@ -5653,7 +5328,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) { 0u, 1u }, 11.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -5663,18 +5338,18 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) Vector lines01; lines01.PushBack( line01 ); - Size layoutSize01 = Vector2(11.f, 19.f); + Size layoutSize01 = Vector2(11.f, 20.f); // Group: second glyph doesn't exceed the width of the first glyph - float positions02[] = { 0.f, -11.f , 7.f, -15.f }; + float positions02[] = { 0.f, -11.f, 7.f, -15.f, }; struct LineRun line02 = { { 0u, 2u }, { 0u, 2u }, + 16.f, 15.f, - 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -5684,7 +5359,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) Vector lines02; lines02.PushBack( line02 ); - Size layoutSize02 = Vector2(15.f, 19.f); + Size layoutSize02 = Vector2(16.f, 20.f); // Group: second glyph doesn't exceed the width of the first glyph float positions03[] = { 0.f, -11.f , 2.f, -15.f }; @@ -5695,7 +5370,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) { 0u, 2u }, 11.f, 15.f, - -4.f, + -5.f, 0.f, 0.f, 0.f, @@ -5705,7 +5380,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) Vector lines03; lines03.PushBack( line03 ); - Size layoutSize03 = Vector2(11.f, 19.f); + Size layoutSize03 = Vector2(11.f, 20.f); ///////////////////////////// @@ -5726,6 +5401,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) 0u, 1u, false, + DevelText::EllipsisPosition::END, true }, { @@ -5743,6 +5419,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) 0u, 2u, false, + DevelText::EllipsisPosition::END, true }, { @@ -5760,6 +5437,7 @@ int UtcDaliTextLayoutGetGlyphMetrics(void) 0u, 2u, false, + DevelText::EllipsisPosition::END, true } };