{
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;
}
LayoutOptions options;
- options.reorder = false;
options.align = false;
CreateTextModel( data.text,
data.textArea,
bool isAutoScroll = false;
const bool updated = engine.LayoutText( layoutParameters,
- glyphPositions,
- lines,
layoutSize,
data.ellipsis,
isAutoScroll );
{
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;
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 );
//////////////////////////////////////////////////////////
-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<FontDescriptionRun> 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<Vector2>& 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;
// UtcDaliTextLayoutMultilineText03
// UtcDaliTextLayoutMultilineText04
// UtcDaliTextLayoutMultilineText05
+// UtcDaliTextLayoutMultilineText06
// UtcDaliTextUpdateLayout01
// UtcDaliTextUpdateLayout02
// UtcDaliTextUpdateLayout03
Vector<FontDescriptionRun> 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, 19.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,
0.f,
fontDescriptionRuns.PushBack( fontDescriptionRun1 );
fontDescriptionRuns.PushBack( fontDescriptionRun2 );
Size textArea(100.f, 300.f);
- Size layoutSize(91.f, 95.f);
+ Size layoutSize(97.f, 95.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, 9.f, -9.f, 18.f, -9.f, 28.f, -9.f, 38.f, -9.f, 47.f, -11.f, 53.f, -0.f,
+ 0.f, -12.f, 10.f, -12.f, 15.f, -12.f, 26.f, -9.f, 35.f, -9.f, 42.f, -9.f, 52.f, -9.f, 61.f, -11.f, 67.f, -0.f,
+ 0.f, -12.f, 4.f, -12.f, 9.f, -9.f, 19.f, -9.f, 29.f, -9.f, 36.f, -0.f, 42.f, -9.f, 52.f, -12.f, 57.f, -0.f, 62.f, -11.f, 69.f, -9.f, 79.f, -9.f, 87.f, -11.f, 95.f, -2.f
};
struct LineRun line0 =
{
{ 0u, 12u },
{ 0u, 12u },
- 78.f,
+ 81.f,
15.f,
-4.f,
4.f,
{
{ 12u, 6u },
{ 12u, 6u },
- 42.f,
+ 44.f,
15.f,
-4.f,
0.f,
{
{ 18u, 7u },
{ 18u, 7u },
- 49.f,
+ 53.f,
15.f,
-4.f,
- 5.f,
+ 6.f,
0.f,
0.f,
false,
{
{ 25u, 9u },
{ 25u, 10u },
- 63.f,
+ 66.f,
15.f,
-4.f,
- 5.f,
+ 6.f,
0.f,
0.f,
false,
{
{ 34u, 14u },
{ 35u, 14u },
- 91.f,
+ 97.f,
15.f,
-4.f,
0.f,
fontDescriptionRuns.PushBack( fontDescriptionRun4 );
fontDescriptionRuns.PushBack( fontDescriptionRun5 );
Size textArea(100.f, 300.f);
- Size layoutSize(78.f, 114.f);
+ Size layoutSize(81.f, 114.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 12 .. 21
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.f, -12.f, // 22 .. 27
+ 63.f, -10.f, 54.f, -13.f, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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,
4.f,
{
{ 12u, 10u },
{ 12u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 22u, 6u },
{ 22u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
{
{ 28u, 10u },
{ 28u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 38u, 12u },
{ 38u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 50u, 5u },
{ 50u, 5u },
- 42.f,
+ 45.f,
15.f,
-4.f,
0.f,
Vector<FontDescriptionRun> fontDescriptionRuns;
fontDescriptionRuns.PushBack( fontDescriptionRun );
Size textArea(100.f, 300.f);
- Size layoutSize(94.f, 57.f);
+ Size layoutSize(98.f, 57.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,
0.f,
{
{ 12u, 12u },
{ 12u, 12u },
- 94.f,
+ 98.f,
15.f,
-4.f,
0.f,
{
{ 24u, 5u },
{ 24u, 5u },
- 42.f,
+ 44.f,
15.f,
-4.f,
0.f,
Vector<FontDescriptionRun> fontDescriptionRuns;
fontDescriptionRuns.PushBack( fontDescriptionRun );
Size textArea(100.f, 300.f);
- Size layoutSize(81.f, 38.f);
+ Size layoutSize(84.f, 38.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,
0.f,
fontDescriptionRuns.PushBack( fontDescriptionRun2 );
fontDescriptionRuns.PushBack( fontDescriptionRun3 );
Size textArea(100.f, 300.f);
- Size layoutSize(87.f, 51.f);
+ Size layoutSize(89.f, 51.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, 71.f, -9.f, 77.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,
4.f,
{
{ 12u, 5u },
{ 12u, 5u },
- 42.f,
+ 44.f,
15.f,
-4.f,
0.f,
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<FontDescriptionRun> fontDescriptionRuns;
+ fontDescriptionRuns.PushBack( fontDescriptionRun );
+
+ Size textArea(64.f, 100.f);
+ Size layoutSize(33.f, 38.f);
+ float positions[] =
+ {
+ 28.f, -13.f, 18.f, -10.f, 9.f, -10.f, 4.f, -10.f, 0.f, -0.f,
+ 23.f, -10.f, 18.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,
+ -4.f,
+ 5.f,
+ 0.f,
+ 0.f,
+ true,
+ false
+ };
+ struct LineRun line1 =
+ {
+ { 5u, 5u },
+ { 5u, 5u },
+ 33.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ true,
+ false
+ };
+ Vector<LineRun> 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,
+ 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<FontDescriptionRun> fontDescriptionRuns;
+ fontDescriptionRuns.PushBack( fontDescriptionRun );
+
+ Size textArea(26.f, 100.f);
+ Size layoutSize(23.f, 57.f);
+ float positions[] =
+ {
+ 11.f, -10.f, 5.f, -10.f, 0.f, -10.f,
+ 12.f, -10.f, 8.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 },
+ 20.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ true,
+ false
+ };
+ struct LineRun line1 =
+ {
+ { 3u, 3u },
+ { 3u, 3u },
+ 22.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ true,
+ false
+ };
+ struct LineRun line2 =
+ {
+ { 6u, 3u },
+ { 6u, 3u },
+ 23.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ true,
+ false
+ };
+ Vector<LineRun> 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,
+ true
+ };
+
+ if( !LayoutTextTest( data ) )
+ {
+ tet_result(TET_FAIL);
+ }
+
+ tet_result(TET_PASS);
+ END_TEST;
+}
+
int UtcDaliTextUpdateLayout01(void)
{
ToolkitTestApplication application;
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(92.f, 361.f);
+ Size layoutSize(100.f, 361.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 12 .. 21
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.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, 45.f, -10.f, 36.f, -10.f, 31.f, -0.f, // 48 .. 58
+ 23.f, -10.f, 18.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, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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
+ 91.f, -8.f, 85.f, -6.f, 78.f, -8.f, 74.f, -7.f, 72.f, -11.f, 67.f, -0.f, 63.f, -7.f, 61.f, -11.f, 56.f, -11.f, 49.f, -8.f, 48.f, -11.f, 42.f, -11.f, 37.f, -8.f, 33.f, -0.f, 23.f, -10.f, 14.f, -13.f, 9.f, -10.f, 0.f, -10.f, 98.f, -0.f, // 104 .. 122
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 140 .. 149
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.f, -12.f, // 150 .. 155
+ 63.f, -10.f, 54.f, -13.f, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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,
4.f,
{
{ 12u, 10u },
{ 12u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 22u, 6u },
{ 22u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
};
struct LineRun line04 =
{
- { 28u, 20u },
- { 28u, 20u },
- 92.f,
+ { 28u, 14u },
+ { 28u, 14u },
+ 63.f,
15.f,
-4.f,
4.f,
};
struct LineRun line05 =
{
- { 48u, 11u },
- { 48u, 11u },
- 75.f,
+ { 42, 12u },
+ { 42, 12u },
+ 79.f,
15.f,
-4.f,
4.f,
0.f,
0.f,
- false,
+ true,
false
};
struct LineRun line06 =
{
- { 59u, 5u },
- { 59u, 5u },
- 29.f,
+ { 54u, 10u },
+ { 54u, 10u },
+ 69.f,
15.f,
-4.f,
0.f,
{
{ 64u, 10u },
{ 64u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
true,
{
{ 74u, 12u },
{ 74u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 86u, 6u },
{ 86u, 6u },
- 42.f,
+ 45.f,
15.f,
-4.f,
0.f,
{
{ 92u, 12u },
{ 92u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 104u, 19u },
{ 104u, 19u },
- 90.f,
+ 100.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 123u, 5u },
{ 123u, 5u },
- 29.f,
+ 31.f,
15.f,
-4.f,
0.f,
{
{ 128u, 12u },
{ 128u, 12u },
- 78.f,
+ 81.f,
15.f,
-4.f,
4.f,
{
{ 140u, 10u },
{ 140u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 150u, 6u },
{ 150u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
{
{ 156u, 10u },
{ 156u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
true,
{
{ 166u, 12u },
{ 166u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 178u, 14u },
{ 178u, 14u },
- 56.f,
+ 63.f,
15.f,
-4.f,
0.f,
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(92.f, 361.f);
+ Size layoutSize(100.f, 361.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 12 .. 21
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.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, 45.f, -10.f, 36.f, -10.f, 31.f, -0.f, // 48 .. 58
+ 23.f, -10.f, 18.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, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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
+ 91.f, -8.f, 85.f, -6.f, 78.f, -8.f, 74.f, -7.f, 72.f, -11.f, 67.f, -0.f, 63.f, -7.f, 61.f, -11.f, 56.f, -11.f, 49.f, -8.f, 48.f, -11.f, 42.f, -11.f, 37.f, -8.f, 33.f, -0.f, 23.f, -10.f, 14.f, -13.f, 9.f, -10.f, 0.f, -10.f, 98.f, -0.f, // 104 .. 122
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 140 .. 149
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.f, -12.f, // 150 .. 155
+ 63.f, -10.f, 54.f, -13.f, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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,
4.f,
{
{ 12u, 10u },
{ 12u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 22u, 6u },
{ 22u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
};
struct LineRun line04 =
{
- { 28u, 20u },
- { 28u, 20u },
- 92.f,
+ { 28u, 14u },
+ { 28u, 14u },
+ 63.f,
15.f,
-4.f,
4.f,
};
struct LineRun line05 =
{
- { 48u, 11u },
- { 48u, 11u },
- 75.f,
+ { 42u, 12u },
+ { 42u, 12u },
+ 79.f,
15.f,
-4.f,
4.f,
};
struct LineRun line06 =
{
- { 59u, 5u },
- { 59u, 5u },
- 29.f,
+ { 54u, 10u },
+ { 54u, 10u },
+ 69.f,
15.f,
-4.f,
0.f,
{
{ 64u, 10u },
{ 64u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 74u, 12u },
{ 74u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 86u, 6u },
{ 86u, 6u },
- 42.f,
+ 45.f,
15.f,
-4.f,
0.f,
{
{ 92u, 12u },
{ 92u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 104u, 19u },
{ 104u, 19u },
- 90.f,
+ 100.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 123u, 5u },
{ 123u, 5u },
- 29.f,
+ 31.f,
15.f,
-4.f,
0.f,
{
{ 128u, 12u },
{ 128u, 12u },
- 78.f,
+ 81.f,
15.f,
-4.f,
4.f,
{
{ 140u, 10u },
{ 140u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 150u, 6u },
{ 150u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
{
{ 156u, 10u },
{ 156u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 166u, 12u },
{ 166u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 178u, 14u },
{ 178u, 14u },
- 56.f,
+ 63.f,
15.f,
-4.f,
0.f,
fontDescriptionRuns.PushBack( fontDescriptionRun16 );
fontDescriptionRuns.PushBack( fontDescriptionRun17 );
Size textArea(100.f, 300.f);
- Size layoutSize(92.f, 361.f);
+ Size layoutSize(100.f, 361.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 12 .. 21
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.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, 45.f, -10.f, 36.f, -10.f, 31.f, -0.f, // 48 .. 58
+ 23.f, -10.f, 18.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, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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
+ 91.f, -8.f, 85.f, -6.f, 78.f, -8.f, 74.f, -7.f, 72.f, -11.f, 67.f, -0.f, 63.f, -7.f, 61.f, -11.f, 56.f, -11.f, 49.f, -8.f, 48.f, -11.f, 42.f, -11.f, 37.f, -8.f, 33.f, -0.f, 23.f, -10.f, 14.f, -13.f, 9.f, -10.f, 0.f, -10.f, 98.f, -0.f, // 104 .. 122
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.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, 69.f, -10.f, 60.f, -13.f, 54.f, -10.f, 46.f, -10.f, 79.f, -0.f, // 140 .. 149
+ 23.f, -10.f, 18.f, -10.f, 10.f, -13.f, 0.f, -10.f, 31.f, -2.f, 35.f, -12.f, // 150 .. 155
+ 63.f, -10.f, 54.f, -13.f, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.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,
4.f,
{
{ 12u, 10u },
{ 12u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 22u, 6u },
{ 22u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
};
struct LineRun line04 =
{
- { 28u, 20u },
- { 28u, 20u },
- 92.f,
+ { 28u, 14u },
+ { 28u, 14u },
+ 63.f,
15.f,
-4.f,
4.f,
};
struct LineRun line05 =
{
- { 48u, 11u },
- { 48u, 11u },
- 75.f,
+ { 42u, 12u },
+ { 42u, 12u },
+ 79.f,
15.f,
-4.f,
4.f,
};
struct LineRun line06 =
{
- { 59u, 5u },
- { 59u, 5u },
- 29.f,
+ { 54u, 10u },
+ { 54u, 10u },
+ 69.f,
15.f,
-4.f,
0.f,
{
{ 64u, 10u },
{ 64u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 74u, 12u },
{ 74u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 86u, 6u },
{ 86u, 6u },
- 42.f,
+ 45.f,
15.f,
-4.f,
0.f,
{
{ 92u, 12u },
{ 92u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 104u, 19u },
{ 104u, 19u },
- 90.f,
+ 100.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 123u, 5u },
{ 123u, 5u },
- 29.f,
+ 31.f,
15.f,
-4.f,
0.f,
{
{ 128u, 12u },
{ 128u, 12u },
- 78.f,
+ 81.f,
15.f,
-4.f,
4.f,
{
{ 140u, 10u },
{ 140u, 10u },
- 75.f,
+ 79.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 150u, 6u },
{ 150u, 6u },
- 32.f,
+ 34.f,
15.f,
-4.f,
0.f,
{
{ 156u, 10u },
{ 156u, 10u },
- 65.f,
+ 69.f,
15.f,
-4.f,
- 4.f,
+ 5.f,
0.f,
0.f,
false,
{
{ 166u, 12u },
{ 166u, 12u },
- 76.f,
+ 79.f,
15.f,
-4.f,
4.f,
{
{ 178u, 14u },
{ 178u, 14u },
- 56.f,
+ 63.f,
15.f,
-4.f,
0.f,
struct LineRun line01 =
{
- { 0u, 14u },
- { 0u, 14u },
- 99.f,
+ { 0u, 13u },
+ { 0u, 13u },
+ 93.f,
15.f,
-4.f,
0.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, 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 );
Vector<FontDescriptionRun> 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<LineRun> 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<FontDescriptionRun> 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<LineRun> 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<FontDescriptionRun> 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<LineRun> 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<FontDescriptionRun> 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<LineRun> 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,
- 0u,
- 11u,
- true,
- true
- };
-
- if( !LayoutTextTest( data ) )
- {
- tet_result(TET_FAIL);
- }
-
- tet_result(TET_PASS);
- END_TEST;
-}
-
-int UtcDaliTextReorderLayout01(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliTextReorderLayout01");
-
- // Reorder lines. No right to left characters.
-
- const std::string fontLatin( "TizenSans" );
-
- // Set a known font description
- FontDescriptionRun fontDescriptionRun01;
- fontDescriptionRun01.characterRun.characterIndex = 0u;
- fontDescriptionRun01.characterRun.numberOfCharacters = 11u;
- 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<FontDescriptionRun> fontDescriptionRuns;
- fontDescriptionRuns.PushBack( fontDescriptionRun01 );
-
+ struct LineRun line01 =
+ {
+ { 0u, 12u },
+ { 0u, 12u },
+ 81.f,
+ 15.f,
+ -4.f,
+ 4.f,
+ 0.f,
+ 0.f,
+ false,
+ false
+ };
+ struct LineRun line02 =
+ {
+ { 12u, 12u },
+ { 12u, 12u },
+ 95.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ false,
+ true
+ };
+ Vector<LineRun> 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, 38.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,
+ true
};
- if( !ReLayoutRightToLeftLinesTest( data ) )
+ if( !LayoutTextTest( data ) )
{
tet_result(TET_FAIL);
}
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" );
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;
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;
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
+ struct LineRun line01 =
+ {
+ { 0u, 14u },
+ { 0u, 14u },
+ 97.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ false,
+ true
+ };
+ Vector<LineRun> 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,
+ 88.f, -10.f, 80.f, -13.f, 74.f, -10.f, 66.f, -10.f, 60.f, -0.f, 52.f, -10.f, 47.f, -10.f, 39.f, -13.f, 30.f, -10.f, 24.f, -0.f, 17.f, -8.f, 12.f, -6.f, 4.f, -8.f, 0.f, -7.f, 77.f, -11.f, 72.f, -0.f,
};
- Size textArea( 100.f, 300.f );
+ Size textArea( 100.f, 50.f );
+ Size layoutSize( 100.f, 19.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,
+ true
};
- if( !ReLayoutRightToLeftLinesTest( data ) )
+ if( !LayoutTextTest( data ) )
{
tet_result(TET_FAIL);
}
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" );
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;
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;
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
+ struct LineRun line01 =
+ {
+ { 0u, 10u },
+ { 0u, 10u },
+ 69.f,
+ 15.f,
+ -4.f,
+ 5.f,
+ 0.f,
+ 0.f,
+ false,
+ false
+ };
+ struct LineRun line02 =
+ {
+ { 10u, 19u },
+ { 10u, 19u },
+ 99.f,
+ 15.f,
+ -4.f,
+ 5.f,
+ 0.f,
+ 0.f,
+ false,
+ true
+ };
+ Vector<LineRun> 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, 49.f, -10.f, 41.f, -10.f, 35.f, -0.f, 27.f, -10.f, 22.f, -10.f, 14.f, -13.f, 4.f, -10.f, 0.f, -0.f, 95.f, -8.f, 90.f, -6.f, 82.f, -8.f, 78.f, -7.f, 77.f, -11.f, 72.f, -0.f,
+ 67.f, -7.f, 66.f, -11.f, 60.f, -11.f, 54.f, -8.f, 52.f, -11.f, 46.f, -11.f, 41.f, -8.f, 37.f, -0.f, 27.f, -10.f, 18.f, -13.f, 13.f, -10.f, 4.f, -10.f, 0.f, -0.f, 93.f, -10.f, 88.f, -10.f, 80.f, -13.f, 71.f, -10.f, 65.f, -0.f,
};
- Size textArea( 100.f, 300.f );
+ Size textArea( 100.f, 50.f );
+ Size layoutSize( 100.f, 38.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,
+ true
};
- if( !ReLayoutRightToLeftLinesTest( data ) )
+ if( !LayoutTextTest( data ) )
{
tet_result(TET_FAIL);
}
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<FontDescriptionRun> 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 },
+ 81.f,
+ 15.f,
+ -4.f,
+ 0.f,
+ 0.f,
+ 0.f,
+ false,
+ false
+ };
+ Vector<LineRun> 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( 81.f, 19.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,
+ true
};
- if( !ReLayoutRightToLeftLinesTest( data ) )
+ if( !LayoutTextTest( data ) )
{
tet_result(TET_FAIL);
}
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 =
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 =
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 =
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, 17.f };
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 22.f, 35.f, 0.f, 0.f, 0.f, 0.f };
+ float positions[] = { 19.f, 31.f, 0.f, 0.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
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, 34.f };
Size textArea( 100.f, 300.f );
AlignData data =
fontDescriptionRuns.PushBack( fontDescriptionRun05 );
fontDescriptionRuns.PushBack( fontDescriptionRun06 );
- float positions[] = { 22.f, 35.f, 2.f, 0.f, 0.f, 0.f };
+ float positions[] = { 19.f, 31.f, 33.f, 0.f, 0.f, 0.f };
Size textArea( 100.f, 300.f );
AlignData data =
Size layoutSize01 = Vector2(11.f, 19.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 },
- 15.f,
+ 16.f,
15.f,
-4.f,
0.f,
Vector<LineRun> lines02;
lines02.PushBack( line02 );
- Size layoutSize02 = Vector2(15.f, 19.f);
+ Size layoutSize02 = Vector2(16.f, 19.f);
// Group: second glyph doesn't exceed the width of the first glyph
float positions03[] = { 0.f, -11.f , 2.f, -15.f };