Merge "[Tizen][ATSPI] Adds support for enumeration in Property::Value" into tizen
authordongsug song <dongsug.song@samsung.com>
Mon, 30 Apr 2018 11:05:55 +0000 (11:05 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Mon, 30 Apr 2018 11:05:55 +0000 (11:05 +0000)
dali/public-api/object/property-value.h

index 5f2fa8e..cb8d9a6 100644 (file)
@@ -25,6 +25,8 @@
 #include <dali/public-api/object/property.h>
 #include <dali/public-api/math/rect.h>
 
+#include <type_traits>
+
 namespace Dali
 {
 /**
@@ -186,6 +188,15 @@ public:
   Value( const Extents& extentsValue );
 
   /**
+   * @brief Creates an enumeration property value.
+   *
+   * @SINCE_1_2.62
+   * @param[in] extentsValue A collection of 4 uint16_t values
+   */
+  template <typename T, typename std::enable_if<std::is_enum<typename std::remove_reference<typename std::remove_cv<T>::type>::type>::value>::type* = nullptr>
+  Value(T t) : Value(static_cast<int>(t)) { }
+
+  /**
    * @brief Explicitly sets a type and initialize it.
    *
    * @SINCE_1_0.0
@@ -229,7 +240,7 @@ public:
   /**
    * @brief Retrieves a specific value.
    *
-   * Works on a best-effort approach; if value type is not convertible returns a default value of the type.
+   * Works on a best-effort approach; if value type is different returns a default value of the type.
    *
    * @SINCE_1_0.0
    * @return A value of type T
@@ -243,6 +254,22 @@ public:
   }
 
   /**
+   * @brief Retrieves an enumeration value.
+   *
+   * @SINCE_1_0.0
+   * @param[out] boolValue On return, an enumeration value
+   * @return @c true if the value is successfully retrieved, @c false if the type is different
+   * @pre GetType() is a type convertible to bool.
+   */
+  template <typename T, typename std::enable_if<std::is_enum<typename std::remove_reference<typename std::remove_cv<T>::type>::type>::value>::type* = nullptr>
+  bool Get(T &t) const
+  {
+    int temp = 0;
+    if (!Get(temp)) return false;
+    t = static_cast<T>(temp);
+    return true;
+  }
+  /**
    * @brief Retrieves a boolean value.
    *
    * @SINCE_1_0.0