X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fobject%2Fproperty.h;h=60236e9cf979a8cfb10fa6762246bad3ba16af24;hb=646f736e77b085c86e982c0d1d4b895c2a431330;hp=eb9ea823bab9d7ccbda20786436b27ba224742bd;hpb=6a51fca768ccd75d552b73c0a67056721dc86e44;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/object/property.h b/dali/public-api/object/property.h index eb9ea82..60236e9 100644 --- a/dali/public-api/object/property.h +++ b/dali/public-api/object/property.h @@ -2,7 +2,7 @@ #define __DALI_PROPERTY_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -21,30 +21,38 @@ // EXTERNAL INCLUDES #include #include +#include // int32_t // INTERNAL INCLUDES -#include #include +#include namespace Dali { +/** + * @addtogroup dali_core_object + * @{ + */ class Handle; /** * @brief An object + property pair. + * @SINCE_1_0.0 */ -struct DALI_IMPORT_API Property +struct DALI_CORE_API Property { /** * @brief A valid property index is zero or greater. + * @SINCE_1_0.0 */ - typedef int Index; + typedef int32_t Index; - static const int INVALID_INDEX; ///< -1 is not a valid property index - static const int INVALID_COMPONENT_INDEX; ///< -1 is not a valid property index + static const int32_t INVALID_INDEX; ///< -1 is not a valid property index + static const int32_t INVALID_KEY; ///< -1 is not a valid property key + static const int32_t INVALID_COMPONENT_INDEX; ///< -1 is not a valid property index - typedef std::vector< Index > IndexContainer; ///< A vector of property indices + typedef Dali::Vector< Index > IndexContainer; ///< A vector of property indices @SINCE_1_0.0 /** * @brief A value-type representing a property value. @@ -52,6 +60,11 @@ struct DALI_IMPORT_API Property class Value; /** + * @brief A Key used by Map + */ + struct Key; + + /** * @brief A Map of property values. */ class Map; @@ -59,85 +72,91 @@ struct DALI_IMPORT_API Property /** * @brief An Array of property values. */ - typedef std::vector Array; + class Array; /** - * @brief The property types supported. + * @brief Enumeration for the property types supported. + * @SINCE_1_0.0 */ enum Type { - NONE, ///< No type - - BOOLEAN, ///< A boolean type - FLOAT, ///< A float type - INTEGER, ///< An integer type - UNSIGNED_INTEGER,///< An unsigned integer type - VECTOR2, ///< a vector array of size=2 with float precision - VECTOR3, ///< a vector array of size=3 with float precision - VECTOR4, ///< a vector array of size=4 with float precision - MATRIX3, ///< a 3x3 matrix - MATRIX, ///< a 4x4 matrix - RECTANGLE, ///< an integer array of size=4 - ROTATION, ///< either a quaternion or an axis angle rotation - STRING, ///< A string type - ARRAY, ///< an array of Property::Value - MAP, ///< a string key to Property:value mapping - TYPE_COUNT ///< The number of supported property types + NONE, ///< No type @SINCE_1_0.0 + + BOOLEAN, ///< A boolean type @SINCE_1_0.0 + FLOAT, ///< A float type @SINCE_1_0.0 + INTEGER, ///< An integer type @SINCE_1_0.0 + VECTOR2, ///< a vector array of size=2 with float precision @SINCE_1_0.0 + VECTOR3, ///< a vector array of size=3 with float precision @SINCE_1_0.0 + VECTOR4, ///< a vector array of size=4 with float precision @SINCE_1_0.0 + MATRIX3, ///< a 3x3 matrix @SINCE_1_0.0 + MATRIX, ///< a 4x4 matrix @SINCE_1_0.0 + RECTANGLE, ///< an integer array of size=4 @SINCE_1_0.0 + ROTATION, ///< either a quaternion or an axis angle rotation @SINCE_1_0.0 + STRING, ///< A string type @SINCE_1_0.0 + ARRAY, ///< an array of Property::Value @SINCE_1_0.0 + MAP, ///< a string key to Property:value mapping @SINCE_1_0.0 + EXTENTS ///< a collection of 4 x uint16_t @SINCE_1_2.62 }; /** - * @brief The access mode for custom properties + * @brief Enumeration for the access mode for custom properties. + * @SINCE_1_0.0 */ enum AccessMode { - READ_ONLY, ///< if the property is read-only - READ_WRITE, ///< If the property is read/writeable - ANIMATABLE, ///< If the property can be animated or constrained - ACCESS_MODE_COUNT ///< The number of access modes + READ_ONLY, ///< if the property is read-only @SINCE_1_0.0 + READ_WRITE, ///< If the property is read/writeable @SINCE_1_0.0 + ANIMATABLE, ///< If the property can be animated or constrained @SINCE_1_0.0 + ACCESS_MODE_COUNT ///< The number of access modes @SINCE_1_0.0 }; /** - * @brief Create a Property instance. + * @brief Creates a Property instance. * - * @param [in] object A valid handle to the target object. - * @param [in] propertyIndex The index of a property. + * @SINCE_1_0.0 + * @param[in] object A valid handle to the target object + * @param[in] propertyIndex The index of a property */ Property( Handle& object, Property::Index propertyIndex ); /** - * @brief Create a Property instance. + * @brief Creates a Property instance. * - * @param [in] object A valid handle to the target object. - * @param [in] propertyIndex The index of a property. - * @param [in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1) + * @SINCE_1_0.0 + * @param[in] object A valid handle to the target object. + * @param[in] propertyIndex The index of a property. + * @param[in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1) */ - Property( Handle& object, Property::Index propertyIndex, int componentIndex ); + Property( Handle& object, Property::Index propertyIndex, int32_t componentIndex ); /** - * @brief Create a Property instance. + * @brief Creates a Property instance. * + * @SINCE_1_0.0 + * @param[in] object A valid handle to the target object + * @param[in] propertyName The property name * @note This performs a property index query and is therefore slower than * constructing a Property directly with the index. - * @param [in] object A valid handle to the target object. - * @param [in] propertyName The property name. */ Property( Handle& object, const std::string& propertyName ); /** - * @brief Create a Property instance. + * @brief Creates a Property instance. * + * @SINCE_1_0.0 + * @param[in] object A valid handle to the target object + * @param[in] propertyName The property name + * @param[in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1) * @note This performs a property index query and is therefore slower than * constructing a Property directly with the index. - * @param [in] object A valid handle to the target object. - * @param [in] propertyName The property name. - * @param [in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1) */ - Property( Handle& object, const std::string& propertyName, int componentIndex ); + Property( Handle& object, const std::string& propertyName, int32_t componentIndex ); /** * @brief Non-virtual destructor; Property is not intended as a base class. + * @SINCE_1_0.0 */ ~Property(); @@ -145,9 +164,12 @@ struct DALI_IMPORT_API Property Index propertyIndex; ///< The index of a property provided by object. - int componentIndex; ///< Index of a property sub component, for use with Vector2, Vector3 and Vector4, -1 if using main property + int32_t componentIndex; ///< Index of a property sub component, for use with Vector2, Vector3 and Vector4, -1 if using main property }; +/** + * @} + */ } // namespace Dali #endif // __DALI_PROPERTY_H__