X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-label-impl.cpp;h=c498f0e4ddba625f38f161e5253eee48e13483fa;hp=38335ee48af2e9163c9c2b90164fbda397331fcb;hb=20d79594120aa5db8769cff09a021e9641655bec;hpb=c813c4ae683991df95c5c2218811830c88292d30 diff --git a/base/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp b/base/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp index 38335ee..c498f0e 100644 --- a/base/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp +++ b/base/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp @@ -22,6 +22,12 @@ #include #include +// INTERNAL INCLUDES +#include +#include // TODO - Get from RendererFactory + +using Dali::Toolkit::Text::LayoutEngine; + namespace { @@ -33,7 +39,8 @@ namespace Dali namespace Toolkit { -const Property::Index TextLabel::PROPERTY_TEXT( Internal::TextLabel::TEXTLABEL_PROPERTY_START_INDEX ); +const Property::Index TextLabel::PROPERTY_TEXT( Internal::TextLabel::TEXTLABEL_PROPERTY_START_INDEX ); +const Property::Index TextLabel::PROPERTY_MULTI_LINE( Internal::TextLabel::TEXTLABEL_PROPERTY_START_INDEX + 1 ); namespace Internal { @@ -49,7 +56,8 @@ BaseHandle Create() TypeRegistration mType( typeid(Toolkit::TextLabel), typeid(Toolkit::Control), Create ); -PropertyRegistration property1( mType, "text", Toolkit::TextLabel::PROPERTY_TEXT, Property::STRING, &TextLabel::SetProperty, &TextLabel::GetProperty ); +PropertyRegistration property1( mType, "text", Toolkit::TextLabel::PROPERTY_TEXT, Property::STRING, &TextLabel::SetProperty, &TextLabel::GetProperty ); +PropertyRegistration property2( mType, "multi-line", Toolkit::TextLabel::PROPERTY_MULTI_LINE, Property::STRING, &TextLabel::SetProperty, &TextLabel::GetProperty ); } // namespace @@ -87,6 +95,11 @@ void TextLabel::SetProperty( BaseObject* object, Property::Index index, const Pr labelImpl.SetText( value.Get< std::string >() ); break; } + case Toolkit::TextLabel::PROPERTY_MULTI_LINE: + { + labelImpl.SetMultiLine( value.Get< bool >() ); + break; + } } } } @@ -117,12 +130,15 @@ void TextLabel::OnInitialize() mController = Text::Controller::New(); } -void TextLabel::SetText( const std::string& text ) +void TextLabel::OnRelayout( const Vector2& size, ActorSizeContainer& container ) { - if( mController ) + if( mController->Relayout( size ) ) { - // The Controller updates the View for the renderer - mController->SetText( text ); + if( !mRenderer ) + { + // TODO - Get from RendererFactory + mRenderer = Dali::Toolkit::Text::BasicRenderer::New(); + } if( mRenderer ) { @@ -136,6 +152,30 @@ void TextLabel::SetText( const std::string& text ) } } +void TextLabel::SetText( const std::string& text ) +{ + if( mController ) + { + // The Controller updates the View for the renderer + mController->SetText( text ); + } +} + +void TextLabel::SetMultiLine( bool multiLine ) +{ + if( mController ) + { + if( multiLine ) + { + mController->GetLayoutEngine().SetLayout( LayoutEngine::MULTI_LINE_BOX ); + } + else + { + mController->GetLayoutEngine().SetLayout( LayoutEngine::SINGLE_LINE_BOX ); + } + } +} + TextLabel::TextLabel() : Control( ControlBehaviour( CONTROL_BEHAVIOUR_NONE ) ) {