X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcontrol%2Fcontrol-data-impl.cpp;h=6468ad50d2ebe6af9b214864d4dc2b43f6364c8a;hp=73769c8f5e4ee61a6fbd1c22453656e08e7c9497;hb=66581ed768a430adc3e6a630948c28bfe6c32aa4;hpb=0177c96d4fdf9f9701775f4e5a17d28876993c88 diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index 73769c8..6468ad5 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -67,6 +68,7 @@ namespace #if defined(DEBUG_ENABLED) Debug::Filter* gLogFilter = Debug::Filter::New( Debug::NoLogging, false, "LOG_CONTROL_VISUALS"); +Debug::Filter* gLogFilterLayout = Debug::Filter::New( Debug::NoLogging, false, "LOG_LAYOUT"); #endif @@ -339,7 +341,8 @@ Control::Impl::Impl( Control& controlImpl ) mInputMethodContext(), mFlags( Control::ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ), mIsKeyboardNavigationSupported( false ), - mIsKeyboardFocusGroup( false ) + mIsKeyboardFocusGroup( false ), + mIsLayoutingRequired( false ) { } @@ -1391,6 +1394,9 @@ void Control::Impl::OnStageDisconnection() void Control::Impl::SetMargin( Extents margin ) { mControlImpl.mImpl->mMargin = margin; + + // Trigger a size negotiation request that may be needed when setting a margin. + mControlImpl.RelayoutRequest(); } Extents Control::Impl::GetMargin() const @@ -1401,6 +1407,9 @@ Extents Control::Impl::GetMargin() const void Control::Impl::SetPadding( Extents padding ) { mControlImpl.mImpl->mPadding = padding; + + // Trigger a size negotiation request that may be needed when setting a padding. + mControlImpl.RelayoutRequest(); } Extents Control::Impl::GetPadding() const @@ -1431,6 +1440,10 @@ Toolkit::Internal::LayoutItemPtr Control::Impl::GetLayout() const void Control::Impl::SetLayout( Toolkit::Internal::LayoutItem& layout ) { + DALI_LOG_INFO( gLogFilterLayout, Debug::Verbose, "Control::SetLayout control:%s existing layout:%s\n", + mControlImpl.Self().GetName().c_str(), + mLayout?"true":"false" ); + if( mLayout ) { mLayout->Unparent(); @@ -1442,6 +1455,25 @@ void Control::Impl::SetLayout( Toolkit::Internal::LayoutItem& layout ) mLayout->Initialize( controlHandle, controlHandle.GetTypeName() ); // LayoutGroup takes ownership of existing children } +void Control::Impl::RemoveLayout() +{ + if( mLayout ) + { + mLayout->Unparent(); + mLayout.Reset(); + } +} + +void Control::Impl::SetLayoutingRequired( bool layoutingRequired ) +{ + mControlImpl.mImpl->mIsLayoutingRequired = layoutingRequired; +} + +bool Control::Impl::IsLayoutingRequired() +{ + return mControlImpl.mImpl->mIsLayoutingRequired; +} + } // namespace Internal } // namespace Toolkit