Set the alpha to 1 when Vector3 is used for the COLOR property
[platform/core/uifw/dali-core.git] / dali / public-api / actors / actor.h
index 857395d..82ce5c0 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_ACTOR_H__
-#define __DALI_ACTOR_H__
+#ifndef DALI_ACTOR_H
+#define DALI_ACTOR_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.
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <string>
+#include <cstdint> // uint32_t
 
 // INTERNAL INCLUDES
 #include <dali/public-api/actors/actor-enumerations.h>
 #include <dali/public-api/object/handle.h>
 #include <dali/public-api/object/property-index-ranges.h>
 #include <dali/public-api/signals/dali-signal.h>
+
+#undef SIZE_WIDTH // Defined in later versions of cstdint but is used in this header
+
 namespace Dali
 {
+/**
+ * @addtogroup dali_core_actors
+ * @{
+ */
 
 namespace Internal DALI_INTERNAL
 {
@@ -42,6 +50,7 @@ struct Degree;
 class Quaternion;
 class Layer;
 struct KeyEvent;
+class TouchData;
 struct TouchEvent;
 struct HoverEvent;
 struct WheelEvent;
@@ -49,7 +58,7 @@ struct Vector2;
 struct Vector3;
 struct Vector4;
 
-typedef Rect<float> Padding;      ///< Padding definition
+typedef Rect<float> Padding;      ///< Padding definition @SINCE_1_0.0
 
 /**
  * @brief Actor is the primary object with which Dali applications interact.
@@ -64,10 +73,10 @@ typedef Rect<float> Padding;      ///< Padding definition
  *
  * - An actor is only hittable if the actor's touch or hover signal has a connection.
  * - An actor is only hittable when it is between the camera's near and far planes.
- * - If an actor is made insensitive, then the actor and its children are not hittable; see IsSensitive()
- * - If an actor's visibility flag is unset, then none of its children are hittable either; see IsVisible()
+ * - If an actor is made insensitive, then the actor and its children are not hittable; see IsSensitive().
+ * - If an actor's visibility flag is unset, then none of its children are hittable either; see IsVisible().
  * - To be hittable, an actor must have a non-zero size.
- * - If an actor's world color is fully transparent, then it is not hittable; see GetCurrentWorldColor()
+ * - If an actor's world color is fully transparent, then it is not hittable; see GetCurrentWorldColor().
  *
  * <i>Hit Test Algorithm:</i>
  *
@@ -94,11 +103,12 @@ typedef Rect<float> Padding;      ///< Padding definition
  *     {
  *       // Only hit-test the actor and its children if it is sensitive and visible
  *       IF ( ACTOR-IS-SENSITIVE &&
- *            ACTOR-IS-VISIBLE )
+ *            ACTOR-IS-VISIBLE &&
+ *            ACTOR-IS-ON-STAGE )
  *       {
  *         // Depth-first traversal within current layer, visiting parent first
  *
- *         // Check whether current actor should be hit-tested
+ *         // Check whether current actor should be hit-tested.
  *         IF ( ( TOUCH-SIGNAL-NOT-EMPTY || HOVER-SIGNAL-NOT-EMPTY ) &&
  *              ACTOR-HAS-NON-ZERO-SIZE &&
  *              ACTOR-WORLD-COLOR-IS-NOT-TRANSPARENT )
@@ -108,13 +118,13 @@ typedef Rect<float> Padding;      ///< Padding definition
  *           {
  *             IF ( ACTOR-IS-OVERLAY || ( DISTANCE-TO-ACTOR < DISTANCE-TO-LAST-HIT-ACTOR ) )
  *             {
- *               // The current actor is the closest actor that was underneath the touch
+ *               // The current actor is the closest actor that was underneath the touch.
  *               LAST-HIT-ACTOR = CURRENT-ACTOR
  *             }
  *           }
  *         }
  *
- *         // Keep checking children, in case we hit something closer
+ *         // Keep checking children, in case we hit something closer.
  *         FOR-EACH CHILD (in order)
  *         {
  *           IF ( CHILD-IS-NOT-A-LAYER )
@@ -122,7 +132,7 @@ typedef Rect<float> Padding;      ///< Padding definition
  *             // Continue traversal for this child's sub-tree
  *             HIT-TEST-WITHIN-LAYER ( CHILD )
  *           }
- *           // else we skip hit-testing the child's sub-tree altogether
+ *           // else we skip hit-testing the child's sub-tree altogether.
  *         }
  *       }
  *     }
@@ -141,13 +151,7 @@ typedef Rect<float> Padding;      ///< Padding definition
  *
  *     Hit Priority of above Actor tree (all overlays): 1 - Lowest. 6 - Highest.
  *     @endcode
- *   - Stencil Actors can be used to influence the result of hits on renderable actors within a layer.
- *     If a Stencil Actor exists on a layer and that Actor is marked visible then a successful
- *     hit on a renderable actor can only take place in the area that the stencil Actor marks as visible.
- *     The hit can be in any Stencil Actor in that layer, but must be in the region of one of them.
- *     Stencil Actor inheritance behaves as with rendering in that any child of a Stencil Actor will
- *     also be considered a Stencil Actor.
- *     Non-renderable actors can be hit regardless of whether a stencil actor is hit or not.
+ *     For more information, see SetDrawMode().
  *
  * <i>Touch or hover Event Delivery:</i>
  *
@@ -184,7 +188,7 @@ typedef Rect<float> Padding;      ///< Padding definition
  *
  *       IF ( NOT-CONSUMED )
  *       {
- *         // If event is not consumed then deliver it to the parent unless we reach the root actor
+ *         // If event is not consumed then deliver it to the parent unless we reach the root actor.
  *         IF ( ACTOR-PARENT )
  *         {
  *           EMIT-HOVER-SIGNAL( ACTOR-PARENT )
@@ -193,7 +197,7 @@ typedef Rect<float> Padding;      ///< Padding definition
  *     }
  *     @endcode
  *   - If there are several touch points, then the delivery is only to the first touch point's hit
- *     actor (and its parents).  There will be NO touch or hover signal delivery for the hit actors of the
+ *     actor (and its parents). There will be NO touch or hover signal delivery for the hit actors of the
  *     other touch points.
  *   - The local coordinates are from the top-left (0.0f, 0.0f, 0.5f) of the hit actor.
  *
@@ -212,6 +216,7 @@ typedef Rect<float> Padding;      ///< Padding definition
  *     touch signals are also emitted from the touch-down actor with an "Interrupted" state.
  *   - If the consumed actor on hover-start is not the same as the consumed actor on hover-finished, then
  *     hover signals are also emitted from the hover-started actor with an "Interrupted" state.
+ *
  * <h3>Key Events:</h3>
  *
  * Key events are received by an actor once set to grab key events, only one actor can be set as focused.
@@ -223,212 +228,629 @@ typedef Rect<float> Padding;      ///< Padding definition
  * |-------------------|------------------------------|
  * | touched           | @ref TouchedSignal()         |
  * | hovered           | @ref HoveredSignal()         |
- * | wheel-event       | @ref WheelEventSignal()      |
- * | on-stage          | @ref OnStageSignal()         |
- * | off-stage         | @ref OffStageSignal()        |
+ * | wheelEvent        | @ref WheelEventSignal()      |
+ * | onStage           | @ref OnStageSignal()         |
+ * | offStage          | @ref OffStageSignal()        |
+ * | onRelayout        | @ref OnRelayoutSignal()      |
  *
  * Actions
  * | %Action Name      | %Actor method called         |
  * |-------------------|------------------------------|
  * | show              | %SetVisible( true )          |
  * | hide              | %SetVisible( false )         |
+ * @SINCE_1_0.0
  */
-class DALI_IMPORT_API Actor : public Handle
+
+class DALI_CORE_API Actor : public Handle
 {
 public:
 
   /**
-   * @brief An enumeration of properties belonging to the Actor class.
+   * @brief Enumeration for the instance of properties belonging to the Actor class.
+   * @SINCE_1_0.0
    */
   struct Property
   {
+    /**
+     * @brief Enumeration for instance of properties belonging to the Actor class.
+     * @SINCE_1_0.0
+     */
     enum
     {
-      PARENT_ORIGIN = DEFAULT_ACTOR_PROPERTY_START_INDEX, ///< name "parent-origin",         type Vector3
-      PARENT_ORIGIN_X,                                    ///< name "parent-origin-x",       type float
-      PARENT_ORIGIN_Y,                                    ///< name "parent-origin-y",       type float
-      PARENT_ORIGIN_Z,                                    ///< name "parent-origin-z",       type float
-      ANCHOR_POINT,                                       ///< name "anchor-point",          type Vector3
-      ANCHOR_POINT_X,                                     ///< name "anchor-point-x",        type float
-      ANCHOR_POINT_Y,                                     ///< name "anchor-point-y",        type float
-      ANCHOR_POINT_Z,                                     ///< name "anchor-point-z",        type float
-      SIZE,                                               ///< name "size",                  type Vector3
-      SIZE_WIDTH,                                         ///< name "size-width",            type float
-      SIZE_HEIGHT,                                        ///< name "size-height",           type float
-      SIZE_DEPTH,                                         ///< name "size-depth",            type float
-      POSITION,                                           ///< name "position",              type Vector3
-      POSITION_X,                                         ///< name "position-x",            type float
-      POSITION_Y,                                         ///< name "position-y",            type float
-      POSITION_Z,                                         ///< name "position-z",            type float
-      WORLD_POSITION,                                     ///< name "world-position",        type Vector3    (read-only)
-      WORLD_POSITION_X,                                   ///< name "world-position-x",      type float      (read-only)
-      WORLD_POSITION_Y,                                   ///< name "world-position-y",      type float      (read-only)
-      WORLD_POSITION_Z,                                   ///< name "world-position-z",      type float      (read-only)
-      ORIENTATION,                                        ///< name "orientation",           type Quaternion
-      WORLD_ORIENTATION,                                  ///< name "world-orientation",     type Quaternion (read-only)
-      SCALE,                                              ///< name "scale",                 type Vector3
-      SCALE_X,                                            ///< name "scale-x",               type float
-      SCALE_Y,                                            ///< name "scale-y",               type float
-      SCALE_Z,                                            ///< name "scale-z",               type float
-      WORLD_SCALE,                                        ///< name "world-scale",           type Vector3    (read-only)
-      VISIBLE,                                            ///< name "visible",               type bool
-      COLOR,                                              ///< name "color",                 type Vector4
-      COLOR_RED,                                          ///< name "color-red",             type float
-      COLOR_GREEN,                                        ///< name "color-green",           type float
-      COLOR_BLUE,                                         ///< name "color-blue",            type float
-      COLOR_ALPHA,                                        ///< name "color-alpha",           type float
-      WORLD_COLOR,                                        ///< name "world-color",           type Vector4    (read-only)
-      WORLD_MATRIX,                                       ///< name "world-matrix",          type Matrix     (read-only)
-      NAME,                                               ///< name "name",                  type std::string
-      SENSITIVE,                                          ///< name "sensitive",             type bool
-      LEAVE_REQUIRED,                                     ///< name "leave-required",        type bool
-      INHERIT_ORIENTATION,                                ///< name "inherit-orientation",   type bool
-      INHERIT_SCALE,                                      ///< name "inherit-scale",         type bool
-      COLOR_MODE,                                         ///< name "color-mode",            type std::string
-      POSITION_INHERITANCE,                               ///< name "position-inheritance",  type std::string
-      DRAW_MODE,                                          ///< name "draw-mode",             type std::string
-      SIZE_MODE_FACTOR,                                   ///< name "size-mode-factor",      type Vector3
-      WIDTH_RESIZE_POLICY,                                ///< name "width-resize-policy",   type String
-      HEIGHT_RESIZE_POLICY,                               ///< name "height-resize-policy",  type String
-      SIZE_SCALE_POLICY,                                  ///< name "size-scale-policy",     type String
-      WIDTH_FOR_HEIGHT,                                   ///< name "width-for-height",      type Boolean
-      HEIGHT_FOR_WIDTH,                                   ///< name "height-for-width",      type Boolean
-      PADDING,                                            ///< name "padding",               type Vector4
-      MINIMUM_SIZE,                                       ///< name "minimum-size",          type Vector2
-      MAXIMUM_SIZE,                                       ///< name "maximum-size",          type Vector2
+      /**
+       * @brief The origin of an actor, within its parent's area.
+       * @details Name "parentOrigin", type Property::VECTOR3, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetParentOrigin()
+       */
+      PARENT_ORIGIN = DEFAULT_ACTOR_PROPERTY_START_INDEX,
+
+      /**
+       * @brief The x origin of an actor, within its parent's area.
+       * @details Name "parentOriginX", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetParentOrigin()
+       */
+      PARENT_ORIGIN_X,
+
+      /**
+       * @brief The y origin of an actor, within its parent's area.
+       * @details Name "parentOriginY", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetParentOrigin()
+       */
+      PARENT_ORIGIN_Y,
+
+      /**
+       * @brief The z origin of an actor, within its parent's area.
+       * @details Name "parentOriginZ", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetParentOrigin()
+       */
+      PARENT_ORIGIN_Z,
+
+      /**
+       * @brief The anchor-point of an actor.
+       * @details Name "anchorPoint", type Property::VECTOR3, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetAnchorPoint()
+       */
+      ANCHOR_POINT,
+
+      /**
+       * @brief The x anchor-point of an actor.
+       * @details Name "anchorPointX", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetAnchorPoint()
+       */
+      ANCHOR_POINT_X,
+
+      /**
+       * @brief The y anchor-point of an actor.
+       * @details Name "anchorPointY", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetAnchorPoint()
+       */
+      ANCHOR_POINT_Y,
+
+      /**
+       * @brief The z anchor-point of an actor.
+       * @details Name "anchorPointZ", type Property::FLOAT, constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetAnchorPoint()
+       */
+      ANCHOR_POINT_Z,
+
+      /**
+       * @brief The size of an actor.
+       * @details Name "size", type Property::VECTOR3, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetSize()
+       */
+      SIZE,
+
+      /**
+       * @brief The width of an actor.
+       * @details Name "sizeWidth", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetSize()
+       */
+      SIZE_WIDTH,
+
+      /**
+       * @brief The height of an actor.
+       * @details Name "sizeHeight", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetSize()
+       */
+      SIZE_HEIGHT,
+
+      /**
+       * @brief The depth of an actor.
+       * @details Name "sizeDepth", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetSize()
+       */
+      SIZE_DEPTH,
+
+      /**
+       * @brief The position of an actor.
+       * @details Name "position", type Property::VECTOR3, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetPosition()
+       */
+      POSITION,
+
+      /**
+       * @brief The x position of an actor.
+       * @details Name "positionX", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetX()
+       */
+      POSITION_X,
+
+      /**
+       * @brief The y position of an actor.
+       * @details Name "positionY", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetY()
+       */
+      POSITION_Y,
+
+      /**
+       * @brief The z position of an actor.
+       * @details Name "positionZ", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetZ()
+       */
+      POSITION_Z,
+
+      /**
+       * @brief The world position of an actor.
+       * @details Name "worldPosition", type Property::VECTOR3, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldPosition()
+       */
+      WORLD_POSITION,
+
+      /**
+       * @brief The x world position of an actor.
+       * @details Name "worldPositionX", type Property::FLOAT, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldPosition()
+       */
+      WORLD_POSITION_X,
+
+      /**
+       * @brief The y world position of an actor.
+       * @details Name "worldPositionY", type Property::FLOAT, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldPosition()
+       */
+      WORLD_POSITION_Y,
+
+      /**
+       * @brief The z world position of an actor.
+       * @details Name "worldPositionZ", type Property::FLOAT, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldPosition()
+       */
+      WORLD_POSITION_Z,
+
+      /**
+       * @brief The orientation of an actor.
+       * @details Name "orientation", type Property::ROTATION, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetOrientation()
+       */
+      ORIENTATION,
+
+      /**
+       * @brief The world orientation of an actor.
+       * @details Name "worldOrientation", type Property::ROTATION, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldOrientation()
+       */
+      WORLD_ORIENTATION,
+
+      /**
+       * @brief The scale factor applied to an actor.
+       * @details Name "scale", type Property::VECTOR3, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetScale()
+       */
+      SCALE,
+
+      /**
+       * @brief The x scale factor applied to an actor.
+       * @details Name "scaleX", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetScale()
+       */
+      SCALE_X,
+
+      /**
+       * @brief The y scale factor applied to an actor.
+       * @details Name "scaleY", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetScale()
+       */
+      SCALE_Y,
+
+      /**
+       * @brief The x scale factor applied to an actor.
+       * @details Name "scaleZ", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetScale()
+       */
+      SCALE_Z,
+
+      /**
+       * @brief The world scale factor applied to an actor.
+       * @details Name "worldScale", type Property::VECTOR3, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldScale()
+       */
+      WORLD_SCALE,
+
+      /**
+       * @brief The visibility flag of an actor.
+       * @details Name "visible", type Property::BOOL, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetVisible()
+       */
+      VISIBLE,
+
+      /**
+       * @brief The color of an actor.
+       * @details Name "color", type Property::VECTOR4 or Property::VECTOR3, animatable / constraint-input
+       * @note The alpha value will be 1.0f if a Vector3 type value is set.
+       * @SINCE_1_0.0
+       * @see Actor::SetColor()
+       */
+      COLOR,
+
+      /**
+       * @brief The red component of an actor's color.
+       * @details Name "colorRed", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetColor()
+       */
+      COLOR_RED,
+
+      /**
+       * @brief The green component of an actor's color.
+       * @details Name "colorGreen", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetColor()
+       */
+      COLOR_GREEN,
+
+      /**
+       * @brief The blue component of an actor's color.
+       * @details Name "colorBlue", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetColor()
+       */
+      COLOR_BLUE,
+
+      /**
+       * @brief The alpha component of an actor's color.
+       * @details Name "colorAlpha", type Property::FLOAT, animatable / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::SetColor()
+       */
+      COLOR_ALPHA,
+
+      /**
+       * @brief The world color of an actor.
+       * @details Name "worldColor", type Property::VECTOR4, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldColor()
+       */
+      WORLD_COLOR,
+
+      /**
+       * @brief The world matrix of an actor.
+       * @details Name "worldMatrix", type Property::MATRIX, read-only / constraint-input
+       * @SINCE_1_0.0
+       * @see Actor::GetCurrentWorldMatrix()
+       */
+      WORLD_MATRIX,
+
+      /**
+       * @brief The name of an actor.
+       * @details Name "name", type Property::STRING
+       * @SINCE_1_0.0
+       * @see Actor::GetName()
+       */
+      NAME,
+
+      /**
+       * @brief The flag whether an actor should emit touch or hover signals.
+       * @details Name "sensitive", type Property::BOOLEAN
+       * @SINCE_1_0.0
+       * @see Actor::SetSensitive()
+       */
+      SENSITIVE,
+
+      /**
+       * @brief The flag whether an actor should receive a notification when touch or hover motion events leave.
+       * @details Name "leaveRequired", type Property::BOOLEAN
+       * @SINCE_1_0.0
+       * @see Actor::SetLeaveRequired()
+       */
+      LEAVE_REQUIRED,
+
+      /**
+       * @brief The flag whether a child actor inherits it's parent's orientation.
+       * @details Name "inheritOrientation", type Property::BOOLEAN
+       * @SINCE_1_0.0
+       * @see Actor::SetInheritOrientation()
+       */
+      INHERIT_ORIENTATION,
+
+      /**
+       * @brief The flag whether a child actor inherits it's parent's scale.
+       * @details Name "inheritScale", type Property::BOOLEAN
+       * @SINCE_1_0.0
+       * @see Actor::SetInheritScale()
+       */
+      INHERIT_SCALE,
+
+      /**
+       * @brief The color mode of an actor.
+       * @details Name "colorMode", type ColorMode (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_0.0
+       * @see Actor::SetColorMode()
+       */
+      COLOR_MODE,
+
+      /**
+       * @brief This property is removed because it's deprecated.
+       */
+      RESERVED_PROPERTY_01,
+
+      /**
+       * @brief The draw mode of an actor.
+       * @details Name "drawMode", type DrawMode::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_0.0
+       * @see Actor::SetDrawMode()
+       */
+      DRAW_MODE,
+
+      /**
+       * @brief The size mode factor of an actor.
+       * @details Name "sizeModeFactor", type Property::VECTOR3.
+       * @SINCE_1_0.0
+       * @see Actor::SetSizeModeFactor()
+       */
+      SIZE_MODE_FACTOR,
+
+      /**
+       * @brief The resize policy for the width of an actor.
+       * @details Name "widthResizePolicy", type ResizePolicy::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_0.0
+       * @see Actor::SetResizePolicy()
+       */
+      WIDTH_RESIZE_POLICY,
+
+      /**
+       * @brief The resize policy for the height of an actor.
+       * @details Name "heightResizePolicy", type ResizePolicy::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_0.0
+       * @see Actor::SetResizePolicy()
+       */
+      HEIGHT_RESIZE_POLICY,
+
+      /**
+       * @brief The size scale policy of an actor.
+       * @details Name "sizeScalePolicy", type ResizePolicy::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_0.0
+       * @see Actor::SetSizeScalePolicy()
+       */
+      SIZE_SCALE_POLICY,
+
+      /**
+       * @brief The flag to determine the width dependent on the height.
+       * @details Name "widthForHeight", type Property::BOOLEAN.
+       * @SINCE_1_0.0
+       * @see Actor::SetResizePolicy()
+       */
+      WIDTH_FOR_HEIGHT,
+
+      /**
+       * @brief The flag to determine the height dependent on the width.
+       * @details Name "heightForWidth", type Property::BOOLEAN.
+       * @SINCE_1_0.0
+       * @see Actor::SetResizePolicy()
+       */
+      HEIGHT_FOR_WIDTH,
+
+      /**
+       * @brief The padding of an actor for use in layout.
+       * @details Name "padding", type Property::VECTOR4.
+       * @SINCE_1_0.0
+       * @see Actor::SetPadding()
+       */
+      PADDING,
+
+      /**
+       * @brief The minimum size an actor can be assigned in size negotiation.
+       * @details Name "minimumSize", type Property::VECTOR2.
+       * @SINCE_1_0.0
+       * @see Actor::SetMinimumSize()
+       */
+      MINIMUM_SIZE,
+
+      /**
+       * @brief The maximum size an actor can be assigned in size negotiation.
+       * @details Name "maximumSize", type Property::VECTOR2.
+       * @SINCE_1_0.0
+       * @see Actor::SetMaximumSize()
+       */
+      MAXIMUM_SIZE,
+
+      /**
+       * @brief The flag whether a child actor inherits it's parent's position.
+       * @details Name "inheritPosition", type Property::BOOLEAN.
+       * @SINCE_1_1.24
+       * @see Actor::SetInheritPosition()
+       */
+      INHERIT_POSITION,
+
+      /**
+       * @brief The clipping mode of an actor.
+       * @details Name "clippingMode", type ClippingMode::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_2_5
+       * @see ClippingMode::Type for supported values.
+       */
+      CLIPPING_MODE,
+
+      /**
+       * @brief The direction of the layout.
+       * @details Name "layoutDirection", type LayoutDirection::Type (Property::INTEGER) or Property::STRING.
+       * @SINCE_1_2.60
+       * @see LayoutDirection::Type for supported values.
+       */
+      LAYOUT_DIRECTION,
+
+      /**
+       * @brief Determines whether child actors inherit the layout direction from a parent.
+       * @details Name "layoutDirectionInheritance", type Property::BOOLEAN.
+       * @SINCE_1_2.60
+       */
+      INHERIT_LAYOUT_DIRECTION,
     };
   };
 
   // Typedefs
 
-  typedef Signal< bool (Actor, const TouchEvent&)> TouchSignalType;                 ///< Touch signal type
-  typedef Signal< bool (Actor, const HoverEvent&)> HoverSignalType;                 ///< Hover signal type
-  typedef Signal< bool (Actor, const WheelEvent&) > WheelEventSignalType;           ///< Wheel signal type
-  typedef Signal< void (Actor) > OnStageSignalType;  ///< Stage connection signal type
-  typedef Signal< void (Actor) > OffStageSignalType; ///< Stage disconnection signal type
-  typedef Signal< void (Actor) > OnRelayoutSignalType; ///< Called when the actor is relaid out
+  typedef Signal< bool (Actor, const TouchEvent&) > TouchSignalType;        ///< @DEPRECATED_1_1.37 @brief Touch signal type @SINCE_1_0.0
+  typedef Signal< bool (Actor, const TouchData&) >  TouchDataSignalType;    ///< Touch signal type @SINCE_1_1.37
+  typedef Signal< bool (Actor, const HoverEvent&) > HoverSignalType;        ///< Hover signal type @SINCE_1_0.0
+  typedef Signal< bool (Actor, const WheelEvent&) > WheelEventSignalType;   ///< Wheel signal type @SINCE_1_0.0
+  typedef Signal< void (Actor) > OnStageSignalType;                         ///< Stage connection signal type @SINCE_1_0.0
+  typedef Signal< void (Actor) > OffStageSignalType;                        ///< Stage disconnection signal type @SINCE_1_0.0
+  typedef Signal< void (Actor) > OnRelayoutSignalType;                      ///< Called when the actor is relaid out @SINCE_1_0.0
+  typedef Signal< void ( Actor, LayoutDirection::Type ) > LayoutDirectionChangedSignalType; ///< Layout direction changes signal type. @SINCE_1_2.60
 
   // Creation
 
   /**
-   * @brief Create an uninitialized Actor; this can be initialized with Actor::New().
+   * @brief Creates an uninitialized Actor; this can be initialized with Actor::New().
    *
-   * Calling member functions with an uninitialized Dali::Object is not allowed.
+   * Calling member functions with an uninitialized Actor handle is not allowed.
+   * @SINCE_1_0.0
    */
   Actor();
 
   /**
-   * @brief Create an initialized Actor.
+   * @brief Creates an initialized Actor.
    *
-   * @return A handle to a newly allocated Dali resource.
+   * @SINCE_1_0.0
+   * @return A handle to a newly allocated Dali resource
    */
   static Actor New();
 
   /**
-   * @brief Downcast an Object handle to Actor handle.
+   * @brief Downcasts a handle to Actor handle.
    *
-   * If handle points to a Actor object the downcast produces valid
-   * handle. If not the returned handle is left uninitialized.
+   * If handle points to an Actor object, the downcast produces valid handle.
+   * If not, the returned handle is left uninitialized.
    *
+   * @SINCE_1_0.0
    * @param[in] handle to An object
    * @return handle to a Actor object or an uninitialized handle
    */
   static Actor DownCast( BaseHandle handle );
 
   /**
-   * @brief Dali::Actor is intended as a base class
+   * @brief Dali::Actor is intended as a base class.
    *
    * This is non-virtual since derived Handle types must not contain data or virtual methods.
+   * @SINCE_1_0.0
    */
   ~Actor();
 
   /**
-   * @brief Copy constructor
+   * @brief Copy constructor.
    *
-   * @param [in] copy The actor to copy.
+   * @SINCE_1_0.0
+   * @param[in] copy The actor to copy
    */
   Actor(const Actor& copy);
 
   /**
    * @brief Assignment operator
    *
-   * @param [in] rhs The actor to copy.
+   * @SINCE_1_0.0
+   * @param[in] rhs The actor to copy
+   * @return A reference to this
    */
   Actor& operator=(const Actor& rhs);
 
   /**
-   * @brief Retrieve the Actor's name.
+   * @brief Retrieves the Actor's name.
    *
+   * @SINCE_1_0.0
+   * @return The Actor's name
    * @pre The Actor has been initialized.
-   * @return The Actor's name.
    */
   const std::string& GetName() const;
 
   /**
    * @brief Sets the Actor's name.
    *
+   * @SINCE_1_0.0
+   * @param[in] name The new name
    * @pre The Actor has been initialized.
-   * @param [in] name The new name.
    */
   void SetName(const std::string& name);
 
   /**
-   * @brief Retrieve the unique ID of the actor.
+   * @brief Retrieves the unique ID of the actor.
    *
+   * @SINCE_1_0.0
+   * @return The ID
    * @pre The Actor has been initialized.
-   * @return The ID.
    */
-  unsigned int GetId() const;
+  uint32_t GetId() const;
 
   // Containment
 
   /**
-   * @brief Query whether an actor is the root actor, which is owned by the Stage.
+   * @brief Queries whether an actor is the root actor, which is owned by the Stage.
    *
+   * @SINCE_1_0.0
+   * @return True if the actor is the root actor
    * @pre The Actor has been initialized.
-   * @return True if the actor is the root actor.
    */
   bool IsRoot() const;
 
   /**
-   * @brief Query whether the actor is connected to the Stage.
+   * @brief Queries whether the actor is connected to the Stage.
    *
    * When an actor is connected, it will be directly or indirectly parented to the root Actor.
-   * @note The root Actor is provided automatically by Dali::Stage, and is always considered to be connected.
+   * @SINCE_1_0.0
+   * @return True if the actor is connected to the Stage
    * @pre The Actor has been initialized.
-   * @return True if the actor is connected to the Stage.
+   * @note The root Actor is provided automatically by Dali::Stage, and is always considered to be connected.
    */
   bool OnStage() const;
 
   /**
-   * @brief Query whether the actor is of class Dali::Layer.
+   * @brief Queries whether the actor is of class Dali::Layer.
    *
+   * @SINCE_1_0.0
+   * @return True if the actor is a layer
    * @pre The Actor has been initialized.
-   * @return True if the actor is a layer.
    */
   bool IsLayer() const;
 
   /**
    * @brief Gets the layer in which the actor is present.
    *
+   * @SINCE_1_0.0
+   * @return The layer, which will be uninitialized if the actor is off-stage
    * @pre The Actor has been initialized.
-   * @return The layer, which will be uninitialized if the actor is off-stage.
    */
   Layer GetLayer();
 
   /**
    * @brief Adds a child Actor to this Actor.
    *
-   * NOTE! if the child already has a parent, it will be removed from old parent
-   * and reparented to this actor. This may change childs position, color,
-   * scale etc as it now inherits them from this actor
+   * @SINCE_1_0.0
+   * @param[in] child The child
    * @pre This Actor (the parent) has been initialized.
    * @pre The child actor has been initialized.
    * @pre The child actor is not the same as the parent actor.
-   * @pre The actor is not the Root actor
-   * @param [in] child The child.
+   * @pre The actor is not the Root actor.
    * @post The child will be referenced by its parent. This means that the child will be kept alive,
    * even if the handle passed into this method is reset or destroyed.
+   * @note If the child already has a parent, it will be removed from old parent
+   * and reparented to this actor. This may change child's position, color,
+   * scale etc as it now inherits them from this actor.
    */
   void Add(Actor child);
 
@@ -436,9 +858,10 @@ public:
    * @brief Removes a child Actor from this Actor.
    *
    * If the actor was not a child of this actor, this is a no-op.
+   * @SINCE_1_0.0
+   * @param[in] child The child
    * @pre This Actor (the parent) has been initialized.
    * @pre The child actor is not the same as the parent actor.
-   * @param [in] child The child.
    */
   void Remove(Actor child);
 
@@ -446,102 +869,110 @@ public:
    * @brief Removes an actor from its parent.
    *
    * If the actor has no parent, this method does nothing.
+   * @SINCE_1_0.0
    * @pre The (child) actor has been initialized.
    */
   void Unparent();
 
   /**
-   * @brief Retrieve the number of children held by the actor.
+   * @brief Retrieves the number of children held by the actor.
    *
-   * @pre The Actor has been initialized.
+   * @SINCE_1_0.0
    * @return The number of children
+   * @pre The Actor has been initialized.
    */
-  unsigned int GetChildCount() const;
+  uint32_t GetChildCount() const;
 
   /**
    * @brief Retrieve and child actor by index.
    *
-   * @pre The Actor has been initialized.
+   * @SINCE_1_0.0
    * @param[in] index The index of the child to retrieve
-   * @return The actor for the given index or empty handle if children not initialised
+   * @return The actor for the given index or empty handle if children not initialized
+   * @pre The Actor has been initialized.
    */
-  Actor GetChildAt(unsigned int index) const;
+  Actor GetChildAt( uint32_t index ) const;
 
   /**
    * @brief Search through this actor's hierarchy for an actor with the given name.
    *
-   * The actor itself is also considered in the search
+   * The actor itself is also considered in the search.
+   * @SINCE_1_0.0
+   * @param[in] actorName The name of the actor to find
+   * @return A handle to the actor if found, or an empty handle if not
    * @pre The Actor has been initialized.
-   * @param[in] actorName the name of the actor to find
-   * @return A handle to the actor if found, or an empty handle if not.
    */
   Actor FindChildByName(const std::string& actorName);
 
   /**
    * @brief Search through this actor's hierarchy for an actor with the given unique ID.
    *
-   * The actor itself is also considered in the search
+   * The actor itself is also considered in the search.
+   * @SINCE_1_0.0
+   * @param[in] id The ID of the actor to find
+   * @return A handle to the actor if found, or an empty handle if not
    * @pre The Actor has been initialized.
-   * @param[in] id the ID of the actor to find
-   * @return A handle to the actor if found, or an empty handle if not.
    */
-  Actor FindChildById(const unsigned int id);
+  Actor FindChildById( const uint32_t id );
 
   /**
-   * @brief Retrieve the actor's parent.
+   * @brief Retrieves the actor's parent.
    *
+   * @SINCE_1_0.0
+   * @return A handle to the actor's parent. If the actor has no parent, this handle will be invalid
    * @pre The actor has been initialized.
-   * @return A handle to the actor's parent. If the actor has no parent, this handle will be invalid.
    */
   Actor GetParent() const;
 
   // Positioning
 
   /**
-   * @brief Set the origin of an actor, within its parent's area.
+   * @brief Sets the origin of an actor, within its parent's area.
    *
    * This is expressed in unit coordinates, such that (0.0, 0.0, 0.5) is the top-left corner of the parent,
    * and (1.0, 1.0, 0.5) is the bottom-right corner.
    * The default parent-origin is Dali::ParentOrigin::TOP_LEFT (0.0, 0.0, 0.5).
-   * An actor position is the distance between this origin, and the actors anchor-point.
-   * @see Dali::ParentOrigin for predefined parent origin values
+   * An actor's position is the distance between this origin, and the actor's anchor-point.
+   * @image html parent-origin.png
+   * @SINCE_1_0.0
+   * @param[in] origin The new parent-origin
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentParentOrigin().
-   * @param [in] origin The new parent-origin.
+   * @see Dali::ParentOrigin for predefined parent origin values
    */
   void SetParentOrigin(const Vector3& origin);
 
   /**
-   * @brief Retrieve the parent-origin of an actor.
+   * @brief Retrieves the parent-origin of an actor.
    *
+   * @SINCE_1_0.0
+   * @return The current parent-origin
    * @pre The Actor has been initialized.
-   * @note This property can be animated; the return value may not match the value written with SetParentOrigin().
-   * @return The current parent-origin.
    */
   Vector3 GetCurrentParentOrigin() const;
 
   /**
-   * @brief Set the anchor-point of an actor.
+   * @brief Sets the anchor-point of an actor.
    *
    * This is expressed in unit coordinates, such that (0.0, 0.0, 0.5)
    * is the top-left corner of the actor, and (1.0, 1.0, 0.5) is the
-   * bottom-right corner.  The default anchor point is
+   * bottom-right corner. The default anchor point is
    * Dali::AnchorPoint::CENTER (0.5, 0.5, 0.5).
-   * An actor position is the distance between its parent-origin, and this anchor-point.
+   * An actor position is the distance between its parent-origin and this anchor-point.
    * An actor's orientation is the rotation from its default orientation, the rotation is centered around its anchor-point.
-   * @see Dali::AnchorPoint for predefined anchor point values
+   * @image html anchor-point.png
+   * @SINCE_1_0.0
+   * @param[in] anchorPoint The new anchor-point
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentAnchorPoint().
-   * @param [in] anchorPoint The new anchor-point.
+   * @see Dali::AnchorPoint for predefined anchor point values
    */
   void SetAnchorPoint(const Vector3& anchorPoint);
 
   /**
-   * @brief Retrieve the anchor-point of an actor.
+   * @brief Retrieves the anchor-point of an actor.
    *
+   * @SINCE_1_0.0
+   * @return The current anchor-point
    * @pre The Actor has been initialized.
-   * @note This property can be animated; the return value may not match the value written with SetAnchorPoint().
-   * @return The current anchor-point.
    */
   Vector3 GetCurrentAnchorPoint() const;
 
@@ -551,10 +982,10 @@ public:
    * Geometry can be scaled to fit within this area.
    * This does not interfere with the actors scale factor.
    * The actors default depth is the minimum of width & height.
+   * @SINCE_1_0.0
+   * @param [in] width The new width
+   * @param [in] height The new height
    * @pre The actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
-   * @param [in] width  The new width.
-   * @param [in] height The new height.
    */
   void SetSize(float width, float height);
 
@@ -563,11 +994,11 @@ public:
    *
    * Geometry can be scaled to fit within this area.
    * This does not interfere with the actors scale factor.
+   * @SINCE_1_0.0
+   * @param[in] width The size of the actor along the x-axis
+   * @param[in] height The size of the actor along the y-axis
+   * @param[in] depth The size of the actor along the z-axis
    * @pre The actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
-   * @param [in] width  The size of the actor along the x-axis.
-   * @param [in] height The size of the actor along the y-axis.
-   * @param [in] depth The size of the actor along the z-axis.
    */
   void SetSize(float width, float height, float depth);
 
@@ -577,9 +1008,9 @@ public:
    * Geometry can be scaled to fit within this area.
    * This does not interfere with the actors scale factor.
    * The actors default depth is the minimum of width & height.
+   * @SINCE_1_0.0
+   * @param[in] size The new size
    * @pre The actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
-   * @param [in] size The new size.
    */
   void SetSize(const Vector2& size);
 
@@ -588,150 +1019,181 @@ public:
    *
    * Geometry can be scaled to fit within this area.
    * This does not interfere with the actors scale factor.
+   * @SINCE_1_0.0
+   * @param [in] size The new size
    * @pre The actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
-   * @param [in] size The new size.
    */
   void SetSize(const Vector3& size);
 
   /**
-   * @brief Retrieve the actor's size.
+   * @brief Retrieves the actor's size.
    *
+   * @SINCE_1_0.0
+   * @return The actor's target size
    * @pre The actor has been initialized.
-   * @note This return is the value that was set using SetSize or the target size of an animation
-   * @return The actor's current size.
+   * @note This return is the value that was set using SetSize or the target size of an animation.
+   *       It may not match the current value in some cases, i.e. when the animation is progressing or the maximum or minimum size is set.
    */
   Vector3 GetTargetSize() const;
 
   /**
-   * @brief Retrieve the actor's size.
+   * @brief Retrieves the actor's size.
    *
+   * @SINCE_1_0.0
+   * @return The actor's current size
    * @pre The actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetSize().
-   * @return The actor's current size.
    */
   Vector3 GetCurrentSize() const;
 
   /**
-   * Return the natural size of the actor.
+   * @brief Returns the natural size of the actor.
    *
    * Deriving classes stipulate the natural size and by default an actor has a ZERO natural size.
    *
+   * @SINCE_1_0.0
    * @return The actor's natural size
    */
   Vector3 GetNaturalSize() const;
 
   /**
-   * @brief Sets the position of the actor.
+   * @brief Sets the position of the Actor.
    *
+   * By default, sets the position vector between the parent origin and anchor point (default).
+   *
+   * If Position inheritance if disabled, sets the world position. @see SetInheritPosition
+   *
+   * @image html actor-position.png
    * The Actor's z position will be set to 0.0f.
+   * @SINCE_1_0.0
+   * @param[in] x The new x position
+   * @param[in] y The new y position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] x The new x position
-   * @param [in] y The new y position
    */
   void SetPosition(float x, float y);
 
   /**
    * @brief Sets the position of the Actor.
    *
+   * By default, sets the position vector between the parent origin and anchor point (default).
+   *
+   * If Position inheritance if disabled, sets the world position. @see SetInheritPosition
+   *
+   * @image html actor-position.png
+   * @SINCE_1_0.0
+   * @param[in] x The new x position
+   * @param[in] y The new y position
+   * @param[in] z The new z position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] x The new x position
-   * @param [in] y The new y position
-   * @param [in] z The new z position
    */
   void SetPosition(float x, float y, float z);
 
   /**
    * @brief Sets the position of the Actor.
    *
+   * By default, sets the position vector between the parent origin and anchor point (default).
+   *
+   * If Position inheritance if disabled, sets the world position. @see SetInheritPosition
+   *
+   * @image html actor-position.png
+   * @SINCE_1_0.0
+   * @param[in] position The new position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] position The new position
    */
   void SetPosition(const Vector3& position);
 
   /**
-   * @brief Set the position of an actor along the X-axis.
+   * @brief Sets the position of an actor along the X-axis.
    *
+   * @SINCE_1_0.0
+   * @param[in] x The new x position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] x The new x position
    */
   void SetX(float x);
 
   /**
-   * @brief Set the position of an actor along the Y-axis.
+   * @brief Sets the position of an actor along the Y-axis.
    *
+   * @SINCE_1_0.0
+   * @param[in] y The new y position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] y The new y position.
    */
   void SetY(float y);
 
   /**
-   * @brief Set the position of an actor along the Z-axis.
+   * @brief Sets the position of an actor along the Z-axis.
    *
+   * @SINCE_1_0.0
+   * @param[in] z The new z position
    * @pre The Actor has been initialized.
-   * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
-   * @param [in] z The new z position
    */
   void SetZ(float z);
 
   /**
-   * @brief Translate an actor relative to its existing position.
+   * @brief Translates an actor relative to its existing position.
    *
+   * @SINCE_1_0.0
+   * @param[in] distance The actor will move by this distance
    * @pre The actor has been initialized.
-   * @param[in] distance The actor will move by this distance.
    */
   void TranslateBy(const Vector3& distance);
 
   /**
-   * @brief Retrieve the position of the Actor.
+   * @brief Retrieves the position of the Actor.
    *
+   * @SINCE_1_0.0
+   * @return The Actor's current position
    * @pre The Actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetPosition().
-   * @return the Actor's current position.
    */
   Vector3 GetCurrentPosition() const;
 
   /**
-   * @brief Retrieve the world-position of the Actor.
+   * @brief Retrieves the world-position of the Actor.
    *
-   * @note The actor will not have a world-position, unless it has previously been added to the stage.
+   * @SINCE_1_0.0
+   * @return The Actor's current position in world coordinates
    * @pre The Actor has been initialized.
-   * @return The Actor's current position in world coordinates.
+   * @note The actor may not have a world-position unless it has been added to the stage.
    */
   Vector3 GetCurrentWorldPosition() const;
 
   /**
-   * @brief Set the actors position inheritance mode.
+   * @brief Sets whether a child actor inherits it's parent's position.
    *
-   * The default is to inherit.
-   * Switching this off means that using SetPosition() sets the actor's world position.
-   * @see PositionInheritanceMode
+   * Default is to inherit.
+   * Switching this off means that using SetPosition() sets the actor's world position, i.e. translates from
+   * the world origin (0,0,0) to the anchor point of the actor.
+   * @SINCE_1_1.24
+   * @param[in] inherit - @c true if the actor should inherit position, @c false otherwise
    * @pre The Actor has been initialized.
-   * @param[in] mode to use
    */
-  void SetPositionInheritanceMode( PositionInheritanceMode mode );
+  inline void SetInheritPosition( bool inherit )
+  {
+    SetProperty(Property::INHERIT_POSITION, inherit );
+  }
 
   /**
-   * @brief Returns the actors position inheritance mode.
+   * @brief Returns whether the actor inherits its parent's position.
    *
+   * @SINCE_1_1.24
+   * @return @c true if the actor inherits its parent position, @c false if it uses world position
    * @pre The Actor has been initialized.
-   * @return true if the actor inherit's it's parent orientation, false if it uses world orientation.
    */
-  PositionInheritanceMode GetPositionInheritanceMode() const;
+  inline bool IsPositionInherited() const
+  {
+    return GetProperty(Property::INHERIT_POSITION ).Get<bool>();
+  }
 
   /**
    * @brief Sets the orientation of the Actor.
    *
    * An actor's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.
+   * @SINCE_1_0.0
+   * @param[in] angle The new orientation angle in degrees
+   * @param[in] axis The new axis of orientation
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOrientation().
-   * @param [in] angle The new orientation angle in degrees.
-   * @param [in] axis The new axis of orientation.
    */
   void SetOrientation( const Degree& angle, const Vector3& axis )
   {
@@ -742,10 +1204,11 @@ public:
    * @brief Sets the orientation of the Actor.
    *
    * An actor's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.
+   * @SINCE_1_0.0
+   * @param[in] angle The new orientation angle in radians
+   * @param[in] axis The new axis of orientation
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOrientation().
-   * @param [in] angle The new orientation angle in radians.
-   * @param [in] axis The new axis of orientation.
    */
   void SetOrientation(const Radian& angle, const Vector3& axis);
 
@@ -753,18 +1216,20 @@ public:
    * @brief Sets the orientation of the Actor.
    *
    * An actor's orientation is the rotation from its default orientation, and the rotation is centered around its anchor-point.
+   * @SINCE_1_0.0
+   * @param[in] orientation The new orientation
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOrientation().
-   * @param [in] orientation The new orientation.
    */
   void SetOrientation(const Quaternion& orientation);
 
   /**
-   * @brief Apply a relative rotation to an actor.
+   * @brief Applies a relative rotation to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] angle The angle to the rotation to combine with the existing orientation
+   * @param[in] axis The axis of the rotation to combine with the existing orientation
    * @pre The actor has been initialized.
-   * @param[in] angle The angle to the rotation to combine with the existing orientation.
-   * @param[in] axis The axis of the rotation to combine with the existing orientation.
    */
   void RotateBy( const Degree& angle, const Vector3& axis )
   {
@@ -772,137 +1237,152 @@ public:
   }
 
   /**
-   * @brief Apply a relative rotation to an actor.
+   * @brief Applies a relative rotation to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] angle The angle to the rotation to combine with the existing orientation
+   * @param[in] axis The axis of the rotation to combine with the existing orientation
    * @pre The actor has been initialized.
-   * @param[in] angle The angle to the rotation to combine with the existing orientation.
-   * @param[in] axis The axis of the rotation to combine with the existing orientation.
    */
   void RotateBy(const Radian& angle, const Vector3& axis);
 
   /**
-   * @brief Apply a relative rotation to an actor.
+   * @brief Applies a relative rotation to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] relativeRotation The rotation to combine with the existing orientation
    * @pre The actor has been initialized.
-   * @param[in] relativeRotation The rotation to combine with the existing orientation.
    */
   void RotateBy(const Quaternion& relativeRotation);
 
   /**
-   * @brief Retreive the Actor's orientation.
+   * @brief Retrieves the Actor's orientation.
    *
+   * @SINCE_1_0.0
+   * @return The current orientation
    * @pre The Actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetOrientation().
-   * @return The current orientation.
    */
   Quaternion GetCurrentOrientation() const;
 
   /**
-   * @brief Set whether a child actor inherits it's parent's orientation.
+   * @brief Sets whether a child actor inherits it's parent's orientation.
    *
    * Default is to inherit.
    * Switching this off means that using SetOrientation() sets the actor's world orientation.
+   * @SINCE_1_0.0
+   * @param[in] inherit - @c true if the actor should inherit orientation, @c false otherwise
    * @pre The Actor has been initialized.
-   * @param[in] inherit - true if the actor should inherit orientation, false otherwise.
    */
   void SetInheritOrientation(bool inherit);
 
   /**
-   * @brief Returns whether the actor inherit's it's parent's orientation.
+   * @brief Returns whether the actor inherits its parent's orientation.
    *
+   * @SINCE_1_0.0
+   * @return @c true if the actor inherits its parent orientation, @c false if it uses world orientation
    * @pre The Actor has been initialized.
-   * @return true if the actor inherit's it's parent orientation, false if it uses world orientation.
    */
   bool IsOrientationInherited() const;
 
   /**
-   * @brief Retrieve the world-orientation of the Actor.
+   * @brief Retrieves the world-orientation of the Actor.
    *
-   * @note The actor will not have a world-orientation, unless it has previously been added to the stage.
+   * @SINCE_1_0.0
+   * @return The Actor's current orientation in the world
    * @pre The Actor has been initialized.
-   * @return The Actor's current orientation in the world.
+   * @note The actor will not have a world-orientation, unless it has previously been added to the stage.
    */
   Quaternion GetCurrentWorldOrientation() const;
 
   /**
-   * @brief Set the scale factor applied to an actor.
+   * @brief Sets the scale factor applied to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] scale The scale factor applied on all axes
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentScale().
-   * @param [in] scale The scale factor applied on all axes.
    */
   void SetScale(float scale);
 
   /**
-   * @brief Set the scale factor applied to an actor.
+   * @brief Sets the scale factor applied to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] scaleX The scale factor applied along the x-axis
+   * @param[in] scaleY The scale factor applied along the y-axis
+   * @param[in] scaleZ The scale factor applied along the z-axis
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentScale().
-   * @param [in] scaleX The scale factor applied along the x-axis.
-   * @param [in] scaleY The scale factor applied along the y-axis.
-   * @param [in] scaleZ The scale factor applied along the z-axis.
    */
   void SetScale(float scaleX, float scaleY, float scaleZ);
 
   /**
-   * @brief Set the scale factor applied to an actor.
+   * @brief Sets the scale factor applied to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] scale A vector representing the scale factor for each axis
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentScale().
-   * @param [in] scale A vector representing the scale factor for each axis.
    */
   void SetScale(const Vector3& scale);
 
   /**
-   * @brief Apply a relative scale to an actor.
+   * @brief Applies a relative scale to an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] relativeScale The scale to combine with the actor's existing scale
    * @pre The actor has been initialized.
-   * @param[in] relativeScale The scale to combine with the actors existing scale.
    */
   void ScaleBy(const Vector3& relativeScale);
 
   /**
-   * @brief Retrieve the scale factor applied to an actor.
+   * @brief Retrieves the scale factor applied to an actor.
    *
+   * @SINCE_1_0.0
+   * @return A vector representing the scale factor for each axis
    * @pre The Actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetScale().
-   * @return A vector representing the scale factor for each axis.
    */
   Vector3 GetCurrentScale() const;
 
   /**
-   * @brief Retrieve the world-scale of the Actor.
+   * @brief Retrieves the world-scale of the Actor.
    *
-   * @note The actor will not have a world-scale, unless it has previously been added to the stage.
+   * @SINCE_1_0.0
+   * @return The Actor's current scale in the world
    * @pre The Actor has been initialized.
-   * @return The Actor's current scale in the world.
+   * @note The actor will not have a world-scale, unless it has previously been added to the stage.
    */
   Vector3 GetCurrentWorldScale() const;
 
   /**
-   * @brief Set whether a child actor inherits it's parent's scale.
+   * @brief Sets whether a child actor inherits it's parent's scale.
    *
    * Default is to inherit.
    * Switching this off means that using SetScale() sets the actor's world scale.
+   * @SINCE_1_0.0
+   * @param[in] inherit - @c true if the actor should inherit scale, @c false otherwise
    * @pre The Actor has been initialized.
-   * @param[in] inherit - true if the actor should inherit scale, false otherwise.
    */
   void SetInheritScale( bool inherit );
 
   /**
-   * @brief Returns whether the actor inherit's it's parent's scale.
+   * @brief Returns whether the actor inherits its parent's scale.
    *
+   * @SINCE_1_0.0
+   * @return @c true if the actor inherits its parent scale, @c false if it uses world scale
    * @pre The Actor has been initialized.
-   * @return true if the actor inherit's it's parent scale, false if it uses world scale.
    */
   bool IsScaleInherited() const;
 
   /**
    * @brief Retrieves the world-matrix of the actor.
    *
-   * @note The actor will not have a world-matrix, unless it has previously been added to the stage.
-   * @pre The Actor has been initialized.
+   * @SINCE_1_0.0
    * @return The Actor's current world matrix
+   * @pre The Actor has been initialized.
+   * @note The actor will not have a world-matrix, unless it has previously been added to the stage.
    */
   Matrix GetCurrentWorldMatrix() const;
 
@@ -911,42 +1391,46 @@ public:
   /**
    * @brief Sets the visibility flag of an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] visible The new visibility flag
    * @pre The actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with IsVisible().
    * @note If an actor's visibility flag is set to false, then the actor and its children will not be rendered.
    *       This is regardless of the individual visibility values of the children i.e. an actor will only be
    *       rendered if all of its parents have visibility set to true.
-   * @param [in] visible The new visibility flag.
    */
   void SetVisible(bool visible);
 
   /**
-   * @brief Retrieve the visibility flag of an actor.
+   * @brief Retrieves the visibility flag of an actor.
    *
+   * @SINCE_1_0.0
+   * @return The visibility flag
    * @pre The actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetVisible().
    * @note If an actor is not visible, then the actor and its children will not be rendered.
    *       This is regardless of the individual visibility values of the children i.e. an actor will only be
    *       rendered if all of its parents have visibility set to true.
-   * @return The visibility flag.
    */
   bool IsVisible() const;
 
   /**
    * @brief Sets the opacity of an actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] opacity The new opacity
    * @pre The actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOpacity().
-   * @param [in] opacity The new opacity.
    */
   void SetOpacity(float opacity);
 
   /**
-   * @brief Retrieve the actor's opacity.
+   * @brief Retrieves the actor's opacity.
    *
+   * @SINCE_1_0.0
+   * @return The actor's opacity
    * @pre The actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetOpacity().
-   * @return The actor's opacity.
    */
   float GetCurrentOpacity() const;
 
@@ -954,19 +1438,21 @@ public:
    * @brief Sets the actor's color; this is an RGBA value.
    *
    * The final color of the actor depends on its color mode.
+   * @SINCE_1_0.0
+   * @param[in] color The new color
    * @pre The Actor has been initialized.
    * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentColor().
-   * @param [in] color The new color.
    */
   void SetColor(const Vector4& color);
 
   /**
-   * @brief Retrieve the actor's color.
+   * @brief Retrieves the actor's color.
    *
    * Actor's own color is not clamped.
+   * @SINCE_1_0.0
+   * @return The color
    * @pre The Actor has been initialized.
    * @note This property can be animated; the return value may not match the value written with SetColor().
-   * @return The color.
    */
   Vector4 GetCurrentColor() const;
 
@@ -975,61 +1461,61 @@ public:
    *
    * This specifies whether the Actor uses its own color, or inherits
    * its parent color. The default is USE_OWN_MULTIPLY_PARENT_ALPHA.
+   * @SINCE_1_0.0
+   * @param[in] colorMode ColorMode to use
    * @pre The Actor has been initialized.
-   * @param [in] colorMode to use.
    */
   void SetColorMode( ColorMode colorMode );
 
   /**
    * @brief Returns the actor's color mode.
    *
+   * @SINCE_1_0.0
+   * @return Currently used colorMode
    * @pre The Actor has been initialized.
-   * @return currently used colorMode.
    */
   ColorMode GetColorMode() const;
 
   /**
-   * @brief Retrieve the world-color of the Actor, where each component is clamped within the 0->1 range.
+   * @brief Retrieves the world-color of the Actor, where each component is clamped within the 0->1 range.
    *
-   * @note The actor will not have a world-color, unless it has previously been added to the stage.
+   * @SINCE_1_0.0
+   * @return The Actor's current color in the world
    * @pre The Actor has been initialized.
-   * @return The Actor's current color in the world.
+   * @note The actor will not have a world-color, unless it has previously been added to the stage.
    */
   Vector4 GetCurrentWorldColor() const;
 
   /**
-   * @brief Set how the actor and its children should be drawn.
+   * @brief Sets how the actor and its children should be drawn.
    *
    * Not all actors are renderable, but DrawMode can be inherited from any actor.
-   * By default a renderable actor will be drawn as a 3D object. It will be depth-tested against
+   * If an object is in a 3D layer, it will be depth-tested against
    * other objects in the world i.e. it may be obscured if other objects are in front.
    *
    * If DrawMode::OVERLAY_2D is used, the actor and its children will be drawn as a 2D overlay.
    * Overlay actors are drawn in a separate pass, after all non-overlay actors within the Layer.
-   * For overlay actors, the drawing order is with respect to depth-index property of Renderers,
+   * For overlay actors, the drawing order is with respect to tree levels of Actors,
    * and depth-testing will not be used.
-   *
-   * If DrawMode::STENCIL is used, the actor and its children will be used to stencil-test other actors
-   * within the Layer. Stencil actors are therefore drawn into the stencil buffer before any other
-   * actors within the Layer.
-   *
-   * @param[in] drawMode The new draw-mode to use.
-   * @note Setting STENCIL will override OVERLAY_2D, if that would otherwise have been inherited.
+
+   * @SINCE_1_0.0
+   * @param[in] drawMode The new draw-mode to use
    * @note Layers do not inherit the DrawMode from their parents.
    */
   void SetDrawMode( DrawMode::Type drawMode );
 
   /**
-   * @brief Query how the actor and its children will be drawn.
+   * @brief Queries how the actor and its children will be drawn.
    *
-   * @return True if the Actor is an overlay.
+   * @SINCE_1_0.0
+   * @return Return the draw mode type
    */
   DrawMode::Type GetDrawMode() const;
 
   // Input Handling
 
   /**
-   * @brief Sets whether an actor should emit touch or hover signals; see SignalTouch() and SignalHover().
+   * @brief Sets whether an actor should emit touch or hover signals.
    *
    * An actor is sensitive by default, which means that as soon as an application connects to the SignalTouch(),
    * the touch event signal will be emitted, and as soon as an application connects to the SignalHover(), the
@@ -1045,36 +1531,39 @@ public:
    * actor.SetSensitive(true);
    * @endcode
    *
-   * @see @see SignalTouch() and SignalHover().
+   * @SINCE_1_0.0
+   * @param[in] sensitive true to enable emission of the touch or hover event signals, false otherwise
+   * @pre The Actor has been initialized.
    * @note If an actor's sensitivity is set to false, then it's children will not be hittable either.
    *       This is regardless of the individual sensitivity values of the children i.e. an actor will only be
    *       hittable if all of its parents have sensitivity set to true.
-   * @pre The Actor has been initialized.
-   * @param[in]  sensitive  true to enable emission of the touch or hover event signals, false otherwise.
+   * @see @see TouchedSignal() and HoveredSignal().
    */
   void SetSensitive(bool sensitive);
 
   /**
-   * @brief Query whether an actor emits touch or hover event signals.
+   * @brief Queries whether an actor emits touch or hover event signals.
    *
+   * @SINCE_1_0.0
+   * @return @c true, if emission of touch or hover event signals is enabled, @c false otherwise
+   * @pre The Actor has been initialized.
    * @note If an actor is not sensitive, then it's children will not be hittable either.
    *       This is regardless of the individual sensitivity values of the children i.e. an actor will only be
    *       hittable if all of its parents have sensitivity set to true.
-   * @pre The Actor has been initialized.
-   * @return true, if emission of touch or hover event signals is enabled, false otherwise.
    */
   bool IsSensitive() const;
 
   /**
    * @brief Converts screen coordinates into the actor's coordinate system using the default camera.
    *
-   * @note The actor coordinates are relative to the top-left (0.0, 0.0, 0.5)
+   * @SINCE_1_0.0
+   * @param[out] localX On return, the X-coordinate relative to the actor
+   * @param[out] localY On return, the Y-coordinate relative to the actor
+   * @param[in] screenX The screen X-coordinate
+   * @param[in] screenY The screen Y-coordinate
+   * @return True if the conversion succeeded
    * @pre The Actor has been initialized.
-   * @param[out] localX On return, the X-coordinate relative to the actor.
-   * @param[out] localY On return, the Y-coordinate relative to the actor.
-   * @param[in] screenX The screen X-coordinate.
-   * @param[in] screenY The screen Y-coordinate.
-   * @return True if the conversion succeeded.
+   * @note The actor coordinates are relative to the top-left (0.0, 0.0, 0.5)
    */
   bool ScreenToLocal(float& localX, float& localY, float screenX, float screenY) const;
 
@@ -1082,11 +1571,12 @@ public:
    * @brief Sets whether the actor should receive a notification when touch or hover motion events leave
    * the boundary of the actor.
    *
+   * @SINCE_1_0.0
+   * @param[in] required Should be set to true if a Leave event is required
+   * @pre The Actor has been initialized.
    * @note By default, this is set to false as most actors do not require this.
-   * @note Need to connect to the SignalTouch or SignalHover to actually receive this event.
+   * @note Need to connect to the TouchedSignal() or HoveredSignal() to actually receive this event.
    *
-   * @pre The Actor has been initialized.
-   * @param[in]  required  Should be set to true if a Leave event is required
    */
   void SetLeaveRequired(bool required);
 
@@ -1094,8 +1584,9 @@ public:
    * @brief This returns whether the actor requires touch or hover events whenever touch or hover motion events leave
    * the boundary of the actor.
    *
+   * @SINCE_1_0.0
+   * @return @c true if a Leave event is required, @c false otherwise
    * @pre The Actor has been initialized.
-   * @return true if a Leave event is required, false otherwise.
    */
   bool GetLeaveRequired() const;
 
@@ -1103,49 +1594,113 @@ public:
    * @brief Sets whether the actor should be focusable by keyboard navigation.
    *
    * The default is false.
-   * @pre The Actor has been initialized.
+   * @SINCE_1_0.0
    * @param[in] focusable - true if the actor should be focusable by keyboard navigation,
-   * false otherwise.
+   * false otherwise
+   * @pre The Actor has been initialized.
    */
   void SetKeyboardFocusable( bool focusable );
 
   /**
    * @brief Returns whether the actor is focusable by keyboard navigation.
    *
+   * @SINCE_1_0.0
+   * @return @c true if the actor is focusable by keyboard navigation, @c false if not
    * @pre The Actor has been initialized.
-   * @return true if the actor is focusable by keyboard navigation, false if not.
    */
   bool IsKeyboardFocusable() const;
 
+  /**
+   * @brief Raise actor above the next sibling actor.
+   *
+   * @SINCE_1_2.60
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   */
+  void Raise();
+
+  /**
+   * @brief Lower the actor below the previous sibling actor.
+   *
+   * @SINCE_1_2.60
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   */
+  void Lower();
+
+  /**
+   * @brief Raise actor above all other sibling actors.
+   *
+   * @SINCE_1_2.60
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   */
+  void RaiseToTop();
+
+  /**
+   * @brief Lower actor to the bottom of all other sibling actors.
+   *
+   * @SINCE_1_2.60
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   */
+  void LowerToBottom();
+
+  /**
+   * @brief Raises the actor above the target actor.
+   *
+   * @SINCE_1_2.60
+   * @param[in] target The target actor
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   * @pre The target actor is a sibling.
+   */
+  void RaiseAbove( Actor target );
+
+  /**
+   * @brief Lower the actor to below the target actor.
+   *
+   * @SINCE_1_2.60
+   * @param[in] target The target actor
+   * @pre The Actor has been initialized.
+   * @pre The Actor has been parented.
+   * @pre The target actor is a sibling.
+   */
+  void LowerBelow( Actor target );
+
   // SIZE NEGOTIATION
 
   /**
-   * Set the resize policy to be used for the given dimension(s)
+   * @brief Sets the resize policy to be used for the given dimension(s).
    *
+   * @SINCE_1_0.0
    * @param[in] policy The resize policy to use
-   * @param[in] dimension The dimension(s) to set policy for. Can be a bitfield of multiple dimensions.
+   * @param[in] dimension The dimension(s) to set policy for. Can be a bitfield of multiple dimensions
    */
   void SetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension );
 
   /**
-   * Return the resize policy used for a single dimension
+   * @brief Returns the resize policy used for a single dimension.
    *
+   * @SINCE_1_0.0
    * @param[in] dimension The dimension to get policy for
-   * @return Return the dimension resize policy
+   * @return Return the dimension resize policy. If more than one dimension is requested, just return the first one found
    */
   ResizePolicy::Type GetResizePolicy( Dimension::Type dimension ) const;
 
   /**
-   * @brief Set the policy to use when setting size with size negotiation. Defaults to SizeScalePolicy::USE_SIZE_SET.
+   * @brief Sets the policy to use when setting size with size negotiation. Defaults to SizeScalePolicy::USE_SIZE_SET.
    *
+   * @SINCE_1_0.0
    * @param[in] policy The policy to use for when the size is set
    */
   void SetSizeScalePolicy( SizeScalePolicy::Type policy );
 
   /**
-   * @brief Return the size set policy in use
+   * @brief Returns the size scale policy in use.
    *
-   * @return Return the size set policy
+   * @SINCE_1_0.0
+   * @return Return the size scale policy
    */
   SizeScalePolicy::Type GetSizeScalePolicy() const;
 
@@ -1154,104 +1709,167 @@ public:
    *
    * This factor is only used when ResizePolicy is set to either:
    * ResizePolicy::SIZE_RELATIVE_TO_PARENT or ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT.
-   * This actor's size is set to the actor's size multipled by or added to this factor,
-   * depending on ResizePolicy (See SetResizePolicy).
+   * This actor's size is set to the actor's size multiplied by or added to this factor,
+   * depending on ResizePolicy ( See SetResizePolicy() ).
    *
+   * @SINCE_1_0.0
+   * @param[in] factor A Vector3 representing the relative factor to be applied to each axis
    * @pre The Actor has been initialized.
-   * @param [in] factor A Vector3 representing the relative factor to be applied to each axis.
    */
   void SetSizeModeFactor( const Vector3& factor );
 
   /**
-   * @brief Retrieve the relative to parent size factor of the actor.
+   * @brief Retrieves the relative to parent size factor of the actor.
    *
+   * @SINCE_1_0.0
+   * @return The Actor's current relative size factor
    * @pre The Actor has been initialized.
-   * @return The Actor's current relative size factor.
    */
   Vector3 GetSizeModeFactor() const;
 
   /**
-   * @brief Calculate the height of the actor given a width
+   * @brief Calculates the height of the actor given a width.
    *
    * The natural size is used for default calculation.
    * size 0 is treated as aspect ratio 1:1.
    *
-   * @param width Width to use
+   * @SINCE_1_0.0
+   * @param[in] width Width to use
    * @return Return the height based on the width
    */
   float GetHeightForWidth( float width );
 
   /**
-   * @brief Calculate the width of the actor given a height
+   * @brief Calculates the width of the actor given a height.
    *
    * The natural size is used for default calculation.
    * size 0 is treated as aspect ratio 1:1.
    *
-   * @param height Height to use
+   * @SINCE_1_0.0
+   * @param[in] height Height to use
    * @return Return the width based on the height
    */
   float GetWidthForHeight( float height );
 
   /**
-   * Return the value of negotiated dimension for the given dimension
+   * @brief Returns the value of negotiated dimension for the given dimension.
    *
-   * @param dimension The dimension to retrieve
-   * @return Return the value of the negotiated dimension
+   * @SINCE_1_0.0
+   * @param[in] dimension The dimension to retrieve
+   * @return Return the value of the negotiated dimension. If more than one dimension is requested, just return the first one found
    */
   float GetRelayoutSize( Dimension::Type dimension ) const;
 
   /**
-   * @brief Set the padding for use in layout
+   * @brief Sets the padding for use in layout.
    *
+   * @SINCE_1_0.0
    * @param[in] padding Padding for the actor
    */
   void SetPadding( const Padding& padding );
 
   /**
-   * Return the value of the padding
+   * @brief Returns the value of the padding.
    *
-   * @param paddingOut The returned padding data
+   * @SINCE_1_0.0
+   * @param[in] paddingOut The returned padding data
    */
   void GetPadding( Padding& paddingOut ) const;
 
   /**
-   * @brief Set the minimum size an actor can be assigned in size negotiation
+   * @brief Sets the minimum size an actor can be assigned in size negotiation.
    *
+   * @SINCE_1_0.0
    * @param[in] size The minimum size
    */
   void SetMinimumSize( const Vector2& size );
 
   /**
-   * @brief Return the minimum relayout size
+   * @brief Returns the minimum relayout size.
    *
-   * @return Return the mininmum size
+   * @SINCE_1_0.0
+   * @return Return the minimum size
    */
   Vector2 GetMinimumSize();
 
   /**
-   * @brief Set the maximum size an actor can be assigned in size negotiation
+   * @brief Sets the maximum size an actor can be assigned in size negotiation.
    *
+   * @SINCE_1_0.0
    * @param[in] size The maximum size
    */
   void SetMaximumSize( const Vector2& size );
 
   /**
-   * @brief Return the maximum relayout size
+   * @brief Returns the maximum relayout size.
    *
+   * @SINCE_1_0.0
    * @return Return the maximum size
    */
   Vector2 GetMaximumSize();
 
   /**
-   * @brief Get depth in the hierarchy for the actor
+   * @brief Gets depth in the hierarchy for the actor.
+   *
+   * @SINCE_1_0.0
+   * @return The current depth in the hierarchy of the actor, or @c -1 if actor is not in the hierarchy
+   */
+  int32_t GetHierarchyDepth();
+
+public: // Renderer
+
+  /**
+   * @brief Adds a renderer to this actor.
+   *
+   * @SINCE_1_0.0
+   * @param[in] renderer Renderer to add to the actor
+   * @return The index of the Renderer that was added
+   * @pre The renderer must be initialized.
+   *
+   */
+  uint32_t AddRenderer( Renderer& renderer );
+
+  /**
+   * @brief Gets the number of renderers on this actor.
    *
-   * @return The current depth in the hierarchy of the actor, or -1 if actor is not in the hierarchy
+   * @SINCE_1_0.0
+   * @return The number of renderers on this actor
    */
-  int GetHierarchyDepth();
+  uint32_t GetRendererCount() const;
+
+  /**
+   * @brief Gets a Renderer by index.
+   *
+   * @SINCE_1_0.0
+   * @param[in] index The index of the renderer to fetch
+   * @return The renderer at the specified index
+   * @pre The index must be between 0 and GetRendererCount()-1
+   *
+   */
+  Renderer GetRendererAt( uint32_t index );
+
+  /**
+   * @brief Removes a renderer from the actor.
+   *
+   * @SINCE_1_0.0
+   * @param[in] renderer Handle to the renderer that is to be removed
+   */
+  void RemoveRenderer( Renderer& renderer );
+
+  /**
+   * @brief Removes a renderer from the actor by index.
+   *
+   * @SINCE_1_0.0
+   * @param[in] index Index of the renderer that is to be removed
+   * @pre The index must be between 0 and GetRendererCount()-1
+   *
+   */
+  void RemoveRenderer( uint32_t index );
 
 public: // Signals
 
   /**
+   * @DEPRECATED_1_1.37 Use TouchSignal() instead.
    * @brief This signal is emitted when touch input is received.
    *
    * A callback of the following type may be connected:
@@ -1260,10 +1878,26 @@ public: // Signals
    * @endcode
    * The return value of True, indicates that the touch event should be consumed.
    * Otherwise the signal will be emitted on the next sensitive parent of the actor.
+   * @SINCE_1_0.0
+   * @return The signal to connect to
+   * @pre The Actor has been initialized.
+   */
+  TouchSignalType& TouchedSignal() DALI_DEPRECATED_API;
+
+  /**
+   * @brief This signal is emitted when touch input is received.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   bool YourCallbackName( Actor actor, TouchData& touch );
+   * @endcode
+   * The return value of True, indicates that the touch event has been consumed.
+   * Otherwise the signal will be emitted on the next sensitive parent of the actor.
+   * @SINCE_1_1.37
+   * @return The signal to connect to
    * @pre The Actor has been initialized.
-   * @return The signal to connect to.
    */
-  TouchSignalType& TouchedSignal();
+  TouchDataSignalType& TouchSignal();
 
   /**
    * @brief This signal is emitted when hover input is received.
@@ -1274,8 +1908,9 @@ public: // Signals
    * @endcode
    * The return value of True, indicates that the hover event should be consumed.
    * Otherwise the signal will be emitted on the next sensitive parent of the actor.
+   * @SINCE_1_0.0
+   * @return The signal to connect to
    * @pre The Actor has been initialized.
-   * @return The signal to connect to.
    */
   HoverSignalType& HoveredSignal();
 
@@ -1288,8 +1923,9 @@ public: // Signals
    * @endcode
    * The return value of True, indicates that the wheel event should be consumed.
    * Otherwise the signal will be emitted on the next sensitive parent of the actor.
+   * @SINCE_1_0.0
+   * @return The signal to connect to
    * @pre The Actor has been initialized.
-   * @return The signal to connect to.
    */
   WheelEventSignalType& WheelEventSignal();
 
@@ -1297,20 +1933,23 @@ public: // Signals
    * @brief This signal is emitted after the actor has been connected to the stage.
    *
    * When an actor is connected, it will be directly or indirectly parented to the root Actor.
+   * @SINCE_1_0.0
+   * @return The signal to connect to
    * @note The root Actor is provided automatically by Dali::Stage, and is always considered to be connected.
    *
    * @note When the parent of a set of actors is connected to the stage, then all of the children
    * will received this callback.
-   *
    * For the following actor tree, the callback order will be A, B, D, E, C, and finally F.
    *
+   * @code
+   *
    *       A (parent)
    *      / \
    *     B   C
    *    / \   \
    *   D   E   F
    *
-   * @return The signal
+   * @endcode
    */
   OnStageSignalType& OnStageSignal();
 
@@ -1319,88 +1958,69 @@ public: // Signals
    *
    * If an actor is disconnected it either has no parent, or is parented to a disconnected actor.
    *
+   * @SINCE_1_0.0
+   * @return The signal to connect to
    * @note When the parent of a set of actors is disconnected to the stage, then all of the children
    * will received this callback, starting with the leaf actors.
-   *
    * For the following actor tree, the callback order will be D, E, B, F, C, and finally A.
    *
+   * @code
+   *
    *       A (parent)
    *      / \
    *     B   C
    *    / \   \
    *   D   E   F
    *
-   * @return The signal
-   */
-  OffStageSignalType& OffStageSignal();
-
-public: // Renderer
-
-  /**
-   * @brief Add a renderer to this actor.
-   *
-   * @pre The renderer must be initialized.
-   *
-   * @param[in] renderer Renderer to add to the actor
-   * @return The index of the Renderer that was added
-   */
-  unsigned int AddRenderer( Renderer& renderer );
-
-  /**
-   * @brief Get the number of renderers on this actor.
+   * @endcode
    *
-   * @return the number of renderers on this actor
    */
-  unsigned int GetRendererCount() const;
-
-  /**
-   * @brief Get a Renderer by index.
-   *
-   * @pre The index must be between 0 and GetRendererCount()-1
-   *
-   * @param[in] index The index of the renderer to fetch
-   * @return The renderer at the specified index
-   */
-  Renderer GetRendererAt( unsigned int index );
+  OffStageSignalType& OffStageSignal();
 
   /**
-   * @brief Remove an renderer from the actor.
+   * @brief This signal is emitted after the size has been set on the actor during relayout
    *
-   * @param[in] renderer Handle to the renderer that is to be removed
+   * @SINCE_1_0.0
+   * @return The signal
    */
-  void RemoveRenderer( Renderer& renderer );
+  OnRelayoutSignalType& OnRelayoutSignal();
 
   /**
-   * @brief Remove an renderer from the actor by index.
-   *
-   * @pre The index must be between 0 and GetRendererCount()-1
+   * @brief This signal is emitted when the layout direction property of this or a parent actor is changed.
    *
-   * @param[in] index Index of the renderer that is to be removed
-   */
-  void RemoveRenderer( unsigned int index );
-  /**
-   * @brief This signal is emitted after the size has been set on the actor during relayout
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName( Actor actor, LayoutDirection::Type type );
+   * @endcode
+   * actor: The actor, or child of actor, whose layout direction has changed
+   * type: Whether the actor's layout direction property has changed or a parent's.
    *
-   * @return Return the signal
+   * @SINCE_1_2.60
+   * @return The signal to connect to
+   * @pre The Actor has been initialized.
    */
-  OnRelayoutSignalType& OnRelayoutSignal();
+  LayoutDirectionChangedSignalType& LayoutDirectionChangedSignal();
 
 public: // Not intended for application developers
 
+  /// @cond internal
   /**
-   * @brief This constructor is used by Dali New() methods.
+   * @brief This constructor is used by Actor::New() methods.
    *
+   * @SINCE_1_0.0
    * @param [in] actor A pointer to a newly allocated Dali resource
    */
   explicit DALI_INTERNAL Actor(Internal::Actor* actor);
+  /// @endcond
 };
 
 /**
  * @brief Helper for discarding an actor handle.
  *
  * If the handle is empty, this method does nothing.  Otherwise
- * actor.Unparent() will be called, followed by actor.Reset().
- * @param[in,out] actor A handle to an actor, or an empty handle.
+ * Actor::Unparent() will be called, followed by Actor::Reset().
+ * @SINCE_1_0.0
+ * @param[in,out] actor A handle to an actor, or an empty handle
  */
 inline void UnparentAndReset( Actor& actor )
 {
@@ -1411,8 +2031,9 @@ inline void UnparentAndReset( Actor& actor )
   }
 }
 
-
-
+/**
+ * @}
+ */
 } // namespace Dali
 
-#endif // __DALI_ACTOR_H__
+#endif // DALI_ACTOR_H