// text fit test
Property::Map backgroundMap;
backgroundMap["color"] = Color::RED;
backgroundMap["enable"] = true;
Property::Map textFitMap;
textFitMap["enable"] = true;
textFitMap["minSize"] = 10.f;
textFitMap["maxSize"] = 100.f;
textFitMap["stepSize"] = 1.f;
textFitMap["fontSizeType"] = "pointSize";
textFit = TextLabel::New( "This is a Text Fit sample text " );
textFit.SetSize( 750, 100 );
textFit.SetParentOrigin(ParentOrigin::TOP_LEFT);
textFit.SetAnchorPoint(AnchorPoint::TOP_LEFT);
textFit.SetPosition( 100.f, 100.f);
textFit.SetProperty( Toolkit::DevelTextLabel::Property::TEXT_FIT, textFitMap );
textFit.SetProperty( Toolkit::DevelTextLabel::Property::BACKGROUND, backgroundMap );
stage.Add( textFit );
stage.GetRootLayer().TouchSignal().Connect( this, &HelloWorldController::OnTextFitTouch );
bool OnTextFitTouch( Actor actor, const TouchData& touch )
{
textFit.SetProperty( TextLabel::Property::TEXT, "Long enough message for TextLabel!! ");
textFit.SetProperty( TextLabel::Property::MULTI_LINE, true );
return true;
}
Change-Id: I81927d70db58211892fc98592eadfccf5a69d374
Vector2 contentSize( size.x - ( padding.start + padding.end ), size.y - ( padding.top + padding.bottom ) );
- // If the same text comes for relayouting for same layout size we don't need to calculate point size again.
- // Like for color change.
- if (mController->IsTextFitEnabled() && (mController->GetTextFitContentSize() != contentSize ) )
+ if( mController->IsTextFitEnabled() )
{
- mController->FitPointSizeforLayout(contentSize);
- mController->SetTextFitContentSize(contentSize);
+ mController->FitPointSizeforLayout( contentSize );
+ mController->SetTextFitContentSize( contentSize );
}
// Support Right-To-Left
void Controller::FitPointSizeforLayout( Size layoutSize )
{
+ const OperationsMask operations = mImpl->mOperationsPending;
+ if( NO_OPERATION != ( UPDATE_LAYOUT_SIZE & operations ) )
+ {
bool actualellipsis = mImpl->mModel->mElideEnabled;
float minPointSize = mImpl->mTextFitMinSize;
float maxPointSize = mImpl->mTextFitMaxSize;
mImpl->mFontDefaults->mFitPointSize = pointSizeArray[bestSizeIndex];
mImpl->mFontDefaults->sizeDefined = true;
ClearFontData();
+ }
}
float Controller::GetHeightForWidth( float width )