Change-Id: Iaadf7aa6c8dbb3560e790efe0018329b963224d9
{
impl.mRenderingBackend = static_cast< unsigned int >( backend );
impl.mRenderer.Reset();
{
impl.mRenderingBackend = static_cast< unsigned int >( backend );
impl.mRenderer.Reset();
+ impl.RequestTextRelayout();
{
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();
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;
}
{
if( impl.mController )
{
{
if( impl.mController )
{
- value = impl.mController->GetLayoutEngine().GetLayout();
+ value = static_cast<bool>( LayoutEngine::MULTI_LINE_BOX == impl.mController->GetLayoutEngine().GetLayout() );
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;
- 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;
Text::ControllerPtr mController;
Text::RendererPtr mRenderer;
Text::ControllerPtr mController;
Text::RendererPtr mRenderer;
+ RenderableActor mRenderableActor;
unsigned int mRenderingBackend;
};
unsigned int mRenderingBackend;
};
+void Controller::GetText( std::string& text )
+{
+ if( !mImpl->mNewText.empty() )
+ {
+ text = mImpl->mNewText;
+ }
+ else
+ {
+ // TODO - Convert from UTF-32
+ }
+}
+
void Controller::EnableTextInput( DecoratorPtr decorator )
{
if( !mImpl->mTextInput )
void Controller::EnableTextInput( DecoratorPtr decorator )
{
if( !mImpl->mTextInput )
Vector3 Controller::GetNaturalSize()
{
Vector3 Controller::GetNaturalSize()
{
+ // TODO - Finish implementing
+ return Vector3::ZERO;
+
// Operations that can be done only once until the text changes.
const OperationsMask onlyOnceOperations = static_cast<OperationsMask>( CONVERT_TO_UTF32 |
GET_SCRIPTS |
// Operations that can be done only once until the text changes.
const OperationsMask onlyOnceOperations = static_cast<OperationsMask>( CONVERT_TO_UTF32 |
GET_SCRIPTS |
void SetText( const std::string& text );
/**
void SetText( const std::string& text );
/**
+ * @brief Retrieve any text previously set.
+ *
+ * @return A string of UTF-8 characters.
+ */
+ void GetText( std::string& text );
+
+ /**
* @brief Called to enable text input.
*
* @note Only selectable or editable controls should calls this.
* @brief Called to enable text input.
*
* @note Only selectable or editable controls should calls this.