Ensure animation is not played when an actor is not on scene
[platform/core/uifw/dali-core.git] / dali / internal / event / common / object-impl.h
index d66eb9e..41abd4a 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_OBJECT_H
 
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -150,16 +150,6 @@ public:
   /**
    * @copydoc Dali::Handle::GetPropertyIndex()
    */
-  Property::Index GetPropertyIndex( const std::string& name ) const;
-
-  /**
-   * @copydoc Dali::Handle::GetPropertyIndex()
-   */
-  Property::Index GetPropertyIndex( Property::Index key ) const;
-
-  /**
-   * @copydoc Dali::Handle::GetPropertyIndex()
-   */
   Property::Index GetPropertyIndex( Property::Key key ) const;
 
   /**
@@ -220,6 +210,11 @@ public:
   void SetProperties( const Property::Map& properties );
 
   /**
+   * @copydoc Dali::DevelHandle::GetProperties()
+   */
+  void GetProperties( Property::Map& properties );
+
+  /**
    * @copydoc Dali::Handle::RegisterProperty(std::string name, Property::Value propertyValue, Property::AccessMode accessMode)
    */
   Property::Index RegisterProperty( const std::string& name, const Property::Value& propertyValue, Property::AccessMode accessMode );
@@ -354,9 +349,18 @@ public:
   virtual int32_t GetPropertyComponentIndex( Property::Index index ) const;
 
   /**
+   * Query whether playing an animation is possible or not.
+   * @return true if playing an animation is possible.
+   */
+  virtual bool IsAnimationPossible() const
+  {
+    return true;
+  }
+
+  /**
    * @copydoc Dali::Handle::PropertySetSignal()
    */
-  DevelHandle::PropertySetSignalType& PropertySetSignal();
+  Handle::PropertySetSignalType& PropertySetSignal();
 
 protected:
 
@@ -370,7 +374,7 @@ protected:
   /**
    * A reference counted object may only be deleted by calling Unreference()
    */
-  virtual ~Object();
+  ~Object() override;
 
   /**
    * Called immediately by derived classes, after the scene-object has been created & passed to the scene-graph.
@@ -397,7 +401,7 @@ protected:
    * @param [in] index The index of the property.
    * @param [in] propertyValue The value of the property.
    */
-  virtual void OnPropertySet( Property::Index index, Property::Value propertyValue ) {}
+  virtual void OnPropertySet( Property::Index index, const Property::Value& propertyValue ) {}
 
   /**
    * Retrieves the TypeInfo for this object. Only retrieves it from the type-registry once and then stores a pointer
@@ -527,7 +531,7 @@ protected:
    */
   inline EventThreadServices& GetEventThreadServices()
   {
-    DALI_ASSERT_DEBUG( EventThreadServices::IsCoreRunning() );
+    DALI_ASSERT_ALWAYS( EventThreadServices::IsCoreRunning() );
     return mEventThreadServices;
   }
 
@@ -540,7 +544,7 @@ protected:
    */
   inline const EventThreadServices& GetEventThreadServices() const
   {
-    DALI_ASSERT_DEBUG( EventThreadServices::IsCoreRunning() );
+    DALI_ASSERT_ALWAYS( EventThreadServices::IsCoreRunning() );
     return mEventThreadServices;
   }
 
@@ -566,8 +570,8 @@ private:
 
   using PropertyNotificationContainer = std::vector< Dali::PropertyNotification >;
   PropertyNotificationContainer* mPropertyNotifications; ///< Container of owned property notifications.
-  DevelHandle::PropertySetSignalType mPropertySetSignal;
 
+  Handle::PropertySetSignalType mPropertySetSignal;
 };
 
 } // namespace Internal