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=81a5c97394fdc581ba966ab356421733b6185829;hp=4bbadfbf40ab281769748c5b7202a3491e54650f;hb=8cdf22c87a0428691dcf7df10f3020656b3a2ebf;hpb=31df2b9472ccbe0ae460a958535be8ef790c96f2 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..81a5c97 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include using Dali::Toolkit::Text::LayoutEngine; @@ -50,6 +51,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 }, @@ -458,7 +463,39 @@ 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: + { + DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel::OnStyleChange StyleChange::DEFAULT_FONT_CHANGE\n"); + if ( mController->GetDefaultFontFamily() == "" ) + { + // Property system did not set the font so should update it. + // todo instruct text-controller to update model + } + 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 +528,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 +544,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 +567,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 +588,6 @@ void TextLabel::MaxLengthReached() TextLabel::TextLabel() : Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ), mRenderingBackend( DEFAULT_RENDERING_BACKEND ), - mDepth( 0 ), mHasBeenStaged( false ) { }