Merge "Elaborated on some of the TouchData documenation" into devel/master
[platform/core/uifw/dali-core.git] / dali / public-api / object / property-input.h
index bd9f87e..6564411 100644 (file)
@@ -2,7 +2,7 @@
 #define __DALI_PROPERTY_INPUT_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/object/property.h>
 
-namespace Dali DALI_IMPORT_API
+namespace Dali
 {
+/**
+ * @addtogroup dali_core_object
+ * @{
+ */
 
 struct Vector2;
 struct Vector3;
@@ -33,19 +37,24 @@ class Quaternion;
 
 /**
  * @brief An abstract interface for receiving property values.
+ * @SINCE_1_0.0
  */
-class PropertyInput
+class DALI_IMPORT_API PropertyInput
 {
 public:
 
+  class Extension; ///< Forward declare future extension interface
+
   /**
    * @brief Virtual destructor.
+   * @SINCE_1_0.0
    */
   virtual ~PropertyInput() = 0;
 
   /**
    * @brief Query the type of property input.
    *
+   * @SINCE_1_0.0
    * @return The property type.
    */
   virtual Property::Type GetType() const = 0;
@@ -53,76 +62,99 @@ public:
   /**
    * @brief Retrieve a boolean value.
    *
-   * @pre GetType() returns Property::BOOLEAN.
+   * @SINCE_1_0.0
    * @return The boolean value.
+   * @pre GetType() returns Property::BOOLEAN.
    */
   virtual const bool& GetBoolean() const = 0;
 
   /**
    * @brief Retrieve a float value.
    *
-   * @pre GetType() returns Property::FLOAT.
+   * @SINCE_1_0.0
    * @return The float value.
+   * @pre GetType() returns Property::FLOAT.
    */
   virtual const float& GetFloat() const = 0;
 
   /**
    * @brief Retrieve an integer value.
    *
-   * @pre GetType() returns Property::INTEGER.
+   * @SINCE_1_0.0
    * @return The integer value.
+   * @pre GetType() returns Property::INTEGER.
    */
   virtual const int& GetInteger() const = 0;
 
   /**
    * @brief Retrieve a Vector2 value.
    *
-   * @pre GetType() returns Property::VECTOR2.
+   * @SINCE_1_0.0
    * @return The Vector2 value.
+   * @pre GetType() returns Property::VECTOR2.
    */
   virtual const Vector2& GetVector2() const = 0;
 
   /**
    * @brief Retrieve a Vector3 value.
    *
-   * @pre GetType() returns Property::VECTOR3.
+   * @SINCE_1_0.0
    * @return The Vector3 value.
+   * @pre GetType() returns Property::VECTOR3.
    */
   virtual const Vector3& GetVector3() const = 0;
 
   /**
    * @brief Retrieve a Vector4 value.
    *
-   * @pre GetType() returns Property::VECTOR4.
+   * @SINCE_1_0.0
    * @return The Vector4 value.
+   * @pre GetType() returns Property::VECTOR4.
    */
   virtual const Vector4& GetVector4() const = 0;
 
   /**
    * @brief Retrieve a Matrix (3x3) value.
    *
-   * @pre GetType() returns Property::Matrix3.
+   * @SINCE_1_0.0
    * @return The Matrix value.
+   * @pre GetType() returns Property::Matrix3.
    */
   virtual const Matrix3& GetMatrix3() const = 0;
 
   /**
    * @brief Retrieve a Matrix (4x4) value.
    *
-   * @pre GetType() returns Property::Matrix4.
+   * @SINCE_1_0.0
    * @return The Matrix value.
+   * @pre GetType() returns Property::Matrix4.
    */
   virtual const Matrix& GetMatrix() const = 0;
 
   /**
    * @brief Retrieve a Quaternion value.
    *
-   * @pre GetType() returns Property::Quaternion.
+   * @SINCE_1_0.0
    * @return The Quaternion value.
+   * @pre GetType() returns Property::Quaternion.
    */
   virtual const Quaternion& GetQuaternion() const = 0;
+
+  /**
+   * @brief Retrieve the extension for the PropertyInput
+   *
+   * @SINCE_1_0.0
+   * @return The extension if available, NULL otherwise
+   */
+  virtual Extension* GetExtension()
+  {
+    return NULL;
+  }
 };
 
+/**
+ * @}
+ */
 } // namespace Dali
 
 #endif // __DALI_PROPERTY_INPUT_H__