X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-label-impl.cpp;h=1c314492fbffbd50cd73aa3807e0cf70ad10b0f3;hp=4bbadfbf40ab281769748c5b7202a3491e54650f;hb=a97820c064ff542c5c5e5151e976c1495af1235e;hpb=d3a00dc1c24ece2488696c0b518013ad6d97969b 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 4bbadfb..1c31449 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp @@ -19,15 +19,14 @@ #include // EXTERNAL INCLUDES -#include #include -#include #include // INTERNAL INCLUDES #include -#include +#include #include +#include #include using Dali::Toolkit::Text::LayoutEngine; @@ -50,6 +49,10 @@ namespace namespace { +#if defined(DEBUG_ENABLED) + Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_CONTROLS"); +#endif + const Scripting::StringEnum HORIZONTAL_ALIGNMENT_STRING_TABLE[] = { { "BEGIN", Toolkit::Text::LayoutEngine::HORIZONTAL_ALIGN_BEGIN }, @@ -144,24 +147,17 @@ void TextLabel::SetProperty( BaseObject* object, Property::Index index, const Pr { const std::string fontFamily = value.Get< std::string >(); + DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel::SetProperty Property::FONT_FAMILY newFont(%s)\n", fontFamily.c_str() ); if( impl.mController->GetDefaultFontFamily() != fontFamily ) { - impl.mController->SetDefaultFontFamily( fontFamily ); + impl.mController->SetDefaultFontFamily( fontFamily, true ); } } break; } case Toolkit::TextLabel::Property::FONT_STYLE: { - if( impl.mController ) - { - const std::string fontStyle = value.Get< std::string >(); - - if( impl.mController->GetDefaultFontStyle() != fontStyle ) - { - impl.mController->SetDefaultFontStyle( fontStyle ); - } - } + SetFontStyleProperty( impl.mController, value ); break; } case Toolkit::TextLabel::Property::POINT_SIZE: @@ -336,10 +332,7 @@ Property::Value TextLabel::GetProperty( BaseObject* object, Property::Index inde } case Toolkit::TextLabel::Property::FONT_STYLE: { - if( impl.mController ) - { - value = impl.mController->GetDefaultFontStyle(); - } + GetFontStyleProperty( impl.mController, value ); break; } case Toolkit::TextLabel::Property::POINT_SIZE: @@ -458,7 +451,37 @@ void TextLabel::OnInitialize() void TextLabel::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change ) { - GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) ); + + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextLabel::OnStyleChange\n"); + + switch ( change ) + { + case StyleChange::DEFAULT_FONT_CHANGE: + { + // Property system did not set the font so should update it. + std::string newFont = styleManager.GetDefaultFontFamily(); + DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel::OnStyleChange StyleChange::DEFAULT_FONT_CHANGE newFont(%s)\n", newFont.c_str() ); + mController->UpdateAfterFontChange( newFont ); + break; + } + + case StyleChange::DEFAULT_FONT_SIZE_CHANGE: + { + DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel::OnStyleChange StyleChange::DEFAULT_FONT_SIZE_CHANGE (%f)\n", mController->GetDefaultPointSize() ); + + if ( (mController->GetDefaultPointSize() <= 0.0f) ) // If DefaultPointSize not set by Property system it will be 0.0f + { + // Property system did not set the PointSize so should update it. + // todo instruct text-controller to update model + } + break; + } + case StyleChange::THEME_CHANGE: + { + GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) ); + break; + } + } } Vector3 TextLabel::GetNaturalSize() @@ -491,10 +514,11 @@ void TextLabel::RequestTextRelayout() void TextLabel::RenderText() { + Actor self = Self(); Actor renderableActor; if( mRenderer ) { - renderableActor = mRenderer->Render( mController->GetView(), mDepth ); + renderableActor = mRenderer->Render( mController->GetView(), self.GetHierarchyDepth() ); } if( renderableActor != mRenderableActor ) @@ -506,7 +530,7 @@ void TextLabel::RenderText() const Vector2& alignmentOffset = mController->GetAlignmentOffset(); renderableActor.SetPosition( alignmentOffset.x, alignmentOffset.y ); - Self().Add( renderableActor ); + self.Add( renderableActor ); } mRenderableActor = renderableActor; } @@ -529,9 +553,12 @@ void TextLabel::AddDecoration( Actor& actor, bool needsClipping ) // TextLabel does not show decorations } -void TextLabel::OnStageConnection( unsigned int depth ) +void TextLabel::OnStageConnection( int depth ) { - mDepth = depth; + // Call the Control::OnStageConnection() to set the depth of the background. + Control::OnStageConnection( depth ); + + // The depth of the text renderer is set in the RenderText() called from OnRelayout(). } void TextLabel::TextChanged() @@ -547,7 +574,6 @@ void TextLabel::MaxLengthReached() TextLabel::TextLabel() : Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ), mRenderingBackend( DEFAULT_RENDERING_BACKEND ), - mDepth( 0 ), mHasBeenStaged( false ) { }