- {
- { 22u, 6u },
- { 22u, 6u },
- 32.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line04 =
- {
- { 28u, 20u },
- { 28u, 20u },
- 92.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line05 =
- {
- { 48u, 11u },
- { 48u, 11u },
- 75.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line06 =
- {
- { 59u, 5u },
- { 59u, 5u },
- 29.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line07 =
- {
- { 64u, 10u },
- { 64u, 10u },
- 65.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line08 =
- {
- { 74u, 12u },
- { 74u, 12u },
- 76.f,
- 15.f,
- -4.f,
- 4.f,
- 1.f,
- 0.f,
- false,
- false
- };
- struct LineRun line09 =
- {
- { 86u, 6u },
- { 86u, 6u },
- 42.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line10 =
- {
- { 92u, 12u },
- { 92u, 12u },
- 76.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line11 =
- {
- { 104u, 19u },
- { 104u, 19u },
- 90.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line12 =
- {
- { 123u, 5u },
- { 123u, 5u },
- 29.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line13 =
- {
- { 128u, 12u },
- { 128u, 12u },
- 78.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line14 =
- {
- { 140u, 10u },
- { 140u, 10u },
- 75.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line15 =
- {
- { 150u, 6u },
- { 150u, 6u },
- 32.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line16 =
- {
- { 156u, 10u },
- { 156u, 10u },
- 65.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line17 =
- {
- { 166u, 12u },
- { 166u, 12u },
- 76.f,
- 15.f,
- -4.f,
- 4.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line18 =
- {
- { 178u, 14u },
- { 178u, 14u },
- 56.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- struct LineRun line19 =
- {
- { 192u, 0u },
- { 192u, 0u },
- 0.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- false
- };
- Vector<LineRun> lines;
- lines.PushBack( line01 );
- lines.PushBack( line02 );
- lines.PushBack( line03 );
- lines.PushBack( line04 );
- lines.PushBack( line05 );
- lines.PushBack( line06 );
- lines.PushBack( line07 );
- lines.PushBack( line08 );
- lines.PushBack( line09 );
- lines.PushBack( line10 );
- lines.PushBack( line11 );
- lines.PushBack( line12 );
- lines.PushBack( line13 );
- lines.PushBack( line14 );
- lines.PushBack( line15 );
- lines.PushBack( line16 );
- lines.PushBack( line17 );
- lines.PushBack( line18 );
- lines.PushBack( line19 );
-
- LayoutTextData data =
- {
- "Layout bidirectional text.",
- "Hello world demo שלום עולם.\n"
- "مرحبا بالعالم hello world שלום עולם\n"
- "שלום עולם hello world demo.\n"
- "hello world مرحبا بالعالم שלום עולם\n"
- "Hello world demo שלום עולם.\n"
- "שלום עולם hello world مرحبا بالعالم\n",
- textArea,
- 17u,
- fontDescriptionRuns.Begin(),
- layoutSize,
- 192u,
- positions,
- 19u,
- lines.Begin(),
- Layout::Engine::MULTI_LINE_BOX,
- 128u,
- 64u,
- false,
- true
- };
-
- if( !LayoutTextTest( data ) )
- {
- tet_result(TET_FAIL);
- }
-
- tet_result(TET_PASS);
- END_TEST;
-}
-
-int UtcDaliTextLayoutEllipsis01(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliTextLayoutEllipsis01");
-
- // Layout single-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<FontDescriptionRun> fontDescriptionRuns;
- fontDescriptionRuns.PushBack( fontDescriptionRun01 );
-
- struct LineRun line01 =
- {
- { 0u, 14u },
- { 0u, 14u },
- 99.f,
- 15.f,
- -4.f,
- 0.f,
- 0.f,
- 0.f,
- false,
- true
- };
- Vector<LineRun> lines;
- lines.PushBack( line01 );
-
- 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,
- };
-
- Size textArea( 100.f, 50.f );
- Size layoutSize( 100.f, 19.f );
-
- LayoutTextData data =
- {
- "Layout single-line LTR text with ellipsis.",
- "Hello world demo hello world demo hello world demo.",
- textArea,
- 1u,
- fontDescriptionRuns.Begin(),
- layoutSize,
- 13u,
- 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<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
- };