[dali_1.2.11] Merge branch 'devel/master'
[platform/core/uifw/dali-core.git] / dali / public-api / object / property-conditions.h
index 711a82e..fd6cbd1 100644 (file)
@@ -2,7 +2,7 @@
 #define __DALI_PROPERTY_CONDITIONS_H__
 
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2015 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.
  */
 
 // INTERNAL INCLUDES
-#include <dali/public-api/common/vector-wrapper.h>
+#include <dali/public-api/common/dali-vector.h>
 #include <dali/public-api/object/base-handle.h>
 #include <dali/public-api/object/property.h>
 
 namespace Dali
 {
+/**
+ * @addtogroup dali_core_object
+ * @{
+ */
 
 namespace Internal DALI_INTERNAL
 {
@@ -33,71 +37,60 @@ class PropertyCondition;
 
 /**
  * @brief This represents a condition that can be evaluated on a Property::Value.
+ * @SINCE_1_0.0
  */
 class DALI_IMPORT_API PropertyCondition : public BaseHandle
 {
 public:
 
   /**
-   * @brief Argument container, represents the arguments to be supplied to the condition function.
-   */
-  typedef std::vector<Property::Value>      ArgumentContainer;
-  typedef ArgumentContainer::iterator       ArgumentIter;     ///< Iterator for Dali::PropertyCondition::ArgumentContainer
-  typedef ArgumentContainer::const_iterator ArgumentConstIter;///< Const Iterator for Dali::PropertyCondition::ArgumentContainer
-
-public:
-
-  /**
    * @brief Constructor for condition clause.
+   * @SINCE_1_0.0
    */
   PropertyCondition();
 
   /**
    * @brief Destructor.
+   * @SINCE_1_0.0
    */
   ~PropertyCondition();
 
   /**
    * @brief This copy constructor is required for (smart) pointer semantics.
    *
+   * @SINCE_1_0.0
    * @param [in] handle A reference to the copied handle
    */
-  PropertyCondition(const PropertyCondition& handle);
+  PropertyCondition( const PropertyCondition& handle );
 
   /**
    * @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
    */
-  PropertyCondition& operator=(const PropertyCondition& rhs);
-
-  /**
-   * @brief This method is defined to allow assignment of the NULL value,
-   * and will throw an exception if passed any other value.
-   *
-   * Assigning to NULL is an alias for Reset().
-   * @param [in] rhs  A NULL pointer
-   * @return A reference to this handle
-   */
-  PropertyCondition& operator=(BaseHandle::NullType* rhs);
+  PropertyCondition& operator=( const PropertyCondition& rhs );
 
 public:
 
   /**
    * @brief Retrieve the arguments that this condition uses.
    *
+   * @SINCE_1_0.0
    * @return The arguments used for this condition
    */
-  ArgumentContainer GetArguments();
+  std::size_t GetArgumentCount() const;
 
   /**
    * @brief Retrieve the arguments that this condition uses.
    *
+   * @SINCE_1_0.0
+   * @param[in] index The condition index to get the argument
    * @return The arguments used for this condition
    * @note The container will only be valid as long PropertyCondition is valid.
    */
-  const ArgumentContainer& GetArguments() const;
+  float GetArgument( std::size_t index ) const;
 
 };
 
@@ -110,10 +103,11 @@ public:
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] arg The argument for the condition
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition LessThanCondition(float arg);
+DALI_IMPORT_API PropertyCondition LessThanCondition( float arg );
 
 /**
  * @brief GreaterThanCondition compares whether property is greater than arg.
@@ -124,10 +118,11 @@ DALI_IMPORT_API PropertyCondition LessThanCondition(float arg);
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] arg The argument for the condition
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition GreaterThanCondition(float arg);
+DALI_IMPORT_API PropertyCondition GreaterThanCondition( float arg );
 
 /**
  * @brief InsideCondition compares whether property is greater than arg0 and less than arg1.
@@ -138,11 +133,12 @@ DALI_IMPORT_API PropertyCondition GreaterThanCondition(float arg);
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] arg0 The first argument for the condition
  * @param[in] arg1 The second argument for the condition
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition InsideCondition(float arg0, float arg1);
+DALI_IMPORT_API PropertyCondition InsideCondition( float arg0, float arg1 );
 
 /**
  * @brief OutsideCondition compares whether property is less than arg0 or greater than arg1.
@@ -153,11 +149,12 @@ DALI_IMPORT_API PropertyCondition InsideCondition(float arg0, float arg1);
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] arg0 The first argument for the condition
  * @param[in] arg1 The second argument for the condition
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition OutsideCondition(float arg0, float arg1);
+DALI_IMPORT_API PropertyCondition OutsideCondition( float arg0, float arg1 );
 
 /**
  * @brief Detects when a property changes by stepAmount from initialValue, in both positive and negative directions. This will continue checking for multiples of stepAmount
@@ -167,11 +164,12 @@ DALI_IMPORT_API PropertyCondition OutsideCondition(float arg0, float arg1);
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] stepAmount The step size required to trigger condition
  * @param[in] initialValue The initial value to step from
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition StepCondition(float stepAmount, float initialValue = 0.0f);
+DALI_IMPORT_API PropertyCondition StepCondition( float stepAmount, float initialValue = 0.0f );
 
 /**
  * @brief Receive notifications as a property goes above/below the inputted values. Values must be ordered and can be either ascending or descending
@@ -181,11 +179,15 @@ DALI_IMPORT_API PropertyCondition StepCondition(float stepAmount, float initialV
  * vector2 (the 2D length)
  * vector3 (the 3D length)
  * vector4 (the 4D length)
+ * @SINCE_1_0.0
  * @param[in] steps List of values to receive notifications for as a property crosses them
  * @return A property condition function object
  */
-DALI_IMPORT_API PropertyCondition VariableStepCondition(const std::vector<float>& steps);
+DALI_IMPORT_API PropertyCondition VariableStepCondition( const Dali::Vector<float>& steps );
 
+/**
+ * @}
+ */
 } // namespace Dali
 
 #endif // __DALI_PROPERTY_CONDITIONS_H__