X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.cpp;h=d3f43622f7cf8a556f8712fa19a9b084da2f508e;hb=475209602f0a7ad74883059a818cbbe41be263e1;hp=90b3bb624ca08760f716bf86a5c5a3bc721cd146;hpb=b87ea88c9c1af89ddbca860abda6ed9154820ab7;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 90b3bb6..d3f4362 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -44,6 +44,7 @@ #include #include #include +#include namespace Dali { @@ -165,6 +166,16 @@ HandleIndex GetVisualProperty( return HandleIndex( handle, Property::INVALID_INDEX ); } +void SetDefaultTransform( Property::Map& propertyMap ) +{ + propertyMap.Clear(); + propertyMap + .Add( Toolkit::Visual::DevelProperty::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::SIZE, Vector2(1.0f, 1.0f) ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::ORIGIN, Toolkit::Align::CENTER ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER ) + .Add( Toolkit::Visual::DevelProperty::Transform::Property::OFFSET_SIZE_MODE, Vector4::ZERO ); +} /** * Creates control through type registry @@ -747,22 +758,22 @@ void Control::RegisterVisual( Property::Index index, Toolkit::Visual::Base& visu bool visualReplaced ( false ); Actor self = Self(); - if ( !mImpl->mVisuals.Empty() ) + if( !mImpl->mVisuals.Empty() ) { - RegisteredVisualContainer::Iterator iter; - // Check if visual (index) is already registered. Replace if so. - if ( FindVisual( index, mImpl->mVisuals, iter ) ) + RegisteredVisualContainer::Iterator iter; + // Check if visual (index) is already registered. Replace if so. + if ( FindVisual( index, mImpl->mVisuals, iter ) ) + { + if( (*iter)->visual && self.OnStage() ) { - if( (*iter)->visual && self.OnStage() ) - { - Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); - } - (*iter)->visual = visual; - visualReplaced = true; + Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); } + (*iter)->visual = visual; + visualReplaced = true; + } } - if ( !visualReplaced ) // New registration entry + if( !visualReplaced ) // New registration entry { mImpl->mVisuals.PushBack( new RegisteredVisual( index, visual, enabled ) ); } @@ -1142,7 +1153,9 @@ void Control::OnSizeSet(const Vector3& targetSize) if( visual ) { Vector2 size( targetSize ); - visual.SetSize( size ); + Property::Map transformMap; + SetDefaultTransform( transformMap ); + visual.SetTransformAndSize( transformMap, size ); } } @@ -1177,6 +1190,15 @@ void Control::OnRelayout( const Vector2& size, RelayoutContainer& container ) { container.Add( Self().GetChildAt( i ), size ); } + + Toolkit::Visual::Base visual = GetVisual( Toolkit::Control::Property::BACKGROUND ); + if( visual ) + { + Vector2 controlSize( size ); + Property::Map transformMap; + SetDefaultTransform( transformMap ); + visual.SetTransformAndSize( transformMap, controlSize ); + } } void Control::OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension )