#include <dali-toolkit/internal/text/text-run-container.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
-#include <toolkit-text-model.h>
+#include <toolkit-text-utils.h>
using namespace Dali;
using namespace Toolkit;
float* positions;
unsigned int numberOfLines;
LineRun* lines;
- LayoutEngine::Layout layout;
+ Layout::Engine::Type layout;
unsigned int startIndex;
unsigned int numberOfGlyphs;
bool ellipsis:1;
glyphPositions.Begin() + data.startIndex + data.numberOfGlyphs );
// 3) Layout
- LayoutEngine engine;
+ Layout::Engine engine;
engine.SetMetrics( metrics );
- engine.SetTextEllipsisEnabled( data.ellipsis );
engine.SetLayout( data.layout );
const Length totalNumberOfGlyphs = visualModel->mGlyphs.Count();
- LayoutParameters layoutParameters( data.textArea,
- logicalModel->mText.Begin(),
- logicalModel->mLineBreakInfo.Begin(),
- logicalModel->mWordBreakInfo.Begin(),
- ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL,
- visualModel->mGlyphs.Begin(),
- visualModel->mGlyphsToCharacters.Begin(),
- visualModel->mCharactersPerGlyph.Begin(),
- visualModel->mCharactersToGlyph.Begin(),
- visualModel->mGlyphsPerCharacter.Begin(),
- totalNumberOfGlyphs );
+ Layout::Parameters layoutParameters( data.textArea,
+ logicalModel->mText.Begin(),
+ logicalModel->mLineBreakInfo.Begin(),
+ logicalModel->mWordBreakInfo.Begin(),
+ ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL,
+ visualModel->mGlyphs.Begin(),
+ visualModel->mGlyphsToCharacters.Begin(),
+ visualModel->mCharactersPerGlyph.Begin(),
+ visualModel->mCharactersToGlyph.Begin(),
+ visualModel->mGlyphsPerCharacter.Begin(),
+ totalNumberOfGlyphs,
+ Layout::HORIZONTAL_ALIGN_BEGIN );
layoutParameters.isLastNewParagraph = isLastNewParagraph;
const bool updated = engine.LayoutText( layoutParameters,
glyphPositions,
lines,
- layoutSize );
+ layoutSize,
+ data.ellipsis );
// 4) Compare the results.
metrics );
// 2) Call the ReLayoutRightToLeftLines() method.
- LayoutEngine engine;
+ Layout::Engine engine;
engine.SetMetrics( metrics );
- LayoutParameters layoutParameters( data.textArea,
- logicalModel->mText.Begin(),
- logicalModel->mLineBreakInfo.Begin(),
- logicalModel->mWordBreakInfo.Begin(),
- ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL,
- visualModel->mGlyphs.Begin(),
- visualModel->mGlyphsToCharacters.Begin(),
- visualModel->mCharactersPerGlyph.Begin(),
- visualModel->mCharactersToGlyph.Begin(),
- visualModel->mGlyphsPerCharacter.Begin(),
- visualModel->mGlyphs.Count() );
+ Layout::Parameters layoutParameters( data.textArea,
+ logicalModel->mText.Begin(),
+ logicalModel->mLineBreakInfo.Begin(),
+ logicalModel->mWordBreakInfo.Begin(),
+ ( 0u != logicalModel->mCharacterDirections.Count() ) ? logicalModel->mCharacterDirections.Begin() : NULL,
+ visualModel->mGlyphs.Begin(),
+ visualModel->mGlyphsToCharacters.Begin(),
+ visualModel->mCharactersPerGlyph.Begin(),
+ visualModel->mCharactersToGlyph.Begin(),
+ visualModel->mGlyphsPerCharacter.Begin(),
+ visualModel->mGlyphs.Count(),
+ Layout::HORIZONTAL_ALIGN_BEGIN );
layoutParameters.numberOfBidirectionalInfoRuns = logicalModel->mBidirectionalLineInfo.Count();
layoutParameters.lineBidirectionalInfoRunsBuffer = logicalModel->mBidirectionalLineInfo.Begin();
struct AlignData
{
- std::string description;
- std::string text;
- Size textArea;
- unsigned int numberOfFonts;
- FontDescriptionRun* fontDescriptions;
- LayoutEngine::HorizontalAlignment horizontalAlignment;
- LayoutEngine::VerticalAlignment verticalAlignment;
- unsigned int startIndex;
- unsigned int numberOfCharacters;
- unsigned int numberOfLines;
- float* lineOffsets;
+ std::string description;
+ std::string text;
+ Size textArea;
+ unsigned int numberOfFonts;
+ FontDescriptionRun* fontDescriptions;
+ Layout::HorizontalAlignment horizontalAlignment;
+ Layout::VerticalAlignment verticalAlignment;
+ unsigned int startIndex;
+ unsigned int numberOfCharacters;
+ unsigned int numberOfLines;
+ float* lineOffsets;
};
bool AlignTest( const AlignData& data )
metrics );
// Call the Align method.
- LayoutEngine engine;
+ Layout::Engine engine;
engine.SetMetrics( metrics );
- engine.SetHorizontalAlignment( data.horizontalAlignment );
- engine.SetVerticalAlignment( data.verticalAlignment );
-
+ float alignmentOffset = 0.f;
engine.Align( data.textArea,
data.startIndex,
data.numberOfCharacters,
- visualModel->mLines );
+ data.horizontalAlignment,
+ visualModel->mLines,
+ alignmentOffset );
// Compare results.
if( data.numberOfLines != visualModel->mLines.Count() )
ToolkitTestApplication application;
tet_infoline(" UtcDaliTextLayoutSetGetLayout");
- LayoutEngine engine;
-
- DALI_TEST_CHECK( LayoutEngine::SINGLE_LINE_BOX == engine.GetLayout() );
-
- engine.SetLayout( LayoutEngine::MULTI_LINE_BOX );
- DALI_TEST_CHECK( LayoutEngine::MULTI_LINE_BOX == engine.GetLayout() );
-
- tet_result(TET_PASS);
- END_TEST;
-}
-
-int UtcDaliTextLayoutSetGetTextEllipsisEnabled(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliTextLayoutSetGetTextEllipsisEnabled");
-
- LayoutEngine engine;
-
- DALI_TEST_CHECK( !engine.GetTextEllipsisEnabled() );
-
- engine.SetTextEllipsisEnabled( true );
- DALI_TEST_CHECK( engine.GetTextEllipsisEnabled() );
-
- tet_result(TET_PASS);
- END_TEST;
-}
-
-int UtcDaliTextLayoutSetGetHorizontalAlignment(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" ");
-
- LayoutEngine engine;
+ Layout::Engine engine;
- DALI_TEST_CHECK( LayoutEngine::HORIZONTAL_ALIGN_BEGIN == engine.GetHorizontalAlignment() );
-
- engine.SetHorizontalAlignment( LayoutEngine::HORIZONTAL_ALIGN_END );
- DALI_TEST_CHECK( LayoutEngine::HORIZONTAL_ALIGN_END == engine.GetHorizontalAlignment() );
-
- tet_result(TET_PASS);
- END_TEST;
-}
-
-int UtcDaliTextLayoutSetGetVerticalAlignment(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliTextLayoutSetGetVerticalAlignment");
-
- LayoutEngine engine;
-
- DALI_TEST_CHECK( LayoutEngine::VERTICAL_ALIGN_TOP == engine.GetVerticalAlignment() );
-
- engine.SetVerticalAlignment( LayoutEngine::VERTICAL_ALIGN_TOP );
- DALI_TEST_CHECK( LayoutEngine::VERTICAL_ALIGN_TOP == engine.GetVerticalAlignment() );
+ DALI_TEST_CHECK( Layout::Engine::SINGLE_LINE_BOX == engine.GetLayout() );
+ engine.SetLayout( Layout::Engine::MULTI_LINE_BOX );
+ DALI_TEST_CHECK( Layout::Engine::MULTI_LINE_BOX == engine.GetLayout() );
tet_result(TET_PASS);
END_TEST;
ToolkitTestApplication application;
tet_infoline(" ");
- LayoutEngine engine;
+ Layout::Engine engine;
DALI_TEST_EQUALS( 1, engine.GetCursorWidth(), TEST_LOCATION );
NULL,
0u,
NULL,
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
0u,
false,
NULL,
0u,
NULL,
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
11u,
false,
positions,
1u,
lines.Begin(),
- LayoutEngine::SINGLE_LINE_BOX,
+ Layout::Engine::SINGLE_LINE_BOX,
0u,
11u,
false,
positions,
5u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
48u,
false,
positions,
6u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
55u,
false,
positions,
3u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
29u,
false,
positions,
2u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
13u,
false,
positions,
2u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
17u,
false,
positions,
19u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
64u,
false,
positions,
19u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
64u,
64u,
false,
positions,
19u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
128u,
64u,
false,
positions,
1u,
lines.Begin(),
- LayoutEngine::SINGLE_LINE_BOX,
+ Layout::Engine::SINGLE_LINE_BOX,
0u,
51u,
true,
positions,
2u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
51u,
true,
positions,
1u,
lines.Begin(),
- LayoutEngine::SINGLE_LINE_BOX,
+ Layout::Engine::SINGLE_LINE_BOX,
0u,
72u,
true,
positions,
2u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
72u,
true,
positions,
1u,
lines.Begin(),
- LayoutEngine::MULTI_LINE_BOX,
+ Layout::Engine::MULTI_LINE_BOX,
0u,
11u,
true,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_BEGIN,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_BEGIN,
+ Layout::VERTICAL_ALIGN_TOP,
0u,
22u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_BEGIN,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_BEGIN,
+ Layout::VERTICAL_ALIGN_TOP,
22u,
26u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_BEGIN,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_BEGIN,
+ Layout::VERTICAL_ALIGN_TOP,
48u,
26u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_CENTER,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_CENTER,
+ Layout::VERTICAL_ALIGN_TOP,
0u,
22u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_CENTER,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_CENTER,
+ Layout::VERTICAL_ALIGN_TOP,
22u,
26u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_CENTER,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_CENTER,
+ Layout::VERTICAL_ALIGN_TOP,
48u,
26u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_END,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_END,
+ Layout::VERTICAL_ALIGN_TOP,
0u,
22u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_END,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_END,
+ Layout::VERTICAL_ALIGN_TOP,
22u,
26u,
6u,
textArea,
6u,
fontDescriptionRuns.Begin(),
- LayoutEngine::HORIZONTAL_ALIGN_END,
- LayoutEngine::VERTICAL_ALIGN_TOP,
+ Layout::HORIZONTAL_ALIGN_END,
+ Layout::VERTICAL_ALIGN_TOP,
48u,
26u,
6u,
tet_result(TET_PASS);
END_TEST;
}
+
+int UtcDaliTextLayoutSetGetDefaultLineSpacing(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline(" UtcDaliTextLayoutSetGetDefaultLineSpacing");
+
+ Layout::Engine engine;
+ DALI_TEST_EQUALS( 0.f, engine.GetDefaultLineSpacing(), Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+
+ engine.SetDefaultLineSpacing( 10.f );
+ DALI_TEST_EQUALS( 10.f, engine.GetDefaultLineSpacing(), Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+
+ tet_result(TET_PASS);
+ END_TEST;
+}