-Toolkit::Internal::LayoutItemPtr Control::Impl::GetLayout() const
-{
- return mLayout;
-}
-
-void Control::Impl::SetLayout( Toolkit::Internal::LayoutItem& layout )
-{
- DALI_LOG_INFO( gLogFilterLayout, Debug::Verbose, "Control::SetLayout control:%s replacing existing layout:%s\n",
- mControlImpl.Self().GetName().c_str(),
- mLayout?"true":"false" );
- // Check if layout already has an owner.
- auto control = Toolkit::Control::DownCast( layout.GetOwner() );
- if ( control )
- {
- // If the owner is not this control then the owning control can no longer own it.
- Dali::Toolkit::Control handle( mControlImpl.GetOwner() );
- if( control != handle )
- {
- DALI_LOG_INFO( gLogFilterLayout, Debug::Verbose, "Control::SetLayout Layout already in use, %s will now have a BinLayout\n",
- control.GetName().c_str() );
- Toolkit::BinLayout binLayout = Toolkit::BinLayout::New();
- // Previous owner of the layout gets a BinLayout instead of the layout.
- DevelControl::SetLayout( control, binLayout ) ;
- }
- else
- {
- return; // layout is already set to this control.
- }
- }
-
- if( mLayout )
- {
- mLayout->Unparent();
- mLayout.Reset();
- }
-
- mLayout = &layout;
-
- auto controlHandle = Toolkit::Control::DownCast( mControlImpl.Self() ); // Get a handle of this control implementation without copying internals.
- mLayout->Initialize( controlHandle, controlHandle.GetTypeName() ); // LayoutGroup takes ownership of existing children
-}
-
-void Control::Impl::RemoveLayout()
-{
- DALI_LOG_INFO( gLogFilterLayout, Debug::Verbose, "Control::Impl::RemoveLayout\n");
-
- Toolkit::BinLayout binLayout = Toolkit::BinLayout::New();
-
- mControlImpl.mImpl->SetLayout( GetImplementation( binLayout ) ) ;
-}
-
-void Control::Impl::SetLayoutingRequired( bool layoutingRequired )
-{
- mControlImpl.mImpl->mIsLayoutingRequired = layoutingRequired;
-}
-
-bool Control::Impl::IsLayoutingRequired()