[dali_1.2.11] Merge branch 'devel/master'
[platform/core/uifw/dali-core.git] / dali / public-api / object / property-conditions.h
index d8b4449..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 DALI_IMPORT_API
+namespace Dali
 {
+/**
+ * @addtogroup dali_core_object
+ * @{
+ */
 
 namespace Internal DALI_INTERNAL
 {
@@ -33,51 +37,60 @@ class PropertyCondition;
 
 /**
  * @brief This represents a condition that can be evaluated on a Property::Value.
+ * @SINCE_1_0.0
  */
-class PropertyCondition : public BaseHandle
+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();
 
   /**
-   * @copydoc Dali::BaseHandle::operator=
+   * @brief This copy constructor is required for (smart) pointer semantics.
+   *
+   * @SINCE_1_0.0
+   * @param [in] handle A reference to the copied handle
    */
-  using BaseHandle::operator=;
+  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 );
 
 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;
 
 };
 
@@ -90,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
  */
-PropertyCondition LessThanCondition(float arg);
+DALI_IMPORT_API PropertyCondition LessThanCondition( float arg );
 
 /**
  * @brief GreaterThanCondition compares whether property is greater than arg.
@@ -104,10 +118,11 @@ 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
  */
-PropertyCondition GreaterThanCondition(float arg);
+DALI_IMPORT_API PropertyCondition GreaterThanCondition( float arg );
 
 /**
  * @brief InsideCondition compares whether property is greater than arg0 and less than arg1.
@@ -118,11 +133,12 @@ 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
  */
-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.
@@ -133,11 +149,12 @@ 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
  */
-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
@@ -147,11 +164,12 @@ 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
  */
-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
@@ -161,11 +179,15 @@ PropertyCondition StepCondition(float stepAmount, float initialValue = 0.0f);
  * 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
  */
-PropertyCondition VariableStepCondition(const std::vector<float>& steps);
+DALI_IMPORT_API PropertyCondition VariableStepCondition( const Dali::Vector<float>& steps );
 
+/**
+ * @}
+ */
 } // namespace Dali
 
 #endif // __DALI_PROPERTY_CONDITIONS_H__