Move shadow APIs to Internal::Control::Impl from Internal::Control
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / control / control-data-impl.cpp
index fb42012..eb6285a 100755 (executable)
@@ -989,12 +989,12 @@ void Control::Impl::SetProperty( BaseObject* object, Property::Index index, cons
         const Property::Map* map = value.GetMap();
         if( map && !map->Empty() )
         {
         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
         }
         else
         {
           // The shadow is an empty property map, so we should clear the shadow
-          controlImpl.ClearShadow();
+          controlImpl.mImpl->ClearShadow();
         }
         break;
       }
         }
         break;
       }
@@ -1429,6 +1429,27 @@ DevelControl::VisualEventSignalType& Control::Impl::VisualEventSignal()
   return mVisualEventSignal;
 }
 
   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
 } // namespace Internal
 
 } // namespace Toolkit