#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/text/layouts/layout-engine.h>
-#include <dali-toolkit/public-api/text/rendering/text-backend.h>
+#include <dali-toolkit/internal/text/layouts/layout-engine.h>
+#include <dali-toolkit/internal/text/rendering/text-backend.h>
using Dali::Toolkit::Text::LayoutEngine;
using Dali::Toolkit::Text::Backend;
{
impl.mRenderingBackend = static_cast< unsigned int >( backend );
impl.mRenderer.Reset();
+ impl.RequestTextRelayout();
}
break;
}
{
LayoutEngine::Layout layout = value.Get< bool >() ? LayoutEngine::MULTI_LINE_BOX : LayoutEngine::SINGLE_LINE_BOX;
impl.mController->GetLayoutEngine().SetLayout( layout );
+ impl.RequestTextRelayout();
}
break;
}
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;
}
{
if( impl.mController )
{
- value = impl.mController->GetLayoutEngine().GetLayout();
+ value = static_cast<bool>( LayoutEngine::MULTI_LINE_BOX == impl.mController->GetLayoutEngine().GetLayout() );
}
break;
}
void TextLabel::OnRelayout( const Vector2& size, ActorSizeContainer& container )
{
- if( mController->Relayout( size ) )
+ if( mController->Relayout( size ) ||
+ !mRenderer )
{
if( !mRenderer )
{
mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
}
+ RenderableActor renderableActor;
if( mRenderer )
{
- Actor renderableActor = mRenderer->Render( mController->GetView() );
+ renderableActor = mRenderer->Render( mController->GetView() );
+ }
+
+ if( renderableActor != mRenderableActor )
+ {
+ UnparentAndReset( mRenderableActor );
if( renderableActor )
{
Self().Add( renderableActor );
}
+
+ mRenderableActor = renderableActor;
}
}
}