X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fobject%2Ftype-registry.h;h=a44f376357715ad84d37b247182d87ec69c2cc2a;hb=dbbe326c4c5dd97df1796c8e59d6ed2a1231d8f0;hp=8a4f28fea87e688fdcfac15314a99f7461b01b10;hpb=8096da59d2ec742f85ed05d4b8d6bc6164552874;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/object/type-registry.h b/dali/public-api/object/type-registry.h index 8a4f28f..a44f376 100644 --- a/dali/public-api/object/type-registry.h +++ b/dali/public-api/object/type-registry.h @@ -2,7 +2,7 @@ #define __DALI_TYPE_REGISTRY_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -29,7 +29,7 @@ namespace Dali { /** - * @addtogroup dali-core-object + * @addtogroup dali_core_object * @{ */ @@ -91,6 +91,7 @@ class TypeRegistry; * Signal and action names follow properties and are by convention lower case hyphen * separated ie 'next-page'. This maintains consistency with the scripted interface. * + * @SINCE_1_0.0 */ class DALI_IMPORT_API TypeRegistry : public BaseHandle { @@ -98,23 +99,27 @@ public: /** * @brief Get Type Registry handle. * + * @SINCE_1_0.0 * @return TypeRegistry handle */ static TypeRegistry Get(); /** * @brief Allows the creation of an empty typeRegistry handle. + * @SINCE_1_0.0 */ TypeRegistry(); /** * @brief destructor. + * @SINCE_1_0.0 */ ~TypeRegistry(); /** * @brief This copy constructor is required for (smart) pointer semantics. * + * @SINCE_1_0.0 * @param [in] handle A reference to the copied handle */ TypeRegistry(const TypeRegistry& handle); @@ -122,6 +127,7 @@ public: /** * @brief This assignment operator is required for (smart) pointer semantics. * + * @SINCE_1_0.0 * @param [in] rhs A reference to the copied handle * @return A reference to this */ @@ -130,6 +136,7 @@ public: /** * @brief Get TypeInfo for a registered type. * + * @SINCE_1_0.0 * @param [in] uniqueTypeName A unique type name * @return TypeInfo if the type exists otherwise an empty handle */ @@ -138,6 +145,7 @@ public: /** * @brief Get TypeInfo for a registered type. * + * @SINCE_1_0.0 * @param [in] registerType The registered type info * @return TypeInfo if the type exists otherwise an empty handle */ @@ -146,6 +154,7 @@ public: /** * @brief Get type name count. * + * @SINCE_1_0.0 * @return The count */ size_t GetTypeNameCount() const; @@ -153,6 +162,8 @@ public: /** * @brief Get type names by index. * + * @SINCE_1_0.0 + * @param[in] index The index to get the type name * @return The type name or an empty string when index is not valid */ std::string GetTypeName(size_t index) const; @@ -160,8 +171,10 @@ public: public: // Not intended for application developers /** + * @internal * @brief This constructor is used by Dali Get() method. * + * @SINCE_1_0.0 * @param [in] typeRegistry A pointer to a Dali resource */ explicit DALI_INTERNAL TypeRegistry(Internal::TypeRegistry*typeRegistry); @@ -169,6 +182,7 @@ public: // Not intended for application developers /** * @brief Register a type from type info. + * @SINCE_1_0.0 */ class DALI_IMPORT_API TypeRegistration { @@ -176,6 +190,7 @@ public: /** * @brief Constructor registers the type creation function. * + * @SINCE_1_0.0 * @param [in] registerType the type info for the type to be registered * @param [in] baseType the base type info of registerType * @param [in] f registerType instance creation function @@ -186,6 +201,7 @@ public: /** * @brief Constructor registers the type creation function. * + * @SINCE_1_0.0 * @param [in] registerType the type info for the type to be registered * @param [in] baseType the base type info of registerType * @param [in] f registerType instance creation function @@ -199,6 +215,7 @@ public: * * This allows types to be created dynamically from script. The name must be * unique for successful registration. + * @SINCE_1_0.0 * @param [in] name the name of the type to be registered * @param [in] baseType the base type info of registerType * @param [in] f registerType instance creation function @@ -209,6 +226,7 @@ public: /** * @brief The name the type is registered under (derived from type_info). * + * @SINCE_1_0.0 * @return the registered name or empty if unregistered */ const std::string RegisteredName() const; @@ -220,6 +238,7 @@ private: /** * @brief Register a signal connector function to a registered type. + * @SINCE_1_0.0 */ class DALI_IMPORT_API SignalConnectorType { @@ -227,6 +246,7 @@ public: /** * @brief Constructor registers the type creation function. * + * @SINCE_1_0.0 * @param [in] typeRegistration The TypeRegistration object * @param [in] name The signal name * @param [in] func The signal connector function @@ -236,6 +256,7 @@ public: /** * @brief Register an action function. + * @SINCE_1_0.0 */ class DALI_IMPORT_API TypeAction { @@ -243,6 +264,7 @@ public: /** * @brief Constructor registers the type creation function. * + * @SINCE_1_0.0 * @param [in] registered The TypeRegistration object * @param [in] name The action name * @param [in] f The action function @@ -252,6 +274,7 @@ public: /** * @brief Register a property for the given type. + * @SINCE_1_0.0 */ class DALI_IMPORT_API PropertyRegistration { @@ -270,6 +293,7 @@ public: * Property::Value GetProperty( BaseObject* object, Property::Index index ); * @endcode * + * @SINCE_1_0.0 * @param [in] registered The TypeRegistration object * @param [in] name The name of the property * @param [in] index The property index. Must be a value between PROPERTY_REGISTRATION_START_INDEX and PROPERTY_REGISTRATION_MAX_INDEX inclusive. @@ -277,11 +301,11 @@ public: * @param [in] setFunc The function to call when setting the property. If NULL, then the property becomes read-only. * @param [in] getFunc The function to call to retrieve the current value of the property. MUST be provided. * + * @pre "registered" must be registered with the TypeRegistry. * @note The "index" value must be between START_INDEX and MAX_INDEX inclusive. * @note If "setFunc" is NULL, then the property becomes a read-only property. * @note "getFunc" MUST be provided * - * @pre "registered" must be registered with the TypeRegistry. */ PropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type, @@ -290,6 +314,7 @@ public: /** * @brief Register an animatable property for the given type. + * @SINCE_1_0.0 */ class DALI_IMPORT_API AnimatablePropertyRegistration { @@ -302,6 +327,7 @@ public: * value of the property can be retrieved and set via specified * functions. * + * @SINCE_1_0.0 * @param [in] registered The TypeRegistration object * @param [in] name The name of the property * @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive. @@ -310,10 +336,28 @@ public: * @pre "registered" must be registered with the TypeRegistry. */ AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type ); + + /** + * @brief This constructor registers the animatable property with the registered default value. + * + * This constructor is for scene-graph only properties where the + * value of the property can be retrieved and set via specified + * functions. + * + * @SINCE_1_1.18 + * @param [in] registered The TypeRegistration object + * @param [in] name The name of the property + * @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive. + * @param [in] value The property default value. + * + * @pre "registered" must be registered with the TypeRegistry. + */ + AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, const Property::Value& value ); }; /** * @brief Register a component of animatable property for the given component index. + * @SINCE_1_0.0 */ class DALI_IMPORT_API AnimatablePropertyComponentRegistration { @@ -328,6 +372,7 @@ public: * This constructor is for a component of scene-graph only properties where the * value of the property can be retrieved and set via specified functions. * + * @SINCE_1_0.0 * @param [in] registered The TypeRegistration object * @param [in] name The name of the component * @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive. @@ -340,6 +385,30 @@ public: }; /** + * @brief Register a child property for the given type. + * @SINCE_1_1.35 + */ +class DALI_IMPORT_API ChildPropertyRegistration +{ +public: + + /** + * @brief This constructor registers an event-thread only child property (i.e. a property + * that the parent supports in its children) with the registered type. + * + * @SINCE_1_1.35 + * @param [in] registered The TypeRegistration object + * @param [in] name The name of the property + * @param [in] index The property index. Must be a value between CHILD_PROPERTY_REGISTRATION_START_INDEX and CHILD_PROPERTY_REGISTRATION_MAX_INDEX inclusive. + * @param [in] type The property value type. + * + * @pre "registered" must be registered with the TypeRegistry. + */ + ChildPropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type ); +}; + + +/** * @} */ } // namespace Dali