#define __DALI_INTERNAL_OBJECT_H__
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
#include <dali/public-api/object/property-index-ranges.h>
#include <dali/public-api/object/property-input.h>
#include <dali/public-api/object/property-notification.h>
-#include <dali/internal/common/owner-container.h>
+#include <dali/devel-api/common/owner-container.h>
#include <dali/internal/event/common/event-thread-services.h>
#include <dali/internal/event/common/property-input-impl.h>
#include <dali/internal/event/common/property-metadata.h>
virtual Property::Index GetPropertyIndex( const std::string& name ) const;
/**
+ * @copydoc Dali::Handle::GetPropertyIndex()
+ */
+ virtual Property::Index GetPropertyIndex( Property::Index key ) const;
+
+ /**
+ * @copydoc Dali::Handle::GetPropertyIndex()
+ */
+ virtual Property::Index GetPropertyIndex( Property::Key key ) const;
+
+ /**
* @copydoc Dali::Handle::IsPropertyWritable()
*/
virtual bool IsPropertyWritable( Property::Index index ) const;
virtual Property::Value GetProperty( Property::Index index ) const;
/**
+ * @brief Retrieves the latest value of the property on the scene-graph.
+ * @param[in] index The index of the property required.
+ * @return The latest value of the property on the scene-graph.
+ */
+ virtual Property::Value GetCurrentProperty( Property::Index index ) const;
+
+ /**
* @copydoc Dali::Handle::GetPropertyIndices()
*/
virtual void GetPropertyIndices( Property::IndexContainer& indices ) const;
virtual Property::Index RegisterProperty( const std::string& name, const Property::Value& propertyValue );
/**
+ * @copydoc Dali::Handle::RegisterProperty()
+ */
+ virtual Property::Index RegisterProperty( const std::string& name, Property::Index key, const Property::Value& propertyValue );
+
+ /**
* @copydoc Dali::Handle::RegisterProperty(std::string name, Property::Value propertyValue, Property::AccessMode accessMode)
*/
virtual Property::Index RegisterProperty( const std::string& name, const Property::Value& propertyValue, Property::AccessMode accessMode );
/**
+ * @brief Implementing method for this override
+ */
+ virtual Property::Index RegisterProperty( const std::string& name, Property::Index key, const Property::Value& propertyValue, Property::AccessMode accessMode );
+
+ /**
* @copydoc Dali::Handle::AddPropertyNotification()
*/
virtual Dali::PropertyNotification AddPropertyNotification( Property::Index index,
/**
* @copydoc Dali::Handle::AddUniformMapping()
*/
- void AddUniformMapping( Property::Index propertyIndex, const std::string& uniformName );
+ void AddUniformMapping( Property::Index propertyIndex, const std::string& uniformName ) const;
/**
* @copydoc Dali::Handle::RemoveUniformMapping( )
void OnSceneObjectRemove();
/**
+ * For overriding by derived classes to return the parent of this object.
+ */
+ virtual Object* GetParentObject() const
+ {
+ // By default the Object does not have a parent
+ return NULL;
+ };
+
+ /**
* For use in derived classes.
* This is called after a property is set.
* @param [in] index The index of the property.
/**
* Helper to register a scene-graph property
* @param [in] name The name of the property.
+ * @param [in] key The key of the property
* @param [in] index The index of the property
* @param [in] value The value of the property.
* @return The index of the registered property or Property::INVALID_INDEX if registration failed.
*/
- Property::Index RegisterSceneGraphProperty(const std::string& name, Property::Index index, const Property::Value& propertyValue) const;
+ Property::Index RegisterSceneGraphProperty(const std::string& name, Property::Index key, Property::Index index, const Property::Value& propertyValue) const;
/**
* Check whether the animatable property is registered already, if not then register one.
*/
AnimatablePropertyMetadata* RegisterAnimatableProperty(Property::Index index) const;
+ /**
+ * Resolve the index and name of child properties if any.
+ */
+ void ResolveChildProperties();
+
private: // Default property extensions for derived classes
/**
void DisablePropertyNotifications();
/**
- * Get the value of the property.
- * @param [in] entry An entry from the property lookup container.
- * @return The new value of the property.
+ * Get the latest value of the property on the scene-graph.
+ * @param[in] entry An entry from the property lookup container.
+ * @return The latest value of the property.
*/
- Property::Value GetPropertyValue( const PropertyMetadata* entry ) const;
+ Property::Value GetCurrentPropertyValue( const PropertyMetadata* entry ) const;
/**
* Set the value of scene graph property.