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=eb6285a4fa9fc81efe257857391bb93caa2d327a;hp=fb42012b4968da44649c42c43d7bf95fcaae3925;hb=1061baa5912952ac998c34584b1e2e5e030e0e5f;hpb=3a205c679c52e3504cc9487d6a7d95e458c3539f diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index fb42012..eb6285a 100755 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -989,12 +989,12 @@ void Control::Impl::SetProperty( BaseObject* object, Property::Index index, cons const Property::Map* map = value.GetMap(); if( map && !map->Empty() ) { - controlImpl.SetShadow( *map ); + controlImpl.mImpl->SetShadow( *map ); } else { // The shadow is an empty property map, so we should clear the shadow - controlImpl.ClearShadow(); + controlImpl.mImpl->ClearShadow(); } break; } @@ -1429,6 +1429,27 @@ DevelControl::VisualEventSignalType& Control::Impl::VisualEventSignal() return mVisualEventSignal; } +void Control::Impl::SetShadow( const Property::Map& map ) +{ + Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( map ); + visual.SetName("shadow"); + + if( visual ) + { + mControlImpl.mImpl->RegisterVisual( Toolkit::DevelControl::Property::SHADOW, visual, DepthIndex::BACKGROUND_EFFECT ); + + mControlImpl.RelayoutRequest(); + } +} + +void Control::Impl::ClearShadow() +{ + mControlImpl.mImpl->UnregisterVisual( Toolkit::DevelControl::Property::SHADOW ); + + // Trigger a size negotiation request that may be needed when unregistering a visual. + mControlImpl.RelayoutRequest(); +} + } // namespace Internal } // namespace Toolkit