projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TextLabel property fixes
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
controls
/
text-controls
/
text-label-impl.cpp
diff --git
a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
index
9e20046
..
2bdacc4
100644
(file)
--- a/
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
+++ b/
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
@@
-98,6
+98,7
@@
void TextLabel::SetProperty( BaseObject* object, Property::Index index, const Pr
{
impl.mRenderingBackend = static_cast< unsigned int >( backend );
impl.mRenderer.Reset();
{
impl.mRenderingBackend = static_cast< unsigned int >( backend );
impl.mRenderer.Reset();
+ impl.RequestTextRelayout();
}
break;
}
}
break;
}
@@
-115,6
+116,7
@@
void TextLabel::SetProperty( BaseObject* object, Property::Index index, const Pr
{
LayoutEngine::Layout layout = value.Get< bool >() ? LayoutEngine::MULTI_LINE_BOX : LayoutEngine::SINGLE_LINE_BOX;
impl.mController->GetLayoutEngine().SetLayout( layout );
{
LayoutEngine::Layout layout = value.Get< bool >() ? LayoutEngine::MULTI_LINE_BOX : LayoutEngine::SINGLE_LINE_BOX;
impl.mController->GetLayoutEngine().SetLayout( layout );
+ impl.RequestTextRelayout();
}
break;
}
}
break;
}
@@
-141,6
+143,13
@@
Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
case Toolkit::TextLabel::PROPERTY_TEXT:
{
case Toolkit::TextLabel::PROPERTY_TEXT:
{
+ if( impl.mController )
+ {
+ std::string text;
+ impl.mController->GetText( text );
+ value = text;
+ }
+
DALI_LOG_WARNING( "UTF-8 text representation was discarded\n" );
break;
}
DALI_LOG_WARNING( "UTF-8 text representation was discarded\n" );
break;
}
@@
-149,7
+158,7
@@
Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde
{
if( impl.mController )
{
{
if( impl.mController )
{
- value =
impl.mController->GetLayoutEngine().GetLayout(
);
+ value =
static_cast<bool>( LayoutEngine::MULTI_LINE_BOX == impl.mController->GetLayoutEngine().GetLayout()
);
}
break;
}
}
break;
}
@@
-176,21
+185,30
@@
float TextLabel::GetHeightForWidth( float width )
void TextLabel::OnRelayout( const Vector2& size, ActorSizeContainer& container )
{
void TextLabel::OnRelayout( const Vector2& size, ActorSizeContainer& container )
{
- if( mController->Relayout( size ) )
+ if( mController->Relayout( size ) ||
+ !mRenderer )
{
if( !mRenderer )
{
mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
}
{
if( !mRenderer )
{
mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
}
+ RenderableActor renderableActor;
if( mRenderer )
{
if( mRenderer )
{
- Actor renderableActor = mRenderer->Render( mController->GetView() );
+ renderableActor = mRenderer->Render( mController->GetView() );
+ }
+
+ if( renderableActor != mRenderableActor )
+ {
+ UnparentAndReset( mRenderableActor );
if( renderableActor )
{
Self().Add( renderableActor );
}
if( renderableActor )
{
Self().Add( renderableActor );
}
+
+ mRenderableActor = renderableActor;
}
}
}
}
}
}