}
LayoutData& layoutData = *mImpl->sLayoutData;
- size_t size = layoutData.childrenPropertyAnimators.size();
+ size_t size = layoutData.childrenLayoutDataArray.size();
bool changed = SetFrame( l, t, r, b );
mImpl->ClearPrivateFlag( Impl::PRIVATE_FLAG_LAYOUT_REQUIRED );
}
- if ( size != layoutData.childrenPropertyAnimators.size() )
+ if ( size != layoutData.childrenLayoutDataArray.size() )
{
- layoutData.childrenPropertyAnimators.resize( size );
+ layoutData.childrenLayoutDataArray.resize( size );
}
mImpl->ClearPrivateFlag( Impl::PRIVATE_FLAG_FORCE_LAYOUT );
LayoutLength LayoutItem::GetMeasuredWidth() const
{
// Get the size portion of the measured width
- return mImpl->mMeasuredWidth.GetSize();
+ return mImpl->mMeasuredWidth.GetSize();
}
LayoutLength LayoutItem::GetMeasuredHeight() const
auto owner = GetOwner();
auto actor = Actor::DownCast( owner );
LayoutData& layoutData = *mImpl->sLayoutData;
+
if( actor )
{
- if( mImpl->mAnimated && !layoutData.speculativeLayout )
+ if( changed || mImpl->mAnimated )
{
- LayoutItem* transitionOwner = layoutData.layoutTransition.layoutItem.Get();
- LayoutTransitionDataPtr layoutTransitionDataPtr = GetTransitionData( layoutData.layoutTransition.layoutTransitionType );
+ layoutData.layoutPositionDataArray.push_back(
+ LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), mImpl->mAnimated ) );
+ }
- // Found transition owner
- if( transitionOwner == this && layoutTransitionDataPtr.Get() )
+ if( mImpl->mAnimated && !layoutData.speculativeLayout )
+ {
+ if( layoutData.layoutTransition.layoutTransitionType != -1 )
{
- DALI_LOG_INFO( gLayoutFilter, Debug::Verbose, "LayoutItem::SetFrame apply transition to (%s), transition type (%d)\n", actor.GetName().c_str(), layoutData.layoutTransition.layoutTransitionType );
- layoutData.layoutPositionDataArray.push_back( LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), true ) );
- layoutTransitionDataPtr->ConvertToLayoutDataElements( actor, layoutData );
- changed = true;
+ LayoutItem* transitionOwner = layoutData.layoutTransition.layoutItem.Get();
+ LayoutTransitionDataPtr layoutTransitionDataPtr = GetTransitionData( layoutData.layoutTransition.layoutTransitionType );
+
+ // Found transition owner
+ if( transitionOwner == this && layoutTransitionDataPtr.Get() )
+ {
+ DALI_LOG_INFO( gLayoutFilter, Debug::Verbose, "LayoutItem::SetFrame apply transition to (%s), transition type (%d)\n", actor.GetName().c_str(), layoutData.layoutTransition.layoutTransitionType );
+ layoutTransitionDataPtr->CollectLayoutDataElements( actor, layoutData );
+ changed = true;
+ }
+ else
+ {
+ LayoutTransitionData::CollectChildrenLayoutDataElements( actor, layoutData );
+ }
}
else
{
if( changed )
{
- layoutTransitionDataPtr = GetTransitionData( Dali::Toolkit::LayoutTransitionData::ON_LAYOUT_CHANGE );
- if ( layoutTransitionDataPtr )
+ LayoutTransitionDataPtr layoutTransitionDataPtr = GetTransitionData( Dali::Toolkit::LayoutTransitionData::ON_LAYOUT_CHANGE );
+ if( layoutTransitionDataPtr ) // has custom default animation and normal update
{
DALI_LOG_INFO( gLayoutFilter, Debug::Verbose, "LayoutItem::SetFrame apply custom default transition to (%s), transition type (%d)\n", actor.GetName().c_str(), Dali::Toolkit::LayoutTransitionData::ON_LAYOUT_CHANGE );
- layoutData.layoutPositionDataArray.push_back( LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), true ) );
- layoutTransitionDataPtr->ConvertToLayoutDataElements( actor, layoutData );
+ layoutTransitionDataPtr->CollectLayoutDataElements( actor, layoutData );
}
else
{
DALI_LOG_INFO( gLayoutFilter, Debug::Verbose, "LayoutItem::SetFrame apply default transition to (%s), transition type (%d)\n", actor.GetName().c_str(), layoutData.layoutTransition.layoutTransitionType );
- layoutData.layoutPositionDataArray.push_back( LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), true ) );
- GetDefaultTransition()->ConvertToLayoutDataElements( actor, layoutData );
+ GetDefaultTransition()->CollectLayoutDataElements( actor, layoutData );
}
}
- else
- {
- DALI_LOG_INFO( gLayoutFilter, Debug::Verbose, "LayoutItem::SetFrame apply children animators to (%s), transition type (%d)\n", actor.GetName().c_str(), layoutData.layoutTransition.layoutTransitionType );
- layoutData.layoutPositionDataArray.push_back( LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), true ) );
- LayoutTransitionData::ConvertChildrenAnimatorsToLayoutDataElements( actor, layoutData );
- }
- }
- }
- else
- {
- if( changed )
- {
- layoutData.layoutPositionDataArray.push_back( LayoutPositionData( actor, left.AsDecimal(), top.AsDecimal(), right.AsDecimal(), bottom.AsDecimal(), false ) );
}
}
}