ex) An ellipsis may be displayed incorrectly when there are two or more
new-line characters.
check text in below samle "here to stay\n\n oh"
TextLabee labe33 = TextLabel::New( "yesterday all my troubles seemed so far away\nnow it looks\n as though they`re here to stay\n\n ohi believe in yesterday" );
labe33.SetSize( 450, 145 );
labe33.SetParentOrigin(ParentOrigin::TOP_LEFT);
labe33.SetAnchorPoint(AnchorPoint::TOP_LEFT);
labe33.SetPosition( 100.f, 200.f);
labe33.SetProperty(TextLabel::Property::POINT_SIZE, 17.6f);
labe33.SetProperty( TextLabel::Property::MULTI_LINE, true );
labe33.SetProperty(TextLabel::Property::ELLIPSIS, true);
stage.Add( labe33 );
When the index is decremented, it may be reduced to the index of the
previous line. In this case, the value of firstPenX must be
recalculated.
Change-Id: I5cb73dac352d862894d78b86164b3a2c3b7a7c8c
unsigned int numberOfLines;
unsigned int numberOfGlyphs;
float* positions;
unsigned int numberOfLines;
unsigned int numberOfGlyphs;
float* positions;
+ unsigned int ignoreOfGlyphs;
};
bool ElideTest( const ElideData& data )
};
bool ElideTest( const ElideData& data )
if( numberOfLines != 0u )
{
const LineRun& lastLine = *( model->GetLines() + numberOfLines - 1u );
if( numberOfLines != 0u )
{
const LineRun& lastLine = *( model->GetLines() + numberOfLines - 1u );
- const Length numberOfLastLineGlyphs = data.numberOfGlyphs - lastLine.glyphRun.glyphIndex;
+ const Length numberOfLastLineGlyphs = data.numberOfGlyphs - lastLine.glyphRun.glyphIndex + data.ignoreOfGlyphs;
std::cout << " last line alignment offset : " << lastLine.alignmentOffset << std::endl;
std::cout << " last line alignment offset : " << lastLine.alignmentOffset << std::endl;
Size textSize04( 80.f, 10.f );
float positions04[] = { 2.f };
Size textSize04( 80.f, 10.f );
float positions04[] = { 2.f };
+ Size textSize05( 180.f, 100.f );
+ float positions05[] = { 0.f, 0.f };
+
struct ElideData data[] =
{
{
struct ElideData data[] =
{
{
},
{
"Small control size, no line fits.",
},
{
"Small control size, no line fits.",
+ positions04,
+ 0u
+ },
+ {
+ "Include newline character",
+ "<font family='TizenSans'>yesterday\n all\n my troubles\n seemed so far\n\n away now it looks</font>",
+ textSize05,
+ 5u,
+ 40,
+ positions05,
+ 5u
+ },
- const unsigned int numberOfTests = 5u;
+ const unsigned int numberOfTests = 6u;
for( unsigned int index = 0u; index < numberOfTests; ++index )
{
for( unsigned int index = 0u; index < numberOfTests; ++index )
{
+ // If the index decreases to the previous line, firstPenX must be recalculated.
+ if( numberOfLaidOutGlyphs - index == lastLine.glyphRun.numberOfGlyphs)
+ {
+ firstPenSet = false;
+ }