- Change @since 1.1.x to @SINCE_1_1.x to follow the new doxygen tagging rule.
- Add @SINCE_1_0.0 for all symbols not having @since tag.
- Sort the order of doxygen tags as guided by the Tizen guideline.
('platform','deprecated','brief','details','since_tizen','privlevel',
'privilege', 'remarks','param','return','retval','exception','pre','post',
'note','see')
Change-Id: I99ce2a063f1d28130bc7951de212c47b5af06509
/**
* @brief Find the enum as an integer from the table
*
- * @since 1.1.12
+ * @SINCE_1_1.12
*
* @param[in] value The string equivalent (case-insensitive, comma separate to OR values).
* @param[in] table A pointer to an array with the enumeration to string equivalents.
/**
* @brief Actor color mode.
*
+ * @SINCE_1_0.0
*/
enum ColorMode
{
- USE_OWN_COLOR, ///< Actor will use its own color
- USE_PARENT_COLOR, ///< Actor will use its parent color
- USE_OWN_MULTIPLY_PARENT_COLOR, ///< Actor will blend its color with its parents color.
- USE_OWN_MULTIPLY_PARENT_ALPHA ///< Actor will blend its alpha with its parents alpha. This means when parent fades in or out child does as well. This is the default.
+ USE_OWN_COLOR, ///< Actor will use its own color @SINCE_1_0.0
+ USE_PARENT_COLOR, ///< Actor will use its parent color @SINCE_1_0.0
+ USE_OWN_MULTIPLY_PARENT_COLOR, ///< Actor will blend its color with its parents color. @SINCE_1_0.0
+ USE_OWN_MULTIPLY_PARENT_ALPHA ///< Actor will blend its alpha with its parents alpha. This means when parent fades in or out child does as well. This is the default. @SINCE_1_0.0
};
/**
* @brief Actor position inheritance mode.
+ * @SINCE_1_0.0
*/
enum PositionInheritanceMode
{
- INHERIT_PARENT_POSITION, ///< Actor will inherit its parent position. This is the default
- USE_PARENT_POSITION, ///< Actor will copy its parent position. This is useful if many actors are stacked together in the same place. This option ignores parent origin and anchor point.
- USE_PARENT_POSITION_PLUS_LOCAL_POSITION, ///< Actor will copy its parent position and add local position. This is useful if many actors are stacked together in the same place with an offset. This option ignores parent origin and anchor point.
- DONT_INHERIT_POSITION ///< Actor will not inherit position. Local position is treated as world position. This is useful if a constraint is used to override local position or if an actor is positioned globally. This option ignores parent origin, anchor point and local position.
+ INHERIT_PARENT_POSITION, ///< Actor will inherit its parent position. This is the default @SINCE_1_0.0
+ USE_PARENT_POSITION, ///< Actor will copy its parent position. This is useful if many actors are stacked together in the same place. This option ignores parent origin and anchor point. @SINCE_1_0.0
+ USE_PARENT_POSITION_PLUS_LOCAL_POSITION, ///< Actor will copy its parent position and add local position. This is useful if many actors are stacked together in the same place with an offset. This option ignores parent origin and anchor point. @SINCE_1_0.0
+ DONT_INHERIT_POSITION ///< Actor will not inherit position. Local position is treated as world position. This is useful if a constraint is used to override local position or if an actor is positioned globally. This option ignores parent origin, anchor point and local position. @SINCE_1_0.0
};
/**
* @brief Dimensions for layout
+ * @SINCE_1_0.0
*/
namespace Dimension
{
enum Type
{
- WIDTH = 0x1, ///< Width dimension
- HEIGHT = 0x2, ///< Height dimension
+ WIDTH = 0x1, ///< Width dimension @SINCE_1_0.0
+ HEIGHT = 0x2, ///< Height dimension @SINCE_1_0.0
- ALL_DIMENSIONS = 0x3 ///< Mask to cover all flags
+ ALL_DIMENSIONS = 0x3 ///< Mask to cover all flags @SINCE_1_0.0
};
enum Meta
{
- DIMENSION_COUNT = 2 ///< Number of dimensions - update this if adding new dimension
+ DIMENSION_COUNT = 2 ///< Number of dimensions - update this if adding new dimension @SINCE_1_0.0
};
}
/**
* @brief Size negotiation resize policies
+ * @SINCE_1_0.0
*/
namespace ResizePolicy
{
enum Type
{
- FIXED, ///< Size is fixed as set by SetSize
- USE_NATURAL_SIZE, ///< Size is to use the actor's natural size
- FILL_TO_PARENT, ///< Size is to fill up to the actor's parent's bounds. Aspect ratio not maintained.
- SIZE_RELATIVE_TO_PARENT, ///< The actors size will be ( ParentSize * SizeRelativeToParentFactor ).
- SIZE_FIXED_OFFSET_FROM_PARENT, ///< The actors size will be ( ParentSize + SizeRelativeToParentFactor ).
- FIT_TO_CHILDREN, ///< Size will adjust to wrap around all children
- DIMENSION_DEPENDENCY, ///< One dimension is dependent on the other
- USE_ASSIGNED_SIZE ///< The size will be assigned to the actor
+ FIXED, ///< Size is fixed as set by SetSize @SINCE_1_0.0
+ USE_NATURAL_SIZE, ///< Size is to use the actor's natural size @SINCE_1_0.0
+ FILL_TO_PARENT, ///< Size is to fill up to the actor's parent's bounds. Aspect ratio not maintained. @SINCE_1_0.0
+ SIZE_RELATIVE_TO_PARENT, ///< The actors size will be ( ParentSize * SizeRelativeToParentFactor ). @SINCE_1_0.0
+ SIZE_FIXED_OFFSET_FROM_PARENT, ///< The actors size will be ( ParentSize + SizeRelativeToParentFactor ). @SINCE_1_0.0
+ FIT_TO_CHILDREN, ///< Size will adjust to wrap around all children @SINCE_1_0.0
+ DIMENSION_DEPENDENCY, ///< One dimension is dependent on the other @SINCE_1_0.0
+ USE_ASSIGNED_SIZE ///< The size will be assigned to the actor @SINCE_1_0.0
};
const Type DEFAULT = USE_NATURAL_SIZE; ///< Default resize policy
}
/**
* @brief Policies to determine how an actor should resize itself when having its size set in size negotiation
+ * @SINCE_1_0.0
*/
namespace SizeScalePolicy
{
enum Type
{
- USE_SIZE_SET, ///< Use the size that was set
- FIT_WITH_ASPECT_RATIO, ///< Fit within the size set maintaining natural size aspect ratio
- FILL_WITH_ASPECT_RATIO ///< Fill up the size set maintaining natural size aspect ratio. May exceed size bounds in one dimension.
+ USE_SIZE_SET, ///< Use the size that was set @SINCE_1_0.0
+ FIT_WITH_ASPECT_RATIO, ///< Fit within the size set maintaining natural size aspect ratio @SINCE_1_0.0
+ FILL_WITH_ASPECT_RATIO ///< Fill up the size set maintaining natural size aspect ratio. May exceed size bounds in one dimension. @SINCE_1_0.0
};
}
/**
* @brief Different types of alignment.
+ * @SINCE_1_0.0
*/
namespace HorizontalAlignment
{
enum Type
{
- LEFT, ///< Align horizontally left
- CENTER, ///< Align horizontally center
- RIGHT ///< Align horiztonally right
+ LEFT, ///< Align horizontally left @SINCE_1_0.0
+ CENTER, ///< Align horizontally center @SINCE_1_0.0
+ RIGHT ///< Align horiztonally right @SINCE_1_0.0
};
}
{
enum Type
{
- TOP, ///< Align vertically top
- CENTER, ///< Align vertically center
- BOTTOM ///< Align vertically bottom
+ TOP, ///< Align vertically top @SINCE_1_0.0
+ CENTER, ///< Align vertically center @SINCE_1_0.0
+ BOTTOM ///< Align vertically bottom @SINCE_1_0.0
};
}
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.
* |-------------------|------------------------------|
* | show | %SetVisible( true ) |
* | hide | %SetVisible( false ) |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Actor : public Handle
/**
* @brief An enumeration of properties belonging to the Actor class.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- PARENT_ORIGIN = DEFAULT_ACTOR_PROPERTY_START_INDEX, ///< name "parentOrigin", type Vector3
- PARENT_ORIGIN_X, ///< name "parentOriginX", type float
- PARENT_ORIGIN_Y, ///< name "parentOriginY", type float
- PARENT_ORIGIN_Z, ///< name "parentOriginZ", type float
- ANCHOR_POINT, ///< name "anchorPoint", type Vector3
- ANCHOR_POINT_X, ///< name "anchorPointX", type float
- ANCHOR_POINT_Y, ///< name "anchorPointY", type float
- ANCHOR_POINT_Z, ///< name "anchorPointZ", type float
- SIZE, ///< name "size", type Vector3
- SIZE_WIDTH, ///< name "sizeWidth", type float
- SIZE_HEIGHT, ///< name "sizeHeight", type float
- SIZE_DEPTH, ///< name "sizeDepth", type float
- POSITION, ///< name "position", type Vector3
- POSITION_X, ///< name "positionX", type float
- POSITION_Y, ///< name "positionY", type float
- POSITION_Z, ///< name "positionZ", type float
- WORLD_POSITION, ///< name "worldPosition", type Vector3 (read-only)
- WORLD_POSITION_X, ///< name "worldPositionX", type float (read-only)
- WORLD_POSITION_Y, ///< name "worldPositionY", type float (read-only)
- WORLD_POSITION_Z, ///< name "worldPositionZ", type float (read-only)
- ORIENTATION, ///< name "orientation", type Quaternion
- WORLD_ORIENTATION, ///< name "worldOrientation", type Quaternion (read-only)
- SCALE, ///< name "scale", type Vector3
- SCALE_X, ///< name "scaleX", type float
- SCALE_Y, ///< name "scaleY", type float
- SCALE_Z, ///< name "scaleZ", type float
- WORLD_SCALE, ///< name "worldScale", type Vector3 (read-only)
- VISIBLE, ///< name "visible", type bool
- COLOR, ///< name "color", type Vector4
- COLOR_RED, ///< name "colorRed", type float
- COLOR_GREEN, ///< name "colorGreen", type float
- COLOR_BLUE, ///< name "colorBlue", type float
- COLOR_ALPHA, ///< name "colorAlpha", type float
- WORLD_COLOR, ///< name "worldColor", type Vector4 (read-only)
- WORLD_MATRIX, ///< name "worldMatrix", type Matrix (read-only)
- NAME, ///< name "name", type std::string
- SENSITIVE, ///< name "sensitive", type bool
- LEAVE_REQUIRED, ///< name "leaveRequired", type bool
- INHERIT_ORIENTATION, ///< name "inheritOrientation", type bool
- INHERIT_SCALE, ///< name "inheritScale", type bool
- COLOR_MODE, ///< name "colorMode", type std::string
- POSITION_INHERITANCE, ///< name "positionInheritance", type std::string
- DRAW_MODE, ///< name "drawMode", type std::string
- SIZE_MODE_FACTOR, ///< name "sizeModeFactor", type Vector3
- WIDTH_RESIZE_POLICY, ///< name "widthResizePolicy", type String
- HEIGHT_RESIZE_POLICY, ///< name "heightResizePolicy", type String
- SIZE_SCALE_POLICY, ///< name "sizeScalePolicy", type String
- WIDTH_FOR_HEIGHT, ///< name "widthForHeight", type Boolean
- HEIGHT_FOR_WIDTH, ///< name "heightForWidth", type Boolean
- PADDING, ///< name "padding", type Vector4
- MINIMUM_SIZE, ///< name "minimumSize", type Vector2
- MAXIMUM_SIZE, ///< name "maximumSize", type Vector2
+ PARENT_ORIGIN = DEFAULT_ACTOR_PROPERTY_START_INDEX, ///< name "parentOrigin", type Vector3 @SINCE_1_0.0
+ PARENT_ORIGIN_X, ///< name "parentOriginX", type float @SINCE_1_0.0
+ PARENT_ORIGIN_Y, ///< name "parentOriginY", type float @SINCE_1_0.0
+ PARENT_ORIGIN_Z, ///< name "parentOriginZ", type float @SINCE_1_0.0
+ ANCHOR_POINT, ///< name "anchorPoint", type Vector3 @SINCE_1_0.0
+ ANCHOR_POINT_X, ///< name "anchorPointX", type float @SINCE_1_0.0
+ ANCHOR_POINT_Y, ///< name "anchorPointY", type float @SINCE_1_0.0
+ ANCHOR_POINT_Z, ///< name "anchorPointZ", type float @SINCE_1_0.0
+ SIZE, ///< name "size", type Vector3 @SINCE_1_0.0
+ SIZE_WIDTH, ///< name "sizeWidth", type float @SINCE_1_0.0
+ SIZE_HEIGHT, ///< name "sizeHeight", type float @SINCE_1_0.0
+ SIZE_DEPTH, ///< name "sizeDepth", type float @SINCE_1_0.0
+ POSITION, ///< name "position", type Vector3 @SINCE_1_0.0
+ POSITION_X, ///< name "positionX", type float @SINCE_1_0.0
+ POSITION_Y, ///< name "positionY", type float @SINCE_1_0.0
+ POSITION_Z, ///< name "positionZ", type float @SINCE_1_0.0
+ WORLD_POSITION, ///< name "worldPosition", type Vector3 (read-only) @SINCE_1_0.0
+ WORLD_POSITION_X, ///< name "worldPositionX", type float (read-only) @SINCE_1_0.0
+ WORLD_POSITION_Y, ///< name "worldPositionY", type float (read-only) @SINCE_1_0.0
+ WORLD_POSITION_Z, ///< name "worldPositionZ", type float (read-only) @SINCE_1_0.0
+ ORIENTATION, ///< name "orientation", type Quaternion @SINCE_1_0.0
+ WORLD_ORIENTATION, ///< name "worldOrientation", type Quaternion (read-only) @SINCE_1_0.0
+ SCALE, ///< name "scale", type Vector3 @SINCE_1_0.0
+ SCALE_X, ///< name "scaleX", type float @SINCE_1_0.0
+ SCALE_Y, ///< name "scaleY", type float @SINCE_1_0.0
+ SCALE_Z, ///< name "scaleZ", type float @SINCE_1_0.0
+ WORLD_SCALE, ///< name "worldScale", type Vector3 (read-only) @SINCE_1_0.0
+ VISIBLE, ///< name "visible", type bool @SINCE_1_0.0
+ COLOR, ///< name "color", type Vector4 @SINCE_1_0.0
+ COLOR_RED, ///< name "colorRed", type float @SINCE_1_0.0
+ COLOR_GREEN, ///< name "colorGreen", type float @SINCE_1_0.0
+ COLOR_BLUE, ///< name "colorBlue", type float @SINCE_1_0.0
+ COLOR_ALPHA, ///< name "colorAlpha", type float @SINCE_1_0.0
+ WORLD_COLOR, ///< name "worldColor", type Vector4 (read-only) @SINCE_1_0.0
+ WORLD_MATRIX, ///< name "worldMatrix", type Matrix (read-only) @SINCE_1_0.0
+ NAME, ///< name "name", type std::string @SINCE_1_0.0
+ SENSITIVE, ///< name "sensitive", type bool @SINCE_1_0.0
+ LEAVE_REQUIRED, ///< name "leaveRequired", type bool @SINCE_1_0.0
+ INHERIT_ORIENTATION, ///< name "inheritOrientation", type bool @SINCE_1_0.0
+ INHERIT_SCALE, ///< name "inheritScale", type bool @SINCE_1_0.0
+ COLOR_MODE, ///< name "colorMode", type std::string @SINCE_1_0.0
+ POSITION_INHERITANCE, ///< name "positionInheritance", type std::string @SINCE_1_0.0
+ DRAW_MODE, ///< name "drawMode", type std::string @SINCE_1_0.0
+ SIZE_MODE_FACTOR, ///< name "sizeModeFactor", type Vector3 @SINCE_1_0.0
+ WIDTH_RESIZE_POLICY, ///< name "widthResizePolicy", type String @SINCE_1_0.0
+ HEIGHT_RESIZE_POLICY, ///< name "heightResizePolicy", type String @SINCE_1_0.0
+ SIZE_SCALE_POLICY, ///< name "sizeScalePolicy", type String @SINCE_1_0.0
+ WIDTH_FOR_HEIGHT, ///< name "widthForHeight", type Boolean @SINCE_1_0.0
+ HEIGHT_FOR_WIDTH, ///< name "heightForWidth", type Boolean @SINCE_1_0.0
+ PADDING, ///< name "padding", type Vector4 @SINCE_1_0.0
+ MINIMUM_SIZE, ///< name "minimumSize", type Vector2 @SINCE_1_0.0
+ MAXIMUM_SIZE, ///< name "maximumSize", type Vector2 @SINCE_1_0.0
};
};
// 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; ///< Touch signal type @SINCE_1_0.0
+ 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
// Creation
* @brief Create an uninitialized Actor; this can be initialized with Actor::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
Actor();
/**
* @brief Create an initialized Actor.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Dali resource.
*/
static Actor New();
* If handle points to a 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
*/
* @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
*
+ * @SINCE_1_0.0
* @param [in] copy The actor to copy.
*/
Actor(const Actor& copy);
/**
* @brief Assignment operator
*
+ * @SINCE_1_0.0
* @param [in] rhs The actor to copy.
*/
Actor& operator=(const Actor& rhs);
/**
* @brief Retrieve the Actor's name.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's name.
+ * @pre The Actor has been initialized.
*/
const std::string& GetName() const;
/**
* @brief Sets the Actor's name.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param [in] name The new name.
+ * @pre The Actor has been initialized.
*/
void SetName(const std::string& name);
/**
* @brief Retrieve the unique ID of the actor.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The ID.
+ * @pre The Actor has been initialized.
*/
unsigned int GetId() const;
/**
* @brief Query whether an actor is the root actor, which is owned by the Stage.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return True if the actor is the root actor.
+ * @pre The Actor has been initialized.
*/
bool IsRoot() const;
* @brief Query 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.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return True if the actor is connected to the Stage.
+ * @pre The Actor has been initialized.
+ * @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.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return True if the actor is a layer.
+ * @pre The Actor has been initialized.
*/
bool IsLayer() const;
/**
* @brief Gets the layer in which the actor is present.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The layer, which will be uninitialized if the actor is off-stage.
+ * @pre The Actor has been initialized.
*/
Layer GetLayer();
* 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.
* @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.
*/
* @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);
* @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.
*
- * @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;
/**
* @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
+ * @pre The Actor has been initialized.
*/
Actor GetChildAt(unsigned int 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
- * @pre The Actor has been initialized.
+ * @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.
*/
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
- * @pre The Actor has been initialized.
+ * @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.
*/
Actor FindChildById(const unsigned int id);
/**
* @brief Retrieve the actor's parent.
*
- * @pre The actor has been initialized.
+ * @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.
*/
Actor GetParent() const;
* 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
+ * @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.
*
+ * @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;
* 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'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
+ * @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.
*
+ * @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;
* 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.
- * @pre The actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
+ * @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().
*/
void SetSize(float width, float height);
*
* Geometry can be scaled to fit within this area.
* This does not interfere with the actors scale factor.
- * @pre The actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentSize().
+ * @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().
*/
void SetSize(float width, float height, float depth);
* 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);
*
* 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.
*
+ * @SINCE_1_0.0
+ * @return The actor's current 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.
*/
Vector3 GetTargetSize() const;
/**
* @brief Retrieve 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 Return 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.
*
* The Actor's z position will be set to 0.0f.
- * @pre The Actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
+ * @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().
*/
void SetPosition(float x, float y);
/**
* @brief Sets the position of the Actor.
*
- * @pre The Actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentPosition().
+ * @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().
*/
void SetPosition(float x, float y, float z);
/**
* @brief Sets the position of the Actor.
*
+ * @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.
*
+ * @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.
*
+ * @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.
*
+ * @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.
*
- * @pre The actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] distance The actor will move by this distance.
+ * @pre The actor has been initialized.
*/
void TranslateBy(const Vector3& distance);
/**
* @brief Retrieve 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.
*
- * @note The actor will not have a world-position, unless it has previously been added to the stage.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's current position in world coordinates.
+ * @pre The Actor has been initialized.
+ * @note The actor will not have a world-position, unless it has previously been added to the stage.
*/
Vector3 GetCurrentWorldPosition() const;
*
* The default is to inherit.
* Switching this off means that using SetPosition() sets the actor's world position.
- * @see PositionInheritanceMode
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] mode to use
+ * @pre The Actor has been initialized.
+ * @see PositionInheritanceMode
*/
void SetPositionInheritanceMode( PositionInheritanceMode mode );
/**
* @brief Returns the actors position inheritance mode.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return true if the actor inherit's it's parent orientation, false if it uses world orientation.
+ * @pre The Actor has been initialized.
*/
PositionInheritanceMode GetPositionInheritanceMode() const;
* @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.
- * @pre The Actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOrientation().
+ * @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().
*/
void SetOrientation( const Degree& angle, const Vector3& axis )
{
* @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.
- * @pre The Actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentOrientation().
+ * @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().
*/
void SetOrientation(const Radian& angle, const Vector3& axis);
* @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.
*
- * @pre The actor has been initialized.
+ * @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.
*/
void RotateBy( const Degree& angle, const Vector3& axis )
{
/**
* @brief Apply a relative rotation to an actor.
*
- * @pre The actor has been initialized.
+ * @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.
*/
void RotateBy(const Radian& angle, const Vector3& axis);
/**
* @brief Apply a relative rotation to an actor.
*
- * @pre The actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] relativeRotation The rotation to combine with the existing orientation.
+ * @pre The actor has been initialized.
*/
void RotateBy(const Quaternion& relativeRotation);
/**
* @brief Retreive 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;
*
* Default is to inherit.
* Switching this off means that using SetOrientation() sets the actor's world orientation.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] inherit - true if the actor should inherit orientation, false otherwise.
+ * @pre The Actor has been initialized.
*/
void SetInheritOrientation(bool inherit);
/**
* @brief Returns whether the actor inherit's it's parent's orientation.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return true if the actor inherit's it's parent orientation, false if it uses world orientation.
+ * @pre The Actor has been initialized.
*/
bool IsOrientationInherited() const;
/**
* @brief Retrieve the world-orientation of the Actor.
*
- * @note The actor will not have a world-orientation, unless it has previously been added to the stage.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's current orientation in the world.
+ * @pre The Actor has been initialized.
+ * @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.
*
+ * @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.
*
- * @pre The Actor has been initialized.
- * @note This is an asynchronous method; the value written may not match a value subsequently read with GetCurrentScale().
+ * @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().
*/
void SetScale(float scaleX, float scaleY, float scaleZ);
/**
* @brief Set 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.
*
- * @pre The actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] relativeScale The scale to combine with the actors existing scale.
+ * @pre The actor has been initialized.
*/
void ScaleBy(const Vector3& relativeScale);
/**
* @brief Retrieve 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.
*
- * @note The actor will not have a world-scale, unless it has previously been added to the stage.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's current scale in the world.
+ * @pre The Actor has been initialized.
+ * @note The actor will not have a world-scale, unless it has previously been added to the stage.
*/
Vector3 GetCurrentWorldScale() const;
*
* Default is to inherit.
* Switching this off means that using SetScale() sets the actor's world scale.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param[in] inherit - true if the actor should inherit scale, false otherwise.
+ * @pre The Actor has been initialized.
*/
void SetInheritScale( bool inherit );
/**
* @brief Returns whether the actor inherit's it's parent's scale.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return true if the actor inherit's it's parent scale, false if it uses world scale.
+ * @pre The Actor has been initialized.
*/
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;
/**
* @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.
*
+ * @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.
*
+ * @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;
* @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.
*
* 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;
*
* This specifies whether the Actor uses its own color, or inherits
* its parent color. The default is USE_OWN_MULTIPLY_PARENT_ALPHA.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param [in] colorMode to use.
+ * @pre The Actor has been initialized.
*/
void SetColorMode( ColorMode colorMode );
/**
* @brief Returns the actor's color mode.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return currently used colorMode.
+ * @pre The Actor has been initialized.
*/
ColorMode GetColorMode() const;
/**
* @brief Retrieve 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.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's current color in the world.
+ * @pre The Actor has been initialized.
+ * @note The actor will not have a world-color, unless it has previously been added to the stage.
*/
Vector4 GetCurrentWorldColor() const;
* within the Layer. Stencil actors are therefore drawn into the stencil buffer before any other
* actors within the Layer.
*
+ * @SINCE_1_0.0
* @param[in] drawMode The new draw-mode to use.
* @note Setting STENCIL will override OVERLAY_2D, if that would otherwise have been inherited.
* @note Layers do not inherit the DrawMode from their parents.
/**
* @brief Query how the actor and its children will be drawn.
*
+ * @SINCE_1_0.0
* @return True if the Actor is an overlay.
*/
DrawMode::Type GetDrawMode() const;
* 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 SignalTouch() and SignalHover().
*/
void SetSensitive(bool sensitive);
/**
* @brief Query whether an actor emits touch or hover event signals.
*
+ * @SINCE_1_0.0
+ * @return true, if emission of touch or hover event signals is enabled, 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)
- * @pre The Actor has been initialized.
+ * @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.
+ * @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;
* @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.
*
- * @pre The Actor has been initialized.
- * @param[in] required Should be set to true if a Leave event is required
*/
void SetLeaveRequired(bool required);
* @brief This returns whether the actor requires touch or hover events whenever touch or hover motion events leave
* the boundary of the actor.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return true if a Leave event is required, false otherwise.
+ * @pre The Actor has been initialized.
*/
bool GetLeaveRequired() const;
* @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.
+ * @pre The Actor has been initialized.
*/
void SetKeyboardFocusable( bool focusable );
/**
* @brief Returns whether the actor is focusable by keyboard navigation.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return true if the actor is focusable by keyboard navigation, false if not.
+ * @pre The Actor has been initialized.
*/
bool IsKeyboardFocusable() const;
// SIZE NEGOTIATION
/**
- * Set the resize policy to be used for the given dimension(s)
+ * @brief Set 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.
*/
void SetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension );
/**
- * Return the resize policy used for a single dimension
+ * @brief Return 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
*/
/**
* @brief Set 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
*
+ * @SINCE_1_0.0
* @return Return the size set policy
*/
SizeScalePolicy::Type GetSizeScalePolicy() const;
* This actor's size is set to the actor's size multipled by or added to this factor,
* depending on ResizePolicy (See SetResizePolicy).
*
- * @pre The Actor has been initialized.
+ * @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.
*/
void SetSizeModeFactor( const Vector3& factor );
/**
* @brief Retrieve the relative to parent size factor of the actor.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The Actor's current relative size factor.
+ * @pre The Actor has been initialized.
*/
Vector3 GetSizeModeFactor() const;
* The natural size is used for default calculation.
* size 0 is treated as aspect ratio 1:1.
*
+ * @SINCE_1_0.0
* @param width Width to use
* @return Return the height based on the width
*/
* The natural size is used for default calculation.
* size 0 is treated as aspect ratio 1:1.
*
+ * @SINCE_1_0.0
* @param 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 Return the value of negotiated dimension for the given dimension
*
+ * @SINCE_1_0.0
* @param dimension The dimension to retrieve
* @return Return the value of the negotiated dimension
*/
/**
* @brief Set 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 Return the value of the padding
*
+ * @SINCE_1_0.0
* @param paddingOut The returned padding data
*/
void GetPadding( Padding& paddingOut ) const;
/**
* @brief Set 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
*
+ * @SINCE_1_0.0
* @return Return the mininmum size
*/
Vector2 GetMinimumSize();
/**
* @brief Set 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
*
+ * @SINCE_1_0.0
* @return Return the maximum size
*/
Vector2 GetMaximumSize();
/**
* @brief Get depth in the hierarchy for the actor
*
+ * @SINCE_1_0.0
* @return The current depth in the hierarchy of the actor, or -1 if actor is not in the hierarchy
*/
int GetHierarchyDepth();
/**
* @brief Add a renderer to this actor.
*
- * @pre The renderer must be initialized.
- *
+ * @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.
+ *
*/
unsigned int AddRenderer( Renderer& renderer );
/**
* @brief Get the number of renderers on this actor.
*
+ * @SINCE_1_0.0
* @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
- *
+ * @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( unsigned int index );
/**
* @brief Remove an 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 Remove an 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
*
- * @param[in] index Index of the renderer that is to be removed
*/
void RemoveRenderer( unsigned int index );
* @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.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The Actor has been initialized.
*/
TouchSignalType& TouchedSignal();
* @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.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The Actor has been initialized.
*/
HoverSignalType& HoveredSignal();
* @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.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The Actor has been initialized.
*/
WheelEventSignalType& WheelEventSignal();
* @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
* @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
* / \ \
* D E F
*
- * @return The signal
*/
OnStageSignalType& OnStageSignal();
*
* If an actor is disconnected it either has no parent, or is parented to a disconnected actor.
*
+ * @SINCE_1_0.0
+ * @return The signal
* @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.
*
* / \ \
* D E F
*
- * @return The signal
*/
OffStageSignalType& OffStageSignal();
/**
* @brief This signal is emitted after the size has been set on the actor during relayout
*
+ * @SINCE_1_0.0
* @return The signal
*/
OnRelayoutSignalType& OnRelayoutSignal();
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] actor A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL Actor(Internal::Actor* actor);
*
* If the handle is empty, this method does nothing. Otherwise
* 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 )
{
/**
* @brief Blending mode.
+ * @SINCE_1_0.0
*/
enum Type
{
- OFF, ///< Blending is disabled.
- AUTO, ///< Blending is enabled if there is alpha channel. This is the default mode.
- ON ///< Blending is enabled.
+ OFF, ///< Blending is disabled. @SINCE_1_0.0
+ AUTO, ///< Blending is enabled if there is alpha channel. This is the default mode. @SINCE_1_0.0
+ ON ///< Blending is enabled. @SINCE_1_0.0
};
} //namespace BlendingMode
/**
* @brief Blending Factor.
*
+ * @SINCE_1_0.0
* @see Dali::RenderableActor::SetBlendFunc() and Dali::RenderableActor::GetBlendFunc()
*/
enum Type
/**
* @brief Blending Equation.
*
+ * @SINCE_1_0.0
* @see Dali::RenderableActor::SetBlendEquation() and Dali::RenderableActor::GetBlendEquation()
*/
enum Type
{
/**
* @brief Type determines how camera operates.
+ * @SINCE_1_0.0
*/
enum Type
{
- FREE_LOOK, ///< Camera orientation is taken from CameraActor
- LOOK_AT_TARGET, ///< Camera is oriented to always look at a target
+ FREE_LOOK, ///< Camera orientation is taken from CameraActor @SINCE_1_0.0
+ LOOK_AT_TARGET, ///< Camera is oriented to always look at a target @SINCE_1_0.0
};
/**
* @brief Projection modes.
+ * @SINCE_1_0.0
*/
enum ProjectionMode
{
- PERSPECTIVE_PROJECTION, ///< Distance causes foreshortening; objects further from the camera appear smaller
- ORTHOGRAPHIC_PROJECTION, ///< Relative distance from the camera does not affect the size of objects
+ PERSPECTIVE_PROJECTION, ///< Distance causes foreshortening; objects further from the camera appear smaller @SINCE_1_0.0
+ ORTHOGRAPHIC_PROJECTION, ///< Relative distance from the camera does not affect the size of objects @SINCE_1_0.0
};
} // namespace Camera
* For LOOK_AT_TARGET the actor's orientation is ignored, instead the camera looks at TARGET_POSITION
* in world coordinates.
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API CameraActor : public Actor
{
/**
* @brief An enumeration of properties belonging to the CameraActor class.
* Properties additional to Actor.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- TYPE = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "type", type std::string
- PROJECTION_MODE, ///< name "projectionMode", type std::string
- FIELD_OF_VIEW, ///< name "fieldOfView", type float
- ASPECT_RATIO, ///< name "aspectRatio", type float
- NEAR_PLANE_DISTANCE, ///< name "nearPlaneDistance", type float
- FAR_PLANE_DISTANCE, ///< name "farPlaneDistance", type float
- LEFT_PLANE_DISTANCE, ///< name "leftPlaneDistance", type float
- RIGHT_PLANE_DISTANCE, ///< name "rightPlaneDistance", type float
- TOP_PLANE_DISTANCE, ///< name "topPlaneDistance", type float
- BOTTOM_PLANE_DISTANCE, ///< name "bottomPlaneDistance", type float
- TARGET_POSITION, ///< name "targetPosition", type Vector3
- PROJECTION_MATRIX, ///< name "projectionMatrix", type Matrix
- VIEW_MATRIX, ///< name "viewMatrix", type Matrix
- INVERT_Y_AXIS, ///< name "invertYAxis", type bool
+ TYPE = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "type", type std::string @SINCE_1_0.0
+ PROJECTION_MODE, ///< name "projectionMode", type std::string @SINCE_1_0.0
+ FIELD_OF_VIEW, ///< name "fieldOfView", type float @SINCE_1_0.0
+ ASPECT_RATIO, ///< name "aspectRatio", type float @SINCE_1_0.0
+ NEAR_PLANE_DISTANCE, ///< name "nearPlaneDistance", type float @SINCE_1_0.0
+ FAR_PLANE_DISTANCE, ///< name "farPlaneDistance", type float @SINCE_1_0.0
+ LEFT_PLANE_DISTANCE, ///< name "leftPlaneDistance", type float @SINCE_1_0.0
+ RIGHT_PLANE_DISTANCE, ///< name "rightPlaneDistance", type float @SINCE_1_0.0
+ TOP_PLANE_DISTANCE, ///< name "topPlaneDistance", type float @SINCE_1_0.0
+ BOTTOM_PLANE_DISTANCE, ///< name "bottomPlaneDistance", type float @SINCE_1_0.0
+ TARGET_POSITION, ///< name "targetPosition", type Vector3 @SINCE_1_0.0
+ PROJECTION_MATRIX, ///< name "projectionMatrix", type Matrix @SINCE_1_0.0
+ VIEW_MATRIX, ///< name "viewMatrix", type Matrix @SINCE_1_0.0
+ INVERT_Y_AXIS, ///< name "invertYAxis", type bool @SINCE_1_0.0
};
};
*
* Initialise it using CameraActor::New(). Calling member functions
* with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
CameraActor();
* @brief Create a CameraActor object.
*
* Sets the default camera perspective projection for the stage's size. @see SetPerspectiveProjection().
+ * @SINCE_1_0.0
* @return the newly created camera actor.
*/
static CameraActor New();
*
* Sets the default camera perspective projection for the given canvas size. @see SetPerspectiveProjection().
*
+ * @SINCE_1_0.0
* @param[in] size The canvas size.
* @return the newly created camera actor.
*/
*
* If handle points to a CameraActor 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 CameraActor or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~CameraActor();
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param [in] copy The actor to copy.
*/
CameraActor(const CameraActor& copy);
/**
* @brief Assignment operator
*
+ * @SINCE_1_0.0
* @param [in] rhs The actor to copy.
*/
CameraActor& operator=(const CameraActor& rhs);
/**
* @brief Set the camera type.
* The default type is Dali::Camera::FREE_LOOK
+ * @SINCE_1_0.0
* @param[in] type The camera type
*/
void SetType( Dali::Camera::Type type );
/**
* @brief Get the type of the camera.
*
+ * @SINCE_1_0.0
* @return the type of camera
*/
Dali::Camera::Type GetType() const;
/**
* @brief Set the projection mode.
*
+ * @SINCE_1_0.0
* @param[in] mode One of PERSPECTIVE_PROJECTION or ORTHOGRAPHIC_PROJECTION
*/
void SetProjectionMode( Dali::Camera::ProjectionMode mode );
/**
* @brief Get the projection mode.
*
+ * @SINCE_1_0.0
* @return One of PERSPECTIVE_PROJECTION or ORTHOGRAPHIC_PROJECTION
*/
Dali::Camera::ProjectionMode GetProjectionMode() const;
/**
* @brief Set the field of view.
*
+ * @SINCE_1_0.0
* @param[in] fieldOfView The field of view in radians
*/
void SetFieldOfView( float fieldOfView );
* @brief Get the field of view in Radians.
*
* The default field of view is 45 degrees
+ * @SINCE_1_0.0
* @return The field of view in radians
*/
float GetFieldOfView( );
/**
* @brief Set the aspect ratio.
*
+ * @SINCE_1_0.0
* @param[in] aspectRatio The aspect ratio
*/
void SetAspectRatio( float aspectRatio );
* @brief Get the aspect ratio of the camera.
*
* The default aspect ratio is 4.0f/3.0f
+ * @SINCE_1_0.0
* @return the aspect ratio
*/
float GetAspectRatio( );
/**
* @brief Sets the near clipping plane distance.
*
+ * @SINCE_1_0.0
* @param[in] nearClippingPlane distance of the near clipping plane
*/
void SetNearClippingPlane( float nearClippingPlane );
*
* The default near clipping plane is 800.0f, to match the default screen height
* Reduce this value to see objects closer to the camera
+ * @SINCE_1_0.0
* @return the near clipping plane value
*/
float GetNearClippingPlane( );
/**
* @brief Sets the far clipping plane distance.
*
+ * @SINCE_1_0.0
* @param[in] farClippingPlane distance of the far clipping plane
*/
void SetFarClippingPlane( float farClippingPlane );
* @brief Get the far clipping plane distance.
*
* The default value is the default near clipping plane + (0xFFFF>>4)
+ * @SINCE_1_0.0
* @return the far clipping plane value
*/
float GetFarClippingPlane( );
/**
* @brief Set the target position of the camera.
*
- * @pre Camera type is LOOK_AT_TARGET
+ * @SINCE_1_0.0
* @param[in] targetPosition The position of the target to look at
+ * @pre Camera type is LOOK_AT_TARGET
*/
void SetTargetPosition( const Vector3& targetPosition );
* @brief Get Camera Target position.
*
* The target position is Vector3::ZERO
- * @pre Camera type is LOOK_AT_TARGET
+ * @SINCE_1_0.0
* @return The target position of the camera
+ * @pre Camera type is LOOK_AT_TARGET
*/
Vector3 GetTargetPosition() const;
* @brief Request for an inversion on the Y axis on the projection calculation.
*
* The default value is not inverted.
+ * @SINCE_1_0.0
* @param[in] invertYAxis True if the Y axis should be inverted
*/
void SetInvertYAxis(bool invertYAxis);
/**
* @brief Get whether the Y axis is inverted.
*
+ * @SINCE_1_0.0
* @return True if the Y axis is inverted, false otherwise
*/
bool GetInvertYAxis();
* If the canvas size is ZERO, it sets the default camera perspective
* projection for the stage's size.
*
+ * @SINCE_1_0.0
+ * @param[in] size The canvas size.
* @pre If size is non ZERO, \e width and \e height must be greater than zero.
*
- * @param[in] size The canvas size.
*/
void SetPerspectiveProjection( const Size& size );
* bounding box match those that would be created by using
* SetPerspectiveProjection with the same size.
*
+ * @SINCE_1_0.0
* @param[in] size Size of XY plane (normal to camera axis)
*/
void SetOrthographicProjection( const Size& size );
*
* This does not change the Z value of the camera actor.
*
+ * @SINCE_1_0.0
* @param[in] left Distance to left clip plane (normal to camera axis)
* @param[in] right Distance to right clip plane (normal to camera axis)
* @param[in] top Distance to top clip plane (normal to camera axis)
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] actor A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL CameraActor(Internal::CameraActor* actor);
/**
* @brief Pointer to Dali::CustomActorImpl object.
+ * @SINCE_1_0.0
*/
typedef IntrusivePtr<CustomActorImpl> CustomActorImplPtr;
*
* This provides a series of pure virtual methods, which are called when actor-specific events occur.
* An CustomActorImpl is typically owned by a single CustomActor instance; see also CustomActor::New(CustomActorImplPtr).
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API CustomActorImpl : public Dali::RefObject
{
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~CustomActorImpl();
/**
* @brief Used by derived CustomActorImpl instances, to access the public Actor interface.
*
+ * @SINCE_1_0.0
* @return A pointer to self, or an uninitialized pointer if the CustomActorImpl is not owned.
*/
CustomActor Self() const;
* @brief Called 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
* @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
*
* If an actor is disconnected it either has no parent, or is parented to a disconnected actor.
*
+ * @SINCE_1_0.0
* @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.
*
/**
* @brief Called after a child has been added to the owning actor.
*
+ * @SINCE_1_0.0
* @param[in] child The child which has been added.
*/
virtual void OnChildAdd(Actor& child) = 0;
/**
* @brief Called after a child has been removed from the owning actor.
*
+ * @SINCE_1_0.0
* @param[in] child The child being removed.
*/
virtual void OnChildRemove(Actor& child) = 0;
/**
* @brief Called when the owning actor property is set.
*
+ * @SINCE_1_0.0
* @param[in] index The Property index that was set.
* @param[in] propertyValue The value to set.
*/
/**
* @brief Called when the owning actor's size is set e.g. using Actor::SetSize().
*
+ * @SINCE_1_0.0
* @param[in] targetSize The target size. Note that this target size may not match the size returned via Actor::GetSize().
*/
virtual void OnSizeSet(const Vector3& targetSize) = 0;
/**
* @brief Called when the owning actor's size is animated e.g. using Animation::AnimateTo( Property( actor, Actor::Property::SIZE ), ... ).
*
+ * @SINCE_1_0.0
* @param[in] animation The object which is animating the owning actor.
* @param[in] targetSize The target size. Note that this target size may not match the size returned via Actor::GetSize().
*/
/**
* @brief Called after a touch-event is received by the owning actor.
*
- * @note This must be enabled during construction; see CustomActorImpl::CustomActorImpl(bool)
+ * @SINCE_1_0.0
* @param[in] event The touch event.
* @return True if the event should be consumed.
+ * @note This must be enabled during construction; see CustomActorImpl::CustomActorImpl(bool)
*/
virtual bool OnTouchEvent(const TouchEvent& event) = 0;
/**
* @brief Called after a hover-event is received by the owning actor.
*
- * @note This must be enabled during construction; see CustomActorImpl::SetRequiresHoverEvents(bool)
+ * @SINCE_1_0.0
* @param[in] event The hover event.
* @return True if the event should be consumed.
+ * @note This must be enabled during construction; see CustomActorImpl::SetRequiresHoverEvents(bool)
*/
virtual bool OnHoverEvent(const HoverEvent& event) = 0;
/**
* @brief Called after a key-event is received by the actor that has had its focus set.
*
+ * @SINCE_1_0.0
* @param[in] event the Key Event
* @return True if the event should be consumed.
*/
/**
* @brief Called after a wheel-event is received by the owning actor.
*
- * @note This must be enabled during construction; see CustomActorImpl::SetRequiresWheelEvents(bool)
+ * @SINCE_1_0.0
* @param[in] event The wheel event.
* @return True if the event should be consumed.
+ * @note This must be enabled during construction; see CustomActorImpl::SetRequiresWheelEvents(bool)
*/
virtual bool OnWheelEvent(const WheelEvent& event) = 0;
* Note! As this function is called from inside the size negotiation algorithm, you cannot
* call RequestRelayout (the call would just be ignored)
*
+ * @SINCE_1_0.0
* @param[in] size The allocated size.
* @param[in,out] container The control should add actors to this container that it is not able
* to allocate a size for.
/**
* @brief Notification for deriving classes
*
+ * @SINCE_1_0.0
* @param[in] policy The policy being set
* @param[in] dimension The dimension the policy is being set for
*/
virtual void OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension ) = 0;
/**
- * Return the natural size of the actor
+ * @brief Return the natural size of the actor
*
+ * @SINCE_1_0.0
* @return The actor's natural size
*/
virtual Vector3 GetNaturalSize() = 0;
/**
* @brief Calculate the size for a child
*
+ * @SINCE_1_0.0
* @param[in] child The child actor to calculate the size for
* @param[in] dimension The dimension to calculate the size for. E.g. width or height.
* @return Return the calculated size for the given dimension
*
* Derived classes should override this if they wish to customize the height returned.
*
+ * @SINCE_1_0.0
* @param width to use.
* @return the height based on the width.
*/
*
* Derived classes should override this if they wish to customize the width returned.
*
+ * @SINCE_1_0.0
* @param height to use.
* @return the width based on the width.
*/
/**
* @brief Determine if this actor is dependent on it's children for relayout
*
+ * @SINCE_1_0.0
* @param dimension The dimension(s) to check for
* @return Return if the actor is dependent on it's children
*/
* @brief Virtual method to notify deriving classes that relayout dependencies have been
* met and the size for this object is about to be calculated for the given dimension
*
+ * @SINCE_1_0.0
* @param dimension The dimension that is about to be calculated
*/
virtual void OnCalculateRelayoutSize( Dimension::Type dimension ) = 0;
* @brief Virtual method to notify deriving classes that the size for a dimension
* has just been negotiated
*
+ * @SINCE_1_0.0
* @param[in] size The new size for the given dimension
* @param[in] dimension The dimension that was just negotiated
*/
virtual void OnLayoutNegotiated( float size, Dimension::Type dimension ) = 0;
/**
- * Retrieve the extension for this control
+ * @brief Retrieve the extension for this control
*
+ * @SINCE_1_0.0
* @return The extension if available, NULL otherwise
*/
virtual Extension* GetExtension()
enum ActorFlags
{
ACTOR_BEHAVIOUR_NONE = 0,
- DISABLE_SIZE_NEGOTIATION = 1 << 0, ///< True if control does not need size negotiation, i.e. it can be skipped in the algorithm
- REQUIRES_TOUCH_EVENTS = 1 << 1, ///< True if the OnTouchEvent() callback is required.
- REQUIRES_HOVER_EVENTS = 1 << 2, ///< True if the OnHoverEvent() callback is required.
- REQUIRES_WHEEL_EVENTS = 1 << 3, ///< True if the OnWheelEvent() callback is required.
+ DISABLE_SIZE_NEGOTIATION = 1 << 0, ///< True if control does not need size negotiation, i.e. it can be skipped in the algorithm @SINCE_1_0.0
+ REQUIRES_TOUCH_EVENTS = 1 << 1, ///< True if the OnTouchEvent() callback is required. @SINCE_1_0.0
+ REQUIRES_HOVER_EVENTS = 1 << 2, ///< True if the OnHoverEvent() callback is required. @SINCE_1_0.0
+ REQUIRES_WHEEL_EVENTS = 1 << 3, ///< True if the OnWheelEvent() callback is required. @SINCE_1_0.0
- LAST_ACTOR_FLAG ///< Special marker for last actor flag
+ LAST_ACTOR_FLAG ///< Special marker for last actor flag @SINCE_1_0.0
};
static const int ACTOR_FLAG_COUNT = Log< LAST_ACTOR_FLAG - 1 >::value + 1; ///< Value for deriving classes to continue on the flag enum
/**
* @brief Create a CustomActorImpl.
+ * @SINCE_1_0.0
* @param[in] flags Bitfield of ActorFlags to define behaviour
*/
CustomActorImpl( ActorFlags flags );
* At the end of event processing, the relayout process starts and
* all controls which requested Relayout will have their sizes (re)negotiated.
*
+ * @SINCE_1_0.0
* @note RelayoutRequest() can be called multiple times; the size negotiation is still
* only performed once, i.e. there is no need to keep track of this in the calling side.
*/
/**
* @brief provides the Actor implementation of GetHeightForWidth
+ * @SINCE_1_0.0
* @param width to use.
* @return the height based on the width.
*/
/**
* @brief provides the Actor implementation of GetWidthForHeight
+ * @SINCE_1_0.0
* @param height to use.
* @return the width based on the height.
*/
/**
* @brief Calculate the size for a child using the base actor object
*
+ * @SINCE_1_0.0
* @param[in] child The child actor to calculate the size for
* @param[in] dimension The dimension to calculate the size for. E.g. width or height.
* @return Return the calculated size for the given dimension
/**
* @brief Determine if this actor is dependent on it's children for relayout from the base class
*
+ * @SINCE_1_0.0
* @param dimension The dimension(s) to check for
* @return Return if the actor is dependent on it's children
*/
/**
* @brief Called when ownership of the CustomActorImpl is passed to a CustomActor.
- * @pre The CustomActorImpl is not already owned.
+ * @SINCE_1_0.0
* @param[in] owner The owning object.
+ * @pre The CustomActorImpl is not already owned.
*/
void Initialize(Internal::CustomActor& owner);
* This method is needed when creating additional handle objects to existing objects.
* Owner is the Dali::Internal::CustomActor that owns the implementation of the custom actor
* inside core. Creation of a handle to Dali public API Actor requires this pointer.
+ * @SINCE_1_0.0
* @return a pointer to the Actor implementation that owns this custom actor implementation
*/
Internal::CustomActor* GetOwner() const;
/**
* @brief Called when ownership of the CustomActorImpl is passed to a CustomActor.
+ * @SINCE_1_0.0
* @return True if the OnTouchEvent() callback is required.
*/
bool RequiresTouchEvents() const;
/**
* @brief Called when ownership of the CustomActorImpl is passed to a CustomActor.
+ * @SINCE_1_0.0
* @return True if the OnHoverEvent() callback is required.
*/
bool RequiresHoverEvents() const;
/**
* @brief Called when ownership of the CustomActorImpl is passed to a CustomActor.
+ * @SINCE_1_0.0
* @return True if the OnWheelEvent() callback is required.
*/
bool RequiresWheelEvents() const;
/**
* @brief Called when ownership of the CustomActorImpl is passed to a CustomActor.
+ * @SINCE_1_0.0
* @return Return true if relayout is enabled on the custom actor
*/
bool IsRelayoutEnabled() const;
* @brief CustomActor is a base class for custom UI controls.
*
* The implementation of the control must be supplied; see CustomActorImpl for more details.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API CustomActor : public Actor
{
*
* Only derived versions can be instantiated.
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
CustomActor();
* If handle points to a CustomActor 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 CustomActor or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~CustomActor();
/**
* @brief Retrieve the custom actor implementation.
*
+ * @SINCE_1_0.0
* @return The implementation.
*/
CustomActorImpl& GetImplementation();
/**
* @brief Retrieve the custom actor implementation.
*
+ * @SINCE_1_0.0
* @return The implementation.
*/
const CustomActorImpl& GetImplementation() const;
/**
* @brief Create an initialised CustomActor.
*
+ * @SINCE_1_0.0
* @param[in] implementation The implementation for this custom actor.
* @return A handle to a newly allocated Dali resource.
*/
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param [in] copy The actor to copy.
*/
CustomActor(const CustomActor& copy);
/**
* @brief Assignment operator
*
+ * @SINCE_1_0.0
* @param [in] rhs The actor to copy.
*/
CustomActor& operator=(const CustomActor& rhs);
/**
* @brief This constructor is used internally to create additional CustomActor handles.
*
+ * @SINCE_1_0.0
* @param [in] actor A pointer to a newly allocated Dali resource
*/
CustomActor(Internal::CustomActor* actor);
/**
* @brief How the actor and it's children will be drawn.
*
+ * @SINCE_1_0.0
* @see Dali::Actor::SetDrawMode()
*/
enum Type
{
- NORMAL = 0, ///< binary 00. The default draw-mode
- OVERLAY_2D = 1, ///< binary 01. Draw the actor and its children as an overlay
- STENCIL = 3 ///< binary 11. Draw the actor and its children into the stencil buffer
+ NORMAL = 0, ///< binary 00. The default draw-mode @SINCE_1_0.0
+ OVERLAY_2D = 1, ///< binary 01. Draw the actor and its children as an overlay @SINCE_1_0.0
+ STENCIL = 3 ///< binary 11. Draw the actor and its children into the stencil buffer @SINCE_1_0.0
};
} // namespace DrawMode
*
* Clearing the pixel area on an Image actor with a set size will cause the actor to show the
* whole image again, but will not change the image size.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ImageActor : public Actor
{
/**
* @brief An enumeration of properties belonging to the ImageActor class.
* Properties additional to RenderableActor.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- PIXEL_AREA = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "pixelArea", type Rect<int>
- STYLE, ///< @deprecated Dali 1.1.11 name "style", type std::string
- BORDER, ///< @deprecated Dali 1.1.11 name "border", type Vector4
- IMAGE, ///< name "image", type Map {"filename":"", "loadPolicy":...}
+ PIXEL_AREA = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "pixelArea", type Rect<int> @SINCE_1_0.0
+ STYLE, ///< @deprecated Dali 1.1.11 name "style", type std::string @SINCE_1_0.0
+ BORDER, ///< @deprecated Dali 1.1.11 name "border", type Vector4 @SINCE_1_0.0
+ IMAGE, ///< name "image", type Map {"filename":"", "loadPolicy":...} @SINCE_1_0.0
};
};
* Image is rendered as a textured rectangle. The texture
* is scaled uniformly as the quad is resized.
*
+ * @SINCE_1_0.0
*/
enum Style
{
- STYLE_QUAD, ///< As a simple quad.
- STYLE_NINE_PATCH, ///< @deprecated Dali 1.1.11 As a nine-patch.
- STYLE_NINE_PATCH_NO_CENTER ///< @deprecated Dali 1.1.11 As a nine-patch without center section being rendered.
+ STYLE_QUAD, ///< As a simple quad. @SINCE_1_0.0
+ STYLE_NINE_PATCH, ///< @deprecated Dali 1.1.11 As a nine-patch. @SINCE_1_0.0
+ STYLE_NINE_PATCH_NO_CENTER ///< @deprecated Dali 1.1.11 As a nine-patch without center section being rendered. @SINCE_1_0.0
};
/**
* @brief Pixel area is relative to the top-left (0,0) of the image.
+ * @SINCE_1_0.0
*/
typedef Rect<int> PixelArea;
*
* This can be initialized with ImageActor::New(...)
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
ImageActor();
/**
* @brief Create an empty image actor object.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated actor.
*/
static ImageActor New();
* The actor will take the image's natural size unless a custom size
* is chosen, e.g. via Actor:SetSize().
* If the handle is empty, ImageActor will display nothing
- * @pre ImageActor must be initialized.
+ * @SINCE_1_0.0
* @param[in] image The image to display.
* @return A handle to a newly allocated actor.
+ * @pre ImageActor must be initialized.
*/
static ImageActor New(Image image);
* The actor will take the image's natural size unless a custom size
* is chosen, e.g. via Actor:SetSize()
* If the handle is empty, ImageActor will display nothing
- * @pre ImageActor must be initialized.
+ * @SINCE_1_0.0
* @param [in] image The image to display.
* @param [in] pixelArea The area of the image to display.
* This in pixels, relative to the top-left (0,0) of the image.
* @return A handle to a newly allocated actor.
+ * @pre ImageActor must be initialized.
*/
static ImageActor New(Image image, PixelArea pixelArea);
* If handle points to a ImageActor 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 ImageActor or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~ImageActor();
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param [in] copy The actor to copy.
*/
ImageActor(const ImageActor& copy);
/**
* @brief Assignment operator
*
+ * @SINCE_1_0.0
* @param [in] rhs The actor to copy.
*/
ImageActor& operator=(const ImageActor& rhs);
* The actor will take the image's natural size unless a custom size
* is chosen, e.g. via Actor:SetSize()
*
- * @pre ImageActor must be initialized.
+ * @SINCE_1_0.0
* @param [in] image The image to display.
+ * @pre ImageActor must be initialized.
*/
void SetImage(Image image);
* @brief Retrieve the image rendered by the actor.
*
* If no image is assigned, an empty handle is returned
+ * @SINCE_1_0.0
* @return The image.
*/
Image GetImage();
* When the image is loaded the actor's size will be reset to the pixelArea,
* unless a custom size was chosen, e.g. via Actor:SetSize().
* Note! PixelArea should be inside the image data size. It gets clamped by GL
- * @pre image must be initialized.
+ * @SINCE_1_0.0
* @param [in] pixelArea The area of the image to display.
* This in pixels, relative to the top-left (0,0) of the image.
+ * @pre image must be initialized.
*/
void SetPixelArea(const PixelArea& pixelArea);
/**
* @brief Retrieve the region of the image to display, in pixels.
*
- * @pre image must be initialized.
+ * @SINCE_1_0.0
* @return The pixel area, or a default-constructed area if none was set.
+ * @pre image must be initialized.
*/
PixelArea GetPixelArea() const;
*
* @brief Set how the image is rendered; the default is STYLE_QUAD.
*
- * @pre image must be initialized.
+ * @SINCE_1_0.0
* @param [in] style The new style.
*
+ * @pre image must be initialized.
* @note The style specified is set (so GetStyle will return what's set) but ignored internally.
*/
void SetStyle(Style style);
*
* @brief Query how the image is rendered.
*
- * @pre image must be initialized.
+ * @SINCE_1_0.0
* @return The rendering style.
*
+ * @pre image must be initialized.
* @note This just returns the style set by SetStyle. In reality, only STYLE_QUAD is supported.
*/
Style GetStyle() const;
*
* The values are in pixels from the left, top, right, and bottom of the image respectively.
* i.e. SetNinePatchBorder( Vector4(1,2,3,4) ) sets the left-border to 1, top-border to 2, right-border to 3, and bottom-border to 4 pixels.
+ * @SINCE_1_0.0
* @param [in] border The new nine-patch border.
*/
void SetNinePatchBorder(const Vector4& border);
*
* @brief Retrieve the border used with STYLE_NINE_PATCH.
*
+ * @SINCE_1_0.0
* @return The nine-patch border.
*/
Vector4 GetNinePatchBorder() const;
* @brief Allows modification of an actors position in the depth sort algorithm.
*
* The offset can be altered for each coplanar actor hence allowing an order of painting.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @param [in] depthOffset the offset to be given to the actor. Positive values pushing it further back.
+ * @pre The Actor has been initialized.
*/
void SetSortModifier(float depthOffset);
* @brief Retrieves the offset used to modify an actors position in the depth sort algorithm.
*
* The offset can be altered for each coplanar actor hence allowing an order of painting.
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return the offset that has been given to the actor. Positive values pushing it further back.
+ * @pre The Actor has been initialized.
*/
float GetSortModifier() const;
* <li> \e ON Blending is enabled.
* </ul>
*
+ * @SINCE_1_0.0
* @param[in] mode The blending mode.
*/
void SetBlendMode( BlendingMode::Type mode );
/**
* @brief Retrieves the blending mode.
*
+ * @SINCE_1_0.0
* @return The blending mode, one of BlendingMode::OFF, BlendingMode::AUTO or BlendingMode::ON.
*/
BlendingMode::Type GetBlendMode() const;
/**
* @brief Specify the pixel arithmetic used when the actor is blended.
*
+ * @SINCE_1_0.0
* @param[in] srcFactorRgba Specifies how the red, green, blue, and alpha source blending factors are computed.
* The options are BlendingFactor::ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR, DST_COLOR, ONE_MINUS_DST_COLOR,
* SRC_ALPHA, ONE_MINUS_SRC_ALPHA, DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR, ONE_MINUS_CONSTANT_COLOR,
/**
* @brief Specify the pixel arithmetic used when the actor is blended.
*
+ * @SINCE_1_0.0
* @param[in] srcFactorRgb Specifies how the red, green, and blue source blending factors are computed.
* The options are BlendingFactor::ZERO, ONE, SRC_COLOR, ONE_MINUS_SRC_COLOR, DST_COLOR, ONE_MINUS_DST_COLOR,
* SRC_ALPHA, ONE_MINUS_SRC_ALPHA, DST_ALPHA, ONE_MINUS_DST_ALPHA, CONSTANT_COLOR, ONE_MINUS_CONSTANT_COLOR,
/**
* @brief Query the pixel arithmetic used when the actor is blended.
*
+ * @SINCE_1_0.0
* @param[out] srcFactorRgb Specifies how the red, green, blue, and alpha source blending factors are computed.
* @param[out] destFactorRgb Specifies how the red, green, blue, and alpha destination blending factors are computed.
* @param[out] srcFactorAlpha Specifies how the red, green, blue, and alpha source blending factors are computed.
* @brief Specify the equation used when the actor is blended.
*
* The options are BlendingEquation::ADD, SUBTRACT, or REVERSE_SUBTRACT.
+ * @SINCE_1_0.0
* @param[in] equationRgba The equation used for combining red, green, blue, and alpha components.
*/
void SetBlendEquation( BlendingEquation::Type equationRgba );
/**
* @brief Specify the equation used when the actor is blended.
*
+ * @SINCE_1_0.0
* @param[in] equationRgb The equation used for combining red, green, and blue components.
* @param[in] equationAlpha The equation used for combining the alpha component.
* The options are BlendingEquation::ADD, SUBTRACT, or REVERSE_SUBTRACT.
/**
* @brief Query the equation used when the actor is blended.
*
+ * @SINCE_1_0.0
* @param[out] equationRgb The equation used for combining red, green, and blue components.
* @param[out] equationAlpha The equation used for combining the alpha component.
*/
/**
* @brief Specify the color used when the actor is blended; the default is Vector4::ZERO.
*
+ * @SINCE_1_0.0
* @param[in] color The blend color.
*/
void SetBlendColor( const Vector4& color );
/**
* @brief Query the color used when the actor is blended.
*
+ * @SINCE_1_0.0
* @return The blend color.
*/
const Vector4& GetBlendColor() const;
* <li> \e LINEAR Use linear filtering
* </ul>
*
+ * @SINCE_1_0.0
* @param[in] minFilter The minification filtering mode.
* @param[in] magFilter The magnification filtering mode.
*/
/**
* @brief Retrieves the filtering mode.
*
+ * @SINCE_1_0.0
* @param[out] minFilter The return minification value
* @param[out] magFilter The return magnification value
*/
*
* Shader effects provide special effects like ripple and bend.
* Setting a shader effect removes any shader effect previously set by SetShaderEffect.
+ * @SINCE_1_0.0
+ * @param [in] effect The shader effect.
* @pre The actor has been initialized.
* @pre effect has been initialized.
- * @param [in] effect The shader effect.
*/
void SetShaderEffect( ShaderEffect effect );
* @brief Retrieve the custom shader effect for the RenderableActor.
* If default shader is used an empty handle is returned.
*
- * @pre The Actor has been initialized.
+ * @SINCE_1_0.0
* @return The shader effect
+ * @pre The Actor has been initialized.
*/
ShaderEffect GetShaderEffect() const;
/**
* @brief Removes the current shader effect.
*
+ * @SINCE_1_0.0
* @pre The Actor has been initialized.
*/
void RemoveShaderEffect();
/**
* @brief Sets the shader effect for all ImageActors in a tree of Actors.
*
- * @see ImageActor::SetShaderEffect
- *
+ * @SINCE_1_0.0
* @param [in] actor root of a tree of actors.
* @param [in] effect The shader effect.
+ * @see ImageActor::SetShaderEffect
+ *
*/
DALI_IMPORT_API void SetShaderEffectRecursively( Actor actor, ShaderEffect effect );
/**
* @brief Removes the shader effect from all ImageActors in a tree of Actors.
*
+ * @SINCE_1_0.0
+ * @param [in] actor root of a tree of actors.
* @see ImageActor::RemoveShaderEffect
*
- * @param [in] actor root of a tree of actors.
*/
DALI_IMPORT_API void RemoveShaderEffectRecursively( Actor actor );
/**
* @brief Rectangle describing area on screen that a layer can draw to.
*
+ * @SINCE_1_0.0
* @see Dali::Layer::SetClippingBox()
*/
typedef Rect<int> ClippingBox;
* | lower | @ref Lower() |
* | raiseToTop | @ref RaiseToTop() |
* | lowerToBottom | @ref LowerToBottom() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Layer : public Actor
{
/**
* @brief An enumeration of properties belonging to the Layer class.
* Properties additional to Actor.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- CLIPPING_ENABLE = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "clippingEnable", type bool
- CLIPPING_BOX, ///< name "clippingBox", type Rect<int>
- BEHAVIOR, ///< name "behavior", type String
+ CLIPPING_ENABLE = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< name "clippingEnable", type bool @SINCE_1_0.0
+ CLIPPING_BOX, ///< name "clippingBox", type Rect<int> @SINCE_1_0.0
+ BEHAVIOR, ///< name "behavior", type String @SINCE_1_0.0
};
};
* @brief Enumeration for the behavior of the layer.
*
* Check each value to see how it affects the layer.
+ * @SINCE_1_0.0
*/
enum Behavior
{
*
* This mode is expected to have better performance than the 3D mode.
* When using this mode any ordering would be with respect to depthIndex property of Renderers.
+ * @SINCE_1_0.0
*/
LAYER_2D,
* When using this mode depth depth test will be used. A depth clear will happen for each distinct
* depth-index value in the layer, opaque renderers are drawn first and write to the depth buffer.
* Then transparent renderers are drawn with depth test enabled but depth write switched off.
+ * @SINCE_1_0.0
*/
LAYER_3D,
};
/**
* @brief The sort function type.
*
+ * @SINCE_1_0.0
* @param[in] position this is the actor translation from camera.
*/
typedef float (*SortFunctionType)( const Vector3& position );
* @brief Create an empty Layer handle.
*
* This can be initialised with Layer::New(...)
+ * @SINCE_1_0.0
*/
Layer();
/**
* @brief Create a Layer object.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Layer
*/
static Layer New();
*
* If handle points to a Layer 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 Layer or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Layer();
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param [in] copy The actor to copy.
*/
Layer(const Layer& copy);
/**
* @brief Assignment operator
*
+ * @SINCE_1_0.0
* @param [in] rhs The actor to copy.
*/
Layer& operator=(const Layer& rhs);
* @brief Query the depth of the layer
*
* 0 is bottom most layer, higher number is on top
+ * @SINCE_1_0.0
+ * @return the current depth of the layer.
* @pre layer is on the stage
* If layer is not added to the stage, returns 0.
- * @return the current depth of the layer.
*/
unsigned int GetDepth() const;
/**
* @brief Increment the depth of the layer.
*
+ * @SINCE_1_0.0
* @pre layer is on the stage
*/
void Raise();
/**
* @brief Decrement the depth of the layer.
*
+ * @SINCE_1_0.0
* @pre layer is on the stage
*/
void Lower();
* If the layer already is above target layer its depth is not changed
* If the layer was below target, its new depth will be immediately above target
* Note! All layers between this layer and target get new depth values
+ * @SINCE_1_0.0
+ * @param target layer to get above of
* @pre layer is on the stage
* @pre target layer is on the stage
- * @param target layer to get above of
*/
void RaiseAbove( Layer target );
* If the layer already is below the layer its depth is not changed
* If the layer was above target, its new depth will be immediately below target
* Note! All layers between this layer and target get new depth values
+ * @SINCE_1_0.0
+ * @param target layer to get below of
* @pre layer is on the stage
* @pre target layer is on the stage
- * @param target layer to get below of
*/
void LowerBelow( Layer target );
/**
* @brief Raises the layer to the top.
+ * @SINCE_1_0.0
* @pre layer is on the stage
*/
void RaiseToTop();
/**
* @brief Lowers the layer to the bottom.
+ * @SINCE_1_0.0
* @pre layer is on the stage
*/
void LowerToBottom();
*
* After the call this layers depth will be immediately above target
* Note! All layers between this layer and target get new depth values
+ * @SINCE_1_0.0
+ * @param target layer to get on top of
* @pre layer is on the stage
* @pre target layer is on the stage
- * @param target layer to get on top of
*/
void MoveAbove( Layer target );
*
* After the call this layers depth will be immediately below target
* Note! All layers between this layer and target get new depth values
+ * @SINCE_1_0.0
+ * @param target layer to get below of
* @pre layer is on the stage
* @pre target layer is on the stage
- * @param target layer to get below of
*/
void MoveBelow( Layer target );
/**
* @brief Set the behavior of the layer
*
+ * @SINCE_1_0.0
* @param[in] behavior The desired behavior
*/
void SetBehavior( Behavior behavior );
/**
* @brief Get the behavior of the layer
*
+ * @SINCE_1_0.0
* @return The behavior of the layer
*/
Behavior GetBehavior() const;
* @brief Sets whether clipping is enabled for a layer.
*
* Clipping is initially disabled; see also SetClippingBox().
+ * @SINCE_1_0.0
* @param [in] enabled True if clipping is enabled.
*
* @note When clipping is enabled, the default clipping box is empty (0,0,0,0) which means everything is clipped.
/**
* @brief Query whether clipping is enabled for a layer.
+ * @SINCE_1_0.0
* @return True if clipping is enabled.
*/
bool IsClipping() const;
* enabled. The default clipping box is empty (0,0,0,0) which means everything is clipped.
* You can only do rectangular clipping using this API in window coordinates.
* For other kinds of clipping, @see Dali::Actor::SetDrawMode().
+ * @SINCE_1_0.0
* @param [in] x The X-coordinate of the top-left corner of the box.
* @param [in] y The Y-coordinate of the top-left corner of the box.
* @param [in] width The width of the box.
*
* The contents of the layer will not be visible outside this box, when clipping is
* enabled. The default clipping box is empty (0,0,0,0).
+ * @SINCE_1_0.0
* @param [in] box The clipping box
*/
void SetClippingBox(ClippingBox box);
/**
* @brief Retrieves the clipping box of a layer, in window coordinates.
*
+ * @SINCE_1_0.0
* @return The clipping box
*/
ClippingBox GetClippingBox() const;
* By default a layer enables depth test if there is more than one opaque actor or if there is one opaque actor and one, or more, transparent actors.
* However, it's possible to disable the depth test by calling this method.
*
+ * @SINCE_1_0.0
* @param[in] disable \e true disables depth test. \e false sets the default behavior.
*/
void SetDepthTestDisabled( bool disable );
/**
* @brief Retrieves whether depth test is disabled.
*
+ * @SINCE_1_0.0
* @return \e true if depth test is disabled.
*/
bool IsDepthTestDisabled() const;
* float YourSortFunction(const Vector3& position);
* @endcode
*
+ * @SINCE_1_0.0
+ * @param[in] function The sort function pointer
* @note If the sort function returns a low number, the actor the data applies to will be
* drawn in front of an actor whose data yields a high value from the sort function.
*
* @note All child layers use the same sort function. If a child layer is added to this
* layer then the sort function used by the child layer will also be the same.
*
- * @param[in] function The sort function pointer
*/
void SetSortFunction( SortFunctionType function );
*
* If set, any layers behind this layer will not be hit-test.
*
+ * @SINCE_1_0.0
* @param[in] consume Whether the layer should consume touch (including gestures).
*/
void SetTouchConsumed( bool consume );
/**
* @brief Retrieves whether the layer consumes touch (including gestures).
*
+ * @SINCE_1_0.0
* @return true if consuming touch, false otherwise.
*/
bool IsTouchConsumed() const;
*
* If set, any layers behind this layer will not be hit-test.
*
+ * @SINCE_1_0.0
* @param[in] consume Whether the layer should consume hover.
*/
void SetHoverConsumed( bool consume );
/**
* @brief Retrieves whether the layer consumes hover.
*
+ * @SINCE_1_0.0
* @return true if consuming hover, false otherwise.
*/
bool IsHoverConsumed() const;
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] Layer A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL Layer(Internal::Layer* Layer);
{
/**
* @brief Texture filtering mode.
+ * @SINCE_1_0.0
* @see Dali::RenderableActor::SetFilterMode() and Dali::RenderableActor::GetFilterMode()
*/
enum Type
{
- NONE = 0, ///< Use GL defaults (minification NEAREST_MIPMAP_LINEAR, magnification LINEAR)
- DEFAULT, ///< Use Dali defaults (minification LINEAR, magnification LINEAR)
- NEAREST, ///< Filter nearest
- LINEAR ///< Filter linear
+ NONE = 0, ///< Use GL defaults (minification NEAREST_MIPMAP_LINEAR, magnification LINEAR) @SINCE_1_0.0
+ DEFAULT, ///< Use Dali defaults (minification LINEAR, magnification LINEAR) @SINCE_1_0.0
+ NEAREST, ///< Filter nearest @SINCE_1_0.0
+ LINEAR ///< Filter linear @SINCE_1_0.0
};
} //namespace FilterMode
enum Type
{
- DEFAULT = 0, ///< Clamp to edge
+ DEFAULT = 0, ///< Clamp to edge @SINCE_1_0.0
CLAMP_TO_EDGE,
REPEAT,
MIRRORED_REPEAT
* @{
*/
-typedef float (*AlphaFunctionPrototype)(float progress); ///< Prototype of an alpha function
+typedef float (*AlphaFunctionPrototype)(float progress); ///< Prototype of an alpha function @SINCE_1_0.0
/*
* @brief Alpha functions are used in animations to specify the rate of change of the animation parameter over time.
public:
/**
- * Built-in alpha functions
+ * @brief Built-in alpha functions
+ * @SINCE_1_0.0
*/
enum BuiltinFunction
{
- DEFAULT, ///< Linear
- LINEAR, ///< No transformation
- REVERSE, ///< Reverse linear
+ DEFAULT, ///< Linear @SINCE_1_0.0
+ LINEAR, ///< No transformation @SINCE_1_0.0
+ REVERSE, ///< Reverse linear @SINCE_1_0.0
- EASE_IN_SQUARE, ///< Speeds up and comes to a sudden stop (Square)
- EASE_OUT_SQUARE, ///< Sudden start and slows to a gradual stop (Square)
+ EASE_IN_SQUARE, ///< Speeds up and comes to a sudden stop (Square) @SINCE_1_0.0
+ EASE_OUT_SQUARE, ///< Sudden start and slows to a gradual stop (Square) @SINCE_1_0.0
- EASE_IN, ///< Speeds up and comes to a sudden stop (Cubic)
- EASE_OUT, ///< Sudden start and slows to a gradual stop (Cubic)
- EASE_IN_OUT, ///< Speeds up and slows to a gradual stop (Cubic)
+ EASE_IN, ///< Speeds up and comes to a sudden stop (Cubic) @SINCE_1_0.0
+ EASE_OUT, ///< Sudden start and slows to a gradual stop (Cubic) @SINCE_1_0.0
+ EASE_IN_OUT, ///< Speeds up and slows to a gradual stop (Cubic) @SINCE_1_0.0
- EASE_IN_SINE, ///< Speeds up and comes to a sudden stop (sinusoidal)
- EASE_OUT_SINE, ///< Sudden start and slows to a gradual stop (sinusoidal)
- EASE_IN_OUT_SINE, ///< Speeds up and slows to a gradual stop (sinusoidal)
+ EASE_IN_SINE, ///< Speeds up and comes to a sudden stop (sinusoidal) @SINCE_1_0.0
+ EASE_OUT_SINE, ///< Sudden start and slows to a gradual stop (sinusoidal) @SINCE_1_0.0
+ EASE_IN_OUT_SINE, ///< Speeds up and slows to a gradual stop (sinusoidal) @SINCE_1_0.0
- BOUNCE, ///< Sudden start, loses momentum and returns to start position
- SIN, ///< Single revolution
- EASE_OUT_BACK, ///< Sudden start, exceed end position and return to a gradual stop
+ BOUNCE, ///< Sudden start, loses momentum and returns to start position @SINCE_1_0.0
+ SIN, ///< Single revolution @SINCE_1_0.0
+ EASE_OUT_BACK, ///< Sudden start, exceed end position and return to a gradual stop @SINCE_1_0.0
COUNT
};
/**
- * All possible functioning modes for the alpha function
+ * @brief All possible functioning modes for the alpha function
+ * @SINCE_1_0.0
*/
enum Mode
{
/**
* @brief Default constructor.
* Creates an alpha function object with the default built-in alpha function
+ * @SINCE_1_0.0
* @return The alpha function
*/
AlphaFunction();
* @brief Constructor.
* Creates an alpha function object with the built-in alpha function passed as a parameter
* to the constructor
+ * @SINCE_1_0.0
* @param[in] function One of the built-in alpha functions
* @return The alpha function
*/
* @brief Constructor.
* Creates an alpha function object using a pointer to an alpha function passed as a paramter
* to the constructor
+ * @SINCE_1_0.0
* @param[in] function A pointer to an alpha function
* @return The alpha function
*/
* @brief Constructor.
* Creates a bezier alpha function. The bezier will have the first point at (0,0) and
* the end point at (1,1).
- * @note The x components of the control points will be clamped to the range [0,1] to prevent
- * non monotonic curves.
+ * @SINCE_1_0.0
* @param[in] controlPoint0 A Vector2 which will be used as the first control point of the curve
* @param[in] controlPoint1 A Vector2 which will be used as the second control point of the curve
* @return The alpha function
+ * @note The x components of the control points will be clamped to the range [0,1] to prevent
+ * non monotonic curves.
*/
AlphaFunction( const Dali::Vector2& controlPoint0, const Dali::Vector2& controlPoint1 );
/**
* @brief Return the control points of the alpha function
+ * @SINCE_1_0.0
* @return Vector4 containing the two control points of the curve.
* (xy for the first point and zw for the second)
*/
/**
* @brief Returns the pointer to the custom function
+ * @SINCE_1_0.0
* @return A pointer to a custom alpha function or 0 if not defined
*/
AlphaFunctionPrototype GetCustomFunction() const;
/**
* @brief Returns the built0in function used by the alpha function
+ * @SINCE_1_0.0
* @return One of the built-in alpha functions. In case no built-in function
* has been specified, it will return AlphaFunction::DEfAULT
*/
/**
* @brief Returns the functioning mode of the alpha function
+ * @SINCE_1_0.0
* @return The functioning mode of the alpha function
*/
Mode GetMode() const;
* | play | Play() |
* | stop | Stop() |
* | pause | Pause() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Animation : public BaseHandle
{
public:
- typedef Signal< void (Animation&) > AnimationSignalType; ///< Animation finished signal type
+ typedef Signal< void (Animation&) > AnimationSignalType; ///< Animation finished signal type @SINCE_1_0.0
- typedef Any AnyFunction; ///< Interpolation function
+ typedef Any AnyFunction; ///< Interpolation function @SINCE_1_0.0
/**
* @brief What to do when the animation ends, is stopped or is destroyed
+ * @SINCE_1_0.0
*/
enum EndAction
{
- Bake, ///< When the animation ends, the animated property values are saved.
- Discard, ///< When the animation ends, the animated property values are forgotten.
- BakeFinal ///< If the animation is stopped, the animated property values are saved as if the animation had run to completion, otherwise behaves like Bake.
+ Bake, ///< When the animation ends, the animated property values are saved. @SINCE_1_0.0
+ Discard, ///< When the animation ends, the animated property values are forgotten. @SINCE_1_0.0
+ BakeFinal ///< If the animation is stopped, the animated property values are saved as if the animation had run to completion, otherwise behaves like Bake. @SINCE_1_0.0
};
/**
* @brief What interpolation method to use on key-frame animations
+ * @SINCE_1_0.0
*/
enum Interpolation
{
- Linear, ///< Values in between key frames are interpolated using a linear polynomial. (Default)
- Cubic ///< Values in between key frames are interpolated using a cubic polynomial.
+ Linear, ///< Values in between key frames are interpolated using a linear polynomial. (Default) @SINCE_1_0.0
+ Cubic ///< Values in between key frames are interpolated using a cubic polynomial. @SINCE_1_0.0
};
/**
* @brief Create an uninitialized Animation; this can be initialized with Animation::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
Animation();
* The animation will not loop.
* The default end action is "Bake".
* The default alpha function is linear.
- * @pre durationSeconds must be greater than zero.
+ * @SINCE_1_0.0
* @param [in] durationSeconds The duration in seconds.
* @return A handle to a newly allocated Dali resource.
+ * @pre durationSeconds must be greater than zero.
*/
static Animation New(float durationSeconds);
* If handle points to an Animation 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 Animation object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Animation();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
Animation(const Animation& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Set the duration of an animation.
*
- * @pre durationSeconds must be greater than zero.
+ * @SINCE_1_0.0
* @param[in] seconds The duration in seconds.
+ * @pre durationSeconds must be greater than zero.
*/
void SetDuration(float seconds);
/**
* @brief Retrieve the duration of an animation.
*
+ * @SINCE_1_0.0
* @return The duration in seconds.
*/
float GetDuration() const;
/**
* @brief Set whether the animation will loop.
*
+ * @SINCE_1_0.0
* @param[in] looping True if the animation will loop.
*/
void SetLooping(bool looping);
/**
* @brief Query whether the animation will loop.
*
+ * @SINCE_1_0.0
* @return True if the animation will loop.
*/
bool IsLooping() const;
*
* This action is performed when the animation ends or if it is stopped.
* Default end action is bake
+ * @SINCE_1_0.0
* @param[in] action The end action.
*/
void SetEndAction(EndAction action);
/**
* @brief Returns the end action of the animation.
*
+ * @SINCE_1_0.0
* @return The end action.
*/
EndAction GetEndAction() const;
*
* If any of the animated property owners are disconnected from the stage while the animation is being played, then this action is performed.
* Default action is to BakeFinal.
+ * @SINCE_1_0.0
* @param[in] disconnectAction The disconnect action.
*/
void SetDisconnectAction( EndAction disconnectAction );
/**
* @brief Returns the disconnect action.
*
+ * @SINCE_1_0.0
* @return The disconnect action.
*/
EndAction GetDisconnectAction() const;
* @brief Set the default alpha function for an animation.
*
* This is applied to individual property animations, if no further alpha functions are supplied.
+ * @SINCE_1_0.0
* @param[in] alpha The default alpha function.
*/
void SetDefaultAlphaFunction(AlphaFunction alpha);
/**
* @brief Retrieve the default alpha function for an animation.
*
+ * @SINCE_1_0.0
* @return The default alpha function.
*/
AlphaFunction GetDefaultAlphaFunction() const;
/**
* @brief Retrieve the current progress of the animation.
*
+ * @SINCE_1_0.0
* @return The current progress as a normalized value between [0,1].
*/
float GetCurrentProgress();
* slow down the animation and values above one will speed up the animation. It is also possible to specify a negative multiplier
* to play the animation in reverse.
*
+ * @SINCE_1_0.0
* @param[in] factor A value which will multiply the velocity.
*/
void SetSpeedFactor( float factor );
/**
* @brief Retrieve the speed factor of the animation
*
+ * @SINCE_1_0.0
* @return speed factor
*/
float GetSpeedFactor() const;
* Animation will play between the values specified. Both values ( range.x and range.y ) should be between 0-1,
* otherwise they will be ignored. If the range provided is not in proper order ( minimum,maximum ), it will be reordered.
*
+ * @SINCE_1_0.0
* @param[in] range Two values between [0,1] to specify minimum and maximum progress. The
* animation will play between those values.
*/
/**
* @brief Get the playing range
*
+ * @SINCE_1_0.0
* @return The play range defined for the animation.
*/
Vector2 GetPlayRange() const;
/**
* @brief Play the animation.
+ * @SINCE_1_0.0
*/
void Play();
* The progress must be in the 0-1 interval or in the play range interval if defined ( See SetPlayRange ),
* otherwise, it will be ignored.
*
+ * @SINCE_1_0.0
* @param[in] progress A value between [0,1], or between the play range if specified, form where the animation should start playing
*/
void PlayFrom( float progress );
/**
* @brief Pause the animation.
+ * @SINCE_1_0.0
*/
void Pause();
/**
* @brief Stop the animation.
+ * @SINCE_1_0.0
*/
void Stop();
* @brief Clear the animation.
*
* This disconnects any objects that were being animated, effectively stopping the animation.
+ * @SINCE_1_0.0
*/
void Clear();
/**
* @brief Connect to this signal to be notified when an Animation's animations have finished.
*
+ * @SINCE_1_0.0
* @return A signal object to Connect() with.
*/
AnimationSignalType& FinishedSignal();
*
* The default alpha function will be used.
* The effect will start & end when the animation begins & ends.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] relativeValue The property value will change by this amount.
*/
* @brief Animate a property value by a relative amount.
*
* The effect will start & end when the animation begins & ends.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] relativeValue The property value will change by this amount.
* @param [in] alpha The alpha function to apply.
* @brief Animate a property value by a relative amount.
*
* The default alpha function will be used.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] relativeValue The property value will increase/decrease by this amount.
* @param [in] period The effect will occur during this time period.
/**
* @brief Animate a property value by a relative amount.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] relativeValue The property value will increase/decrease by this amount.
* @param [in] alpha The alpha function to apply.
*
* The default alpha function will be used.
* The effect will start & end when the animation begins & ends.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] destinationValue The destination value.
*/
* @brief Animate a property to a destination value.
*
* The effect will start & end when the animation begins & ends.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] destinationValue The destination value.
* @param [in] alpha The alpha function to apply.
* @brief Animate a property to a destination value.
*
* The default alpha function will be used.
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] destinationValue The destination value.
* @param [in] period The effect will occur during this time period.
/**
* @brief Animate a property to a destination value.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] destinationValue The destination value.
* @param [in] alpha The alpha function to apply.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] keyFrames The key frames
*/
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object + property to animate
* @param [in] keyFrames The set of time / value pairs between which to animate.
* @param [in] interpolation The method used to interpolate between values.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] keyFrames The key frames
* @param [in] alpha The alpha function to apply.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object + property to animate
* @param [in] keyFrames The set of time / value pairs between which to animate.
* @param [in] alpha The alpha function to apply.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] keyFrames The key frames
* @param [in] period The effect will occur during this time period.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object + property to animate
* @param [in] keyFrames The set of time / value pairs between which to animate.
* @param [in] period The effect will occur duing this time period.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object/property to animate.
* @param [in] keyFrames The key frames
* @param [in] alpha The alpha function to apply.
/**
* @brief Animate a property between keyframes.
*
+ * @SINCE_1_0.0
* @param [in] target The target object + property to animate
* @param [in] keyFrames The set of time / value pairs between which to animate.
* @param [in] alpha The alpha function to apply to the overall progress.
* @brief Animate an actor's position and orientation through a predefined path. The actor will rotate to orient the supplied
* forward vector with the path's tangent. If forward is the zero vector then no rotation will happen.
*
+ * @SINCE_1_0.0
* @param[in] actor The actor to animate
* @param[in] path The path. It defines position and orientation
* @param[in] forward The vector (in local space coordinate system) that will be oriented with the path's tangent direction
* @brief Animate an actor's position and orientation through a predefined path. The actor will rotate to orient the supplied
* forward vector with the path's tangent. If forward is the zero vector then no rotation will happen.
*
+ * @SINCE_1_0.0
* @param[in] actor The actor to animate
* @param[in] path The path. It defines position and orientation
* @param[in] forward The vector (in local space coordinate system) that will be oriented with the path's tangent direction
* @brief Animate an actor's position and orientation through a predefined path. The actor will rotate to orient the supplied
* forward vector with the path's tangent. If forward is the zero vector then no rotation will happen.
*
+ * @SINCE_1_0.0
* @param[in] actor The actor to animate
* @param[in] path The path. It defines position and orientation
* @param[in] forward The vector (in local space coordinate system) that will be oriented with the path's tangent direction
* @brief Animate an actor's position and orientation through a predefined path. The actor will rotate to orient the supplied
* forward vector with the path's tangent. If forward is the zero vector then no rotation will happen.
*
+ * @SINCE_1_0.0
* @param[in] actor The actor to animate
* @param[in] path The path. It defines position and orientation
* @param[in] forward The vector (in local space coordinate system) that will be oriented with the path's tangent direction
/**
* @brief Show an actor during the animation.
*
+ * @SINCE_1_0.0
* @param [in] actor The actor to animate.
* @param [in] delaySeconds The initial delay from the start of the animation.
*/
/**
* @brief Hide an actor during the animation.
*
+ * @SINCE_1_0.0
* @param [in] actor The actor to animate.
* @param [in] delaySeconds The initial delay from the start of the animation.
*/
/**
* @brief This constructor is used by Dali New() methods
+ * @SINCE_1_0.0
* @param [in] animation A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL Animation(Internal::Animation* animation);
* @brief Constraint source types.
*
* This specifies the location of a property, which is used as an input for a constraint function.
+ * @SINCE_1_0.0
*/
enum SourceType
{
- OBJECT_PROPERTY, ///< The property comes from an arbitrary object.
- LOCAL_PROPERTY, ///< The property comes from the object which the constraint is applied to.
- PARENT_PROPERTY ///< The property comes from the parent of the object, which the constraint is applied to.
+ OBJECT_PROPERTY, ///< The property comes from an arbitrary object. @SINCE_1_0.0
+ LOCAL_PROPERTY, ///< The property comes from the object which the constraint is applied to. @SINCE_1_0.0
+ PARENT_PROPERTY ///< The property comes from the parent of the object, which the constraint is applied to. @SINCE_1_0.0
};
/**
* @brief Identifies a property from an object.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API LocalSource
{
/**
* @brief Create a local constraint source.
*
+ * @SINCE_1_0.0
* @param [in] index The index of a property provided by the constrained object.
*/
LocalSource( Property::Index index );
/**
* @brief Identifies a property from the parent of an object.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API ParentSource
{
/**
* @brief Create a local constraint source.
*
+ * @SINCE_1_0.0
* @param [in] index The index of a property, provided by the parent of the constrained object.
*/
ParentSource( Property::Index index );
/**
* @brief Identifies a property from any object.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API Source
{
/**
* @brief Create a constraint source.
*
+ * @SINCE_1_0.0
* @param [in] object The object providing the property.
* @param [in] index The index of a property provided by object.
*/
/**
* @brief The source of an input property for a constraint.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API ConstraintSource
{
/**
* @brief Create a constraint source.
*
+ * @SINCE_1_0.0
* @param [in] source A constraint source from an arbitrary object.
*/
ConstraintSource( Source source );
/**
* @brief Create a constraint source.
*
+ * @SINCE_1_0.0
* @param [in] local A local constraint source.
*/
ConstraintSource( LocalSource local );
/**
* @brief Create a constraint source.
*
+ * @SINCE_1_0.0
* @param [in] parent A parent constraint source.
*/
ConstraintSource( ParentSource parent );
* constraint.AddSource( LocalSource( INPUT_PROPERTY_INDEX ) );
* constraint.Apply();
* @endcode
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Constraint : public BaseHandle
{
* added to the Constraint in the order they were added via AddSource().
*
* @tparam P The property type to constrain.
+ * @SINCE_1_0.0
*/
template< typename P >
class DALI_INTERNAL Function : public CallbackBase
* void MyFunction( P&, const PropertyInputContainer& );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
*/
Function( void( *function )( P&, const PropertyInputContainer& ) )
* void operator()( P&, const PropertyInputContainer& );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*
* @tparam T The type of the object.
* void MyObject::MyMethod( P&, const PropertyInputContainer& );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
* @param[in] memberFunction The member function to call. This has to be a member of the same class.
*
*
* The object, if held by this object, is also copied.
*
+ * @SINCE_1_0.0
* @return A pointer to a newly-allocation Function.
*/
CallbackBase* Clone()
/**
* @brief Used to call the function to copy the stored object
+ * @SINCE_1_0.0
*/
typedef UndefinedClass* (*CopyConstructorDispatcher) ( UndefinedClass* object );
* @brief Copies the actual object in Constraint::Function.
*
* @tparam T The type of the object.
+ * @SINCE_1_0.0
*/
template< class T >
struct ObjectCopyConstructorDispatcher
/**
* @brief Copy the object stored in Constraint::Function.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*
* @return Newly allocated clone of the object.
/**
* @brief Undefined copy constructor
+ * @SINCE_1_0.0
*/
Function( const Function& );
/**
* @brief Undefined assignment operator
+ * @SINCE_1_0.0
*/
Function& operator=( const Function& );
/**
* @brief Constructor used when copying the stored object.
*
+ * @SINCE_1_0.0
* @param[in] object A newly copied object
* @param[in] memberFunction The member function of the object.
* @param[in] dispatcher Used to call the actual object.
/**
* @brief Constructor used when copying a simple stored function.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
*/
Function( CallbackBase::Function function )
*
* The final value may be "baked" i.e. saved permanently.
* Alternatively the constrained value may be discarded when the constraint is removed.
+ * @SINCE_1_0.0
*/
enum RemoveAction
{
- Bake, ///< When the constraint is fully-applied, the constrained value is saved.
- Discard ///< When the constraint is removed, the constrained value is discarded.
+ Bake, ///< When the constraint is fully-applied, the constrained value is saved. @SINCE_1_0.0
+ Discard ///< When the constraint is removed, the constrained value is discarded. @SINCE_1_0.0
};
static const RemoveAction DEFAULT_REMOVE_ACTION; ///< Bake
* @brief Create an uninitialized Constraint; this can be initialized with Constraint::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
Constraint();
* Constraint constraint = Constraint::New< Vector3 >( handle, CONSTRAINING_PROPERTY_INDEX, &MyFunction );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] handle The handle to the property-owning object.
* @param[in] targetIndex The index of the property to constrain.
* @param[in] function The function to call to set the constrained property value.
* Constraint constraint = Constraint::New< Vector3 >( handle, CONSTRAINING_PROPERTY_INDEX, MyObject() );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] handle The handle to the property-owning object.
* @param[in] targetIndex The index of the property to constrain.
* @param[in] object The functor object whose functor is called to set the constrained property value.
* Constraint constraint = Constraint::New< Vector3 >( handle, CONSTRAINING_PROPERTY_INDEX, MyObject(), &MyObject::MyMethod );
* @endcode
*
+ * @SINCE_1_0.0
* @param[in] handle The handle to the property-owning object.
* @param[in] targetIndex The index of the property to constrain.
* @param[in] object The object whose member function is called to set the constrained property value.
/**
* @brief Creates a clones of this constraint for another object.
*
+ * @SINCE_1_0.0
* @param[in] handle The handle to the property-owning object this constraint is to be cloned for.
*
* @return The new constraint.
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Constraint();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] constraint A reference to the copied handle
*/
Constraint( const Constraint& constraint );
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
*
* If handle points to a Constraint object the
* downcast produces valid handle. If not the returned handle is left uninitialized.
+ * @SINCE_1_0.0
* @param[in] baseHandle to An object
* @return handle to a Constraint object or an uninitialized handle
*/
/**
* @brief Adds a constraint source to the constraint
*
+ * @SINCE_1_0.0
* @param[in] source The constraint source input to add
*/
void AddSource( ConstraintSource source );
/**
* @brief Applies this constraint.
*
+ * @SINCE_1_0.0
* @pre The constraint must be initialized
* @pre The target object must still be alive
* @pre The source inputs should not have been destroyed
/**
* @brief Removes this constraint.
+ * @SINCE_1_0.0
*/
void Remove();
/**
* @brief Retrieve the object which this constraint is targeting.
*
+ * @SINCE_1_0.0
* @return The target object.
*/
Handle GetTargetObject();
/**
* @brief Retrieve the property which this constraint is targeting.
*
+ * @SINCE_1_0.0
* @return The target property.
*/
Dali::Property::Index GetTargetProperty();
*
* Otherwise the constrained value will be discarded, when the constraint is removed.
* The default value is Constraint::Bake.
+ * @SINCE_1_0.0
* @param[in] action The remove-action.
*/
void SetRemoveAction( RemoveAction action );
* @brief Query whether the constraint will "bake" a value when fully-applied.
*
* Otherwise the constrained value will be discarded, when the constraint is removed.
+ * @SINCE_1_0.0
* @return The apply-action.
*/
RemoveAction GetRemoveAction() const;
/**
* @brief Set a tag for the constraint so it can be identified later
*
+ * @SINCE_1_0.0
* @param[in] tag An integer to identify the constraint
*/
void SetTag( const unsigned int tag );
/**
* @brief Get the tag
*
+ * @SINCE_1_0.0
* @return The tag
*/
unsigned int GetTag() const;
/**
* @brief This constructor is used by Dali New() methods
+ * @SINCE_1_0.0
* @param [in] constraint A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL Constraint( Internal::ConstraintBase* constraint );
/**
* @brief Construct a new constraint which targets a property.
*
+ * @SINCE_1_0.0
* @param[in] handle The handle to the property-owning object.
* @param[in] targetIndex The index of the property to constrain.
* @param[in] targetType Type The type of the constrained property.
* @brief EqualToConstraint
*
* f(current, property) = property
+ * @SINCE_1_0.0
*/
struct EqualToConstraint
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
EqualToConstraint()
{ }
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in, out] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in,out] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in,out] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in,out] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in,out] current The current property value
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
/**
* @brief override functor for float properties
*
+ * @SINCE_1_0.0
* @param[in,out] current The current property value, the constrained value is set
* @param[in] inputs Contains the property to copy
* @return The copy of the input property
* @brief RelativeToConstraint for Vector3 properties
*
* current = property * scale
+ * @SINCE_1_0.0
*/
struct RelativeToConstraint
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
RelativeToConstraint( float scale )
: mScale( scale, scale, scale ) { }
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
RelativeToConstraint( const Vector3& scale )
: mScale( scale ) { }
/**
* @brief Functor.
+ * @SINCE_1_0.0
*/
void operator()( Vector3& current, const PropertyInputContainer& inputs )
{
/**
* @brief RelativeToConstraint for float properties
+ * @SINCE_1_0.0
*/
struct RelativeToConstraintFloat
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
RelativeToConstraintFloat( float scale )
: mScale( scale ) { }
/**
* @brief Functor.
+ * @SINCE_1_0.0
*/
void operator()( float& current, const PropertyInputContainer& inputs )
{
* constrained actor along the vector between camera position and
* target position.
*
+ * @SINCE_1_0.0
* @param[in,out] current The current orientation property value, the constrained value is set.
* @param[in] inputs Contains the World position of the target, the World position of the camera, and the world orientation of the target
* @return The orientation of the camera
* Property::Values. The type of the key frame is specified by the
* type of the first value to be added. Adding key frames with a
* different Property::Value type will result in a run time assert.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API KeyFrames : public BaseHandle
{
/**
* @brief Create an initialized KeyFrame handle.
*
+ * @SINCE_1_0.0
* @return a handle to a newly allocated Dali resource.
*/
static KeyFrames New();
*
* If handle points to a KeyFrames 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 KeyFrames object or an uninitialized handle
*/
*
* This can be initialized with KeyFrame::New(). Calling member
* functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
KeyFrames();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~KeyFrames();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
KeyFrames(const KeyFrames& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief Gets the type of the key frame.
*
* If no key frames have been added, this returns Property::NONE.
+ * @SINCE_1_0.0
* @return The key frame property type.
*/
Property::Type GetType() const;
* @brief Add a key frame.
*
* The key frames should be added in time order.
+ * @SINCE_1_0.0
* @param[in] progress A value between 0.0 and 1.0.
* @param[in] value A value.
*/
* @brief Add a key frame.
*
* The key frames should be added in time order.
+ * @SINCE_1_0.0
* @param[in] progress A value between 0.0 and 1.0.
* @param[in] value A value.
* @param[in] alpha The alpha function used to blend to the next keyframe
/**
* @brief This constructor is used by Dali::New() methods.
*
+ * @SINCE_1_0.0
* @param[in] keyFrames A pointer to an internal KeyFrame resource
*/
explicit DALI_INTERNAL KeyFrames(Internal::KeyFrames* keyFrames);
* A linear map is defined by a set of value-progress pairs.
* Progress must be normalized between [0,1]. If no progress is defined, the values
* are considered to be equally spaced along the x axis.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API LinearConstrainer : public Handle
{
/**
* @brief An enumeration of properties belonging to the LinearConstrainer class.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- VALUE = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "value" type Array of float
- PROGRESS, ///< name "progress" type Array of float
+ VALUE = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "value" type Array of float @SINCE_1_0.0
+ PROGRESS, ///< name "progress" type Array of float @SINCE_1_0.0
};
};
/**
* @brief Create an initialized LinearConstrainer handle.
*
+ * @SINCE_1_0.0
* @return a handle to a newly allocated Dali resource.
*/
static LinearConstrainer New();
*
* If handle points to a LinearConstrainer 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 LinearConstrainer object or an uninitialized handle
*/
*
* This can be initialized with PathConstrainer::New(). Calling member
* functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
LinearConstrainer();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~LinearConstrainer();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
LinearConstrainer(const LinearConstrainer& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Applies the linear constraint to the target property
*
+ * @SINCE_1_0.0
* @param[in] target Property to be constrained
* @param[in] source Property used as parameter for the path
* @param[in] range The range of values in the source property which will be mapped to [0,1]
/**
* @brief Removes the linear constraint in the target object
*
+ * @SINCE_1_0.0
* @param[in] target A handle to an object constrained by the LinearConstrainer
*/
void Remove( Dali::Handle& target );
/**
* @brief This constructor is used by Dali::New() methods.
*
+ * @SINCE_1_0.0
* @param[in] pathConstrainer A pointer to an internal PathConstrainer resource
*/
explicit DALI_INTERNAL LinearConstrainer(Internal::LinearConstrainer* pathConstrainer);
*
* Paths can be used to animate position and orientation of actors using Dali::Animate( Actor, Path, ... )
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Path : public Handle
{
/**
* @brief An enumeration of properties belonging to the Path class.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- POINTS = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "points", type Vector3
- CONTROL_POINTS, ///< name "controlPoints", type Vector3
+ POINTS = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "points", type Vector3 @SINCE_1_0.0
+ CONTROL_POINTS, ///< name "controlPoints", type Vector3 @SINCE_1_0.0
};
};
/**
* @brief Create an initialized Path handle.
*
+ * @SINCE_1_0.0
* @return a handle to a newly allocated Dali resource.
*/
static Path New();
*
* If handle points to a KeyFrames 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 Path object or an uninitialized handle
*/
*
* This can be initialized with Path::New(). Calling member
* functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
Path();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Path();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
Path(const Path& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Add an interpolation point.
*
+ * @SINCE_1_0.0
* @param[in] point The new interpolation point to be added
*/
void AddPoint(const Vector3& point );
/**
* @brief Add a control point.
*
+ * @SINCE_1_0.0
* @param[in] point The new control point to be added
*/
void AddControlPoint(const Vector3& point );
* The in control point is the length of the preceding segment back along this bisector multiplied by the curvature
* The out control point is the length of the succeeding segment forward along this bisector multiplied by the curvature
*
- * @pre There are at least two points in the path ( one segment ).
- *
+ * @SINCE_1_0.0
* @param[in] curvature The curvature of the spline. 0 gives straight lines between the knots,
* negative values means the spline contains loops, positive values up to
* 0.5 result in a smooth curve, positive values between 0.5 and 1 result
* in looped curves where the loops are not distinct (i.e. the curve appears
* to be non-continuous), positive values higher than 1 result in looped curves.
+ * @pre There are at least two points in the path ( one segment ).
+ *
*/
void GenerateControlPoints( float curvature );
/**
* @brief Sample path at a given progress. Calculates position and tangent at that point of the curve
*
+ * @SINCE_1_0.0
* @param[in] progress A floating point value between 0.0 and 1.0.
* @param[out] position The interpolated position at that progress.
* @param[out] tangent The interpolated tangent at that progress.
/**
* @brief Accessor for the interpolation points.
*
+ * @SINCE_1_0.0
* @param[in] index The index of the interpolation point.
* @return A reference to the interpolation point.
*/
/**
* @brief Accessor for the control points.
*
+ * @SINCE_1_0.0
* @param[in] index The index of the control point.
* @return A reference to the control point.
*/
/**
* @brief Get the number of interpolation points in the path
*
+ * @SINCE_1_0.0
* @return The number of interpolation points in the path
*/
size_t GetPointCount() const;
/**
* @brief This constructor is used by Dali::New() methods.
*
+ * @SINCE_1_0.0
* @param[in] path A pointer to an internal path resource
*/
explicit DALI_INTERNAL Path(Internal::Path* path);
/**
* @brief A value-type representing a period of time within an animation.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API TimePeriod
{
/**
* @brief Create a time period.
*
+ * @SINCE_1_0.0
* @param [in] durationSeconds The duration of the time period in seconds.
*/
explicit TimePeriod(float durationSeconds);
/**
* @brief Create a time period.
*
+ * @SINCE_1_0.0
* @param [in] delaySeconds A delay before the time period in seconds.
* @param [in] durationSeconds The duration of the time period in seconds.
*/
/**
* @brief Non-virtual destructor; TimePeriod is not intended as a base class.
+ * @SINCE_1_0.0
*/
~TimePeriod();
*/
template <bool x> struct CompileTimeAssertBool; ///< Bool Template to test condition
-template <> struct CompileTimeAssertBool<true> {}; ///< Specialize for true, but not for false
+template <> struct CompileTimeAssertBool<true> {}; ///< Specialize for true, but not for false @SINCE_1_0.0
-template<int x> struct CompileTimeAssertInt {}; ///< Template to wrap conditional template CompileTimeAsserBool
+template<int x> struct CompileTimeAssertInt {}; ///< Template to wrap conditional template CompileTimeAsserBool @SINCE_1_0.0
/**
* @brief Use DALI_COMPILE_TIME_ASSERT to test expressions at compile time.
*
* If x is false, then 'sizeof' will be attempted with incomplete type.
+ * @SINCE_1_0.0
*/
#define DALI_COMPILE_TIME_ASSERT( x ) typedef CompileTimeAssertInt< sizeof( CompileTimeAssertBool< ( x ) > ) > CompileTimeAssertType __attribute__((__unused__))
* @brief ParentOrigin constants
*
* Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
+ * @SINCE_1_0.0
*/
namespace ParentOrigin
{
* @brief AnchorPoint constants
*
* Note that for 2D layouting, the typical Z position is 0.5f (not 0.0f)
+ * @SINCE_1_0.0
*/
namespace AnchorPoint
{
* @brief Color Constants.
*
* Color is represented by the Vector4 class (see vector4.h).
+ * @SINCE_1_0.0
*/
namespace Color
{
/**
* @brief Math constants
+ * @SINCE_1_0.0
*/
namespace Math
{
#endif
/**
- * Two macros to provide branch predictor information.
+ * @brief Two macros to provide branch predictor information.
* DALI_LIKELY should be used when a branch is taken in almost all cases so the
* branch predictor can avoid pre-fetching the code for else branch
* DALI_UNLIKELY should be used when a branch is almost never taken
+ * @SINCE_1_0.0
*/
#define DALI_LIKELY(expression) __builtin_expect( !!(expression), 1 )
#define DALI_UNLIKELY(expression) __builtin_expect( !!(expression), 0 )
/**
* @brief The DALi namespace
+ * @SINCE_1_0.0
*/
namespace Dali
{
/**
* @brief Method to log assertion message in DALI_ASSERT_ALWAYS macro below.
*
+ * @SINCE_1_0.0
* @param[in] location Where the assertion occurred
* @param[in] condition The assertion condition
*/
/**
* @brief Exception class for Dali Core library - Raised by assertions in codebase.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API DaliException
{
*
* Will always display a backtrace when raised in a debug build.
*
+ * @SINCE_1_0.0
* @param[in] location - the location of the assertion
* @param[in] condition - The assertion condition
*/
*/
/**
- * Strip assert location for release builds, assert text is descriptive enough
+ * @brief Strip assert location for release builds, assert text is descriptive enough
* This is to save space for low spec devices
+ * @SINCE_1_0.0
*/
#if defined(DEBUG_ENABLED)
#define ASSERT_LOCATION __PRETTY_FUNCTION__
* @brief An invariant concurrent assertion to ensure its argument evaluates TRUE in debug builds.
*
* Use this to sanity check algorithms and prevent internal programming errors
+ * @SINCE_1_0.0
*/
#if defined(DEBUG_ENABLED)
#define DALI_ASSERT_DEBUG(cond) DALI_ASSERT_ALWAYS(cond)
* @brief For DALi internal use asserts are enabled in debug builds.
*
* For Application use asserts can be enabled manually.
+ * @SINCE_1_0.0
*/
#if defined( DEBUG_ENABLED )
#define ENABLE_VECTOR_ASSERTS
* Memory layout is such that it has two std::size_t to hold the count
* and capacity of the vector. mData is adjusted so that it points to the
* beginning of the first real item so that iterating the items is quick.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API VectorBase
{
/**
* @brief Default constructor. Does not allocate space.
+ * @SINCE_1_0.0
*/
VectorBase();
* Does not release the space. Derived class needs to call Release.
* Not virtual as should not be called directly and we do not want
* a vtable for this class as it would unnecessarily increase size.
+ * @SINCE_1_0.0
*/
~VectorBase();
/**
* @brief This method is inlined as its needed frequently for End() iterator.
*
+ * @SINCE_1_0.0
* @return The count of elements in this vector.
*/
SizeType Count() const
}
/**
+ * @SINCE_1_0.0
* @return The count of elements in this vector.
*/
SizeType Size() const
}
/**
- * @ return If the vector is empty
+ * @brief @ return If the vector is empty
+ * @SINCE_1_0.0
*/
bool Empty() const
{
}
/**
+ * @SINCE_1_0.0
* @return The capacity of this vector.
*/
SizeType Capacity() const;
* @brief Release the data.
*
* Does not call destructors on objects held.
+ * @SINCE_1_0.0
*/
void Release();
/**
* @brief Helper to set the count.
*
+ * @SINCE_1_0.0
* @param count Number of elements in the vector.
*/
void SetCount( SizeType count );
/**
* @brief Reserve space in the vector.
*
+ * @SINCE_1_0.0
* @param count of elements to reserve.
* @param elementSize of a single element.
*/
/**
* @brief Copy a vector.
*
+ * @SINCE_1_0.0
* @param vector Vector to copy from.
* @param elementSize of a single element.
*/
/**
* @brief Swap the contents of two vectors.
*
+ * @SINCE_1_0.0
* @param vector Vector to swap with.
*/
void Swap( VectorBase& vector );
* @brief Erase an element.
*
* Does not change capacity.
- * @pre last element cannot be erased as there is nothing to move.
+ * @SINCE_1_0.0
* @param address to erase from.
* @param elementSize to erase.
+ * @pre last element cannot be erased as there is nothing to move.
*/
void Erase( char* address, SizeType elementSize );
* @brief Erase a range of elements.
*
* Does not change capacity.
+ * @SINCE_1_0.0
* @param[in] first Address to the first element to be erased.
* @param[in] last Address to the last element to be erased.
* @param[in] elementSize Size of one of the elements to be erased.
char* Erase( char* first, char* last, SizeType elementSize );
/**
- * Copies a number of bytes from \e source to \e destination.
+ * @brief Copies a number of bytes from \e source to \e destination.
*
* \e source and \e destination must not overlap.
*
+ * @SINCE_1_0.0
* @param[in] destination Pointer to the destination address.
* @param[in] source Pointer to the source address.
* @param[in] numberOfBytes The number of bytes to be copied.
private:
// not copiable as it does not know the size of elements
- VectorBase( const VectorBase& ); ///< Undefined
- VectorBase& operator=( const VectorBase& ); ///< Undefined
+ VectorBase( const VectorBase& ); ///< Undefined @SINCE_1_0.0
+ VectorBase& operator=( const VectorBase& ); ///< Undefined @SINCE_1_0.0
protected: // Data
* @brief Vector algorithm variant for trivial types.
*
* Trivial types do not need destructor or copy constructor called.
+ * @SINCE_1_0.0
*/
template< bool IsTrivial >
class VectorAlgorithms : public VectorBase
/**
* @brief Empty constructor.
+ * @SINCE_1_0.0
*/
VectorAlgorithms()
{ }
/**
* @brief Empty destructor.
+ * @SINCE_1_0.0
*/
~VectorAlgorithms()
{ }
/**
* @brief Copy vector contents.
*
+ * @SINCE_1_0.0
* @param rhs to copy from.
* @param elementSize of the content.
*/
/**
* @brief Reserve space in the vector.
*
+ * @SINCE_1_0.0
* @param count of elements to reserve.
* @param elementSize of a single element.
*/
/**
* @brief Resize the vector. Does not change capacity.
*
+ * @SINCE_1_0.0
* @param count to resize to.
* @param elementSize of a single element.
*/
* @brief Clear the contents.
*
* For simple types nothing to do.
+ * @SINCE_1_0.0
*/
void Clear()
{
/**
* @brief Release the vector.
+ * @SINCE_1_0.0
*/
void Release()
{
/**
* @brief Erase an element. Does not change capacity.
*
+ * @SINCE_1_0.0
* @param address to erase from.
* @param elementSize to erase.
*/
/**
* @brief Erase a range of elements. Does not change capacity.
*
+ * @SINCE_1_0.0
* @param[in] first Address to the first element to be erased.
* @param[in] last Address to the last element to be erased.
* @param[in] elementSize Size of one of the elements to be erased.
/**
* @brief Inserts the given elements into the vector.
*
+ * @SINCE_1_0.0
* @param[in] at Address where to insert the elements into the vector.
* @param[in] from Address to the first element to be inserted.
* @param[in] to Address to the last element to be inserted.
* Not yet supported so will lead to compile error
* as constructor and destructor are private.
* TODO add support for this variant.
+ * @SINCE_1_0.0
*/
template<>
class VectorAlgorithms< false > : public VectorBase
/**
* @brief Vector class with minimum space allocation when its empty.
*
+ * @SINCE_1_0.0
* @param type of the data that the vector holds.
*/
template< class T, bool IsTrivialType = TypeTraits<T>::IS_TRIVIAL_TYPE == true >
/**
* @brief Type definitions.
+ * @SINCE_1_0.0
*/
typedef VectorBase::SizeType SizeType;
- typedef T* Iterator; ///< Most simple Iterator is a pointer
+ typedef T* Iterator; ///< Most simple Iterator is a pointer @SINCE_1_0.0
typedef const T* ConstIterator;
typedef T ItemType;
/**
* @brief Default constructor. Does not allocate any space.
+ * @SINCE_1_0.0
*/
Vector()
{ }
/**
* @brief Destructor. Releases the allocated space.
+ * @SINCE_1_0.0
*/
~Vector()
{
/**
* @brief Copy constructor.
*
+ * @SINCE_1_0.0
* @param vector Vector to copy from.
*/
Vector( const Vector& vector )
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param vector Vector to assign from.
* @return reference to self for chaining.
*/
}
/**
+ * @SINCE_1_0.0
* @return Iterator to the beginning of the data.
*/
Iterator Begin() const
}
/**
+ * @SINCE_1_0.0
* @return Iterator to the end of the data (one past last element).
*/
Iterator End() const
}
/**
- * @pre index must be in the vector's range.
+ * @SINCE_1_0.0
* @param index of the element.
* @return reference to the element for given index.
+ * @pre index must be in the vector's range.
*/
ItemType& operator[]( SizeType index )
{
}
/**
- * @pre index must be in the vector's range.
+ * @SINCE_1_0.0
* @param index of the element.
* @return reference to the element for given index.
+ * @pre index must be in the vector's range.
*/
const ItemType& operator[]( SizeType index ) const
{
* If this occurs, all pre-existing pointers into the vector will
* become invalid.
*
+ * @SINCE_1_0.0
* @param[in] element to be added.
*/
void PushBack( const ItemType& element )
*
* @param[in] at Iterator where to insert the elements into the vector.
* @param[in] element to be added.
+ *@SINCE_1_0.0
*/
void Insert( Iterator at, const ItemType& element )
{
* If this occurs, all pre-existing pointers into the vector will
* become invalid.
*
+ * @SINCE_1_0.0
+ * @param[in] at Iterator where to insert the elements into the vector.
+ * @param[in] from Iterator to the first element to be inserted.
+ * @param[in] to Iterator to the last element to be inserted.
* @pre Iterator \e at must be in the vector's range ( Vector::Begin(), Vector::End() ).
* @pre Iterators \e from and \e to must be valid iterators.
* @pre Iterator \e from must not be grater than Iterator \e to.
*
- * @param[in] at Iterator where to insert the elements into the vector.
- * @param[in] from Iterator to the first element to be inserted.
- * @param[in] to Iterator to the last element to be inserted.
*/
void Insert( Iterator at, Iterator from, Iterator to )
{
* @brief Reserve space in the vector.
*
* Reserving less than current Capacity is a no-op.
+ * @SINCE_1_0.0
* @param count of elements to reserve.
*/
void Reserve( SizeType count )
/**
* @brief Resize the vector. Does not change capacity.
*
+ * @SINCE_1_0.0
* @param count to resize to.
*/
void Resize( SizeType count )
/**
* @brief Resize the vector. Does not change capacity.
*
+ * @SINCE_1_0.0
* @param count to resize to.
* @param item to insert to the new indices.
*/
*
* Does not change capacity. Other elements get moved.
*
- * @pre Iterator \e iterator must be within the vector's range ( Vector::Begin(), Vector::End() - 1 ).
- *
+ * @SINCE_1_0.0
* @param iterator Iterator pointing to item to remove.
* @return Iterator pointing to next element.
+ * @pre Iterator \e iterator must be within the vector's range ( Vector::Begin(), Vector::End() - 1 ).
+ *
*/
Iterator Erase( Iterator iterator )
{
*
* Does not change capacity. Other elements get moved.
*
- * @pre Iterator \e first must be in the vector's range ( Vector::Begin(), Vector::End() ).
- * @pre Iterator \e last must be in the vector's range ( Vector::Begin(), Vector::End() ).
- * @pre Iterator \e first must not be grater than Iterator \e last.
- *
+ * @SINCE_1_0.0
* @param[in] first Iterator to the first element to be erased.
* @param[in] last Iterator to the last element to be erased.
*
* @return Iterator pointing to the next element of the last one.
+ * @pre Iterator \e first must be in the vector's range ( Vector::Begin(), Vector::End() ).
+ * @pre Iterator \e last must be in the vector's range ( Vector::Begin(), Vector::End() ).
+ * @pre Iterator \e first must not be grater than Iterator \e last.
+ *
*/
Iterator Erase( Iterator first, Iterator last )
{
* decreases size by one. This is much faster than Erase so use
* this in case order does not matter. Does not change capacity.
*
+ * @SINCE_1_0.0
+ * @param iterator Iterator pointing to item to remove.
* @pre Iterator \e iterator must be in the vector's range ( Vector::Begin(), Vector::End() - 1 ).
*
- * @param iterator Iterator pointing to item to remove.
*/
void Remove( Iterator iterator )
{
/**
* @brief Swap the contents of two vectors.
*
+ * @SINCE_1_0.0
* @param vector Vector to swap with.
*/
void Swap( Vector& vector )
/**
* @brief Clear the contents of the vector. Keeps its capacity.
+ * @SINCE_1_0.0
*/
void Clear()
{
/**
* @brief Release the memory that the vector holds.
+ * @SINCE_1_0.0
*/
void Release()
{
*
* Uses the Dali:Refobject type supply actual reference counting
* The object is responsible for destroying itself
+ * @SINCE_1_0.0
*/
template<typename T>
class IntrusivePtr
/**
* @brief Standard constructor to unassigned object.
+ * @SINCE_1_0.0
*/
IntrusivePtr() : mPtr( 0 ) {}
/**
* @brief Constructor to attach existing object.
*
+ * @SINCE_1_0.0
* @param p pointer to object,
*/
IntrusivePtr( T* p ) : mPtr( p )
/**
* @brief Copy constructor.
*
+ * @SINCE_1_0.0
* @param rhs const reference to an IntrusivePtr
* @tparam U reference counter object type
*/
/**
* @brief Copy constructor.
+ * @SINCE_1_0.0
*/
IntrusivePtr( IntrusivePtr const& rhs ) : mPtr( rhs.mPtr )
{
* @brief Destructor.
*
* Object will self-destruct if reference count is zero
+ * @SINCE_1_0.0
*/
~IntrusivePtr()
{
/**
* @brief Get pointer to reference counted object.
*
+ * @SINCE_1_0.0
* @return pointer to reference counted object
*/
T* Get() const
/**
* @brief Pointer operator override.
*
+ * @SINCE_1_0.0
* @return pointer to reference counted object
*/
T* operator->() const
/**
* @brief Dereference operator override.
*
+ * @SINCE_1_0.0
* @return reference to reference counted object
*/
T& operator*() const
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param rhs const reference to intrusive pointer
* @return reference to reference counted object
*/
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param rhs pointer to object to wrap
* @return A reference to this object
*/
/**
* @brief Reset intrusive pointer.
+ * @SINCE_1_0.0
*/
void Reset()
{
/**
* @brief Reset intrusive pointer with reference counted object.
*
+ * @SINCE_1_0.0
* @param rhs pointer to object
*/
void Reset( T* rhs )
* @brief Converts an object handle to a BooleanType.
*
* This is useful for checking whether the handle is NULL.
+ * @SINCE_1_0.0
*/
operator BooleanType() const
{
* @brief Detach pointer from intrusive ptr counting.
*
* Use with care.
+ * @SINCE_1_0.0
*/
T* Detach()
{
/**
* @brief Used by the safe bool idiom.
+ * @SINCE_1_0.0
*/
void ThisIsSaferThanReturningVoidStar() const {}
/**
* @brief Internal swap function
+ * @SINCE_1_0.0
*/
void Swap( IntrusivePtr& rhs )
{
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers.
*
+ * @SINCE_1_0.0
* @param lhs intrusive pointer to compare with
* @param rhs intrusive pointer to compare against
* @return true if the pointers point at the same object
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers.
*
+ * @SINCE_1_0.0
* @param lhs intrusive pointer to compare with
* @param rhs intrusive pointer to compare against
* @return true if the pointers point at different objects
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers
*
+ * @SINCE_1_0.0
* @param lhs intrusive pointer to compare with
* @param rhs object to compare against
* @return true if the intrusive pointer points at the specified object
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers.
*
+ * @SINCE_1_0.0
* @param lhs intrusive pointer to compare with
* @param rhs intrusive pointer to compare against
* @return true if the intrusive pointer doesn't point at the specified object
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers
*
+ * @SINCE_1_0.0
* @param lhs object to compare with
* @param rhs intrusive pointer to compare against
* @return true if the intrusive pointer points at the specified object
/**
* @brief Comparison overrides of objects wrapped by intrusive pointers
*
+ * @SINCE_1_0.0
* @param lhs object to compare with
* @param rhs intrusive pointer to compare against
* @return true if the intrusive pointer doesn't point at the specified object
/**
* @brief The status during resource loading operations.
+ * @SINCE_1_0.0
*/
enum LoadingState
{
- ResourceLoading, ///< The resource is loading
- ResourceLoadingSucceeded, ///< The resource loaded successfully
- ResourceLoadingFailed ///< The resource failed to load
+ ResourceLoading, ///< The resource is loading @SINCE_1_0.0
+ ResourceLoadingSucceeded, ///< The resource loaded successfully @SINCE_1_0.0
+ ResourceLoadingFailed ///< The resource failed to load @SINCE_1_0.0
};
/**
* | contextLost | @ref ContextLostSignal() |
* | contextRegained | @ref ContextRegainedSignal() |
* | sceneCreated | @ref SceneCreatedSignal() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Stage : public BaseHandle
{
public:
- typedef Signal< void (const KeyEvent&)> KeyEventSignalType; ///< Key event signal type
- typedef Signal< void () > EventProcessingFinishedSignalType; ///< Event Processing finished signal type
- typedef Signal< void (const TouchEvent&)> TouchedSignalType; ///< Touched signal type
- typedef Signal< void (const WheelEvent&)> WheelEventSignalType; ///< Touched signal type
- typedef Signal< void () > ContextStatusSignal; ///< Context status signal type
- typedef Signal< void () > SceneCreatedSignalType; ///< Scene created signal type
+ typedef Signal< void (const KeyEvent&)> KeyEventSignalType; ///< Key event signal type @SINCE_1_0.0
+ typedef Signal< void () > EventProcessingFinishedSignalType; ///< Event Processing finished signal type @SINCE_1_0.0
+ typedef Signal< void (const TouchEvent&)> TouchedSignalType; ///< Touched signal type @SINCE_1_0.0
+ typedef Signal< void (const WheelEvent&)> WheelEventSignalType; ///< Touched signal type @SINCE_1_0.0
+ typedef Signal< void () > ContextStatusSignal; ///< Context status signal type @SINCE_1_0.0
+ typedef Signal< void () > SceneCreatedSignalType; ///< Scene created signal type @SINCE_1_0.0
static const Vector4 DEFAULT_BACKGROUND_COLOR; ///< Default black background.
static const Vector4 DEBUG_BACKGROUND_COLOR; ///< Green background, useful when debugging.
* @brief Allows the creation of an empty stage handle.
*
* To retrieve the current stage, this handle can be set using Stage::GetCurrent().
+ * @SINCE_1_0.0
*/
Stage();
/**
* @brief Get the current Stage.
*
+ * @SINCE_1_0.0
* @return The current stage or an empty handle if Core has not been created or has been already destroyed.
*/
static Stage GetCurrent();
/**
* @brief Query whether the Stage exists; this should only return false during or after destruction of Dali core.
*
+ * @SINCE_1_0.0
* @return True when it's safe to call Stage::GetCurrent().
*/
static bool IsInstalled();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Stage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
Stage(const Stage& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief Adds a child Actor to the Stage.
*
* The child will be referenced.
+ * @SINCE_1_0.0
+ * @param [in] actor The child.
* @pre The actor has been initialized.
* @pre The actor does not have a parent.
- * @param [in] actor The child.
*/
void Add(Actor& actor);
* @brief Removes a child Actor from the Stage.
*
* The child will be unreferenced.
- * @pre The actor has been added to the stage.
+ * @SINCE_1_0.0
* @param [in] actor The child.
+ * @pre The actor has been added to the stage.
*/
void Remove(Actor& actor);
* The x component will be the width of the Stage in pixels
* The y component will be the height of the Stage in pixels
* The z component will be the distance between far and near planes
+ * @SINCE_1_0.0
* @return The size of the Stage as a Vector.
*/
Vector2 GetSize() const;
/**
* @brief Retrieve the list of render-tasks.
*
+ * @SINCE_1_0.0
* @return A valid handle to a RenderTaskList.
*/
RenderTaskList GetRenderTaskList() const;
* @brief Query the number of on-stage layers.
*
* Note that a default layer is always provided (count >= 1).
+ * @SINCE_1_0.0
* @return The number of layers.
*/
unsigned int GetLayerCount() const;
/**
* @brief Retrieve the layer at a specified depth.
*
- * @pre depth is less than layer count; see GetLayerCount().
+ * @SINCE_1_0.0
* @param[in] depth The depth.
* @return The layer found at the given depth.
+ * @pre depth is less than layer count; see GetLayerCount().
*/
Layer GetLayer(unsigned int depth) const;
/**
* @brief Returns the Stage's Root Layer.
*
+ * @SINCE_1_0.0
* @return The root layer.
*/
Layer GetRootLayer() const;
/**
* @brief Set the background color of the stage.
*
+ * @SINCE_1_0.0
* @param[in] color The new background color.
*/
void SetBackgroundColor(Vector4 color);
/**
* @brief Retrieve the background color of the stage.
*
+ * @SINCE_1_0.0
* @return The background color.
*/
Vector4 GetBackgroundColor() const;
/**
* @brief Retrieve the DPI of the display device to which the stage is connected.
*
+ * @SINCE_1_0.0
* @return the horizontal and vertical DPI
*/
Vector2 GetDpi() const;
/**
* @brief Get the Object registry.
*
+ * @SINCE_1_0.0
* @return The object registry.
*/
ObjectRegistry GetObjectRegistry() const;
*
* By default Dali will stop rendering when no Actor positions are being set, and when no animations are running etc.
* This method is useful to force screen refreshes e.g. when updating a NativeImage.
+ * @SINCE_1_0.0
* @param durationSeconds to keep rendering, 0 means render at least one more frame
*/
void KeepRendering( float durationSeconds );
* @code
* void YourCallbackName(const KeyEvent& event);
* @endcode
+ * @SINCE_1_0.0
* @return The signal to connect to.
*/
KeyEventSignalType& KeyEventSignal();
/**
* @brief This signal is emitted just after the event processing is finished.
*
+ * @SINCE_1_0.0
* @return The signal to connect to.
*/
EventProcessingFinishedSignalType& EventProcessingFinishedSignal();
* void YourCallbackName(const TouchEvent& event);
* @endcode
*
- * @note Motion events are not emitted.
+ * @SINCE_1_0.0
* @return The touch signal to connect to.
+ * @note Motion events are not emitted.
*/
TouchedSignalType& TouchedSignal();
* @code
* void YourCallbackName(const WheelEvent& event);
* @endcode
+ * @SINCE_1_0.0
* @return The signal to connect to.
*/
WheelEventSignalType& WheelEventSignal();
*
* If the application is responsible for handling context loss, it should listen to
* this signal and tear down UI components when recieved.
+ * @SINCE_1_0.0
* @return The ContextLost signal to connect to.
*/
ContextStatusSignal& ContextLostSignal();
*
* If the application is responsible for handling context loss, it should listen to
* this signal and rebuild UI components on receipt.
+ * @SINCE_1_0.0
* @return The ContextRegained signal to connect to.
*/
ContextStatusSignal& ContextRegainedSignal();
* @code
* void YourCallbackName();
* @endcode
+ * @SINCE_1_0.0
* @return The signal to connect to.
*/
SceneCreatedSignalType& SceneCreatedSignal();
/**
* @brief This constructor is used by Dali GetCurrent() methods.
*
+ * @SINCE_1_0.0
* @param [in] stage A pointer to a Dali resource
*/
explicit DALI_INTERNAL Stage(Internal::Stage* stage);
/**
* @brief Basic type traits that every type has by default
* This allows specialisations to not have to repeat all flags
+ * @SINCE_1_0.0
*/
template <typename Type>
struct BasicTypes
{
/**
- * This flag tells Dali if a class can be considered POD. If it declares copy constructor and/or destructor, its not considered trivial
+ * @brief This flag tells Dali if a class can be considered POD. If it declares copy constructor and/or destructor, its not considered trivial
* and cannot be copied by using memcpy etc.
+ * @SINCE_1_0.0
*/
enum { IS_TRIVIAL_TYPE = __has_trivial_destructor(Type) && __has_trivial_copy(Type) };
};
* template <> struct TypeTraits< Matrix > : public BasicTypes< Matrix > { enum { IS_TRIVIAL_TYPE = true }; };
* }
* </code>
+ * @SINCE_1_0.0
*/
template <typename Type>
struct TypeTraits : public BasicTypes< Type >
*/
/**
- * Stereoscopic view modes
+ * @brief Stereoscopic view modes
+ * @SINCE_1_0.0
*/
enum ViewMode
{
- MONO, ///< Monoscopic (single camera). This is the default
- STEREO_HORIZONTAL, ///< Stereoscopic. Frame buffer is split horizontally with the left and right camera views in their respective sides.
- STEREO_VERTICAL, ///< Stereoscopic. Frame buffer is split vertically with the left camera view at the top and the right camera view at the bottom.
- STEREO_INTERLACED ///< Stereoscopic. Left/Right camera views are rendered into the framebuffer on alternate frames.
+ MONO, ///< Monoscopic (single camera). This is the default @SINCE_1_0.0
+ STEREO_HORIZONTAL, ///< Stereoscopic. Frame buffer is split horizontally with the left and right camera views in their respective sides. @SINCE_1_0.0
+ STEREO_VERTICAL, ///< Stereoscopic. Frame buffer is split vertically with the left camera view at the top and the right camera view at the bottom. @SINCE_1_0.0
+ STEREO_INTERLACED ///< Stereoscopic. Left/Right camera views are rendered into the framebuffer on alternate frames. @SINCE_1_0.0
};
/**
* This is the base class for different gesture detectors available and provides functionality that is common
* to all the gesture detectors.
*
+ * @SINCE_1_0.0
* @see Gesture
*/
class DALI_IMPORT_API GestureDetector : public Handle
* @brief Create an uninitialized GestureDetector; this can be initialized with one of the derived gestures' New() methods.
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
GestureDetector();
*
* If handle points to a GestureDetector 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 GestureDetector object or an uninitialized handle
*/
* @brief Dali::GestureDetector 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
*/
~GestureDetector();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
GestureDetector(const GestureDetector& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
*
* The detected signal will be dispatched when the gesture occurs on
* the attached actor.
- * @note You can attach several actors to a gesture detector.
+ * @SINCE_1_0.0
* @param[in] actor The actor to attach to the gesture detector
* @pre The gesture detector has been initialized.
+ * @note You can attach several actors to a gesture detector.
*/
void Attach(Actor actor);
/**
* @brief Detaches the attached actor from the gesture detector.
*
+ * @SINCE_1_0.0
* @param[in] actor The actor to detach from the gesture detector.
* @pre The gesture detector has been initialized.
* @pre The specified actor has been attached to the gesture detector.
/**
* @brief Detaches all the actors that have been attached to the gesture detector.
*
+ * @SINCE_1_0.0
* @pre The gesture detector has been initialized.
* @pre At least one actor has been attached to the gesture detector.
*/
/**
* @brief Returns the number of actors attached to the gesture detector.
*
+ * @SINCE_1_0.0
* @return The count
* @pre The gesture detector has been initialized.
*/
/**
* @brief Returns an actor by index. An empty handle if the index is not valid.
*
+ * @SINCE_1_0.0
* @return The attached actor or an empty handle.
* @pre The gesture detector has been initialized.
*/
/**
* @brief This constructor is used by Dali New() methods of derived classes.
*
+ * @SINCE_1_0.0
* @param [in] internal A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL GestureDetector(Internal::GestureDetector* internal);
* To receive a particular gesture, the application has to create and connect to the appropriate
* GestureDetector.
*
+ * @SINCE_1_0.0
+ * @note An instance of this class cannot be created.
* @see GestureDetector
*
- * @note An instance of this class cannot be created.
*/
struct DALI_IMPORT_API Gesture
{
/**
* @brief Copy constructor.
+ * @SINCE_1_0.0
*/
Gesture( const Gesture& rhs );
/**
* @brief Assignment operator.
+ * @SINCE_1_0.0
*/
Gesture& operator=( const Gesture& rhs );
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~Gesture();
/**
* @brief Type of gesture.
+ * @SINCE_1_0.0
*/
enum Type
{
- Pinch = 1 << 0, ///< When two touch points move away or towards each other.
- Pan = 1 << 1, ///< When the user drags their finger(s) in a particular direction.
- Tap = 1 << 2, ///< When the user taps the screen.
- LongPress = 1 << 3 ///< When the user continues to touch the same area on the screen for the device configured time.
+ Pinch = 1 << 0, ///< When two touch points move away or towards each other. @SINCE_1_0.0
+ Pan = 1 << 1, ///< When the user drags their finger(s) in a particular direction. @SINCE_1_0.0
+ Tap = 1 << 2, ///< When the user taps the screen. @SINCE_1_0.0
+ LongPress = 1 << 3 ///< When the user continues to touch the same area on the screen for the device configured time. @SINCE_1_0.0
};
/**
* @brief State of the gesture.
+ * @SINCE_1_0.0
*/
enum State
{
- Clear, ///< There is no state associated with this gesture.
- Started, ///< The touched points on the screen have moved enough to be considered a gesture.
- Continuing, ///< The gesture is continuing.
- Finished, ///< The user has lifted a finger or touched an additional point on the screen.
- Cancelled, ///< The gesture has been cancelled.
- Possible ///< A gesture is possible.
+ Clear, ///< There is no state associated with this gesture. @SINCE_1_0.0
+ Started, ///< The touched points on the screen have moved enough to be considered a gesture. @SINCE_1_0.0
+ Continuing, ///< The gesture is continuing. @SINCE_1_0.0
+ Finished, ///< The user has lifted a finger or touched an additional point on the screen. @SINCE_1_0.0
+ Cancelled, ///< The gesture has been cancelled. @SINCE_1_0.0
+ Possible ///< A gesture is possible. @SINCE_1_0.0
};
// Data
/**
* @brief This constructor is only used by derived classes.
*
+ * @SINCE_1_0.0
* @param[in] gestureType The type of gesture event.
* @param[in] gestureState The state of the gesture event.
*/
*
* When a multi-touch event occurs, each touch point represents the points that are currently being
* hovered or the points where a hover has stopped.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API HoverEvent
{
/**
* @brief Default constructor
+ * @SINCE_1_0.0
*/
HoverEvent();
/**
* @brief Constructor
+ * @SINCE_1_0.0
* @param[in] time The time the event occurred
*/
HoverEvent(unsigned long time);
/**
* @brief Destructor
+ * @SINCE_1_0.0
*/
~HoverEvent();
/**
* @brief Returns the total number of points in this HoverEvent.
*
+ * @SINCE_1_0.0
* @return Total number of Points.
*/
unsigned int GetPointCount() const;
*
* The first point in the set is always the primary
* touch point (i.e. the first point touched in a multi-touch event).
- * @note "point" should be less than the value returned by GetPointCount().
- * If out of range, then program asserts.
+ * @SINCE_1_0.0
* @param[in] point The index of the required Point.
* @return Point requested
+ * @note "point" should be less than the value returned by GetPointCount().
+ * If out of range, then program asserts.
*/
const TouchPoint& GetPoint(unsigned int point) const;
};
* Currently KeyEvent is also being used to relay messages from the
* IMF keyboard to Core. In future IMF may communicate via its own
* module.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API KeyEvent
{
/**
* @brief Specifies the state of the key event.
+ * @SINCE_1_0.0
*/
enum State
{
- Down, ///< Key down
- Up, ///< Key up
+ Down, ///< Key down @SINCE_1_0.0
+ Up, ///< Key up @SINCE_1_0.0
Last
};
/**
* @brief Default constructor
+ * @SINCE_1_0.0
*/
KeyEvent();
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] keyName The name of the key pressed or command from the IMF, if later then the some following parameters will be needed.
* @param[in] keyString A string of input characters or key pressed
* @param[in] keyCode The unique key code for the key pressed.
/**
* @brief Destructor.
+ * @SINCE_1_0.0
*/
~KeyEvent();
/**
* @brief Check to see if Shift key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if shift modifier
*/
bool IsShiftModifier() const;
/**
* @brief Check to see if Ctrl (control) key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if ctrl modifier
*/
bool IsCtrlModifier() const;
/**
* @brief Check to see if Alt key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if alt modifier
*/
bool IsAltModifier() const;
/**
* @brief This class emits a signals when a long press gesture occurs that meets the requirements set by the application.
+ * @SINCE_1_0.0
* @see LongPressGestureDetector::SetTouchesRequired.
*
* For any valid long press, two signals will be emitted:
{
public: // Typedefs
- typedef Signal< void ( Actor, const LongPressGesture& ) > DetectedSignalType; ///< Gesture detected signal type
+ typedef Signal< void ( Actor, const LongPressGesture& ) > DetectedSignalType; ///< Gesture detected signal type @SINCE_1_0.0
public: // Creation & Destruction
* @brief Create an uninitialized LongPressGestureDetector; this can be initialized with LongPressGestureDetector::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
LongPressGestureDetector();
* @brief Create an initialized LongPressGestureDetector.
*
* By default, this would create a gesture detector that requires only one touch.
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Dali resource.
*/
static LongPressGestureDetector New();
*
* A long press gesture will be emitted from this detector if the number of fingers touching the
* screen is equal to the touches required.
+ * @SINCE_1_0.0
* @param[in] touchesRequired The number of touches required.
* @return A handle to a newly allocated Dali resource.
*/
*
* A long press gesture will be emitted from this detector if the number of fingers touching the screen
* falls between the minimum and maximum touches set.
+ * @SINCE_1_0.0
* @param[in] minTouches The minimum number of touches required.
* @param[in] maxTouches The maximum number of touches required.
* @return A handle to a newly allocated Dali resource.
*
* If handle points to a LongPressGestureDetector 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 LongPressGestureDetector object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~LongPressGestureDetector();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
LongPressGestureDetector(const LongPressGestureDetector& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* has on the screen. This sets the minimum and maximum touches to
* the input parameter.
*
+ * @SINCE_1_0.0
* @param[in] touches Touches required.
* @pre The gesture detector has been initialized.
* @note The default is '1'.
* The number of touches corresponds to the number of fingers a user
* has on the screen.
*
+ * @SINCE_1_0.0
* @param[in] minTouches Minimum Touches required.
* @param[in] maxTouches Maximum Touches required.
* @pre The gesture detector has been initialized.
/**
* @brief Retrieves the minimum number of touches required.
*
+ * @SINCE_1_0.0
* @return The minimum number of touches required.
* @pre The gesture detector has been initialized.
*/
/**
* @brief Retrieves the maximum number of touches required.
*
+ * @SINCE_1_0.0
* @return The maximum number of touches required.
* @pre The gesture detector has been initialized.
*/
* @code
* void YourCallbackName( Actor actor, const LongPressGesture& gesture );
* @endcode
- * @pre The gesture detector has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The gesture detector has been initialized.
*/
DetectedSignalType& DetectedSignal();
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] internal A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL LongPressGestureDetector(Internal::LongPressGestureDetector* internal);
*
* Long press gesture finishes when all touches have been released.
*
+ * @SINCE_1_0.0
* @see LongPressGestureDetector
*/
struct DALI_IMPORT_API LongPressGesture : public Gesture
/**
* @brief Constructor
*
+ * @SINCE_1_0.0
* @param[in] state The state of the gesture
*/
LongPressGesture(Gesture::State state);
/**
* @brief Copy constructor
+ * @SINCE_1_0.0
*/
LongPressGesture( const LongPressGesture& rhs );
/**
* @brief Assignment operator
+ * @SINCE_1_0.0
*/
LongPressGesture& operator=( const LongPressGesture& rhs );
/**
* @brief Virtual destructor
+ * @SINCE_1_0.0
*/
virtual ~LongPressGesture();
* detector.SetMaximumTouchesRequired(2);
* @endcode
*
+ * @SINCE_1_0.0
* @see PanGesture
*
* Signals
/**
* @brief An enumeration of properties belonging to the PanGestureDetector class.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- SCREEN_POSITION = DEFAULT_GESTURE_DETECTOR_PROPERTY_START_INDEX, ///< name "screenPosition", type Vector2
- SCREEN_DISPLACEMENT, ///< name "screenDisplacement", type Vector2
- SCREEN_VELOCITY, ///< name "screenVelocity", type Vector2
- LOCAL_POSITION, ///< name "localPosition", type Vector2
- LOCAL_DISPLACEMENT, ///< name "localDisplacement", type Vector2
- LOCAL_VELOCITY, ///< name "localVelocity", type Vector2
- PANNING, ///< name "panning", type bool
+ SCREEN_POSITION = DEFAULT_GESTURE_DETECTOR_PROPERTY_START_INDEX, ///< name "screenPosition", type Vector2 @SINCE_1_0.0
+ SCREEN_DISPLACEMENT, ///< name "screenDisplacement", type Vector2 @SINCE_1_0.0
+ SCREEN_VELOCITY, ///< name "screenVelocity", type Vector2 @SINCE_1_0.0
+ LOCAL_POSITION, ///< name "localPosition", type Vector2 @SINCE_1_0.0
+ LOCAL_DISPLACEMENT, ///< name "localDisplacement", type Vector2 @SINCE_1_0.0
+ LOCAL_VELOCITY, ///< name "localVelocity", type Vector2 @SINCE_1_0.0
+ PANNING, ///< name "panning", type bool @SINCE_1_0.0
};
};
// Typedefs
- typedef Signal< void ( Actor, const PanGesture& ) > DetectedSignalType; ///< Pan gesture detected signal type
+ typedef Signal< void ( Actor, const PanGesture& ) > DetectedSignalType; ///< Pan gesture detected signal type @SINCE_1_0.0
// Directional Pan
- typedef std::pair< Radian, Radian > AngleThresholdPair; ///< Range of angles for a direction
+ typedef std::pair< Radian, Radian > AngleThresholdPair; ///< Range of angles for a direction @SINCE_1_0.0
static const Radian DIRECTION_LEFT; ///< For a left pan (-PI Radians).
static const Radian DIRECTION_RIGHT; ///< For a right pan (0 Radians).
* @brief Create an uninitialized PanGestureDetector; this can be initialized with PanGestureDetector::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
PanGestureDetector();
/**
* @brief Create an initialized PanGestureDetector.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Dali resource.
*/
static PanGestureDetector New();
*
* If handle points to a PanGestureDetector 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 PanGestureDetector object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~PanGestureDetector();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
PanGestureDetector(const PanGestureDetector& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief This is the minimum number of touches required for the pan gesture to be detected.
*
+ * @SINCE_1_0.0
* @param[in] minimum Minimum touches required.
* @pre The gesture detector has been initialized.
* @note The default minimum is '1'.
/**
* @brief This is the maximum number of touches required for the pan gesture to be detected.
*
+ * @SINCE_1_0.0
* @param[in] maximum Maximum touches required.
* @pre The gesture detector has been initialized.
* @note The default maximum is '1'.
/**
* @brief Retrieves the minimum number of touches required for the pan gesture to be detected.
*
+ * @SINCE_1_0.0
* @return The minimum touches required.
* @pre The gesture detector has been initialized.
*/
/**
* @brief Retrieves the maximum number of touches required for the pan gesture to be detected.
*
+ * @SINCE_1_0.0
* @return The maximum touches required.
* @pre The gesture detector has been initialized.
*/
* If an angle of 0.0 degrees is specified and the threshold is 45 degrees then the acceptable
* direction range is from -45 to 45 degrees.
*
+ * @SINCE_1_0.0
* @param[in] angle The angle that pan should be allowed.
* @param[in] threshold The threshold around that angle.
*
+ * @pre The gesture detector has been initialized.
* @note The angle added using this API is only checked when the gesture first starts, after that,
* this detector will emit the gesture regardless of what angle the pan is moving.
* @note The user can add as many angles as they require.
* @note If no threshold is provided, then the default threshold (PI * 0.25) is used.
* @note If the threshold is greater than PI, then PI will be used as the threshold.
*
- * @pre The gesture detector has been initialized.
*/
void AddAngle( Radian angle, Radian threshold = DEFAULT_THRESHOLD );
* In other words, if 0 is requested, then PI will also be added so that we have both left and
* right scrolling.
*
+ * @SINCE_1_0.0
* @param[in] direction The direction of panning required.
* @param[in] threshold The threshold.
*
+ * @pre The gesture detector has been initialized.
+ *
* @note If a direction outside the range above is given, then it is wrapped within the range, i.e.
* 190 degrees becomes -170 degrees and 370 degrees becomes 10 degrees.
* @note If no threshold is provided, then the default threshold (PI * 0.25) is used.
* @note If the threshold is greater than PI, then PI will be used as the threshold.
* @note As long as you specify the type, you can also pass in a Dali::Degree to this method.
*
- * @pre The gesture detector has been initialized.
- *
* @see AddAngle
*/
void AddDirection( Radian direction, Radian threshold = DEFAULT_THRESHOLD );
/**
* @brief Returns the count of angles that this pan gesture detector emits a signal.
*
+ * @SINCE_1_0.0
* @return The count.
* @pre The gesture detector has been initialized.
*/
/**
* @brief Returns the angle by index that this pan gesture detector emits a signal.
*
+ * @SINCE_1_0.0
* @return an angle threshold pair, or a zero valued angle pair when index is invalid.
* @pre The gesture detector has been initialized.
* @pre The index is less than GetAngleCount()
*
* After this, the pan gesture
* will be emitted for a pan in ANY direction.
+ * @SINCE_1_0.0
* @pre The gesture detector has been initialized.
*/
void ClearAngles();
/**
* @brief Removes the angle specified from the container.
*
+ * @SINCE_1_0.0
* @param[in] angle The angle to remove.
* @pre The gesture detector has been initialized.
* @note This will only remove the first instance of the angle found from the container.
/**
* @brief Removes the two angles that make up the direction from the container.
*
+ * @SINCE_1_0.0
* @param[in] direction The direction to remove.
* @pre The gesture detector has been initialized.
* @note If a direction outside the range in AddAngle() is given, then the value is wrapped within
* @code
* void YourCallbackName( Actor actor, const PanGesture& gesture );
* @endcode
- * @pre The gesture detector has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The gesture detector has been initialized.
*/
DetectedSignalType& DetectedSignal();
/**
* @brief Allows setting of the pan properties that are returned in constraints.
*
+ * @SINCE_1_0.0
* @param[in] pan The pan gesture to set.
- *@note If a normal pan is taking place, then any value set is ignored.
+ * @note If a normal pan is taking place, then any value set is ignored.
*/
static void SetPanGestureProperties( const PanGesture& pan );
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] internal A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL PanGestureDetector(Internal::PanGestureDetector* internal);
* - Cancelled by the system.
*
* A pan gesture will continue to be sent to the actor under than initial pan until it ends.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API PanGesture: public Gesture
{
/**
* @brief Default Constructor.
+ * @SINCE_1_0.0
*/
PanGesture();
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] state The state of the gesture
*/
PanGesture(Gesture::State state);
/**
* @brief Copy constructor.
+ * @SINCE_1_0.0
*/
PanGesture( const PanGesture& rhs );
/**
* @brief Assignment operator.
+ * @SINCE_1_0.0
*/
PanGesture& operator=( const PanGesture& rhs );
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~PanGesture();
* @brief Returns the speed at which the user is moving their fingers.
*
* This is the pixel movement per millisecond.
+ * @SINCE_1_0.0
* @return The speed of the pan (in pixels per millisecond).
*/
float GetSpeed() const;
* if the gesture has just started, then the distance moved since the user touched the screen.
*
* This is always a positive value.
+ * @SINCE_1_0.0
* @return The distance, as a float, a user's finger has panned.
*/
float GetDistance() const;
* @brief Returns the speed at which the user is moving their fingers relative to screen coordinates.
*
* This is the pixel movement per millisecond.
+ * @SINCE_1_0.0
* @return The speed of the pan (in pixels per millisecond).
*/
float GetScreenSpeed() const;
* since the user touched the screen.
*
* This is always a positive value.
+ * @SINCE_1_0.0
* @return The distance, as a float, a user's finger has panned.
*/
float GetScreenDistance() const;
* detector.DetectedSignal().Connect(this, &MyApplication::OnPinch);
* @endcode
*
+ * @SINCE_1_0.0
* @see PinchGesture
*
* Signals
/**
* @brief Signal type.
+ * @SINCE_1_0.0
*/
typedef Signal< void ( Actor, const PinchGesture& ) > DetectedSignalType;
* @brief Create an uninitialized PinchGestureDetector; this can be initialized with PinchGestureDetector::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
PinchGestureDetector();
/**
* @brief Create an initialized PinchGestureDetector.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Dali resource.
*/
static PinchGestureDetector New();
*
* If handle points to a PinchGestureDetector 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 PinchGestureDetector object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~PinchGestureDetector();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
PinchGestureDetector(const PinchGestureDetector& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @code
* void YourCallbackName( Actor actor, const PinchGesture& gesture );
* @endcode
- * @pre The gesture detector has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The gesture detector has been initialized.
*/
DetectedSignalType& DetectedSignal();
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] internal A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL PinchGestureDetector(Internal::PinchGestureDetector* internal);
*
* A pinch gesture will continue to be sent to the actor under the center point of the pinch
* until the pinch ends.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API PinchGesture: public Gesture
{
/**
* @brief Default Constructor.
*
+ * @SINCE_1_0.0
* @param[in] state The state of the gesture
*/
PinchGesture(Gesture::State state);
/**
* @brief Copy constructor.
+ * @SINCE_1_0.0
*/
PinchGesture( const PinchGesture& rhs );
/**
* @brief Assignment operator.
+ * @SINCE_1_0.0
*/
PinchGesture& operator=( const PinchGesture& rhs );
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~PinchGesture();
* detector.DetectedSignal().Connect(this, &MyApplication::OnTap);
* @endcode
*
- * @see TapGesture
- *
+ * @SINCE_1_0.0
* @note Multi-touch taps are not currently supported. However, multiple taps (double & triple tap etc.) ARE supported.
*
* Signals
* | %Signal Name | Method |
* |--------------|-----------------------|
* | tapDetected | @ref DetectedSignal() |
+ * @see TapGesture
+ *
*/
class DALI_IMPORT_API TapGestureDetector : public GestureDetector
{
/**
* @brief Signal type for detected signal.
+ * @SINCE_1_0.0
*/
typedef Signal< void ( Actor, const TapGesture& ) > DetectedSignalType;
* @brief Create an uninitialized TapGestureDetector; this can be initialized with TapGestureDetector::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
TapGestureDetector();
* @brief Create an initialized TapGestureDetector.
*
* By default, this would create a gesture detector which requires one tap with one touch.
+ * @SINCE_1_0.0
* @return A handle to a newly allocated Dali resource.
*/
static TapGestureDetector New();
/**
* @brief Create an initialized TapGestureDetector with the specified parameters.
*
+ * @SINCE_1_0.0
* @param[in] tapsRequired The minimum & maximum number of taps required.
* @return A handle to a newly allocated Dali resource.
*/
*
* If handle points to a TapGestureDetector 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 TapGestureDetector object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~TapGestureDetector();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
TapGestureDetector(const TapGestureDetector& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief Set the minimum number of taps required.
*
* The tap count is the number of times a user should "tap" the screen.
+ * @SINCE_1_0.0
* @param[in] minimumTaps The minimum taps required.
* @pre The gesture detector has been initialized.
* @note The default is '1'.
* @brief Set the maximum number of taps required.
*
* The tap count is the number of times a user should "tap" the screen.
+ * @SINCE_1_0.0
* @param[in] maximumTaps The maximum taps required.
* @pre The gesture detector has been initialized.
* @note The default is '1'.
/**
* @brief Retrieves the minimum number of taps required.
*
+ * @SINCE_1_0.0
* @return The minimum taps required.
* @pre The gesture detector has been initialized.
*/
/**
* @brief Retrieves the maximum number of taps required.
*
+ * @SINCE_1_0.0
* @return The maximum taps required.
* @pre The gesture detector has been initialized.
*/
* @code
* void YourCallbackName( Actor actor, const TapGesture& gesture );
* @endcode
- * @pre The gesture detector has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The gesture detector has been initialized.
*/
DetectedSignalType& DetectedSignal();
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] internal A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL TapGestureDetector(Internal::TapGestureDetector* internal);
* @brief A TapGesture is emitted when the user taps the screen with the stated number of fingers a stated number of times.
*
* This is a discrete gesture so does not have any state information.
+ * @SINCE_1_0.0
* @see TapGestureDetector
*/
struct DALI_IMPORT_API TapGesture : public Gesture
/**
* @brief Default Constructor
+ * @SINCE_1_0.0
*/
TapGesture();
/**
* @brief Copy constructor
+ * @SINCE_1_0.0
*/
TapGesture( const TapGesture& rhs );
/**
* @brief Assignment operator
+ * @SINCE_1_0.0
*/
TapGesture& operator=( const TapGesture& rhs );
/**
* @brief Virtual destructor
+ * @SINCE_1_0.0
*/
virtual ~TapGesture();
*
* When a multi-touch event occurs, each touch point represents the points that are currently being
* touched or the points where a touch has stopped.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API TouchEvent
{
/**
* @brief Default constructor
+ * @SINCE_1_0.0
*/
TouchEvent();
/**
* @brief Constructor
+ * @SINCE_1_0.0
* @param[in] time The time the event occurred
*/
TouchEvent(unsigned long time);
/**
* @brief Destructor
+ * @SINCE_1_0.0
*/
~TouchEvent();
/**
* @brief Returns the total number of points in this TouchEvent.
*
+ * @SINCE_1_0.0
* @return Total number of Points.
*/
unsigned int GetPointCount() const;
*
* The first point in the set is always the primary
* touch point (i.e. the first point touched in a multi-touch event).
- * @note "point" should be less than the value returned by GetPointCount().
- * If out of range, then program asserts.
+ * @SINCE_1_0.0
* @param[in] point The index of the required Point.
* @return Point requested
+ * @note "point" should be less than the value returned by GetPointCount().
+ * If out of range, then program asserts.
*/
const TouchPoint& GetPoint(unsigned int point) const;
};
/**
* @brief A TouchPoint represents a point on the screen that is currently being touched
* or where touch has stopped.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API TouchPoint
{
/**
* @brief Touch state
+ * @SINCE_1_0.0
*/
enum State
{
/**
* @brief Constructor
*
+ * @SINCE_1_0.0
* @param[in] id The touch device ID.
* @param[in] state The state.
* @param[in] screenX The X co-ordinate relative to the screen's origin.
/**
* @brief Constructor
*
+ * @SINCE_1_0.0
* @param[in] id The touch device ID.
* @param[in] state The state.
* @param[in] screenX The X co-ordinate relative to the screen's origin.
/**
* @brief Destructor
+ * @SINCE_1_0.0
*/
~TouchPoint();
Vector2 screen;
};
-typedef std::vector<TouchPoint> TouchPointContainer; ///< Container of touch points.
-typedef TouchPointContainer::iterator TouchPointContainerIterator; ///< Iterator for Dali::TouchPointContainer
-typedef TouchPointContainer::const_iterator TouchPointContainerConstIterator; ///< Const iterator for Dali::TouchPointContainer
+typedef std::vector<TouchPoint> TouchPointContainer; ///< Container of touch points. @SINCE_1_0.0
+typedef TouchPointContainer::iterator TouchPointContainerIterator; ///< Iterator for Dali::TouchPointContainer @SINCE_1_0.0
+typedef TouchPointContainer::const_iterator TouchPointContainerConstIterator; ///< Const iterator for Dali::TouchPointContainer @SINCE_1_0.0
/**
* @}
*
* We support a mouse device and there may be another custom device that support the wheel event. The device type is specified as \e type.
* The mouse wheel event can be sent to the specific actor but the custom wheel event will be sent to the stage.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API WheelEvent
{
/**
* @brief Specifies the type of the wheel event.
+ * @SINCE_1_0.0
*/
enum Type
{
- MOUSE_WHEEL, ///< Mouse wheel event
- CUSTOM_WHEEL ///< Custom wheel event
+ MOUSE_WHEEL, ///< Mouse wheel event @SINCE_1_0.0
+ CUSTOM_WHEEL ///< Custom wheel event @SINCE_1_0.0
};
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
WheelEvent();
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] type The type of the wheel event
* @param[in] direction The direction of wheel rolling (0 = default vertical wheel, 1 = horizontal wheel)
* @param[in] modifiers modifier keys pressed during the event (such as shift, alt and control)
/**
* @brief Destructor.
+ * @SINCE_1_0.0
*/
~WheelEvent();
/**
* @brief Check to see if Shift key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if shift modifier
*/
bool IsShiftModifier() const;
/**
* @brief Check to see if Ctrl (control) key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if ctrl modifier
*/
bool IsCtrlModifier() const;
/**
* @brief Check to see if Alt key modifier has been supplied.
*
+ * @SINCE_1_0.0
* @return bool true if alt modifier
*/
bool IsAltModifier() const;
class BufferImage;
}
-typedef unsigned char PixelBuffer; ///< pixel data buffer
-typedef Rect<unsigned int> RectArea; ///< rectangular area (x,y,w,h)
+typedef unsigned char PixelBuffer; ///< pixel data buffer @SINCE_1_0.0
+typedef Rect<unsigned int> RectArea; ///< rectangular area (x,y,w,h) @SINCE_1_0.0
/**
* then the image is considered to be have transparent pixels without
* regard for the actual content of the channel, and will be blended.
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API BufferImage : public Image
{
* @brief Constructor which creates an uninitialized BufferImage object.
*
* Use BufferImage::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
BufferImage();
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
* @note: default resource management policies are Immediate and Never
*
- * @pre width & height are greater than zero
+ * @SINCE_1_0.0
* @param [in] width image width in pixels
* @param [in] height image height in pixels
* @param [in] pixelformat the pixel format (rgba 32 bit by default)
* @return a handle to a new instance of BufferImage
+ * @pre width & height are greater than zero
*/
static BufferImage New(unsigned int width,
unsigned int height,
* For better performance and portability use power of two dimensions.
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
*
- * @pre width & height are greater than zero
+ * @SINCE_1_0.0
* @param [in] width Image width in pixels
* @param [in] height Image height in pixels
* @param [in] pixelFormat The pixel format
* @param [in] releasePolicy Optionally release memory when image is not visible on screen.
* @return a handle to a new instance of BufferImage
+ * @pre width & height are greater than zero
*/
static BufferImage New(unsigned int width,
unsigned int height,
* For better performance and portability use power of two dimensions.
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
*
- * @pre width & height are greater than zero
+ * @SINCE_1_0.0
* @param [in] pixelBuffer pixel buffer. has to be allocated by application.
* @param [in] width image width in pixels
* @param [in] height image height in pixels
* @param [in] pixelFormat the pixel format (rgba 32 bit by default)
* @param [in] stride the internal stride of the pixelbuffer in pixels
* @return a handle to a new instance of BufferImage
+ * @pre width & height are greater than zero
*/
static BufferImage New(PixelBuffer* pixelBuffer,
unsigned int width,
* For better performance and portability use power of two dimensions.
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
*
- * @note in case releasePolicy is "Unused", application has to call
- * BufferImage::Update() whenever image is re-added to the stage
- *
- * @pre width & height are greater than zero
+ * @SINCE_1_0.0
* @param [in] pixelBuffer pixel buffer. has to be allocated by application.
* @param [in] width image width in pixels
* @param [in] height image height in pixels
* @param [in] stride the internal stride of the pixelbuffer in pixels
* @param [in] releasePolicy optionally relase memory when image is not visible on screen.
* @return a handle to a new instance of BufferImage
+ * @pre width & height are greater than zero
+ * @note in case releasePolicy is "Unused", application has to call
+ * BufferImage::Update() whenever image is re-added to the stage
+ *
*/
static BufferImage New(PixelBuffer* pixelBuffer,
unsigned int width,
* If handle points to a BufferImage 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 BufferImage or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~BufferImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
BufferImage(const BufferImage& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief White pixel as image data.
*
* Can be used to create solid color actors.
+ * @SINCE_1_0.0
* @return 1 white pixel with 32 bit colordepth
*/
static const BufferImage WHITE();
* application should call Update() and wait for the
* SignalUploaded() method before writing again.
*
+ * @SINCE_1_0.0
* @return the pixel buffer
*/
PixelBuffer* GetBuffer();
/**
* @brief Returns buffer size in bytes.
*
+ * @SINCE_1_0.0
* @return the buffer size in bytes
*/
unsigned int GetBufferSize() const;
/**
* @brief Returns buffer stride (in bytes).
*
+ * @SINCE_1_0.0
* @return the buffer stride
*/
unsigned int GetBufferStride() const;
/**
* @brief Returns the pixel format of the contained buffer
*
+ * @SINCE_1_0.0
* @return the pixel format
*/
Pixel::Format GetPixelFormat() const;
* @note: BufferImage::Update might not work with BGR/BGRA formats!
* @note: Some GPUs may not support Non power of two buffer updates (for
* example C110/SGX540)
+ * @SINCE_1_0.0
*/
void Update();
* The application must not destroy an external PixelBuffer on a staged image
* if it has called Update() and hasn't received a SignalUploaded.
*
+ * @SINCE_1_0.0
* @return true if application owns data, false otherwise
*/
bool IsDataExternal() const;
*
* Image::UploadedSignal is emitted when the decoded image data gets
* uploaded to the OpenGL ES implementation.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API EncodedBufferImage : public Image
{
* @brief Constructor which creates an uninitialized EncodedBufferImage object.
*
* Use Image::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
EncodedBufferImage();
*
* @brief Create an initialised image object from an encoded image buffer in memory.
*
+ * @SINCE_1_0.0
* @param [in] encodedImage The encoded bytes of an image, in a supported
* image format such as PNG, JPEG, GIF, BMP, KTX, ICO, and WBMP, organised
* exactly as it would be as a file in the filesystem.
/**
* @brief Create an initialised image object from an encoded image buffer in memory.
*
+ * @SINCE_1_0.0
* @param [in] encodedImage The encoded bytes of an image, in a supported
* image format such as PNG, JPEG, GIF, BMP, KTX, ICO, and WBMP, organised
* exactly as it would be as a file in the filesystem.
/**
* @brief Create an initialised image object from an encoded image buffer in memory.
*
- * @since DALi 1.1.4
- *
+ * @SINCE_1_1.4
* @param [in] encodedImage The encoded bytes of an image, in a supported
* image format such as PNG, JPEG, GIF, BMP, KTX, ICO, and WBMP, organised
* exactly as it would be as a file in the filesystem.
*
* If handle points to a EncodedBufferImage 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 EncodedBufferImage or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~EncodedBufferImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
EncodedBufferImage(const EncodedBufferImage& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* The default format for framebuffer creation is COLOR, so If a depth buffer for 3D rendering is required use
* COLOR_DEPTH instead
*/
-enum Format ///< Framebuffer format, default color depth is RGBA 32 bit with alpha
+enum Format ///< Framebuffer format, default color depth is RGBA 32 bit with alpha @SINCE_1_0.0
{
- COLOR, ///< Framebuffer will be created with color buffer.
- COLOR_DEPTH, ///< Framebuffer will be created with color and depth buffer
- COLOR_STENCIL, ///< Framebuffer will be created with color and stencil buffer
- COLOR_DEPTH_STENCIL ///< Framebuffer will be created with color, depth and stencil buffer. NOTE: May be not supported in all devices
+ COLOR, ///< Framebuffer will be created with color buffer. @SINCE_1_0.0
+ COLOR_DEPTH, ///< Framebuffer will be created with color and depth buffer @SINCE_1_0.0
+ COLOR_STENCIL, ///< Framebuffer will be created with color and stencil buffer @SINCE_1_0.0
+ COLOR_DEPTH_STENCIL ///< Framebuffer will be created with color, depth and stencil buffer. NOTE: May be not supported in all devices @SINCE_1_0.0
};
}
* @brief FrameBufferImage represents a Open GL ES Frame Buffer Object
* It contains the result of an 'off screen' render pass of a RenderTask.
* The FrameBufferImage can then be used for rendering to the screen.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API FrameBufferImage : public Image
{
* @brief Constructor which creates an uninitialized FrameBufferImage object.
*
* Use Image::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
FrameBufferImage();
*
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
*
+ * @SINCE_1_0.0
* @param [in] width The width in pixels. Setting to zero will use the width of the stage.
* @param [in] height The height in pixels. Setting to zero will use the height of the stage.
* @param [in] pixelFormat The pixel format (rgba 32 bit by default)
* @param [in] bufferFormat The format of the buffers that are going to be created for the FBO, (COLOR and DEPTH buffer as default)
- * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if pixelFormat is not supported on the hardware platform.
* @return A handle to a new instance of a FrameBufferImage.
+ * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if pixelFormat is not supported on the hardware platform.
*/
static FrameBufferImage New(unsigned int width = 0, unsigned int height = 0, Pixel::Format pixelFormat = Pixel::RGBA8888,
RenderBuffer::Format bufferFormat = RenderBuffer::COLOR);
* @brief Create a new FrameBufferImage.
*
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
+ * @SINCE_1_0.0
* @param [in] width The width in pixels. Setting to zero will use the width of the stage.
* @param [in] height The height in pixels. Setting to zero will use the height of the stage.
* @param [in] pixelFormat The pixel format.
* @param [in] releasePolicy The ReleasePolicy to apply to the FrameBufferImage.
* @param [in] bufferFormat The format of the buffers that are going to be created for the FBO, (COLOR and DEPTH buffer as default)
*
- * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if pixelFormat is not supported on the hardware platform.
* @return A handle to a new instance of a FrameBufferImage.
+ * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if pixelFormat is not supported on the hardware platform.
*/
static FrameBufferImage New(unsigned int width, unsigned int height, Pixel::Format pixelFormat, ReleasePolicy releasePolicy,
RenderBuffer::Format bufferFormat = RenderBuffer::COLOR);
* @brief Create a new FrameBufferImage.
*
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
+ * @SINCE_1_0.0
* @param [in] image The native image.
*
- * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if the NativeImage cannot be mapped to a texture.
* @return A handle to a new instance of a FrameBufferImage.
+ * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if the NativeImage cannot be mapped to a texture.
*/
static FrameBufferImage New(NativeImageInterface& image);
* @brief Create a new FrameBufferImage.
*
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
+ * @SINCE_1_0.0
* @param [in] image The native image.
* @param [in] releasePolicy The ReleasePolicy to apply to the FrameBufferImage.
*
- * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if the NativeImage cannot be mapped to a texture.
* @return A handle to a new instance of a FrameBufferImage.
+ * @post When the FrameBufferImage is first used as a render target, an exception may be thrown if the NativeImage cannot be mapped to a texture.
*/
static FrameBufferImage New(NativeImageInterface& image, ReleasePolicy releasePolicy);
*
* If handle points to a FrameBufferImage 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 FrameBufferImage object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~FrameBufferImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
FrameBufferImage(const FrameBufferImage& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* 16 bits per component.
*
* This can only be used for images of up to 65535 x 65535 pixels.
+ * @SINCE_1_0.0
*/
typedef Uint16Pair ImageDimensions;
* A fitting mode controls the region of a loaded image to be mapped to the
* desired image rectangle.
* All fitting modes preserve the aspect ratio of the image contents.
+ * @SINCE_1_0.0
*/
namespace FittingMode
{
enum Type
{
- SHRINK_TO_FIT, ///< Fit full image inside desired width & height, potentially not
+ SHRINK_TO_FIT, ///< Fit full image inside desired width & height, potentially not @SINCE_1_0.0
/// filling one of either the desired image width or height with
/// pixels.
- SCALE_TO_FILL, ///< Image fills whole desired width & height with image data. The
+ SCALE_TO_FILL, ///< Image fills whole desired width & height with image data. The @SINCE_1_0.0
/// image is centred in the desired dimensions, exactly touching
/// in one dimension, with image regions outside the other desired
/// dimension cropped away.
- FIT_WIDTH, ///< Image fills whole width. Height is scaled proportionately to
+ FIT_WIDTH, ///< Image fills whole width. Height is scaled proportionately to @SINCE_1_0.0
/// maintain aspect ratio.
- FIT_HEIGHT ///< Image fills whole height. Width is scaled proportionately to
+ FIT_HEIGHT ///< Image fills whole height. Width is scaled proportionately to @SINCE_1_0.0
/// maintain aspect ratio.
};
const Type DEFAULT = SHRINK_TO_FIT;
* exactly matches the rectangle specified by the desired dimensions and
* FittingMode, but all other filter modes do if the desired dimensions are
* `<=` the raw dimensions of the input image file.
+ * @SINCE_1_0.0
*/
namespace SamplingMode
{
enum Type
{
- BOX, ///< Iteratively box filter to generate an image of 1/2, 1/4,
+ BOX, ///< Iteratively box filter to generate an image of 1/2, 1/4, @SINCE_1_0.0
/// 1/8, etc width and height and approximately the desired
/// size. This is the default.
- NEAREST, ///< For each output pixel, read one input pixel.
- LINEAR, ///< For each output pixel, read a quad of four input pixels
+ NEAREST, ///< For each output pixel, read one input pixel. @SINCE_1_0.0
+ LINEAR, ///< For each output pixel, read a quad of four input pixels @SINCE_1_0.0
/// and write a weighted average of them.
- BOX_THEN_NEAREST, ///< Iteratively box filter to generate an image of 1/2, 1/4,
+ BOX_THEN_NEAREST, ///< Iteratively box filter to generate an image of 1/2, 1/4, @SINCE_1_0.0
/// 1/8 etc width and height and approximately the desired
/// size, then for each output pixel, read one pixel from the
/// last level of box filtering.
- BOX_THEN_LINEAR, ///< Iteratively box filter to almost the right size, then for
+ BOX_THEN_LINEAR, ///< Iteratively box filter to almost the right size, then for @SINCE_1_0.0
/// each output pixel, read four pixels from the last level of
/// box filtering and write their weighted average.
- NO_FILTER, ///< No filtering is performed. If the SCALE_TO_FILL scaling mode
+ NO_FILTER, ///< No filtering is performed. If the SCALE_TO_FILL scaling mode @SINCE_1_0.0
/// is enabled, the borders of the image may be trimmed to
/// match the aspect ratio of the desired dimensions.
- DONT_CARE ///< For caching algorithms where a client strongly prefers a
+ DONT_CARE ///< For caching algorithms where a client strongly prefers a @SINCE_1_0.0
/// cache-hit to reuse a cached image.
};
const Type DEFAULT = BOX;
* | %Signal Name | Method |
* |------------------------|------------------------------|
* | uploaded | @ref UploadedSignal() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Image : public BaseHandle
{
/**
* @deprecated DALi 1.1.3 Image resource is released as soon as last handle is released
* @brief ReleasePolicy controls the way images are deleted from memory.
+ * @SINCE_1_0.0
*/
enum ReleasePolicy
{
- UNUSED, ///< release resource once image is not in use anymore (eg. all actors using it become offstage). Reload when resource is required again.
- NEVER ///< keep image data for the lifetime of the object. (default)
+ UNUSED, ///< release resource once image is not in use anymore (eg. all actors using it become offstage). Reload when resource is required again. @SINCE_1_0.0
+ NEVER ///< keep image data for the lifetime of the object. (default) @SINCE_1_0.0
};
/**
* @brief Type of signal for Image Uploaded.
+ * @SINCE_1_0.0
*/
typedef Signal< void (Image) > ImageSignalType;
* @brief Constructor which creates an empty Image handle.
*
* Use Image::New(...) to create an initialised handle.
+ * @SINCE_1_0.0
*/
Image();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~Image();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
Image(const Image& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
*
* If handle points to a Image 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 Image object or an uninitialized handle
*/
*
* @brief Return resource release policy.
*
+ * @SINCE_1_0.0
* @return resource release policy
*/
ReleasePolicy GetReleasePolicy() const;
*
* Returns either the requested width or the actual loaded width if no specific size was requested.
*
+ * @SINCE_1_0.0
* @return width of the image in pixels.
*/
unsigned int GetWidth() const;
*
* Returns either the requested height or the actual loaded height if no specific size was requested.
*
+ * @SINCE_1_0.0
* @return height of the image in pixels.
*/
unsigned int GetHeight() const;
* It Will be sent after an actor using the image is added to
* the stage, when such a staged image is reloaded, or when a staged
* BufferImage calls Update().
+ * @SINCE_1_0.0
* @return A signal object to Connect() with.
*/
ImageSignalType& UploadedSignal();
* @brief Abstract interface to provide platform-specific support for handling image data.
*
* For example, an implementation could use EGL extensions, etc.
+ * @SINCE_1_0.0
*/
class NativeImageInterface : public Dali::RefObject
{
* @brief Create the GL resource for the NativeImage.
*
* e.g. For the EglImageKHR extension, this corresponds to calling eglCreateImageKHR()
- * @pre There is a GL context for the current thread.
+ * @SINCE_1_0.0
* @return false If the initialization fails.
+ * @pre There is a GL context for the current thread.
*/
virtual bool GlExtensionCreate() = 0;
* @brief Destroy the GL resource for the NativeImage.
*
* e.g. For the EglImageKHR extension, this corresponds to calling eglDestroyImageKHR()
+ * @SINCE_1_0.0
* @pre There is a GL context for the current thread.
*/
virtual void GlExtensionDestroy() = 0;
/**
* @brief Use the NativeImage as a texture for rendering.
*
- * @pre There is a GL context for the current thread.
+ * @SINCE_1_0.0
* @return A GL error code
+ * @pre There is a GL context for the current thread.
*/
virtual unsigned int TargetTexture() = 0;
* @brief Called in each NativeTexture::Bind() call to allow implementation specific operations.
*
* The correct texture sampler has already been bound before the function gets called.
+ * @SINCE_1_0.0
* @pre glAbstraction is being used by context in current thread
*/
virtual void PrepareTexture() = 0;
/**
* @brief Returns the width of the NativeImage.
*
+ * @SINCE_1_0.0
* @return width
*/
virtual unsigned int GetWidth() const = 0;
/**
* @brief Returns the height of the NativeImage.
*
+ * @SINCE_1_0.0
* @return height
*/
virtual unsigned int GetHeight() const = 0;
/**
- * Query whether blending is required
+ * @brief Query whether blending is required
+ * @SINCE_1_0.0
*/
virtual bool RequiresBlending() const = 0;
/**
* @brief Retrieve the extension for the interface.
*
+ * @SINCE_1_0.0
* @return The extension if available, NULL otherwise
*/
virtual Extension* GetExtension()
* @brief A reference counted object may only be deleted by calling Unreference().
*
* The implementation should destroy the NativeImage resources.
+ * @SINCE_1_0.0
*/
virtual ~NativeImageInterface()
{
/**
* @brief Pointer to Dali::NativeImageInterface
+ * @SINCE_1_0.0
*/
typedef IntrusivePtr<NativeImageInterface> NativeImageInterfacePtr;
/**
* @brief NativeImage represents a platform specific image resource.
* Its data is provided by native resources, such as shared bitmap memory or pixmap.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API NativeImage : public Image
{
* @brief Constructor with creates an uninitialized NativeImage object.
*
* Use NativeImage::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
NativeImage();
* @brief Destructor.
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~NativeImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
NativeImage( const NativeImage& handle );
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param[in] rhs A reference to the copied handle.
* @return A reference to this.
*/
* This function forces the allocation of a texture to happen at the earliest
* opportunity.
*
+ * @SINCE_1_0.0
* @note If the application loses its GL context, native images may lose their
* GL textures. This function can be called again after context regain to force
* the creation of the GL texture if still needed.
* @brief Create a new NativeImage, which used native resources.
*
* The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE
+ * @SINCE_1_0.0
* @param [in] nativeImageInterface An reference to the object of the interface implementation.
* @return A handle to a newly allocated object.
*/
*
* If handle points to a NativeImage object, the downcast produces valid handle.
* If not, the returned handle is left unintialized.
+ * @SINCE_1_0.0
* @param[in] handle Handle to an object.
* @return handle to a NativeImage or an uninitialized handle.
*/
* Adding this image to an ImageActor using an Image handle will automatically convert
* to use the cropped BufferImage - if you don't retain a handle to this object, it will
* be automatically destroyed.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API NinePatchImage : public ResourceImage
{
* @brief Constructor which creates an uninitialized NinePatchImage object.
*
* Use Image::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
NinePatchImage();
* Dali has ownership of the buffer.
* @note: default resource management policies are Immediate and Never
*
+ * @SINCE_1_0.0
* @param [in] filename File to load synchronously into buffer
* @return a handle to a new instance of NinePatchImage
*/
* If handle points to a NinePatchImage 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 NinePatchImage or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~NinePatchImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
NinePatchImage(const NinePatchImage& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
*
* @brief Get the stretch borders
*
+ * @SINCE_1_0.0
* @return The border in pixels from the left, top, right, and bottom of the image respectively.
*/
Vector4 GetStretchBorders();
/**
* @brief Retrieves the horizontal stretch pixel ranges in the cropped image space
*
- * @since DALi 1.1.4
- *
+ * @SINCE_1_1.4
* @return the horizontal stretch pixel ranges in the cropped image space
*/
const StretchRanges& GetStretchPixelsX();
/**
* @brief Retrieves the vertical stretch pixel ranges in the cropped image space
*
- * @since DALi 1.1.4
- *
+ * @SINCE_1_1.4
* @return the vertical stretch pixel ranges in the cropped image space
*/
const StretchRanges& GetStretchPixelsY();
/**
* @brief Get the child rectangle
*
+ * @SINCE_1_0.0
* @return the position and size of the child rectangle
*/
Rect<int> GetChildRectangle();
*
* This does not change the internal bitmap.
*
+ * @SINCE_1_0.0
* @return The cropped BufferImage
*/
BufferImage CreateCroppedBufferImage();
/**
* @brief Helper method to determine if the filename indicates that the image has a 9 patch or n patch border.
*
- * @since DALi 1.1.4
- *
+ * @SINCE_1_1.4
* @param [in] url The URL of the image file.
* @return true if it is a 9 patch or n patch image
*/
/**
* @brief Pixel format types and their properties.
+ * @SINCE_1_0.0
*/
namespace Pixel
{
*
* @note: BufferImage::Update might not work with BGR/BGRA formats!
*/
-enum Format ///< pixel format, default color depth is RGBA 32 bit with alpha
+enum Format ///< pixel format, default color depth is RGBA 32 bit with alpha @SINCE_1_0.0
{
- INVALID = 0, ///< Used to represent an unsupported format. @since 1.1.17
+ INVALID = 0, ///< Used to represent an unsupported format. @SINCE_1_1.17
// Start at > 0 to distinguish null data:
- A8 = 1, ///< color depth 8-bit, alpha
- L8, ///< color depth 8-bit, luminance
- LA88, ///< color depth 16-bit, luminance with 8 bit alpha
- RGB565, ///< color depth 16 bit, 5-6-5
- BGR565, ///< color depth 16 bit, 5-6-5
- RGBA4444, ///< color depth 16 bit with alpha, 4-4-4-4
- BGRA4444, ///< color depth 16 bit with alpha, 4-4-4-4
- RGBA5551, ///< color depth 16 bit with alpha, 5-5-5-1
- BGRA5551, ///< color depth 16 bit with alpha, 5-5-5-1
- RGB888, ///< color depth 24 bit, 8-8-8
- RGB8888, ///< color depth 32 bit, alpha is reserved but not used, 8-8-8-8#
- BGR8888, ///< color depth 32 bit, alpha is reserved but not used, 8-8-8-8#
- RGBA8888, ///< color depth 32 bit with alpha, 8-8-8-8
- BGRA8888, ///< color depth 32 bit with alpha, 8-8-8-8
+ A8 = 1, ///< color depth 8-bit, alpha @SINCE_1_0.0
+ L8, ///< color depth 8-bit, luminance @SINCE_1_0.0
+ LA88, ///< color depth 16-bit, luminance with 8 bit alpha @SINCE_1_0.0
+ RGB565, ///< color depth 16 bit, 5-6-5 @SINCE_1_0.0
+ BGR565, ///< color depth 16 bit, 5-6-5 @SINCE_1_0.0
+ RGBA4444, ///< color depth 16 bit with alpha, 4-4-4-4 @SINCE_1_0.0
+ BGRA4444, ///< color depth 16 bit with alpha, 4-4-4-4 @SINCE_1_0.0
+ RGBA5551, ///< color depth 16 bit with alpha, 5-5-5-1 @SINCE_1_0.0
+ BGRA5551, ///< color depth 16 bit with alpha, 5-5-5-1 @SINCE_1_0.0
+ RGB888, ///< color depth 24 bit, 8-8-8 @SINCE_1_0.0
+ RGB8888, ///< color depth 32 bit, alpha is reserved but not used, 8-8-8-8# @SINCE_1_0.0
+ BGR8888, ///< color depth 32 bit, alpha is reserved but not used, 8-8-8-8# @SINCE_1_0.0
+ RGBA8888, ///< color depth 32 bit with alpha, 8-8-8-8 @SINCE_1_0.0
+ BGRA8888, ///< color depth 32 bit with alpha, 8-8-8-8 @SINCE_1_0.0
// GLES 3 Standard compressed formats:
- COMPRESSED_R11_EAC, ///< ETC2 / EAC single-channel, unsigned
- COMPRESSED_SIGNED_R11_EAC, ///< ETC2 / EAC single-channel, signed
- COMPRESSED_RG11_EAC, ///< ETC2 / EAC dual-channel, unsigned
- COMPRESSED_SIGNED_RG11_EAC, ///< ETC2 / EAC dual-channel, signed
- COMPRESSED_RGB8_ETC2, ///< ETC2 / EAC RGB
- COMPRESSED_SRGB8_ETC2, ///< ETC2 / EAC RGB using sRGB colourspace.
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, ///< ETC2 / EAC RGB with single bit per pixel alpha mask.
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,///< ETC2 / EAC RGB using sRGB colourspace, with single bit per pixel alpha mask.
- COMPRESSED_RGBA8_ETC2_EAC, ///< ETC2 / EAC RGB plus separate alpha channel.
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, ///< ETC2 / EAC RGB using sRGB colourspace, plus separate alpha channel.
+ COMPRESSED_R11_EAC, ///< ETC2 / EAC single-channel, unsigned @SINCE_1_0.0
+ COMPRESSED_SIGNED_R11_EAC, ///< ETC2 / EAC single-channel, signed @SINCE_1_0.0
+ COMPRESSED_RG11_EAC, ///< ETC2 / EAC dual-channel, unsigned @SINCE_1_0.0
+ COMPRESSED_SIGNED_RG11_EAC, ///< ETC2 / EAC dual-channel, signed @SINCE_1_0.0
+ COMPRESSED_RGB8_ETC2, ///< ETC2 / EAC RGB @SINCE_1_0.0
+ COMPRESSED_SRGB8_ETC2, ///< ETC2 / EAC RGB using sRGB colourspace. @SINCE_1_0.0
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, ///< ETC2 / EAC RGB with single bit per pixel alpha mask. @SINCE_1_0.0
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,///< ETC2 / EAC RGB using sRGB colourspace, with single bit per pixel alpha mask. @SINCE_1_0.0
+ COMPRESSED_RGBA8_ETC2_EAC, ///< ETC2 / EAC RGB plus separate alpha channel. @SINCE_1_0.0
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, ///< ETC2 / EAC RGB using sRGB colourspace, plus separate alpha channel. @SINCE_1_0.0
// GLES 2 extension compressed formats:
- COMPRESSED_RGB8_ETC1, ///< ETC1 RGB as defined by GLES 2 extension OES_compressed_ETC1_RGB8_texture: http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
- COMPRESSED_RGB_PVRTC_4BPPV1, ///< PowerVR 4bpp RGB format (v1) as defined by extension IMG_texture_compression_pvrtc: http://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt
+ COMPRESSED_RGB8_ETC1, ///< ETC1 RGB as defined by GLES 2 extension OES_compressed_ETC1_RGB8_texture: http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt @SINCE_1_0.0
+ COMPRESSED_RGB_PVRTC_4BPPV1, ///< PowerVR 4bpp RGB format (v1) as defined by extension IMG_texture_compression_pvrtc: http://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt @SINCE_1_0.0
// GLES 3.1 compressed formats:
- COMPRESSED_RGBA_ASTC_4x4_KHR, ///< ASTC Linear color space with a 4x4 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_5x4_KHR, ///< ASTC Linear color space with a 5x4 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_5x5_KHR, ///< ASTC Linear color space with a 5x5 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_6x5_KHR, ///< ASTC Linear color space with a 6x5 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_6x6_KHR, ///< ASTC Linear color space with a 6x6 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_8x5_KHR, ///< ASTC Linear color space with a 8x5 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_8x6_KHR, ///< ASTC Linear color space with a 8x6 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_8x8_KHR, ///< ASTC Linear color space with a 8x8 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_10x5_KHR, ///< ASTC Linear color space with a 10x5 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_10x6_KHR, ///< ASTC Linear color space with a 10x6 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_10x8_KHR, ///< ASTC Linear color space with a 10x8 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_10x10_KHR, ///< ASTC Linear color space with a 10x10 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_12x10_KHR, ///< ASTC Linear color space with a 12x10 block-size. @since 1.1.17
- COMPRESSED_RGBA_ASTC_12x12_KHR, ///< ASTC Linear color space with a 12x12 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 4x4 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 5x4 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 5x5 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 6x5 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 6x6 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x5 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x6 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x8 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x5 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x6 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x8 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x10 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 12x10 block-size. @since 1.1.17
- COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 12x12 block-size. @since 1.1.17
+ COMPRESSED_RGBA_ASTC_4x4_KHR, ///< ASTC Linear color space with a 4x4 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_5x4_KHR, ///< ASTC Linear color space with a 5x4 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_5x5_KHR, ///< ASTC Linear color space with a 5x5 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_6x5_KHR, ///< ASTC Linear color space with a 6x5 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_6x6_KHR, ///< ASTC Linear color space with a 6x6 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_8x5_KHR, ///< ASTC Linear color space with a 8x5 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_8x6_KHR, ///< ASTC Linear color space with a 8x6 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_8x8_KHR, ///< ASTC Linear color space with a 8x8 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_10x5_KHR, ///< ASTC Linear color space with a 10x5 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_10x6_KHR, ///< ASTC Linear color space with a 10x6 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_10x8_KHR, ///< ASTC Linear color space with a 10x8 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_10x10_KHR, ///< ASTC Linear color space with a 10x10 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_12x10_KHR, ///< ASTC Linear color space with a 12x10 block-size. @SINCE_1_1.17
+ COMPRESSED_RGBA_ASTC_12x12_KHR, ///< ASTC Linear color space with a 12x12 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 4x4 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 5x4 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 5x5 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 6x5 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 6x6 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x5 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x6 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 8x8 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x5 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x6 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x8 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 10x10 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 12x10 block-size. @SINCE_1_1.17
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, ///< ASTC Non-linear (gamma-corrected) color space with a 12x12 block-size. @SINCE_1_1.17
///! Update LAST_VALID_PIXEL_FORMAT below if you add an enum value here.
};
/**
* @brief Whether specified pixel format contains an alpha value.
*
+ * @SINCE_1_0.0
* @param [in] pixelformat pixel format
* @return true if format has alpha, false otherwise
*/
/**
* @brief Returns The number of bytes per pixel for the specified pixel format.
*
+ * @SINCE_1_0.0
* @param [in] pixelFormat The pixel format
* @return The number of bytes per pixel
*/
* It means the second byte contains the alpha value and the last 4 bits of the byte is the alpha value.
*
* Bitmask is zero if the pixelFormat does not support alpha
+ * @SINCE_1_0.0
* @param[in] pixelFormat the pixel format
* @param[out] byteOffset the byte offset of the byte containing the alpha value
* @param[out] bitMask the bitmask of the byte to get the alpha value
* | %Signal Name | Method |
* |----------------------|------------------------------|
* | imageLoadingFinished | @ref LoadingFinishedSignal() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ResourceImage : public Image
{
* @deprecated DALi 1.1.3 Image loading starts immediately in the frame when then ResourceImage object is created
*
* @brief LoadPolicy controls the way images are loaded into memory.
+ * @SINCE_1_0.0
*/
enum LoadPolicy
{
- IMMEDIATE, ///< load image once it is created (default)
- ON_DEMAND ///< delay loading until the image is being used (a related actor is added to Stage)
+ IMMEDIATE, ///< load image once it is created (default) @SINCE_1_0.0
+ ON_DEMAND ///< delay loading until the image is being used (a related actor is added to Stage) @SINCE_1_0.0
};
/**
* @brief Type of signal for LoadingFinished and Uploaded.
+ * @SINCE_1_0.0
*/
typedef Signal< void (ResourceImage) > ResourceImageSignal;
* synchronous, so it should not be used repeatedly or in tight
* loops.
*
+ * @SINCE_1_0.0
* @param [in] url The URL of the image file.
* @return The width and height in pixels of the image.
*/
* @brief Constructor which creates an empty ResourceImage object.
*
* Use ResourceImage::New(...) to create an initialised object.
+ * @SINCE_1_0.0
*/
ResourceImage();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~ResourceImage();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
ResourceImage( const ResourceImage& handle );
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* Uses defaults for all options.
*
* @sa Dali::FittingMode::Type Dali::SamplingMode::Type
+ * @SINCE_1_0.0
* @param [in] url The URL of the image file to use.
* @param [in] orientationCorrection Reorient the image to respect any orientation metadata in its header.
* @return A handle to a newly allocated object
*
* @brief Create an initialised ResourceImage object.
*
+ * @SINCE_1_0.0
* @param [in] url The URL of the image file to use.
* @param [in] loadPol The LoadPolicy to apply when loading the image resource.
* @param [in] releasePol The ReleasePolicy to apply to Image.
/**
* @brief Create an initialised ResourceImage object.
*
+ * @SINCE_1_0.0
* @param [in] url The URL of the image file to use.
* @param [in] size The width and height to fit the loaded image to.
* @param [in] fittingMode The method used to fit the shape of the image before loading to the shape defined by the size parameter.
*
* @brief Create an initialised ResourceImage object.
*
+ * @SINCE_1_0.0
* @param [in] url The URL of the image file to use.
* @param [in] loadPol The LoadPolicy to apply when loading the image resource.
* @param [in] releasePol The ReleasePolicy to apply to Image.
*
* If handle points to a ResourceImage 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 Image object or an uninitialized handle
*/
*
* @brief Return load policy.
*
+ * @SINCE_1_0.0
* @return resource load policy
*/
LoadPolicy GetLoadPolicy() const;
*
* The asynchronous loading begins when the Image object is created.
* After the Image object is discarded, the image data will be released from memory.
+ * @SINCE_1_0.0
* @return The loading state, either Loading, Success or Failed.
*/
LoadingState GetLoadingState() const;
/**
* @brief Returns the URL of the image.
*
+ * @SINCE_1_0.0
* @return The URL of the image file.
*/
std::string GetUrl() const;
*
* The original set of image loading attributes (requested dimensions, scaling
* mode and filter mode) are used when requesting the image again.
+ * @SINCE_1_0.0
* @note If image is offstage and OnDemand policy is set, the reload request is
* ignored.
*/
/**
* @brief Emitted when the image data loads successfully, or when the loading fails.
*
+ * @SINCE_1_0.0
* @return A signal object to Connect() with.
*/
ResourceImageSignal& LoadingFinishedSignal();
*
* This is slightly easier to understand than quaternions for handling rotations
* of objects. Both elements should be non-zero to correctly describe a rotation.
+ * @SINCE_1_0.0
*/
struct AngleAxis
{
/**
* @brief Create an angle-axis pair.
+ * @SINCE_1_0.0
*/
AngleAxis()
: angle(0.0f),
/**
* @brief Create an angle-axis pair.
*
+ * @SINCE_1_0.0
* @param[in] initialAngle The initial angle in radians.
* @param[in] initialAxis The initial axis.
*/
/**
* @brief Compare two angle axis for equality
*
+ * @SINCE_1_0.0
* @param lhs angle axis
* @param rhs angle axis
* @return true if they are equal
*
* Note! values need to be compile time constants
* Usage: <code>Power< 10, 2 >::value; // value=100</code>
+ * @SINCE_1_0.0
* @param mantissa to raise to exponent
* @param N exponent to use for mantissa
*/
* @brief Compile time template to calculate base to the power of N.
*
* Specialisation for power of 1
+ * @SINCE_1_0.0
* @param mantissa to raise to exponent
*/
template< size_t mantissa >
* @brief Compile time template to calculate base to the power of N.
*
* Specialisation for power of 0
+ * @SINCE_1_0.0
* @param mantissa to raise to exponent
*/
template< size_t mantissa >
*
* Note! values need to be compile time constants
* Usage: <code>Log< 100, 10 >::value; value equals 2</code>
+ * @SINCE_1_0.0
* @param number for which to calculate the logarithm
* @param base logarithm to calculate
*/
* @brief Compile time template to calculate base logarithm of N.
*
* Specialisation for logarithm of 1
+ * @SINCE_1_0.0
* @param base logarithm to calculate
*/
template< size_t base >
* @brief Compile time template to calculate base logarithm of N.
*
* Specialisation for logarithm of 0
+ * @SINCE_1_0.0
* @param base logarithm to calculate
*/
template< size_t base >
*
* Note! value needs to be compile time constant
* Usage: <code>Epsilon<1000>::value; value equals 0.000119209</code>
+ * @SINCE_1_0.0
* @param N the number for which to calculate the machine epsilon
*/
template< size_t N >
* @brief Compile time template to calculate the machine epsilon for a given floating point number.
*
* Specialisation for epsilon of 1
+ * @SINCE_1_0.0
*/
template<>
struct Epsilon< 1 >
* @brief Compile time template to calculate the machine epsilon for a given floating point number.
*
* Specialisation for epsilon of 0
+ * @SINCE_1_0.0
*/
template<>
struct Epsilon< 0 >
* @brief An angle in degrees.
*
* This reduces ambiguity when using methods which accept angles in degrees or radians.
+ * @SINCE_1_0.0
*/
struct Degree
{
/**
* @brief default constructor, initialises to 0.
+ * @SINCE_1_0.0
*/
Degree()
: degree( 0.f )
/**
* @brief Create an angle in degrees.
*
+ * @SINCE_1_0.0
* @param[in] value The initial value in degrees.
*/
explicit Degree( float value )
/**
* @brief Create an angle in degrees from a Radian.
*
+ * @SINCE_1_0.0
* @param[in] value The initial value in Radians.
*/
DALI_EXPORT_API Degree( Radian value );
/**
* @brief Compare equality between two degrees.
*
+ * @SINCE_1_0.0
* @param[in] lhs Degree to compare
* @param[in] rhs Degree to compare to
* @return true if the values are identical
/**
* @brief Compare inequality between two degrees.
*
+ * @SINCE_1_0.0
* @param[in] lhs Degree to compare
* @param[in] rhs Degree to compare to
* @return true if the values are not identical
/**
* @brief Clamp a radian value
+ * @SINCE_1_0.0
* @param angle to clamp
* @param min value
* @param max value
*
* In case of numbers which are already a power of two this function returns the original number.
* If i is zero returns 1
+ * @SINCE_1_0.0
* @param[in] i input number
* @return next power of two or i itself in case it's a power of two
*/
/**
* @brief Whether a number is power of two.
*
+ * @SINCE_1_0.0
* @param[in] i input number
* @return true if i is power of two
*/
/**
* @brief Clamp a value.
*
+ * @SINCE_1_0.0
* @param[in] value The value to clamp.
* @param[in] min The minimum allowed value.
* @param[in] max The maximum allowed value.
/**
* @brief Clamp a value directly.
*
+ * @SINCE_1_0.0
* @param[in,out] value The value that will be clamped.
* @param[in] min The minimum allowed value.
* @param[in] max The maximum allowed value.
/**
* @brief Linear interpolation between two values.
*
+ * @SINCE_1_0.0
* @param[in] offset The offset through the range @p low to @p high.
* This value is clamped between 0 and 1
* @param[in] low Lowest value in range
/**
* @brief Get an epsilon that is valid for the given range.
*
+ * @SINCE_1_0.0
* @param[in] a the first value in the range
* @param[in] b the second value in the range.
* @return a suitable epsilon
/**
* @brief Helper function to compare equality of a floating point value with zero.
*
+ * @SINCE_1_0.0
* @param[in] value the value to compare
* @return true if the value is equal to zero
*/
/**
* @brief Helper function to compare equality of two floating point values.
*
+ * @SINCE_1_0.0
* @param[in] a the first value to compare
* @param[in] b the second value to compare
* @return true if the values are equal within a minimal epsilon for their values
/**
* @brief Helper function to compare equality of two floating point values.
*
+ * @SINCE_1_0.0
* @param[in] a the first value to compare
* @param[in] b the second value to compare
* @param[in] epsilon the minimum epsilon value that will be used to consider the values different
/**
* @brief Get an float that is rounded at specified place of decimals.
*
+ * @SINCE_1_0.0
* @param[in] value float value
* @param[in] pos decimal place
* @return a rounded float
* calculating positions in a space that repeats, to
* computing angles that range from 0 to 360.
*
+ * @SINCE_1_0.0
* @param[in] x the point to be wrapped within the domain
* @param[in] start The start of the domain
* @param[in] end The end of the domain
*
+ * @return the wrapped value over the domain (start) (end)
* @note if start = end (i.e. size of domain 0), then wrapping will not occur
* and result will always be equal to start.
*
- * @return the wrapped value over the domain (start) (end)
*/
inline float WrapInDomain(float x, float start, float end)
{
* return -20. i.e. subtract 20 from current value (10) to reach
* target wrapped value (350).
*
- * @note assumes both (a) and (b) are already within the domain
- * (start) to (end)
- *
+ * @SINCE_1_0.0
* @param a the current value
* @param b the target value
* @param start the start of the domain
* @param end the end of the domain
* @return the shortest direction (the sign) and distance (the magnitude)
+ * @note assumes both (a) and (b) are already within the domain
+ * (start) to (end)
+ *
*/
inline float ShortestDistanceInDomain( float a, float b, float start, float end )
{
/**
* @brief Extracts the sign of a number
*
+ * @SINCE_1_0.0
* @param[in] value The value we want to extract the sign
* @return -1 for negative values, +1 for positive values and 0 if value is 0
*/
* @brief The Matrix class represents transformations and projections.
* It is agnostic w.r.t. row/column major notation - it operates on a flat array.
* Each axis is contiguous in memory, so the x axis corresponds to elements 0, 1, 2 and 3, the y axis dorresponds to elements 4, 5, 6, 7, etc.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Matrix
{
* @brief Constructor.
*
* Zero initialises the matrix
+ * @SINCE_1_0.0
*/
Matrix();
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param initialize to zero or leave uninitialized
*/
explicit Matrix( bool initialize );
* zAxis.x zAxis.y zAxis.z 0.0f
* trans.x trans.y trans.z 1.0f
*
+ * @SINCE_1_0.0
* @param [in] array 16 floats
*/
explicit Matrix(const float* array);
/**
* @brief Constructs a matrix from quaternion.
*
+ * @SINCE_1_0.0
* @param rotation as quaternion
*/
explicit Matrix( const Quaternion& rotation );
/**
* @brief Copy constructor.
*
+ * @SINCE_1_0.0
* @param [in] matrix to copy values from
*/
Matrix( const Matrix& matrix );
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param [in] matrix to copy values from
* @return a reference to this
*/
/**
* @brief Sets this matrix to be an identity matrix.
+ * @SINCE_1_0.0
*/
void SetIdentity();
/**
* @brief Sets this matrix to be an identity matrix with scale.
*
+ * @SINCE_1_0.0
* @param scale to set on top of identity matrix
*/
void SetIdentityAndScale( const Vector3& scale );
*
* Any Matrix representing only a rotation and/or translation
* can be inverted using this function. It is faster and more accurate then using Invert().
+ * @SINCE_1_0.0
* @param [out] result returns the inverse of this matrix
*/
void InvertTransform(Matrix& result) const;
*
* Using the Matrix invert function for the specific type
* of matrix you are dealing with is faster, more accurate.
+ * @SINCE_1_0.0
* @return true if successful
*/
bool Invert();
/**
* @brief Swaps the rows to columns.
+ * @SINCE_1_0.0
*/
void Transpose();
/**
* @brief Returns the xAxis from a Transform matrix.
*
+ * @SINCE_1_0.0
* @return the x axis
*/
Vector3 GetXAxis() const;
/**
* @brief Returns the yAxis from a Transform matrix.
*
+ * @SINCE_1_0.0
* @return the y axis
*/
Vector3 GetYAxis() const;
/**
* @brief Returns the zAxis from a Transform matrix.
*
+ * @SINCE_1_0.0
* @return the z axis
*/
Vector3 GetZAxis() const;
* @brief Sets the x axis.
*
* This assumes the matrix is a transform matrix.
+ * @SINCE_1_0.0
* @param [in] axis the values to set the axis to
*/
void SetXAxis(const Vector3& axis);
* @brief Sets the y axis.
*
* This assumes the matrix is a transform matrix.
+ * @SINCE_1_0.0
* @param [in] axis the values to set the axis to
*/
void SetYAxis(const Vector3& axis);
* @brief Sets the z axis.
*
* This assumes the matrix is a transform matrix.
+ * @SINCE_1_0.0
* @param [in] axis the values to set the axis to
*/
void SetZAxis(const Vector3& axis);
* @brief Gets the translation.
*
* This assumes the matrix is a transform matrix.
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the translation
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const Vector4& GetTranslation() const { return reinterpret_cast<const Vector4&>(mMatrix[12]); }
* @brief Gets the x,y and z components of the translation as a Vector3.
*
* This assumes the matrix is a transform matrix.
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the translation
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const Vector3& GetTranslation3() const { return reinterpret_cast<const Vector3&>(mMatrix[12]); }
* @brief Sets the translation.
*
* This assumes the matrix is a transform matrix.
+ * @SINCE_1_0.0
* @param [in] translation the translation
*/
void SetTranslation(const Vector4& translation);
* @brief Sets the x,y and z components of the translation from a Vector3.
*
* This assumes the matrix is a transform matrix.
+ * @SINCE_1_0.0
* @param [in] translation the translation
*/
void SetTranslation(const Vector3& translation);
* This function is used to correct floating point errors which would otherwise accumulate
* as operations are applied to the matrix. This function assumes the matrix is a transform
* matrix.
+ * @SINCE_1_0.0
*/
void OrthoNormalize();
* yAxis.x yAxis.y yAxis.z 0.0f
* zAxis.x zAxis.y zAxis.z 0.0f
* trans.x trans.y trans.z 1.0f
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the matrix contents as an array of 16 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const float* AsFloat() const {return mMatrix;}
* yAxis.x yAxis.y yAxis.z 0.0f
* zAxis.x zAxis.y zAxis.z 0.0f
* trans.x trans.y trans.z 1.0f
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the matrix contents as an array of 16 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
float* AsFloat() {return mMatrix;}
* @brief Function to multiply two matrices and store the result onto third.
*
* Use this method in time critical path as it does not require temporaries
+ * @SINCE_1_0.0
* @param result of the multiplication
* @param lhs matrix, this can be same matrix as result
* @param rhs matrix, this cannot be same matrix as result
* @brief Function to multiply a matrix and quaternion and store the result onto third.
*
* Use this method in time critical path as it does not require temporaries
+ * @SINCE_1_0.0
* @param result of the multiplication
* @param lhs matrix, this can be same matrix as result
* @param rhs quaternion
/**
* @brief The multiplication operator.
*
+ * @SINCE_1_0.0
* @param [in] rhs the Matrix to multiply this by
* @return A matrix containing the result
*/
*
* Utilises appropriate machine epsilon values.
*
+ * @SINCE_1_0.0
* @param [in] rhs the Matrix to compare this to
* @return true if the matrices are equal
*/
* @brief The inequality operator.
*
* Utilises appropriate machine epsilon values.
+ * @SINCE_1_0.0
* @param [in] rhs the Matrix to compare this to
* @return true if the matrices are not equal.
*/
* @brief Sets this matrix to contain the position, scale and rotation components.
*
* Performs scale, rotation, then translation
+ * @SINCE_1_0.0
* @param[in] scale to apply
* @param[in] rotation to apply
* @param[in] translation to apply
* @brief Sets this matrix to contain the inverse of the position, scale and rotation components.
*
* Performs translation, then rotation, then scale.
+ * @SINCE_1_0.0
* @param[in] scale to apply
* @param[in] rotation to apply
* @param[in] translation to apply
* @brief Sets this matrix to contain the inverse of the orthonormal basis and position components.
*
* Performs translation, then rotation.
+ * @SINCE_1_0.0
* @param[in] xAxis The X axis of the basis
* @param[in] yAxis The Y axis of the basis
* @param[in] zAxis The Z axis of the basis
/**
* @brief Gets the position, scale and rotation components from the given transform matrix.
*
- * @pre This matrix must not contain skews or shears.
+ * @SINCE_1_0.0
* @param[out] position to set
* @param[out] rotation to set - only valid if the transform matrix has not been skewed or sheared
* @param[out] scale to set - only valid if the transform matrix has not been skewed or sheared
+ * @pre This matrix must not contain skews or shears.
*/
void GetTransformComponents(Vector3& position,
Quaternion& rotation,
* @brief Print a matrix.
*
* It is printed in memory order, i.e. each printed row is contiguous in memory.
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] matrix The matrix to print.
* @return The output stream operator.
/**
* @brief A 3x3 matrix.
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Matrix3
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
Matrix3();
/**
* @brief Copy Constructor.
*
+ * @SINCE_1_0.0
* @param[in] m Another 3x3 matrix
*/
Matrix3(const Matrix3& m);
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] m A 4x4 matrix. The translation and shear components are ignored.
*/
Matrix3(const Matrix& m);
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] s00 First element
* @param[in] s01 Second element
* @param[in] s02 Third element
/**
* @brief Assignment Operator
+ * @SINCE_1_0.0
* @param matrix from which to copy values
* @return reference to this object
*/
/**
* @brief Assignment Operator
+ * @SINCE_1_0.0
* @param matrix from which to copy values
* @return reference to this object
*/
*
* Utilises appropriate machine epsilon values.
*
+ * @SINCE_1_0.0
* @param [in] rhs the Matrix to compare this to
* @return true if the matrices are equal
*/
*
* Utilises appropriate machine epsilon values.
*
+ * @SINCE_1_0.0
* @param [in] rhs the Matrix to compare this to
* @return true if the matrices are equal
*/
/**
* @brief Destructor.
+ * @SINCE_1_0.0
*/
~Matrix3()
{
/**
* @brief Sets the matrix to the identity matrix.
+ * @SINCE_1_0.0
*/
void SetIdentity();
* xAxis.x yAxis.x zAxis.x
* xAxis.y yAxis.y zAxis.y
* xAxis.z yAxis.z zAxis.z
+ * @SINCE_1_0.0
* @return the matrix contents as an array of 9 floats.
*/
const float* AsFloat() const {return &mElements[0];}
* xAxis.x yAxis.x zAxis.x
* xAxis.y yAxis.y zAxis.y
* xAxis.z yAxis.z zAxis.z
+ * @SINCE_1_0.0
* @return the matrix contents as an array of 9 floats.
*/
float* AsFloat() {return &mElements[0];}
/**
* @brief Inverts the matrix.
*
+ * @SINCE_1_0.0
* @return true if successful
*/
bool Invert();
/**
* @brief Swaps the rows to columns
+ * @SINCE_1_0.0
* @return true
*/
bool Transpose();
/**
* @brief Multiplies all elements of the matrix by the scale value.
*
+ * @SINCE_1_0.0
* @param scale - the value by which to scale the whole matrix.
-
+ *
*/
void Scale(float scale);
* elements * 3.
*
* (The Magnitude of the unit matrix is therefore 1)
+ * @SINCE_1_0.0
* @return the magnitude - always positive.
*/
float Magnitude() const;
* average 1.
*
* If the matrix is not invertible, then the matrix is left unchanged.
-
+ *
+ * @SINCE_1_0.0
* @return true if the matrix is invertible, otherwise false
*/
bool ScaledInverseTranspose();
* @brief Function to multiply two matrices and store the result onto third.
*
* Use this method in time critical path as it does not require temporaries
+ * @SINCE_1_0.0
* @param result of the multiplication
* @param lhs matrix, this can be same matrix as result
* @param rhs matrix, this cannot be same matrix as result
/**
* @brief Print a 3x3 matrix.
*
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] matrix The matrix to print.
* @return The output stream operator.
/**
* @brief The Quaternion class encapsulates the mathematics of the quaternion.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Quaternion
{
/**
* @brief Default Constructor
+ * @SINCE_1_0.0
*/
Quaternion();
/**
* @brief Construct from a quaternion represented by floats.
*
+ * @SINCE_1_0.0
* @param[in] cosThetaBy2
* @param[in] iBySineTheta
* @param[in] jBySineTheta
/**
* @brief Construct from a quaternion represented by a vector.
*
+ * @SINCE_1_0.0
* @param[in] vector - x,y,z fields represent i,j,k coefficients, w represents cos(theta/2)
*/
explicit Quaternion( const Vector4& vector );
/**
* @brief Constructor from an axis and angle.
*
+ * @SINCE_1_0.0
* @param[in] angle - the angle around the axis
* @param[in] axis - the vector of the axis
*/
/**
* @brief Construct from Euler angles.
*
+ * @SINCE_1_0.0
* @param[in] pitch
* @param[in] yaw
* @param[in] roll
/**
* @brief Construct from a matrix.
*
+ * @SINCE_1_0.0
* @param[in] matrix
*/
explicit Quaternion(const Matrix& matrix);
/**
* @brief Construct from 3 orthonormal axes.
*
+ * @SINCE_1_0.0
* @param[in] xAxis The X axis
* @param[in] yAxis The Y axis
* @param[in] zAxis The Z axis
/**
* @brief Construct quaternion which describes minimum rotation to align v0 with v1
- * @pre v0 and v1 should be normalized
- *
+ * @SINCE_1_0.0
* @param[in] v0 First normalized vector
* @param[in] v1 Second normalized vector
+ * @pre v0 and v1 should be normalized
+ *
*/
explicit Quaternion( const Vector3& v0, const Vector3& v1 );
/**
* @brief Destructor, nonvirtual as this is not a base class.
*
+ * @SINCE_1_0.0
*/
~Quaternion();
/**
* @brief Helper to check if this is an identity quaternion
*
+ * @SINCE_1_0.0
* @return true if this is identity quaternion
*/
bool IsIdentity() const;
/**
* @brief Convert the quaternion to an axis/angle pair.
*
+ * @SINCE_1_0.0
* @param[out] axis
* @param[out] angle in radians
* @return true if converted correctly
/**
* @brief Return the quaternion as a vector.
*
+ * @SINCE_1_0.0
* @return the vector representation of the quaternion
*/
const Vector4& AsVector() const;
/**
* @brief SetEuler sets the quaternion from the Euler angles applied in x, y, z order.
*
+ * @SINCE_1_0.0
* @param[in] pitch
* @param[in] yaw
* @param[in] roll
/**
* @brief returns the Euler angles from a rotation Quaternion.
*
+ * @SINCE_1_0.0
* @return a vector of Euler angles (x == pitch, y == yaw, z == roll)
*/
Vector4 EulerAngles() const;
/**
* @brief Addition operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to add
* @return A quaternion containing the result of the addition
*/
/**
* @brief Subtraction operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to subtract
* @return A quaternion containing the result of the subtract
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to multiply
* @return A quaternion containing the result
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] other The vector to multiply
* @return A vector containing the result of the multiplication
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] other a quaternion to divide by
* @return A quaternion containing the result
*/
/**
* @brief Scale operator.
*
+ * @SINCE_1_0.0
* @param[in] scale A value to scale by
* @return A quaternion containing the result
*/
/**
* @brief Scale operator.
*
+ * @SINCE_1_0.0
* @param[in] scale A value to scale by
* @return A quaternion containing the result
*/
/**
* @brief Unary Negation operator.
*
+ * @SINCE_1_0.0
* @return A quaternion containing the negated result
*/
Quaternion operator-() const;
/**
* @brief Addition with Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to add
* @return itself
*/
/**
* @brief Subtraction with Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to subtract
* @return itself
*/
/**
* @brief Multiplication with Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] other The quaternion to multiply
* @return itself
*/
/**
* @brief Scale with Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] scale the value to scale by
* @return itself
*/
/**
* @brief Scale with Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] scale the value to scale by
* @return itself
*/
/**
* @brief Equality operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs The quaterion to compare with.
* @return True if the quaternions are equal.
*/
/**
* @brief Inequality operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs The quaterion to compare with.
* @return True if the quaternions are not equal.
*/
/**
* @brief Return the length of the quaternion.
*
+ * @SINCE_1_0.0
* @return the length of the quaternion
*/
float Length() const;
/**
* @brief Return the squared length of the quaternion.
*
+ * @SINCE_1_0.0
* @return the squared length of the quaternion
*/
float LengthSquared() const;
/**
* @brief Normalize this to unit length.
*
+ * @SINCE_1_0.0
*/
void Normalize();
/**
* @brief Normalized.
*
+ * @SINCE_1_0.0
* @return a normalized version of this quaternion
*/
Quaternion Normalized() const;
/**
* @brief Conjugate this quaternion.
*
+ * @SINCE_1_0.0
*/
void Conjugate();
/**
* @brief Invert this quaternion.
*
+ * @SINCE_1_0.0
*/
void Invert();
/**
* @brief Performs the logarithm of a Quaternion = v*a where q = (cos(a),v*sin(a)).
*
+ * @SINCE_1_0.0
* @return a quaternion representing the logarithm
*/
Quaternion Log() const;
/**
* @brief Performs an exponent e^Quaternion = Exp(v*a) = (cos(a),vsin(a)).
*
+ * @SINCE_1_0.0
* @return a quaternion representing the exponent
*/
Quaternion Exp() const;
/**
* @brief Return the dot product of two quaternions.
*
+ * @SINCE_1_0.0
* @param[in] q1 - the first quaternion
* @param[in] q2 - the second quaternion
* @return the dot product of the two quaternions
/**
* @brief Linear Interpolation (using a straight line between the two quaternions).
*
+ * @SINCE_1_0.0
* @param[in] q1 - the start quaternion
* @param[in] q2 - the end quaternion
* @param[in] t - a progress value between 0 and 1
* @brief Spherical Linear Interpolation (using the shortest arc of a great circle between
* the two quaternions).
*
+ * @SINCE_1_0.0
* @param[in] q1 - the start quaternion
* @param[in] q2 - the end quaternion
* @param[in] progress - a progress value between 0 and 1
/**
* @brief This version of Slerp, used by Squad, does not check for theta > 90.
*
+ * @SINCE_1_0.0
* @param[in] q1 - the start quaternion
* @param[in] q2 - the end quaternion
* @param[in] t - a progress value between 0 and 1
/**
* @brief Spherical Cubic Interpolation.
*
+ * @SINCE_1_0.0
* @param[in] start - the start quaternion
* @param[in] end - the end quaternion
* @param[in] ctrl1 - the control quaternion for q1
/**
* @brief Returns the shortest angle between two quaternions in Radians.
*
+ * @SINCE_1_0.0
* @param[in] q1 - the first quaternion
* @param[in] q2 - the second quaternion
* @return the angle between the two quaternions.
/**
* @brief Rotate v by this Quaternion (Quaternion must be unit).
*
+ * @SINCE_1_0.0
* @param[in] vector a vector to rotate
* @return the rotated vector
*/
/**
* @brief Rotate v by this Quaternion (Quaternion must be unit).
*
+ * @SINCE_1_0.0
* @param[in] vector a vector to rotate
* @return the rotated vector
*/
/**
* @brief Set the quaternion from 3 orthonormal axes.
*
+ * @SINCE_1_0.0
* @param[in] xAxis The X axis
* @param[in] yAxis The Y axis
* @param[in] zAxis The Z axis
/**
* @brief Print a Quaternion.
*
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] quaternion The quaternion to print.
* @return The output stream operator.
* @brief An angle in radians.
*
* This reduces ambiguity when using methods which accept angles in degrees or radians.
+ * @SINCE_1_0.0
*/
struct Radian
{
/**
* @brief default constructor, initialises to 0.
+ * @SINCE_1_0.0
*/
Radian()
: radian( 0.f )
/**
* @brief Create an angle in radians.
*
+ * @SINCE_1_0.0
* @param[in] value The initial value in radians.
*/
explicit Radian( float value )
/**
* @brief Create an angle in radians from an angle in degrees.
*
+ * @SINCE_1_0.0
* @param[in] degree The initial value in degrees.
*/
Radian( Degree degree )
/**
* @brief Assign an angle from a float value.
*
+ * @SINCE_1_0.0
* @param[in] value Float value in radians
* @return a reference to this object
*/
/**
* @brief Assign an angle from a Degree value.
*
+ * @SINCE_1_0.0
* @param[in] degree The value in degrees.
* @return a reference to this object
*/
/**
* @brief Conversion to float
+ * @SINCE_1_0.0
* @return the float value of this Radian
*/
operator float() const
/**
* @brief Compare equality between two radians.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Radian to compare to
* @return true if the values are identical
/**
* @brief Compare inequality between two radians.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Radian to compare to
* @return true if the values are not identical
/**
* @brief Compare equality between a radian and degree.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Degree to compare to
* @return true if the values are identical
/**
* @brief Compare inequality between a radian and a degree.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Degree to compare to
* @return true if the values are not identical
/**
* @brief Compare equality between a degree and a radian.
*
+ * @SINCE_1_0.0
* @param[in] lhs Degree to compare
* @param[in] rhs Radian to compare to
* @return true if the values are identical
/**
* @brief Compare inequality between a degree and a radian.
*
+ * @SINCE_1_0.0
* @param[in] lhs Degree to compare
* @param[in] rhs Radian to compare to
* @return true if the values are not identical
/**
* @brief Compare greater than between two radians
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Radian to compare to
* @return true if lhs is greater than rhs
/**
* @brief Compare greater than between a radian and a degree.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Degree to compare to
* @return true if lhs is greater than rhs
/**
* @brief Compare greater than between a radian and a degree.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Degree to compare to
* @return true if lhs is greater than rhs
/**
* @brief Compare less than between two radians.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Radian to compare to
* @return true if lhs is less than rhs
/**
* @brief Compare less than between a radian and a degree.
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to compare
* @param[in] rhs Degree to compare to
* @return true if lhs is less than rhs
/**
* @brief Compare less than between a degree and a radian.
*
+ * @SINCE_1_0.0
* @param[in] lhs Degree to compare
* @param[in] rhs Radian to compare to
* @return true if lhs is less than rhs
/**
* @brief Multiply Radian with a float
*
+ * @SINCE_1_0.0
* @param[in] lhs Radian to multiply
* @param[in] rhs float to multiply
* @return result of the multiplication
/**
* @brief Negate the radian
+ * @SINCE_1_0.0
* @return The negative angle
*/
inline Radian operator-( Radian in )
/**
* @brief Clamp a radian value
+ * @SINCE_1_0.0
* @param angle to clamp
* @param min value
* @param max value
/**
* @brief Provides methods to generate and use random values.
+ * @SINCE_1_0.0
*/
namespace Random
{
* @brief Returns a random number between f0 and f1.
*
* Note, uses a limited number of values.
+ * @SINCE_1_0.0
* @param[in] f0 the lower bound
* @param[in] f1 the upper bound
* @return a random value between the lower and upper bound
/**
* @brief Function to return a normalized axis in a random direction.
*
+ * @SINCE_1_0.0
* @return the axis
*/
inline Vector4 Axis()
/**
* @brief Template class to create and operate on rectangles.
+ * @SINCE_1_0.0
*/
template< typename T = float >
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
Rect()
: x(0),
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] x x coordinate (or left)
* @param [in] y y coordinate (or right)
* @param [in] width width (or bottom)
/**
* @brief Copy constructor.
*
+ * @SINCE_1_0.0
* @param [in] rhs The original object
*/
Rect(const Rect<T>& rhs)
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param [in] rhs The original object
* @return reference to this
*/
/**
* @brief Assignment from individual values.
*
+ * @SINCE_1_0.0
* @param[in] newX x coordinate
* @param[in] newY y coordinate
* @param[in] newWidth width
/**
* @brief Determines whether or not this Rectangle is empty.
*
+ * @SINCE_1_0.0
* @return true if width or height are zero
*/
bool IsEmpty() const
/**
* @brief Get the left of the rectangle.
*
+ * @SINCE_1_0.0
* @return The left edge of the rectangle
*/
T Left() const
/**
* @brief Get the right of the rectangle.
*
+ * @SINCE_1_0.0
* @return The right edge of the rectangle
*/
T Right() const
/**
* @brief Get the top of the rectangle.
*
+ * @SINCE_1_0.0
* @return The top of the rectangle
*/
T Top() const
/**
* @brief Get the bottom of the rectangle.
*
+ * @SINCE_1_0.0
* @return The bottom of the rectangle
*/
T Bottom() const
/**
* @brief Get the area of the rectangle.
*
+ * @SINCE_1_0.0
* @return The area of the rectangle
*/
T Area() const
/**
* @brief Determines whether or not this rectangle and the specified rectangle intersect.
*
+ * @SINCE_1_0.0
* @param[in] other The other rectangle to test against this rectangle
* @return true if the rectangles intersect
*/
/**
* @brief Determines whether or not this Rectangle contains the specified rectangle.
*
+ * @SINCE_1_0.0
* @param[in] other The other rectangle to test against this rectangle
* @return true if the specified rectangle is contained
*/
/**
* @brief Equality operator.
*
+ * @SINCE_1_0.0
* @param[in] lhs First operand
* @param[in] rhs Second operand
* @return true if boxes are exactly same
/**
* @brief Inequality operator.
*
+ * @SINCE_1_0.0
* @param[in] lhs The first rectangle
* @param[in] rhs The second rectangle
* @return true if rectangles are not identical
/**
* @brief Equality operator specialization for float.
*
+ * @SINCE_1_0.0
* @param[in] lhs The first rectangle
* @param[in] rhs The second rectangle
* @return true if rectangles are exactly same
/**
* @brief IsEmpty specialization for float.
*
+ * @SINCE_1_0.0
* @return true if the rectangle has zero size.
*/
template<>
/**
* @brief Convert the value of the rectangle into a string and insert in to an output stream.
*
+ * @SINCE_1_0.0
* @param [in] stream The output stream operator.
* @param [in] rectangle the rectangle to output
* @return The output stream operator.
* inefficient and illogical (i.e. the data is inherently integer).
* One of these can be passed in a single 32 bit integer register on
* common architectures.
+ * @SINCE_1_0.0
*/
class Uint16Pair
{
public:
/**
* @brief Default constructor for the (0, 0) tuple.
+ * @SINCE_1_0.0
*/
Uint16Pair() : mData(0) {}
/**
* @brief Constructor taking separate x and y (width and height) parameters.
+ * @SINCE_1_0.0
* @param[in] width The width or X dimension of the tuple. Make sure it is less than 65536,
* @param[in] height The height or Y dimension of the tuple. Make sure it is less than 65536,
*/
/**
* @brief Copy constructor.
+ * @SINCE_1_0.0
* @param rhs to copy from
*/
Uint16Pair( const Uint16Pair& rhs )
/**
* @brief Sets the width.
- * @since DALi version 1.1.13
+ * @SINCE_1_1.13
* @param[in] width The x dimension to be stored in this 2-tuple.
*/
void SetWidth( uint16_t width )
}
/**
- * @returns the x dimension stored in this 2-tuple.
+ * @brief @returns the x dimension stored in this 2-tuple.
+ * @SINCE_1_0.0
*/
uint16_t GetWidth() const
{
/**
* @brief Sets the height.
- * @since DALi version 1.1.13
+ * @SINCE_1_1.13
* @param[in] height The y dimension to be stored in this 2-tuple.
*/
void SetHeight( uint16_t height )
}
/**
- * @returns the y dimension stored in this 2-tuple.
+ * @brief @returns the y dimension stored in this 2-tuple.
+ * @SINCE_1_0.0
*/
uint16_t GetHeight() const
{
/**
* @brief Sets the x dimension (same as width).
- * @since DALi version 1.1.14
+ * @SINCE_1_1.14
* @param[in] x The x dimension to be stored in this 2-tuple.
*/
void SetX( uint16_t x )
}
/**
- * @returns the x dimension stored in this 2-tuple.
+ * @brief @returns the x dimension stored in this 2-tuple.
+ * @SINCE_1_0.0
*/
uint16_t GetX() const
{
/**
* @brief Sets the y dimension (same as height).
- * @since DALi version 1.1.14
+ * @SINCE_1_1.14
* @param[in] y The y dimension to be stored in this 2-tuple.
*/
void SetY( uint16_t y )
}
/**
- * @returns the y dimension stored in this 2-tuple.
+ * @brief @returns the y dimension stored in this 2-tuple.
+ * @SINCE_1_0.0
*/
uint16_t GetY() const
{
}
/**
- * Assignment operator.
+ * @brief Assignment operator.
+ * @SINCE_1_0.0
*/
Uint16Pair& operator=( const Uint16Pair& rhs )
{
}
/**
- * Equality operator.
+ * @brief Equality operator.
+ * @SINCE_1_0.0
*/
bool operator==( const Uint16Pair& rhs ) const
{
}
/**
- * Inequality operator.
+ * @brief Inequality operator.
+ * @SINCE_1_0.0
*/
bool operator!=( const Uint16Pair& rhs ) const
{
}
/**
- * Less than comparison operator for storing in collections (not geometrically
+ * @brief Less than comparison operator for storing in collections (not geometrically
* meaningful).
+ * @SINCE_1_0.0
*/
bool operator<( const Uint16Pair& rhs ) const
{
}
/**
- * Greater than comparison operator for storing in collections (not
+ * @brief Greater than comparison operator for storing in collections (not
* geometrically meaningful).
+ * @SINCE_1_0.0
*/
bool operator>( const Uint16Pair& rhs ) const
{
*
* Uses a template for loose coupling, to save a header include, and allow any
* vector type with .x and .y members to be converted.
+ * @SINCE_1_0.0
*/
template<typename FLOAT_VECTOR_N_TYPE>
static Uint16Pair FromFloatVec2( const FLOAT_VECTOR_N_TYPE& from )
*
* Uses a template to allow any vector type with operator [] to be converted
* in addition to plain arrays.
+ * @SINCE_1_0.0
*/
template<typename FLOAT_ARRAY>
static Uint16Pair FromFloatArray( const FLOAT_ARRAY& from )
/**
* @brief A two dimensional vector.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API Vector2
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
Vector2()
: x(0.0f),
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] x x or width component
* @param[in] y y or height component
*/
/**
* @brief Conversion constructor from an array of two floats.
*
+ * @SINCE_1_0.0
* @param [in] array of xy
*/
explicit Vector2(const float* array)
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] vec3 Vector3 to create this vector from
*/
explicit Vector2(const Vector3& vec3);
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] vec4 Vector4 to create this vector from
*/
explicit Vector2(const Vector4& vec4);
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] array of floats
* @return itself
*/
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to assign.
* @return itself
*/
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to assign.
* @return itself
*/
/**
* @brief Addition operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return A vector containing the result of the addition
*/
/**
* @brief Addition assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return itself
*/
/**
* @brief Subtraction operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return A vector containing the result of the subtraction
*/
/**
* @brief Subtraction assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return itself
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return A vector containing the result of the multiplication
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return A vector containing the result of the scaling
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return itself
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return itself
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return A vector containing the result of the division
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs The float value to scale the vector by
* @return A vector containing the result of the scaling
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return itself
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector by
* @return itself
*/
/**
* @brief Unary negation operator.
*
+ * @SINCE_1_0.0
* @return A vector containg the negation
*/
Vector2 operator-() const
*
* utilises appropriate machine epsilon values;
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are equal
*/
*
* utilises appropriate machine epsilon values;
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are not equal
*/
* @brief Const array subscript operator overload.
*
* Asserts if index is out of range. Should be 0 or 1
+ * @SINCE_1_0.0
* @param[in] index Subscript
* @return The float at the given index
*/
* @brief Mutable array subscript operator overload.
*
* Asserts if index is out of range. Should be 0 or 1
+ * @SINCE_1_0.0
* @param[in] index Subscript index
* @return The float at the given index.
*/
/**
* @brief Returns the length of the vector.
*
+ * @SINCE_1_0.0
* @return the length of the vector
*/
float Length() const;
*
* This is more efficient than Length() for threshold
* testing as it avoids the use of a square root.
+ * @SINCE_1_0.0
* @return the length of the vector squared.
*/
float LengthSquared() const;
/**
* @brief Sets the vector to be unit length, whilst maintaining its direction.
*
+ * @SINCE_1_0.0
*/
void Normalize();
/**
* @brief Clamps the vector between minimum and maximum vectors.
*
+ * @SINCE_1_0.0
* @param [in] min the minimum vector
* @param [in] max the maximum vector
*/
* The order of the values in this array are as follows:
* 0: x (or width)
* 1: y (or height)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 2 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const float* AsFloat() const {return &x;}
* The order of the values in this array are as follows:
* 0: x (or width)
* 1: y (or height)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 2 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
float* AsFloat() {return &x;}
/**
* @brief Size is an alias of Dali::Vector2
+ * @SINCE_1_0.0
*/
typedef Vector2 Size;
/**
* @brief Print a Vector2.
*
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] vector The vector to print.
* @return The output stream operator.
* @brief Returns a vector with components set to the minimum of the corresponding component in a and b.
*
* If a=0,1 and b=1,0 returns a vector of 0,0.
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the minimum of each component from a and b
* @brief Returns a vector with components set to the maximum of the corresponding component in a and b.
*
* If a=0,1 and b=1,0 returns a vector of 1,1
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the maximum of each component from a and b
/**
* @brief Clamps each of vector v's components between minimum and maximum values.
*
+ * @SINCE_1_0.0
* @param [in] v a vector
* @param [in] min the minimum value
* @param [in] max the maximum value
/**
* @brief A three dimensional vector.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API Vector3
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
// NOTE
// (x width r), (y height g), (z depth b) must be consecutive in memory.
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] x (or width) component
* @param [in] y (or height) component
* @param [in] z (or depth) component
/**
* @brief Conversion constructor from an array of three floats.
*
+ * @SINCE_1_0.0
* @param [in] array of xyz
*/
explicit Vector3(const float* array)
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] vec2 Vector2 to create this vector from
*/
explicit Vector3( const Vector2& vec2 );
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param [in] vec4 Vector4 to create this vector from
*/
explicit Vector3( const Vector4& vec4 );
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] array of floats
* @return itself
*/
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to assign.
* @return itself
*/
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to assign.
* @return itself
*/
/**
* @brief Addition operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return A vector containing the result of the addition
*/
/**
* @brief Addition assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return itself
*/
/**
* @brief Subtraction operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return A vector containing the result of the subtraction
*/
/**
* @brief Subtraction assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return itself
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return A vector containing the result of the multiplication
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return A vector containing the result of the scaling
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return itself
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return itself
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the Quaternion value to multiply the vector by
* @return itself
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return A vector containing the result of the division
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs The float value to scale the vector by
* @return A vector containing the result of the scaling
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return itself
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector by
* @return itself
*/
/**
* @brief Unary negation operator.
*
+ * @SINCE_1_0.0
* @return A vector containg the negation
*/
Vector3 operator-() const
*
* utilises appropriate machine epsilon values;
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are equal
*/
*
* utilises appropriate machine epsilon values;
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are not equal
*/
* @brief Const array subscript operator overload.
*
* Asserts if index is out of range. Should be 0, 1 or 2
+ * @SINCE_1_0.0
* @param[in] index Subscript
* @return The float at the given index.
*/
* @brief Mutable array subscript operator overload.
*
* Asserts if index is out of range. Should be 0, 1 or 2
+ * @SINCE_1_0.0
* @param[in] index Subscript index
* @return The float at the given index.
*/
* The dot product is the length of one vector in the direction of another vector.
* This is great for lighting, threshold testing the angle between two unit vectors,
* calculating the distance between two points in a particular direction.
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return the dot product
*/
* The cross produce of two vectors is a vector which is perpendicular to the plane of the
* two vectors. This is great for calculating normals and making matrices orthogonal.
*
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return the cross product
*/
/**
* @brief Returns the length of the vector.
*
+ * @SINCE_1_0.0
* @return the length of the vector
*/
float Length() const;
*
* This is more efficient than Length() for threshold
* testing as it avoids the use of a square root.
+ * @SINCE_1_0.0
* @return the length of the vector squared.
*/
float LengthSquared() const;
/**
* @brief Sets the vector to be unit length, whilst maintaining its direction.
*
+ * @SINCE_1_0.0
*/
void Normalize();
/**
* @brief Clamps the vector between minimum and maximum vectors.
*
+ * @SINCE_1_0.0
* @param [in] min the minimum vector
* @param [in] max the maximum vector
*/
* 0: x (or width, or r)
* 1: y (or height, or g)
* 2: z (or depth, or b)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 3 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const float* AsFloat() const {return &x;}
* 0: x (or width, or r)
* 1: y (or height, or g)
* 2: z (or depth, or b)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 3 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
float* AsFloat() {return &x;}
/**
* @brief Returns the x & y components (or width & height, or r & g) as a Vector2.
*
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the partial vector contents as Vector2 (x,y)
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const Vector2& GetVectorXY() const {return reinterpret_cast<const Vector2&>(x);}
/**
* @brief Returns the x & y components (or width & height, or r & g) as a Vector2.
*
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the partial vector contents as Vector2 (x,y)
+ * @note inlined for performance reasons (generates less code than a function call)
*/
Vector2& GetVectorXY() {return reinterpret_cast<Vector2&>(x);}
/**
* @brief Returns the y & z components (or height & depth, or g & b) as a Vector2.
*
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the partial vector contents as Vector2 (y,z)
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const Vector2& GetVectorYZ() const {return reinterpret_cast<const Vector2&>(y);}
/**
* @brief Returns the y & z components (or height & depth, or g & b) as a Vector2.
*
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the partial vector contents as Vector2 (y,z)
+ * @note inlined for performance reasons (generates less code than a function call)
*/
Vector2& GetVectorYZ() {return reinterpret_cast<Vector2&>(y);}
/**
* @brief Print a Vector3.
*
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] vector The vector to print.
* @return The output stream operator.
* @brief Returns a vector with components set to the minimum of the corresponding component in a and b.
*
* If a=0,1,2 and b=2,1,0 returns a vector of 2,1,2.
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the minimum of each component from a and b
* @brief Returns a vector with components set to the maximum of the corresponding component in a and b.
*
* If a=0,1 and b=1,0 returns a vector of 1,1
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the maximum of each component from a and b
/**
* @brief Clamps each of vector v's components between minimum and maximum values.
*
+ * @SINCE_1_0.0
* @param [in] v a vector
* @param [in] min the minimum value
* @param [in] max the maximum value
* @brief A four dimensional vector.
*
* Components can be used as position or offset (x,y,z,w); color (r,g,b,a) or texture coords(s,t,p,q)
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API Vector4
{
/**
* @brief Default constructor, initializes the vector to 0.
+ * @SINCE_1_0.0
*/
Vector4()
: x(0.0f),
/**
* @brief Conversion constructor from four floats.
*
+ * @SINCE_1_0.0
* @param [in] x (or r/s) component
* @param [in] y (or g/t) component
* @param [in] z (or b/p) component
/**
* @brief Conversion constructor from an array of four floats.
*
+ * @SINCE_1_0.0
* @param [in] array of either xyzw/rgba/stpq
*/
explicit Vector4(const float* array)
/**
* @brief Conversion constructor from Vector2.
*
+ * @SINCE_1_0.0
* @param [in] vec2 to copy from, z and w are initialized to 0
*/
explicit Vector4( const Vector2& vec2 );
/**
* @brief Conversion constructor from Vector3.
*
+ * @SINCE_1_0.0
* @param [in] vec3 to copy from, w is initialized to 0
*/
explicit Vector4( const Vector3& vec3 );
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
* @param [in] array of floats
* @return itself
*/
* @brief Assignment operator.
*
* Only sets x and y. z and w are left as they were
+ * @SINCE_1_0.0
* @param [in] vec2 to assign from.
* @return itself
*/
* @brief Assignment operator.
*
* Only sets x and y and z. w is left as it was
+ * @SINCE_1_0.0
* @param [in] vec3 to assign from
* @return itself
*/
/**
* @brief Addition operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return A vector containing the result of the addition
*/
/**
* @brief Addition assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs vector to add.
* @return itself
*/
/**
* @brief Subtraction operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return A vector containing the result of the subtraction
*/
/**
* @brief Subtraction assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to subtract
* @return itself
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return A vector containing the result of the multiplication
*/
/**
* @brief Multiplication operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return A vector containing the result of the scaling
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to multiply
* @return itself
*/
/**
* @brief Multiplication assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector
* @return itself
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return A vector containing the result of the division
*/
/**
* @brief Division operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs The float value to scale the vector by
* @return A vector containing the result of the scaling
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the vector to divide
* @return itself
*/
/**
* @brief Division assignment operator.
*
+ * @SINCE_1_0.0
* @param[in] rhs the float value to scale the vector by
* @return itself
*/
/**
* @brief Unary negation operator.
*
+ * @SINCE_1_0.0
* @return the negative value
*/
Vector4 operator-() const
*
* Utilises appropriate machine epsilon values.
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are equal
*/
*
* Utilises appropriate machine epsilon values.
*
+ * @SINCE_1_0.0
* @param[in] rhs The vector to test against
* @return true if the vectors are not equal
*/
* @brief Const array subscript operator overload.
*
* Asserts if index is out of range. Should be 0, 1, 2 or 3
+ * @SINCE_1_0.0
* @param[in] index Subscript
* @return The float at the given index
*/
* @brief Mutable array subscript operator overload.
*
* Asserts if index is out of range. Should be 0, 1, 2 or 3
+ * @SINCE_1_0.0
* @param[in] index Subscript index
* @return The float at the given index
*/
* The dot product is the length of one vector in the direction of another vector.
* This is great for lighting, threshold testing the angle between two unit vectors,
* calculating the distance between two points in a particular direction.
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return the dot product
*/
* The dot product is the length of one vector in the direction of another vector.
* This is great for lighting, threshold testing the angle between two unit vectors,
* calculating the distance between two points in a particular direction.
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return the dot product
*/
/**
* @brief Returns the 4d dot product of this vector and another vector.
*
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return the dot product
*/
* The cross produce of two vectors is a vector which is perpendicular to the plane of the
* two vectors. This is great for calculating normals and making matrices orthogonal.
*
+ * @SINCE_1_0.0
* @param [in] other the other vector
* @return A vector containing the cross product
*/
/**
* @brief Returns the length of the vector.
*
+ * @SINCE_1_0.0
* @return the length.
*/
float Length() const;
*
* This is faster than using Length() when performing
* threshold checks as it avoids use of the square root.
+ * @SINCE_1_0.0
* @return the length of the vector squared.
*/
float LengthSquared() const;
* @brief Normalizes the vector.
*
* Sets the vector to unit length whilst maintaining its direction.
+ * @SINCE_1_0.0
*/
void Normalize();
/**
* @brief Clamps the vector between minimum and maximum vectors.
*
+ * @SINCE_1_0.0
* @param [in] min the minimum vector
* @param [in] max the maximum vector
*/
* 1: y (or g, or t)
* 2: z (or b, or p)
* 3: w (or a, or q)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 4 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
const float* AsFloat() const {return &x;}
* 1: y (or g, or t)
* 2: z (or b, or p)
* 3: w (or a, or q)
- * @note inlined for performance reasons (generates less code than a function call)
+ * @SINCE_1_0.0
* @return the vector contents as an array of 4 floats.
+ * @note inlined for performance reasons (generates less code than a function call)
*/
float* AsFloat() {return &x;}
/**
* @brief Print a Vector4.
*
+ * @SINCE_1_0.0
* @param [in] o The output stream operator.
* @param [in] vector The vector to print.
* @return The output stream operator.
* @brief Returns a vector with components set to the minimum of the corresponding component in a and b.
*
* If a=0,1,2,3 and b=4,0,1,2 returns a vector of 0,0,1,2
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the minimum of each component from a and b
* @brief Returns a vector with components set to the maximum of the corresponding component in a and b.
*
* If a=0,1,2,3 and b=4,0,1,2 returns a vector of 4,1,2,3
+ * @SINCE_1_0.0
* @param [in] a a vector
* @param [in] b a vector
* @return a vector containing the maximum of each component from a and b
/**
* @brief Clamps each of vector v's components between minimum and maximum values.
*
+ * @SINCE_1_0.0
* @param [in] v a vector
* @param [in] min the minimum value
* @param [in] max the maximum value
/**
* @brief Typedef for a viewport ( a rectangle representing a screen area ).
+ * @SINCE_1_0.0
*/
typedef Rect<int> Viewport;
* unsigned int variable = AnyCast< unsigned int >( uintVariable );
* if ( typeid( int ) == uintVariable.GetType() )
* \endcode
+ * @SINCE_1_0.0
*/
class Any
{
public:
/**
- * Default constructor.
+ * @brief Default constructor.
+ * @SINCE_1_0.0
*/
DALI_IMPORT_API Any();
/**
- * Destructor. Free resources.
+ * @brief Destructor. Free resources.
+ * @SINCE_1_0.0
*/
DALI_IMPORT_API ~Any();
/**
* @brief Pass Assert message
*
+ * @SINCE_1_0.0
* @param assertMessage Assert message to report
*/
DALI_IMPORT_API static void AssertAlways( const char* assertMessage );
/**
* @brief Constructs a Any type with the given value.
*
+ * @SINCE_1_0.0
* @param[in] value The given value.
*/
template<typename Type>
}
/**
- * Copy Constructor.
+ * @brief Copy Constructor.
+ * @SINCE_1_0.0
* @param [in] any Any to be copied.
*/
Any( const Any& any )
/**
* @brief Assigns a given value to the Any type.
*
+ * @SINCE_1_0.0
+ * @param[in] value The given value.
* @note If the types are different, then the current container will be re-created.
*
- * @param[in] value The given value.
*/
template<typename Type>
Any& operator=( const Type& value )
/**
* @brief Assignment operator.
*
+ * @SINCE_1_0.0
+ * @param [in] any Any to be assigned which contains a value of identical type to current contents.
* @exception DaliException If parameter any is of a different type.
*
- * @param [in] any Any to be assigned which contains a value of identical type to current contents.
*/
DALI_IMPORT_API Any& operator=( const Any& any );
/**
* @brief Get a value of type Type from container
*
+ * @SINCE_1_0.0
* @param type destination of type Type to write to
*/
template<typename Type>
/**
* @brief Returns the type info of the stored value.
*
+ * @SINCE_1_0.0
* @return The std::type_info of the stored value or the type info of the void
* type if there is no value stored.
*/
/**
* @brief Retrieves the stored value in the Any type.
*
+ * @SINCE_1_0.0
* @return The stored value.
*/
template<typename Type>
/**
* @brief Return pointer of Type to the value stored
*
+ * @SINCE_1_0.0
* @return pointer to the value or NULL if no value is contained
*/
template<typename Type>
/**
* @brief Return pointer of Type to the value stored
*
+ * @SINCE_1_0.0
* @return pointer to the value or NULL if no value is contained
*/
template<typename Type>
/**
* @brief Returns whether container holds a value
*
+ * @SINCE_1_0.0
* @return true if the container is empty, else false.
*/
bool Empty() const
typedef void (*DeleteFunc)( const AnyContainerBase* base );
/**
- * Base container to hold type for match verification and instance cloning function
+ * @brief Base container to hold type for match verification and instance cloning function
*
+ * @SINCE_1_0.0
*/
struct AnyContainerBase
{
/**
* @brief Constructor of base container
*
+ * @SINCE_1_0.0
* @param type typeid of container
* @param cloneFunc Cloning function to replicate this container type
* @param deleteFunc Deleting function to destroy this container type
/**
* @brief Get the typeid of this container
*
+ * @SINCE_1_0.0
* @return type
*/
const std::type_info& GetType() const
/**
* @brief Templated Clone function from container base
*
+ * @SINCE_1_0.0
* @param base reference to container
*/
template<typename Type>
/**
* @brief Templated Delete function from container base
*
+ * @SINCE_1_0.0
* @param base pointer to container
*/
template<typename Type>
/**
* @brief Templated class to hold value for type
*
+ * @SINCE_1_0.0
*/
template<typename Type>
class AnyContainerImpl : public AnyContainerBase
/**
* @brief Constructor to create container holding value of type Type
*
+ * @SINCE_1_0.0
* @param value Value of Type
*/
AnyContainerImpl( const Type& value )
/**
* @brief Constructor to create new container of type from and existing container (cloning)
*
+ * @SINCE_1_0.0
* @param base reference to base container to copy from
*/
AnyContainerImpl( const AnyContainerBase& base )
/**
* @brief Get the container's stored value
*
+ * @SINCE_1_0.0
* @return value of type Type
*/
const Type& GetValue() const
/**
* @brief Set the container's stored value
*
+ * @SINCE_1_0.0
* @param value of type Type
*/
void SetValue( const Type& value )
/**
* @brief Get a pointer to the value held
*
+ * @SINCE_1_0.0
* @return pointer to the value of type Type
*/
Type* GetPointerToValue()
/**
* @brief Get a pointer to the value held
*
+ * @SINCE_1_0.0
* @return pointer to the value of type Type
*/
const Type* GetPointerToValue() const
/**
* @brief Extract a pointer to the held type of an Any object from a pointer to that Any object (NULL if empty )
*
+ * @SINCE_1_0.0
* @param any Pointer to an Any object
*
* @return Pointer to the Type held
/**
* @brief Extract a const pointer to the held type of an Any object from a pointer to that Any object (NULL if empty )
*
+ * @SINCE_1_0.0
* @param any const Pointer to an Any object
*
* @return const Pointer to the Type held
/**
* @brief Extract a held value of type Type from an Any object from a reference to that Any object
*
+ * @SINCE_1_0.0
* @param any reference to an Any object
*
* @return Type value of type Type
/**
* @brief Extract a held value of type Type from an Any object from a const reference to that Any object
*
+ * @SINCE_1_0.0
* @param any reference to an Any object
*
* @return Type value of type Type
/**
* @brief Extract a reference to the held value of type Type from an Any object from a reference to that Any object
*
+ * @SINCE_1_0.0
* @param any reference to an Any object
*
* @return A reference to the Type value of type Type
/**
* @brief Extract a const reference to the held value of type Type from an Any object from a const reference to that Any object
*
+ * @SINCE_1_0.0
* @param any reference to an Any object
*
* @return A const reference to the Type value of type Type
* The internal Dali resources are reference counted. copying a Dali handle will increase the reference count.
* A resource will not be deleted until all its Dali::BaseHandle handles are destroyed, or reset.
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API BaseHandle
{
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] handle A pointer to a newly allocated Dali resource
*/
BaseHandle(Dali::BaseObject* handle);
* handle = SomeClass::New(); // now initialized
* handle.SomeMethod(); // safe
* @endcode
+ * @SINCE_1_0.0
*/
BaseHandle();
* @brief Dali::BaseHandle is intended as a base class
*
* This is non-virtual since derived BaseHandle types must not contain data.
+ * @SINCE_1_0.0
*/
~BaseHandle();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
BaseHandle(const BaseHandle& handle);
* @brief This assignment operator is required for (smart) pointer semantics.
*
* It makes this handle use the same BaseObject as the copied handle
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this handle
*/
/**
* @brief Connects a void() functor to a specified signal.
*
- * @pre The signal must be available in this object.
+ * @SINCE_1_0.0
* @param [in] connectionTracker A connection tracker which can be used to disconnect.
* @param [in] signalName Name of the signal to connect to.
* @param [in] functor The functor to copy.
* @return True if the signal was available.
+ * @pre The signal must be available in this object.
*/
template <class T>
bool ConnectSignal( ConnectionTrackerInterface* connectionTracker, const std::string& signalName, const T& functor )
/**
* @brief Perform action on this object with the given action name and attributes.
*
+ * @SINCE_1_0.0
* @param [in] actionName The command for the action.
* @param [in] attributes The list of attributes for the action.
* @return The action is performed by the object or not.
* Will return an empty string if the typename does not exist. This will happen for types that
* have not registered with type-registry.
*
+ * @SINCE_1_0.0
* @return The type name. Empty string if the typename does not exist.
*/
const std::string& GetTypeName() const;
/**
* @brief Returns the type info for the Handle.
*
+ * @SINCE_1_0.0
* @return The type info.
*/
bool GetTypeInfo(Dali::TypeInfo& info) const;
*
* This is useful for checking the reference count of the internal resource.
* This method will not check the validity of the handle so the caller is expected to check it by using if (handle)
+ * @SINCE_1_0.0
* @return The BaseObject which is referenced by the BaseHandle.
*/
BaseObject& GetBaseObject();
*
* This is useful for checking the reference count of the internal resource.
* This method will not check the validity of the handle so the caller is expected to check it by using if (handle)
+ * @SINCE_1_0.0
* @return The BaseObject which is referenced by the BaseHandle.
*/
const BaseObject& GetBaseObject() const;
*
* If no other handle copies exist, the internal Dali resouce will be deleted.
* Calling this is not required i.e. it will happen automatically when a Dali::BaseHandle is destroyed.
+ * @SINCE_1_0.0
*/
void Reset();
* @brief Converts an handle to a BooleanType.
*
* This is useful for checking whether the handle is empty.
+ * @SINCE_1_0.0
*/
operator BooleanType() const;
/**
* @brief Equality operator overload.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the compared handle.
* @return true if the handle handles point to the same Dali resource, or if both are NULL.
*/
/**
* @brief Inequality operator overload.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the compared handle.
* @return true if the handle handles point to the different Dali resources.
*/
/**
* @brief Get the reference counted object pointer.
*
+ * @SINCE_1_0.0
* @return A pointer to the reference counted object.
*/
Dali::RefObject* GetObjectPtr() const;
/**
* @brief Not intended for application developers.
*
+ * @SINCE_1_0.0
* @param [in] connectionTracker A connection tracker which can be used to disconnect.
* @param [in] signalName Name of the signal to connect to.
* @param [in] functorDelegate A newly allocatated functor delegate (takes ownership).
/**
* @brief Used by the safe bool idiom.
*
+ * @SINCE_1_0.0
*/
void ThisIsSaferThanReturningVoidStar() const {}
/**
* @brief Template wrapper to downcast an base object handle to derived class handle.
*
- * @pre The BaseHandle has been initialized.
+ * @SINCE_1_0.0
* @param handle to a base object
* @return handle pointer to either a valid deriving handle or an uninitialized handle
+ * @pre The BaseHandle has been initialized.
*/
template< class T >
inline T DownCast( BaseHandle handle )
/**
* @brief Equality operator
+ * @SINCE_1_0.0
*/
template <typename T>
inline bool operator==(const BaseHandle& lhs, const T& rhs)
/**
* @brief Equality operator
+ * @SINCE_1_0.0
*/
template <typename T>
inline bool operator!=(const BaseHandle& lhs, const T& rhs)
/**
* @brief Less than operator
+ * @SINCE_1_0.0
*/
inline bool operator<(const BaseHandle& lhs, const BaseHandle& rhs)
{
/**
* @brief A base class for objects.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API BaseObject : public Dali::RefObject
{
/**
* @brief Connects a void() functor to a specified signal.
*
- * @pre The signal must be available in this object.
+ * @SINCE_1_0.0
* @param [in] connectionTracker A connection tracker which can be used to disconnect.
* @param [in] signalName Name of the signal to connect to.
* @param [in] functor The functor to copy.
* @return True if the signal was available.
+ * @pre The signal must be available in this object.
*/
template <class T>
bool ConnectSignal( ConnectionTrackerInterface* connectionTracker, const std::string& signalName, const T& functor )
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
BaseObject();
/**
* @brief A reference counted object may only be deleted by calling Unreference().
+ * @SINCE_1_0.0
*/
virtual ~BaseObject();
/**
* @brief Registers the object as created with the Object registry.
+ * @SINCE_1_0.0
*/
void RegisterObject();
/**
* @brief Unregisters the object from Object registry.
+ * @SINCE_1_0.0
*/
void UnregisterObject();
/**
* @brief Get the implementation of a handle.
*
+ * @SINCE_1_0.0
* @param[in] handle The handle
* @return A reference to the object the handle points at.
*/
/**
* @brief Get the implementation of a handle.
*
+ * @SINCE_1_0.0
* @param[in] handle The handle
* @return A reference to the object the handle points at.
*/
/**
* @brief Dali::Handle is a handle to an internal property owning Dali object that can have constraints applied to it.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Handle : public BaseHandle
{
/**
* @brief An Handle's capabilities can be queried using Handle::Supports()
+ * @SINCE_1_0.0
*/
enum Capability
{
* @brief Some objects support dynamic property creation at run-time.
*
* New properties are registered by calling RegisterProperty() with an unused property name.
+ * @SINCE_1_0.0
*/
DYNAMIC_PROPERTIES = 0x01,
};
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] handle A pointer to a newly allocated Dali resource
*/
Handle( Dali::Internal::Object* handle );
* handle = SomeClass::New(); // now initialized
* handle.SomeMethod(); // safe
* @endcode
+ * @SINCE_1_0.0
*/
Handle();
/**
* @brief Create a new object.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated object.
*/
static Handle New();
* @brief Dali::Handle 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
*/
~Handle();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
Handle( const Handle& handle );
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief Downcast to a handle.
*
* If not the returned handle is left uninitialized.
+ * @SINCE_1_0.0
* @param[in] handle to An object
* @return handle or an uninitialized handle
*/
/**
* @brief Query whether an handle supports a given capability.
*
+ * @SINCE_1_0.0
* @param[in] capability The queried capability.
* @return True if the capability is supported.
*/
* @brief Query how many properties are provided by an handle.
*
* This may vary between instances of a class, if dynamic properties are supported.
+ * @SINCE_1_0.0
* @return The number of properties.
*/
unsigned int GetPropertyCount() const;
/**
* @brief Query the name of a property.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return The name of the property.
*/
* @brief Query the index of a property.
* Returns the first property index that matches the given name exactly.
*
+ * @SINCE_1_0.0
* @param [in] name The name of the property.
* @return The index of the property, or Property::INVALID_INDEX if no property exists with the given name.
*/
/**
* @brief Query whether a property can be set using SetProperty().
*
- * @pre Property::INVALID_INDEX < index.
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return True if the property is writable.
+ * @pre Property::INVALID_INDEX < index.
*/
bool IsPropertyWritable( Property::Index index ) const;
/**
* @brief Query whether a writable property can be the target of an animation or constraint.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return True if the property is animatable.
*/
/**
* @brief Query whether a property can be used as in input to a constraint.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return True if the property can be used as a constraint input.
*/
/**
* @brief Query the type of a property.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return The type of the property.
*/
* @brief Set the value of an existing property.
*
* Property should be write-able. Setting a read-only property is a no-op.
- * @pre The property types match i.e. propertyValue.GetType() is equal to GetPropertyType(index).
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @param [in] propertyValue The new value of the property.
+ * @pre The property types match i.e. propertyValue.GetType() is equal to GetPropertyType(index).
*/
void SetProperty( Property::Index index, const Property::Value& propertyValue );
/**
* @brief Register a new animatable property.
*
+ * @SINCE_1_0.0
+ * @param [in] name The name of the property.
+ * @param [in] propertyValue The new value of the property.
+ * @return The index of the property or Property::INVALID_INDEX if registration failed
* @pre The object supports dynamic properties i.e. Supports(Handle::DYNAMIC_PROPERTIES) returns true.
* Property names are expected to be unique, but this is not enforced.
* Property indices are unique to each registered custom property in a given object.
* - Property::MATRIX3
* - Property::MATRIX
* - Property::ROTATION
- * @param [in] name The name of the property.
- * @param [in] propertyValue The new value of the property.
- * @return The index of the property or Property::INVALID_INDEX if registration failed
* @note If a property with the desired name already exists, then the value given is just set.
*/
Property::Index RegisterProperty( const std::string& name, const Property::Value& propertyValue );
* @brief Register a new property.
*
* Properties can be set as non animatable using property attributes.
+ * @SINCE_1_0.0
+ * @param [in] name The name of the property.
+ * @param [in] propertyValue The new value of the property.
+ * @param [in] accessMode The property access mode (writable, animatable etc).
+ * @return The index of the property
* @pre The handle supports dynamic properties i.e. Supports(Handle::DYNAMIC_PROPERTIES) returns true.
* @pre name is unused i.e. GetPropertyIndex(name) returns PropertyIndex::INVALID.
* @note Only the following types can be animated:
* - Property::MATRIX3
* - Property::MATRIX
* - Property::ROTATION
- * @param [in] name The name of the property.
- * @param [in] propertyValue The new value of the property.
- * @param [in] accessMode The property access mode (writable, animatable etc).
- * @return The index of the property
* @note If a property with the desired name already exists, then the value given is just set.
*/
Property::Index RegisterProperty( const std::string& name, const Property::Value& propertyValue, Property::AccessMode accessMode );
/**
* @brief Retrieve a property value.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return The property value.
*/
/**
* @brief Convenience function for obtaining a property of a known type.
*
- * @pre The property types match i.e. PropertyTypes::Get<T>() is equal to GetPropertyType(index).
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @return The property value.
+ * @pre The property types match i.e. PropertyTypes::Get<T>() is equal to GetPropertyType(index).
*/
template <typename T>
T GetProperty( Property::Index index ) const
/**
* @brief Retrieve all the property indices for this object (including custom properties).
*
+ * @SINCE_1_0.0
* @param[out] indices A container of property indices for this object.
* @note the added container is cleared
*/
/**
* @brief Add a property notification to this object.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @param [in] condition The notification will be triggered when this condition is satisfied.
*
/**
* @brief Add a property notification to this object.
*
+ * @SINCE_1_0.0
* @param [in] index The index of the property.
* @param [in] componentIndex Index to the component of a complex property such as a Vector
* @param [in] condition The notification will be triggered when this condition is satisfied.
/**
* @brief Remove a property notification from this object.
*
+ * @SINCE_1_0.0
* @param [in] propertyNotification The propertyNotification to be removed.
*/
void RemovePropertyNotification( Dali::PropertyNotification propertyNotification );
/**
* @brief Remove all property notifications from this object.
+ * @SINCE_1_0.0
*/
void RemovePropertyNotifications();
/**
* @brief Remove all constraints from an Object.
*
+ * @SINCE_1_0.0
* @pre The object has been initialized.
*/
void RemoveConstraints();
/**
* @brief Remove all the constraint from the Object with a matching tag.
*
- * @pre The Object has been initialized.
+ * @SINCE_1_0.0
* @param[in] tag The tag of the constraints which will be removed
+ * @pre The Object has been initialized.
*/
void RemoveConstraints( unsigned int tag );
/**
* @brief Convenience function to create an object with a custom "weight" property.
*
+ * @SINCE_1_0.0
* @return A handle to a newly allocated object.
*/
DALI_IMPORT_API Handle New();
* |------------------|------------------------------|
* | objectCreated | @ref ObjectCreatedSignal() |
* | objectDestroyed | @ref ObjectDestroyedSignal() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ObjectRegistry : public BaseHandle
{
/**
* @brief Object created signal
+ * @SINCE_1_0.0
*/
typedef Signal< void ( BaseHandle ) > ObjectCreatedSignalType;
/**
* @brief Object destroyed signal
+ * @SINCE_1_0.0
*/
typedef Signal< void ( const Dali::RefObject* ) > ObjectDestroyedSignalType;
*
* To retrieve the current objectRegistry,
* this handle can be set using Stage::GetCurrent().GetObjectRegistry().
+ * @SINCE_1_0.0
*/
ObjectRegistry();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~ObjectRegistry();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
ObjectRegistry(const ObjectRegistry& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @code
* void YourCallbackName(BaseHandle object);
* @endcode
- * @pre The Object has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The Object has been initialized.
*/
ObjectCreatedSignalType& ObjectCreatedSignal();
* @code
* void YourCallbackName(const Dali::RefObject* objectPointer);
* @endcode
- * @pre The Object has been initialized.
+ * @SINCE_1_0.0
* @return The signal to connect to.
+ * @pre The Object has been initialized.
*/
ObjectDestroyedSignalType& ObjectDestroyedSignal();
/**
* @brief This constructor is used by Dali Get() method.
*
+ * @SINCE_1_0.0
* @param [in] objectRegistry A pointer to a Dali resource
*/
explicit DALI_INTERNAL ObjectRegistry(Internal::ObjectRegistry* objectRegistry);
/**
* @brief A Array of property values.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Property::Array
{
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Array();
/**
* @brief Copy Constructor.
*
+ * @SINCE_1_0.0
* @param[in] other The Array to copy from.
*/
Array( const Array& other );
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Array();
/**
* @brief Retrieve the number of elements in the array.
*
+ * @SINCE_1_0.0
* @return The number of elements in the array.
*/
SizeType Size() const
/**
* @brief Retrieve the number of elements in the array.
*
+ * @SINCE_1_0.0
* @return The number of elements in the array.
*/
SizeType Count() const;
/**
* @brief Returns whether the array is empty.
*
+ * @SINCE_1_0.0
* @return true if empty, false otherwise
*/
bool Empty() const
/**
* @brief Clears the array.
+ * @SINCE_1_0.0
*/
void Clear();
/**
* @brief Increase the capcity of the array.
+ * @SINCE_1_0.0
*/
void Reserve( SizeType size );
/**
* @brief Resize to size.
+ * @SINCE_1_0.0
*/
void Resize( SizeType size );
/**
* @brief Retrieve the capacity of the array.
*
+ * @SINCE_1_0.0
* @return The allocated capacity of the array
*/
SizeType Capacity();
/**
* @brief Add an element to the array.
*
+ * @SINCE_1_0.0
* @param[in] value The value to add to the end of the array
*/
void PushBack( const Value& value );
/**
* @brief Const access an element.
*
+ * @SINCE_1_0.0
* @param[in] index The element index to access. No bounds checking is performed.
*
* @return The a reference to the element.
/**
* @brief Access an element.
*
+ * @SINCE_1_0.0
* @param[in] index The element index to access. No bounds checking is performed.
*
* @return The a reference to the element.
/**
* @brief Const operator to access an element.
*
+ * @SINCE_1_0.0
* @param[in] index The element index to access. No bounds checking is performed.
*
* @return The a reference to the element.
/**
* @brief Operator to access an element.
*
+ * @SINCE_1_0.0
* @param[in] index The element index to access. No bounds checking is performed.
*
* @return The a reference to the element.
/**
* @brief Assignment Operator
*
+ * @SINCE_1_0.0
* @param[in] other The array to copy from.
*
* @return The copied array.
/**
* @brief This represents a condition that can be evaluated on a Property::Value.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API PropertyCondition : public BaseHandle
{
/**
* @brief Constructor for condition clause.
+ * @SINCE_1_0.0
*/
PropertyCondition();
/**
* @brief Destructor.
+ * @SINCE_1_0.0
*/
~PropertyCondition();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
PropertyCondition( const PropertyCondition& handle );
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Retrieve the arguments that this condition uses.
*
+ * @SINCE_1_0.0
* @return The arguments used for this condition
*/
std::size_t GetArgumentCount() const;
/**
* @brief Retrieve the arguments that this condition uses.
*
+ * @SINCE_1_0.0
* @return The arguments used for this condition
* @note The container will only be valid as long PropertyCondition is valid.
*/
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] arg The argument for the condition
* @return A property condition function object
*/
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] arg The argument for the condition
* @return A property condition function object
*/
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] arg0 The first argument for the condition
* @param[in] arg1 The second argument for the condition
* @return A property condition function object
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] arg0 The first argument for the condition
* @param[in] arg1 The second argument for the condition
* @return A property condition function object
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] stepAmount The step size required to trigger condition
* @param[in] initialValue The initial value to step from
* @return A property condition function object
* vector2 (the 2D length)
* vector3 (the 3D length)
* vector4 (the 4D length)
+ * @SINCE_1_0.0
* @param[in] steps List of values to receive notifications for as a property crosses them
* @return A property condition function object
*/
*
* Enumerations are being used here rather than static constants so that switch statements can be
* used to compare property indices.
+ * @SINCE_1_0.0
*/
enum PropertyRanges
{
- DEFAULT_OBJECT_PROPERTY_START_INDEX = 0, ///< For all objects deriving from Handle (including Actors).
+ DEFAULT_OBJECT_PROPERTY_START_INDEX = 0, ///< For all objects deriving from Handle (including Actors). @SINCE_1_0.0
- DEFAULT_ACTOR_PROPERTY_START_INDEX = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< Start index for Actor.
- DEFAULT_ACTOR_PROPERTY_MAX_COUNT = 10000, ///< Actor range: 0 to 9999
+ DEFAULT_ACTOR_PROPERTY_START_INDEX = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< Start index for Actor. @SINCE_1_0.0
+ DEFAULT_ACTOR_PROPERTY_MAX_COUNT = 10000, ///< Actor range: 0 to 9999 @SINCE_1_0.0
- DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX = DEFAULT_ACTOR_PROPERTY_START_INDEX + DEFAULT_ACTOR_PROPERTY_MAX_COUNT, ///< Property start index for classes deriving directly from Actor.
+ DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX = DEFAULT_ACTOR_PROPERTY_START_INDEX + DEFAULT_ACTOR_PROPERTY_MAX_COUNT, ///< Property start index for classes deriving directly from Actor. @SINCE_1_0.0
- DEFAULT_PROPERTY_MAX_COUNT_PER_DERIVATION = 10000, ///< Second-level and onwards derived objects should increment their start index by this.
+ DEFAULT_PROPERTY_MAX_COUNT_PER_DERIVATION = 10000, ///< Second-level and onwards derived objects should increment their start index by this. @SINCE_1_0.0
- DEFAULT_GESTURE_DETECTOR_PROPERTY_START_INDEX = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< Used by PanGestureDetector.
+ DEFAULT_GESTURE_DETECTOR_PROPERTY_START_INDEX = DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX, ///< Used by PanGestureDetector. @SINCE_1_0.0
- PROPERTY_REGISTRATION_START_INDEX = 10000000, ///< The index when registering a property should start from this number.
- DEFAULT_PROPERTY_MAX_COUNT = PROPERTY_REGISTRATION_START_INDEX, ///< Default Property Range: 0 to 9999999
+ PROPERTY_REGISTRATION_START_INDEX = 10000000, ///< The index when registering a property should start from this number. @SINCE_1_0.0
+ DEFAULT_PROPERTY_MAX_COUNT = PROPERTY_REGISTRATION_START_INDEX, ///< Default Property Range: 0 to 9999999 @SINCE_1_0.0
- PROPERTY_REGISTRATION_MAX_INDEX = 19999999, ///< The maximum index supported when registering a property
+ PROPERTY_REGISTRATION_MAX_INDEX = 19999999, ///< The maximum index supported when registering a property @SINCE_1_0.0
- ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX = 20000000, ///< The index when registering an animatable property should start from this number. (SceneGraph properties per type)
- ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX = 29999999, ///< The maximum index supported when registering an animatable property
+ ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX = 20000000, ///< The index when registering an animatable property should start from this number. (SceneGraph properties per type) @SINCE_1_0.0
+ ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX = 29999999, ///< The maximum index supported when registering an animatable property @SINCE_1_0.0
- PROPERTY_CUSTOM_START_INDEX = 50000000, ///< The index at which custom properties start (SceneGraph and Event side properties per instance)
+ PROPERTY_CUSTOM_START_INDEX = 50000000, ///< The index at which custom properties start (SceneGraph and Event side properties per instance) @SINCE_1_0.0
};
/**
/**
* @brief An abstract interface for receiving property values.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API PropertyInput
{
/**
* @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;
/**
* @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;
/**
- * Retrieve the extension for the PropertyInput
+ * @brief Retrieve the extension for the PropertyInput
*
+ * @SINCE_1_0.0
* @return The extension if available, NULL otherwise
*/
virtual Extension* GetExtension()
/**
* @brief A Map of property values.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Property::Map
{
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Map();
/**
* @brief Copy Constructor.
*
+ * @SINCE_1_0.0
* @param[in] other The Map to copy from.
*/
Map( const Map& other );
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Map();
/**
* @brief Retrieve the number of elements in the map.
*
+ * @SINCE_1_0.0
* @return The number of elements in the map.
*/
SizeType Count() const;
/**
* @brief Returns whether the map is empty.
*
+ * @SINCE_1_0.0
* @return true if empty, false otherwise
*/
bool Empty() const;
* @brief Inserts the key-value pair in the Map.
*
* Does not check for duplicates
+ * @SINCE_1_0.0
* @param key to insert
* @param value to insert
*/
* @brief Inserts the key-value pair in the Map.
*
* Does not check for duplicates
+ * @SINCE_1_0.0
* @param key to insert
* @param value to insert
*/
/**
* @brief Retrieve the value at the specified position.
*
+ * @SINCE_1_0.0
* @return A reference to the value at the specified position.
*
* @note Will assert if position >= Count()
/**
* @brief Retrieve the key at the specified position.
*
+ * @SINCE_1_0.0
* @return A const reference to the key at the specified position.
*
* @note Will assert if position >= Count()
/**
* @brief Retrieve the key & the value at the specified position.
*
+ * @SINCE_1_0.0
* @return A reference to the pair of key and value at the specified position.
*
* @note Will assert if position >= Count()
/**
* @brief Finds the value for the specified key if it exists.
*
+ * @SINCE_1_0.0
* @param[in] key The key to find.
*
* @return A const pointer to the value if it exists, NULL otherwise
/**
* @brief Finds the value for the specified key if it exists.
*
+ * @SINCE_1_0.0
* @param[in] key The key to find.
*
* @return A const pointer to the value if it exists, NULL otherwise
/**
* @brief Finds the value for the specified key if it exists and its type is type
*
+ * @SINCE_1_0.0
* @param[in] key The key to find.
* @param[in] type The type to check.
*
/**
* @brief Clears the map.
+ * @SINCE_1_0.0
*/
void Clear();
*
* Any values in 'from' will overwrite the values in the current map.
*
+ * @SINCE_1_0.0
* @param[in] from The map to merge from.
*/
void Merge( const Map& from );
/**
* @brief Const operator to access element with the specified key.
*
+ * @SINCE_1_0.0
* @param[in] key The key whose value to access.
*
* @return The value for the element with the specified key, if key doesn't exist, then Property::NONE is returned.
/**
* @brief Operator to access the element with the specified key.
*
+ * @SINCE_1_0.0
* @param[in] key The key whose value to access.
*
* @return A reference to the value for the element with the specified key.
/**
* @brief Assignment Operator
*
+ * @SINCE_1_0.0
* @param[in] other The map to copy from.
*
* @return The copied map.
/**
* @brief Signal type for Dali::PropertyNotification::NotifySignal().
+ * @SINCE_1_0.0
*/
typedef Signal< void (PropertyNotification& source) > PropertyNotifySignalType;
* @brief This is used to issue a notification upon a condition of the property being met.
*
* For example checking if Actor::POSITION_X > 100.0.
+ * @SINCE_1_0.0
* @see Dali::PropertyCondition
*/
class DALI_IMPORT_API PropertyNotification : public BaseHandle
public:
/**
* @brief Enumeration to describe how to check condition
+ * @SINCE_1_0.0
*/
enum NotifyMode
{
- Disabled, ///< Don't notify, regardless of result of Condition
- NotifyOnTrue, ///< Notify whenever condition changes from false to true.
- NotifyOnFalse, ///< Notify whenever condition changes from true to false.
- NotifyOnChanged ///< Notify whenever condition changes (false to true, and true to false)
+ Disabled, ///< Don't notify, regardless of result of Condition @SINCE_1_0.0
+ NotifyOnTrue, ///< Notify whenever condition changes from false to true. @SINCE_1_0.0
+ NotifyOnFalse, ///< Notify whenever condition changes from true to false. @SINCE_1_0.0
+ NotifyOnChanged ///< Notify whenever condition changes (false to true, and true to false) @SINCE_1_0.0
};
public:
* @brief Create an uninitialized PropertyNotification; this can be initialized with PropertyNotification::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
PropertyNotification();
* 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 PropertyNotification object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~PropertyNotification();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
PropertyNotification(const PropertyNotification& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Get the condition of this notification
*
+ * @SINCE_1_0.0
* @return The condition is returned
*/
PropertyCondition GetCondition();
/**
* @brief Get the condition of this notification
*
+ * @SINCE_1_0.0
* @return The condition is returned
*/
const PropertyCondition& GetCondition() const;
/**
* @brief Get the target handle that this notification is observing.
+ * @SINCE_1_0.0
*/
Dali::Handle GetTarget() const;
* @brief Get the target handle's property index that this notification
* is observing.
*
+ * @SINCE_1_0.0
* @return The target property.
*/
Property::Index GetTargetProperty() const;
* @brief Sets the Notification mode. This determines how the property
* notification should respond to the result of a condition.
*
+ * @SINCE_1_0.0
* @param[in] mode Notification mode (Default is PropertyNotification::NotifyOnTrue)
*/
void SetNotifyMode( NotifyMode mode );
/**
* @brief Retrieves the current Notification mode.
*
+ * @SINCE_1_0.0
* @return Notification mode.
*/
NotifyMode GetNotifyMode();
* @brief Gets the result of the last condition check that caused a signal emit,
* useful when using NotifyOnChanged mode and need to know what it changed to.
*
+ * @SINCE_1_0.0
* @return whether condition result that triggered last emit was true or false
*/
bool GetNotifyResult() const;
/**
* @brief Connect to this signal to be notified when the notification has occurred.
*
+ * @SINCE_1_0.0
* @return A signal object to Connect() with.
*/
PropertyNotifySignalType& NotifySignal();
/**
* @brief This constructor is used by Dali New() methods.
*
+ * @SINCE_1_0.0
* @param [in] propertyNotification A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL PropertyNotification(Internal::PropertyNotification* propertyNotification);
/**
* @brief Template function instances for property getters.
+ * @SINCE_1_0.0
*/
namespace PropertyTypes
{
/**
* @brief Retrieve the name of a property type.
*
+ * @SINCE_1_0.0
* @param [in] type The property type.
* @return The name of this type.
*/
* @brief Retrieve an enumerated property type.
*
* New versions of this templated function must be defined for future types.
+ * @SINCE_1_0.0
* @return The property type.
*/
template <typename T>
/**
* @brief A value-type representing a property value.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API Property::Value
{
* @brief Default constructor.
*
* This creates a property with type Property::NONE.
+ * @SINCE_1_0.0
*/
Value();
/**
* @brief Create a boolean property value.
*
+ * @SINCE_1_0.0
* @param [in] boolValue A boolean value.
*/
Value( bool boolValue );
/**
* @brief Create an integer property value.
*
+ * @SINCE_1_0.0
* @param [in] integerValue An integer value.
*/
Value( int integerValue );
/**
* @brief Create a float property value.
*
+ * @SINCE_1_0.0
* @param [in] floatValue A floating-point value.
*/
Value( float floatValue );
/**
* @brief Create a Vector2 property value.
*
+ * @SINCE_1_0.0
* @param [in] vectorValue A vector of 2 floating-point values.
*/
Value( const Vector2& vectorValue );
/**
* @brief Create a Vector3 property value.
*
+ * @SINCE_1_0.0
* @param [in] vectorValue A vector of 3 floating-point values.
*/
Value( const Vector3& vectorValue );
/**
* @brief Create a Vector4 property value.
*
+ * @SINCE_1_0.0
* @param [in] vectorValue A vector of 4 floating-point values.
*/
Value( const Vector4& vectorValue );
/**
* @brief Create a Matrix3 property value.
*
+ * @SINCE_1_0.0
* @param [in] matrixValue A matrix of 3x3 floating-point values.
*/
Value( const Matrix3& matrixValue );
/**
* @brief Create a Matrix property value.
*
+ * @SINCE_1_0.0
* @param [in] matrixValue A matrix of 4x4 floating-point values.
*/
Value( const Matrix& matrixValue );
/**
* @brief Create a Vector4 property value.
*
+ * @SINCE_1_0.0
* @param [in] vectorValue A vector of 4 integer values.
*/
Value( const Rect<int>& vectorValue );
/**
* @brief Create an orientation property value.
*
+ * @SINCE_1_0.0
* @param [in] angleAxis An angle-axis representing the rotation.
*/
Value( const AngleAxis& angleAxis );
/**
* @brief Create an orientation property value.
*
+ * @SINCE_1_0.0
* @param [in] quaternion A quaternion representing the rotation.
*/
Value( const Quaternion& quaternion );
/**
* @brief Create an string property value.
*
+ * @SINCE_1_0.0
* @param [in] stringValue A string.
*/
Value( const std::string& stringValue );
/**
* @brief Create an string property value.
*
+ * @SINCE_1_0.0
* @param [in] stringValue A string.
*/
Value( const char* stringValue );
/**
* @brief Create an array property value.
*
+ * @SINCE_1_0.0
* @param [in] arrayValue An array
*/
Value( Property::Array& arrayValue );
/**
* @brief Create a map property value.
*
+ * @SINCE_1_0.0
* @param [in] mapValue An array
*/
Value( Property::Map& mapValue );
/**
* @brief Explicitly set a type and initialize it.
*
+ * @SINCE_1_0.0
* @param [in] type The property value type.
*/
explicit Value( Type type );
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param [in] value The property value to copy.
*/
Value( const Value& value );
/**
* @brief Assign a property value.
*
+ * @SINCE_1_0.0
* @param [in] value The property value to assign from.
* @return a reference to this
*/
* @brief Non-virtual destructor.
*
* This class is not a base class.
+ * @SINCE_1_0.0
*/
~Value();
/**
* @brief Query the type of this property value.
*
+ * @SINCE_1_0.0
* @return The type ID.
*/
Type GetType() const;
*
* Works on a best-effort approach; if value type is not convertible returns a default value of the type
*
+ * @SINCE_1_0.0
* @return A value of type T.
*/
template <typename T>
/**
* @brief Retrieve a boolean value.
*
- * @pre GetType() returns Property::BOOLEAN.
+ * @SINCE_1_0.0
* @param [out] boolValue On return, a boolean value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::BOOLEAN.
*/
bool Get( bool& boolValue ) const;
/**
* @brief Retrieve a floating-point value.
*
- * @pre GetType() returns Property::FLOAT.
+ * @SINCE_1_0.0
* @param [out] floatValue On return, a floating-point value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::FLOAT.
*/
bool Get( float& floatValue ) const;
/**
* @brief Retrieve an integer value.
*
- * @pre GetType() returns Property::INTEGER.
+ * @SINCE_1_0.0
* @param [out] integerValue On return, an integer value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::INTEGER.
*/
bool Get( int& integerValue ) const;
/**
* @brief Retrieve an integer rectangle.
*
- * @pre GetType() returns Property::RECTANGLE.
+ * @SINCE_1_0.0
* @param [out] rect On return, an integer rectangle.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::RECTANGLE.
*/
bool Get( Rect<int>& rect ) const;
/**
* @brief Retrieve a vector value.
*
- * @pre GetType() returns Property::VECTOR2.
+ * @SINCE_1_0.0
* @param [out] vectorValue On return, a vector value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::VECTOR2.
*/
bool Get( Vector2& vectorValue ) const;
/**
* @brief Retrieve a vector value.
*
- * @pre GetType() returns Property::VECTOR3.
+ * @SINCE_1_0.0
* @param [out] vectorValue On return, a vector value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::VECTOR3.
*/
bool Get( Vector3& vectorValue ) const;
/**
* @brief Retrieve a vector value.
*
- * @pre GetType() returns Property::VECTOR4.
+ * @SINCE_1_0.0
* @param [out] vectorValue On return, a vector value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::VECTOR4.
*/
bool Get( Vector4& vectorValue ) const;
/**
* @brief Retrieve a matrix3 value.
*
- * @pre GetType() returns Property::MATRIX3.
+ * @SINCE_1_0.0
* @param [out] matrixValue On return, a matrix3 value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::MATRIX3.
*/
bool Get( Matrix3& matrixValue ) const;
/**
* @brief Retrieve a matrix value.
*
- * @pre GetType() returns Property::MATRIX.
+ * @SINCE_1_0.0
* @param [out] matrixValue On return, a matrix value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::MATRIX.
*/
bool Get( Matrix& matrixValue ) const;
/**
* @brief Retrieve an angle-axis value.
*
- * @pre GetType() returns Property::ROTATION.
+ * @SINCE_1_0.0
* @param [out] angleAxisValue On return, a angle-axis value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::ROTATION.
*/
bool Get( AngleAxis& angleAxisValue ) const;
/**
* @brief Retrieve a quaternion value.
*
- * @pre GetType() returns Property::ROTATION.
+ * @SINCE_1_0.0
* @param [out] quaternionValue On return, a quaternion value.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::ROTATION.
*/
bool Get( Quaternion& quaternionValue ) const;
/**
* @brief Retrieve an string property value.
*
- * @pre GetType() returns Property::STRING.
+ * @SINCE_1_0.0
* @param [out] stringValue A string.
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::STRING.
*/
bool Get( std::string& stringValue ) const;
/**
* @brief Retrieve an array property value.
*
- * @pre GetType() returns Property::ARRAY.
+ * @SINCE_1_0.0
* @param [out] arrayValue The array as a vector Property Values
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::ARRAY.
*/
bool Get( Property::Array& arrayValue ) const;
/**
* @brief Retrieve an map property value.
*
- * @pre GetType() returns Property::MAP.
+ * @SINCE_1_0.0
* @param [out] mapValue The map as vector of string and Property Value pairs
* @return true if the value is successfully retrieved, false if the type is not convertible
+ * @pre GetType() returns Property::MAP.
*/
bool Get( Property::Map& mapValue ) const;
/**
* @brief Retrieve the Array API of the Property::Value without copying the contents of the map
*
+ * @SINCE_1_0.0
* @return the Array API of the Property::Value or NULL if not a Property::Array
*/
Property::Array* GetArray() const;
/**
* @brief Retrieve the Map API of the Property::Value without copying the contents of the map
*
+ * @SINCE_1_0.0
* @return the Map API of the Property::Value or NULL if not a Property::Map
*/
Property::Map* GetMap() const;
/**
- * output to stream
+ * @brief output to stream
+ * @SINCE_1_0.0
*/
friend std::ostream& operator<<( std::ostream& ouputStream, const Property::Value& value );
/**
* @brief Convert the value of the property into a string and append to an output stream.
*
+ * @SINCE_1_0.0
* @param [in] ouputStream The output stream operator.
* @param [in] value The value to insert
* @return The output stream operator.
/**
* @brief An object + property pair.
+ * @SINCE_1_0.0
*/
struct DALI_IMPORT_API Property
{
/**
* @brief A valid property index is zero or greater.
+ * @SINCE_1_0.0
*/
typedef int Index;
static const int INVALID_INDEX; ///< -1 is not a valid property index
static const int INVALID_COMPONENT_INDEX; ///< -1 is not a valid property index
- typedef Dali::Vector< Index > IndexContainer; ///< A vector of property indices
+ typedef Dali::Vector< Index > IndexContainer; ///< A vector of property indices @SINCE_1_0.0
/**
* @brief A value-type representing a property value.
/**
* @brief The property types supported.
+ * @SINCE_1_0.0
*/
enum Type
{
- NONE, ///< No type
-
- BOOLEAN, ///< A boolean type
- FLOAT, ///< A float type
- INTEGER, ///< An integer type
- VECTOR2, ///< a vector array of size=2 with float precision
- VECTOR3, ///< a vector array of size=3 with float precision
- VECTOR4, ///< a vector array of size=4 with float precision
- MATRIX3, ///< a 3x3 matrix
- MATRIX, ///< a 4x4 matrix
- RECTANGLE, ///< an integer array of size=4
- ROTATION, ///< either a quaternion or an axis angle rotation
- STRING, ///< A string type
- ARRAY, ///< an array of Property::Value
- MAP ///< a string key to Property:value mapping
+ NONE, ///< No type @SINCE_1_0.0
+
+ BOOLEAN, ///< A boolean type @SINCE_1_0.0
+ FLOAT, ///< A float type @SINCE_1_0.0
+ INTEGER, ///< An integer type @SINCE_1_0.0
+ VECTOR2, ///< a vector array of size=2 with float precision @SINCE_1_0.0
+ VECTOR3, ///< a vector array of size=3 with float precision @SINCE_1_0.0
+ VECTOR4, ///< a vector array of size=4 with float precision @SINCE_1_0.0
+ MATRIX3, ///< a 3x3 matrix @SINCE_1_0.0
+ MATRIX, ///< a 4x4 matrix @SINCE_1_0.0
+ RECTANGLE, ///< an integer array of size=4 @SINCE_1_0.0
+ ROTATION, ///< either a quaternion or an axis angle rotation @SINCE_1_0.0
+ STRING, ///< A string type @SINCE_1_0.0
+ ARRAY, ///< an array of Property::Value @SINCE_1_0.0
+ MAP ///< a string key to Property:value mapping @SINCE_1_0.0
};
/**
* @brief The access mode for custom properties
+ * @SINCE_1_0.0
*/
enum AccessMode
{
- READ_ONLY, ///< if the property is read-only
- READ_WRITE, ///< If the property is read/writeable
- ANIMATABLE, ///< If the property can be animated or constrained
- ACCESS_MODE_COUNT ///< The number of access modes
+ READ_ONLY, ///< if the property is read-only @SINCE_1_0.0
+ READ_WRITE, ///< If the property is read/writeable @SINCE_1_0.0
+ ANIMATABLE, ///< If the property can be animated or constrained @SINCE_1_0.0
+ ACCESS_MODE_COUNT ///< The number of access modes @SINCE_1_0.0
};
/**
* @brief Create a Property instance.
*
+ * @SINCE_1_0.0
* @param [in] object A valid handle to the target object.
* @param [in] propertyIndex The index of a property.
*/
/**
* @brief Create a Property instance.
*
+ * @SINCE_1_0.0
* @param [in] object A valid handle to the target object.
* @param [in] propertyIndex The index of a property.
* @param [in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1)
/**
* @brief Create a Property instance.
*
- * @note This performs a property index query and is therefore slower than
- * constructing a Property directly with the index.
+ * @SINCE_1_0.0
* @param [in] object A valid handle to the target object.
* @param [in] propertyName The property name.
+ * @note This performs a property index query and is therefore slower than
+ * constructing a Property directly with the index.
*/
Property( Handle& object, const std::string& propertyName );
/**
* @brief Create a Property instance.
*
- * @note This performs a property index query and is therefore slower than
- * constructing a Property directly with the index.
+ * @SINCE_1_0.0
* @param [in] object A valid handle to the target object.
* @param [in] propertyName The property name.
* @param [in] componentIndex Index to a sub component of a property, for use with Vector2, Vector3 and Vector4. -1 for main property (default is -1)
+ * @note This performs a property index query and is therefore slower than
+ * constructing a Property directly with the index.
*/
Property( Handle& object, const std::string& propertyName, int componentIndex );
/**
* @brief Non-virtual destructor; Property is not intended as a base class.
+ * @SINCE_1_0.0
*/
~Property();
*
* Typically this should be used with an instrusive pointer,
* instead of calling Reference() and Unreference() methods directly.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API RefObject
{
/**
* @brief Increment the object's reference count.
+ * @SINCE_1_0.0
*/
void Reference();
* @brief Decrement the object's reference count.
*
* When the reference count drops to zero, the object will self-destruct.
+ * @SINCE_1_0.0
*/
void Unreference();
/**
* @brief Retrieve the object's reference count.
*
+ * @SINCE_1_0.0
* @return The reference count
*/
int ReferenceCount();
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
RefObject();
* @brief RefObject is intended as a base class.
*
* A RefObject may only be deleted when its reference count is zero.
+ * @SINCE_1_0.0
*/
virtual ~RefObject();
* @brief Copy constructor.
*
* The newly copied object will have a reference count of zero.
+ * @SINCE_1_0.0
* @param[in] rhs The object to copy
*/
RefObject(const RefObject& rhs);
* @brief Assignment operator.
*
* The newly copied object will have a reference count of zero.
+ * @SINCE_1_0.0
* @param[in] rhs The object to copy
* @return a reference to this
*/
* their actions and signals.
*
* See TypeRegistry for methods of type registration and TypeInfo retrieval.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API TypeInfo : public BaseHandle
{
public:
- typedef BaseHandle (*CreateFunction)(); ///< Function signature for creating an instance of the associated object type.
+ typedef BaseHandle (*CreateFunction)(); ///< Function signature for creating an instance of the associated object type. @SINCE_1_0.0
- typedef bool (*ActionFunction)(BaseObject*, const std::string&, const Property::Map&); ///< Function signature for creating scriptable actions
+ typedef bool (*ActionFunction)(BaseObject*, const std::string&, const Property::Map&); ///< Function signature for creating scriptable actions @SINCE_1_0.0
/**
* @brief Connects a callback function with the object's signals.
*
+ * @SINCE_1_0.0
* @param[in] object The object providing the signal.
* @param[in] tracker Used to disconnect the signal.
* @param[in] signalName The signal to connect to.
/**
* @brief Callback to set an event-thread only property.
*
- * @see PropertyRegistration.
+ * @SINCE_1_0.0
* @param[in] object The object whose property should be set.
* @param[in] index The index of the property being set.
* @param[in] value The new value of the property for the object specified.
+ * @see PropertyRegistration.
*/
typedef void (*SetPropertyFunction)( BaseObject* object, Property::Index index, const Property::Value& value );
/**
* @brief Callback to get the value of an event-thread only property.
*
- * @see PropertyRegistration.
+ * @SINCE_1_0.0
* @param[in] object The object whose property value is required.
* @param[in] index The index of the property required.
* @return The current value of the property for the object specified.
+ * @see PropertyRegistration.
*/
typedef Property::Value (*GetPropertyFunction)( BaseObject* object, Property::Index index );
/**
* @brief Allows the creation of an empty TypeInfo handle.
+ * @SINCE_1_0.0
*/
TypeInfo();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~TypeInfo();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
TypeInfo(const TypeInfo& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Retrieve the type name for this type.
*
+ * @SINCE_1_0.0
* @return string name
*/
const std::string& GetName() const;
/**
* @brief Retrieve the base type name for this type.
*
+ * @SINCE_1_0.0
* @return string of base name
*/
const std::string& GetBaseName() const;
/**
* @brief Create an object from this type.
*
+ * @SINCE_1_0.0
* @return the BaseHandle for the newly created object
*/
BaseHandle CreateInstance() const;
/**
* @brief Retrieve the creator function for this type.
*
+ * @SINCE_1_0.0
* @return the creator function
*/
CreateFunction GetCreator() const;
/**
* @brief Retrieve the number of actions for this type.
*
+ * @SINCE_1_0.0
* @return The count
*/
size_t GetActionCount() const;
/**
* @brief Retrieve the action name for the index.
*
+ * @SINCE_1_0.0
* @param[in] index Index to lookup
* @return action name or empty string where index is invalid
*/
/**
* @brief Retrieve the number of signals for this type.
*
+ * @SINCE_1_0.0
* @return The count
*/
size_t GetSignalCount() const;
/**
* @brief Retrieve the signal name for the index.
*
+ * @SINCE_1_0.0
* @param[in] index Index to lookup
* @return signal name or empty string where index is invalid
*/
* @brief Retrieve the number of event side type registered properties for this type.
*
* This count does not include all properties
+ * @SINCE_1_0.0
* @return The count
*/
size_t GetPropertyCount() const;
/**
* @brief Retrieve all the property indices for this type.
*
+ * @SINCE_1_0.0
* @param[out] indices Container of property indices
* @note The container will be cleared
*/
/**
* @brief Given a property index, retrieve the property name associated with it.
*
- * @exception DaliException If index is not valid.
- *
+ * @SINCE_1_0.0
* @param[in] index The property index.
* @return The name of the property at the given index.
+ * @exception DaliException If index is not valid.
+ *
*/
const std::string& GetPropertyName( Property::Index index ) const;
/**
* @brief This constructor is used by Dali Get() method.
*
+ * @SINCE_1_0.0
* @param [in] typeInfo A pointer to a Dali resource
*/
explicit DALI_INTERNAL TypeInfo(Internal::TypeInfo* typeInfo);
* Signal and action names follow properties and are by convention lower case hyphen
* separated ie 'next-page'. This maintains consistency with the scripted interface.
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API TypeRegistry : public BaseHandle
{
/**
* @brief Get Type Registry handle.
*
+ * @SINCE_1_0.0
* @return TypeRegistry handle
*/
static TypeRegistry Get();
/**
* @brief Allows the creation of an empty typeRegistry handle.
+ * @SINCE_1_0.0
*/
TypeRegistry();
/**
* @brief destructor.
+ * @SINCE_1_0.0
*/
~TypeRegistry();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
TypeRegistry(const TypeRegistry& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Get TypeInfo for a registered type.
*
+ * @SINCE_1_0.0
* @param [in] uniqueTypeName A unique type name
* @return TypeInfo if the type exists otherwise an empty handle
*/
/**
* @brief Get TypeInfo for a registered type.
*
+ * @SINCE_1_0.0
* @param [in] registerType The registered type info
* @return TypeInfo if the type exists otherwise an empty handle
*/
/**
* @brief Get type name count.
*
+ * @SINCE_1_0.0
* @return The count
*/
size_t GetTypeNameCount() const;
/**
* @brief Get type names by index.
*
+ * @SINCE_1_0.0
* @return The type name or an empty string when index is not valid
*/
std::string GetTypeName(size_t index) const;
/**
* @brief This constructor is used by Dali Get() method.
*
+ * @SINCE_1_0.0
* @param [in] typeRegistry A pointer to a Dali resource
*/
explicit DALI_INTERNAL TypeRegistry(Internal::TypeRegistry*typeRegistry);
/**
* @brief Register a type from type info.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API TypeRegistration
{
/**
* @brief Constructor registers the type creation function.
*
+ * @SINCE_1_0.0
* @param [in] registerType the type info for the type to be registered
* @param [in] baseType the base type info of registerType
* @param [in] f registerType instance creation function
/**
* @brief Constructor registers the type creation function.
*
+ * @SINCE_1_0.0
* @param [in] registerType the type info for the type to be registered
* @param [in] baseType the base type info of registerType
* @param [in] f registerType instance creation function
*
* This allows types to be created dynamically from script. The name must be
* unique for successful registration.
+ * @SINCE_1_0.0
* @param [in] name the name of the type to be registered
* @param [in] baseType the base type info of registerType
* @param [in] f registerType instance creation function
/**
* @brief The name the type is registered under (derived from type_info).
*
+ * @SINCE_1_0.0
* @return the registered name or empty if unregistered
*/
const std::string RegisteredName() const;
/**
* @brief Register a signal connector function to a registered type.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API SignalConnectorType
{
/**
* @brief Constructor registers the type creation function.
*
+ * @SINCE_1_0.0
* @param [in] typeRegistration The TypeRegistration object
* @param [in] name The signal name
* @param [in] func The signal connector function
/**
* @brief Register an action function.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API TypeAction
{
/**
* @brief Constructor registers the type creation function.
*
+ * @SINCE_1_0.0
* @param [in] registered The TypeRegistration object
* @param [in] name The action name
* @param [in] f The action function
/**
* @brief Register a property for the given type.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API PropertyRegistration
{
* Property::Value GetProperty( BaseObject* object, Property::Index index );
* @endcode
*
+ * @SINCE_1_0.0
* @param [in] registered The TypeRegistration object
* @param [in] name The name of the property
* @param [in] index The property index. Must be a value between PROPERTY_REGISTRATION_START_INDEX and PROPERTY_REGISTRATION_MAX_INDEX inclusive.
* @param [in] setFunc The function to call when setting the property. If NULL, then the property becomes read-only.
* @param [in] getFunc The function to call to retrieve the current value of the property. MUST be provided.
*
+ * @pre "registered" must be registered with the TypeRegistry.
* @note The "index" value must be between START_INDEX and MAX_INDEX inclusive.
* @note If "setFunc" is NULL, then the property becomes a read-only property.
* @note "getFunc" MUST be provided
*
- * @pre "registered" must be registered with the TypeRegistry.
*/
PropertyRegistration( TypeRegistration& registered,
const std::string& name, Property::Index index, Property::Type type,
/**
* @brief Register an animatable property for the given type.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API AnimatablePropertyRegistration
{
* value of the property can be retrieved and set via specified
* functions.
*
+ * @SINCE_1_0.0
* @param [in] registered The TypeRegistration object
* @param [in] name The name of the property
* @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive.
/**
* @brief This constructor registers the animatable property with the registered default value.
*
- * @since DALi 1.1.18
- *
* This constructor is for scene-graph only properties where the
* value of the property can be retrieved and set via specified
* functions.
*
+ * @SINCE_1_1.18
* @param [in] registered The TypeRegistration object
* @param [in] name The name of the property
* @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive.
/**
* @brief Register a component of animatable property for the given component index.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API AnimatablePropertyComponentRegistration
{
* This constructor is for a component of scene-graph only properties where the
* value of the property can be retrieved and set via specified functions.
*
+ * @SINCE_1_0.0
* @param [in] registered The TypeRegistration object
* @param [in] name The name of the component
* @param [in] index The property index. Must be a value between ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX and ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX inclusive.
* @brief An ordered list of Dali::RenderTask%s.
*
* These tasks describe how the Dali scene should be rendered; @see Dali::RenderTask for more details.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API RenderTaskList : public BaseHandle
{
* @brief Create an empty RenderTaskList handle.
*
* This can be initialised with Stage::GetRenderTaskList().
+ * @SINCE_1_0.0
*/
RenderTaskList();
* If handle points to a RenderTaskList the downcast produces valid
* handle. If not the returned handle is left uninitialized.
*
+ * @SINCE_1_0.0
* @param[in] handle A handle to an object.
* @return A handle to a RenderTaskList or an uninitialized handle.
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~RenderTaskList();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
RenderTaskList(const RenderTaskList& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* @brief Create a new RenderTask.
*
* This will be appended to the list of render-tasks.
+ * @SINCE_1_0.0
* @return A valid handle to a new RenderTask.
*/
RenderTask CreateTask();
/**
* @brief Remove a RenderTask from the list of render-tasks.
+ * @SINCE_1_0.0
* @param[in] task The render-task to remove.
*/
void RemoveTask( RenderTask task );
* @brief Query the number of render-tasks in the list.
*
* This is ordered i.e. the task with index 0 is the first to be processed each frame.
+ * @SINCE_1_0.0
* @return The number of render-tasks.
*/
unsigned int GetTaskCount() const;
/**
* @brief Retrieve a render-task.
*
- * @pre index should be in range i.e. less than GetTaskCount().
+ * @SINCE_1_0.0
* @param[in] index The index of the render task to retrieve
* @return A handle to the render-task.
+ * @pre index should be in range i.e. less than GetTaskCount().
*/
RenderTask GetTask( unsigned int index ) const;
/**
* @brief This constructor is used by Dali New() methods
+ * @SINCE_1_0.0
* @param [in] renderTask A pointer to a newly allocated render-task
*/
explicit DALI_INTERNAL RenderTaskList( Internal::RenderTaskList* renderTask );
* | %Signal Name | Method |
* |--------------|-----------------------|
* | finished | @ref FinishedSignal() |
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API RenderTask : public Handle
{
/**
* @brief An enumeration of properties belonging to the RenderTask class.
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- VIEWPORT_POSITION = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "viewportPosition", type Vector2
- VIEWPORT_SIZE, ///< name "viewportSize", type Vector2
- CLEAR_COLOR, ///< name "clearColor", type Vector4
+ VIEWPORT_POSITION = DEFAULT_OBJECT_PROPERTY_START_INDEX, ///< name "viewportPosition", type Vector2 @SINCE_1_0.0
+ VIEWPORT_SIZE, ///< name "viewportSize", type Vector2 @SINCE_1_0.0
+ CLEAR_COLOR, ///< name "clearColor", type Vector4 @SINCE_1_0.0
};
};
/**
* @brief Typedef for signals sent by this class.
+ * @SINCE_1_0.0
*/
typedef Signal< void (RenderTask& source) > RenderTaskSignalType;
/**
* @brief A pointer to a function for converting screen to frame-buffer coordinates.
+ * @SINCE_1_0.0
* @param[in,out] coordinates The screen coordinates to convert where (0,0) is the top-left of the screen.
* @return True if the conversion was successful, otherwise coordinates should be unmodified.
*/
/**
* @brief A pointer to a function for converting screen to frame-buffer coordinates.
+ * @SINCE_1_0.0
* @param[in,out] coordinates The screen coordinates to convert where (0,0) is the top-left of the screen.
* @return True if the conversion was successful, otherwise coordinates should be unmodified.
*/
/**
* @brief The refresh-rate of the RenderTask.
+ * @SINCE_1_0.0
*/
enum RefreshRate
{
- REFRESH_ONCE = 0, ///< Process once only e.g. take a snap-shot of the scene.
- REFRESH_ALWAYS = 1 ///< Process every frame.
+ REFRESH_ONCE = 0, ///< Process once only e.g. take a snap-shot of the scene. @SINCE_1_0.0
+ REFRESH_ALWAYS = 1 ///< Process every frame. @SINCE_1_0.0
};
static const bool DEFAULT_EXCLUSIVE; ///< false
* @brief Create an empty RenderTask handle.
*
* This can be initialised with RenderTaskList::CreateRenderTask().
+ * @SINCE_1_0.0
*/
RenderTask();
*
* If handle points to a RenderTask the
* downcast produces valid handle. If not the returned handle is left uninitialized.
+ * @SINCE_1_0.0
* @param[in] handle A handle to an object.
* @return A handle to a RenderTask or an uninitialized handle.
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~RenderTask();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
RenderTask(const RenderTask& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Set the actors to be rendered.
+ * @SINCE_1_0.0
* @param[in] actor This actor and its children will be rendered.
* If actor is an empty handle, then nothing will be rendered.
*/
/**
* @brief Retrieve the actors to be rendered.
+ * @SINCE_1_0.0
* @return This actor and its children will be rendered.
*/
Actor GetSourceActor() const;
/**
* @brief Set whether the RenderTask has exclusive access to the source actors; the default is false.
+ * @SINCE_1_0.0
* @param[in] exclusive True if the source actors will only be rendered by this render-task.
*/
void SetExclusive( bool exclusive );
/**
* @brief Query whether the RenderTask has exclusive access to the source actors.
+ * @SINCE_1_0.0
* @return True if the source actors will only be rendered by this render-task.
*/
bool IsExclusive() const;
* and has a valid source & camera actor.
* A RenderTask targetting a frame-buffer can still be hit-tested, provided that the screen->frame-buffer
* coordinate conversion is successful; see also SetScreenToFrameBufferFunction().
+ * @SINCE_1_0.0
* @param[in] enabled True if the render-task should be considered for input handling.
*/
void SetInputEnabled( bool enabled );
/**
* @brief Query whether the render-task should be considered for input handling.
+ * @SINCE_1_0.0
* @return True if the render-task should be considered for input handling.
*/
bool GetInputEnabled() const;
/**
* @brief Set the actor from which the scene is viewed.
+ * @SINCE_1_0.0
* @param[in] cameraActor The scene is viewed from the perspective of this actor.
*/
void SetCameraActor( CameraActor cameraActor );
/**
* @brief Retrieve the actor from which the scene is viewed.
+ * @SINCE_1_0.0
* @return The scene is viewed from the perspective of this actor.
*/
CameraActor GetCameraActor() const;
/**
* @brief Set the frame-buffer used as a render target.
+ * @SINCE_1_0.0
* @param[in] frameBuffer A valid frame-buffer handle to enable off-screen rendering, or an uninitialized handle to disable.
*/
void SetTargetFrameBuffer( FrameBufferImage frameBuffer );
/**
* @brief Retrieve the frame-buffer used as a render target.
+ * @SINCE_1_0.0
* @return A valid frame-buffer handle, or an uninitialised handle if off-screen rendering is disabled.
*/
FrameBufferImage GetTargetFrameBuffer() const;
* @brief Set the function used to convert screen coordinates to frame-buffer coordinates.
*
* This is useful for hit-testing actors which are rendered off-screen.
+ * @SINCE_1_0.0
* @param[in] conversionFunction The conversion function.
*/
void SetScreenToFrameBufferFunction( ScreenToFrameBufferFunction conversionFunction );
/**
* @brief Retrieve the function used to convert screen coordinates to frame-buffer coordinates.
+ * @SINCE_1_0.0
* @return The conversion function.
*/
ScreenToFrameBufferFunction GetScreenToFrameBufferFunction() const;
* The local coordinates of the actor are mapped as frame-buffer coordinates.
* This is useful for hit-testing actors which are rendered off-screen.
* Note: The mapping actor needs to be rendered by the default render task to make the mapping work properly.
+ * @SINCE_1_0.0
* @param[in] mappingActor The actor used for conversion.
*/
void SetScreenToFrameBufferMappingActor( Actor mappingActor );
/**
* @brief Retrieve the actor used to convert screen coordinates to frame-buffer coordinates.
+ * @SINCE_1_0.0
* @return The actor used for conversion.
*/
Actor GetScreenToFrameBufferMappingActor() const;
*
* This specifies the transformation between normalized device coordinates and target window (or frame-buffer) coordinates.
* By default this will match the target window or frame-buffer size.
- * @note Unlike the glViewport method, the x & y coordinates refer to the top-left of the viewport rectangle.
+ * @SINCE_1_0.0
* @param[in] position The viewports position (x,y)
+ * @note Unlike the glViewport method, the x & y coordinates refer to the top-left of the viewport rectangle.
*/
void SetViewportPosition( Vector2 position );
/**
* @brief Retrieve the GL viewport position used when rendering.
+ * @SINCE_1_0.0
* @return The viewport.
*/
Vector2 GetCurrentViewportPosition() const;
*
* This specifies the transformation between normalized device coordinates and target window (or frame-buffer) coordinates.
* By default this will match the target window or frame-buffer size.
+ * @SINCE_1_0.0
* @param[in] size The viewports size (width,height)
*/
void SetViewportSize( Vector2 size );
/**
* @brief Retrieve the GL viewport size used when rendering.
+ * @SINCE_1_0.0
* @return The viewport.
*/
Vector2 GetCurrentViewportSize() const;
*
* This specifies the transformation between normalized device coordinates and target window (or frame-buffer) coordinates.
* By default this will match the target window or frame-buffer size.
- * @note Unlike the glViewport method, the x & y coordinates refer to the top-left of the viewport rectangle.
+ * @SINCE_1_0.0
* @param[in] viewport The new viewport.
+ * @note Unlike the glViewport method, the x & y coordinates refer to the top-left of the viewport rectangle.
*/
void SetViewport( Viewport viewport );
/**
* @brief Retrieve the GL viewport used when rendering.
+ * @SINCE_1_0.0
* @return The viewport.
*/
Viewport GetViewport() const;
/**
* @brief Set the clear color used when SetClearEnabled(true) is used.
+ * @SINCE_1_0.0
* @param[in] color The new clear color.
*/
void SetClearColor( const Vector4& color );
/**
* @brief Retrieve the clear color used when SetClearEnabled(true) is used.
- * @note This property can be animated; the return value may not match the value written with SetClearColor().
+ * @SINCE_1_0.0
* @return The clear color.
+ * @note This property can be animated; the return value may not match the value written with SetClearColor().
*/
Vector4 GetClearColor() const;
*
* The default is false.
*
+ * @SINCE_1_0.0
+ * @param[in] enabled True if the render-task should clear.
* @note The default GL surface is cleared automatically at the
* beginning of each frame; this setting is only useful when 2+
* render-tasks are used, and the result of the first task needs to
* be (partially) cleared before rendering the second.
*
- * @param[in] enabled True if the render-task should clear.
*/
void SetClearEnabled( bool enabled );
/**
* @brief Query whether the render-task will clear the results of previous render-tasks.
+ * @SINCE_1_0.0
* @return True if the render-task should clear.
*/
bool GetClearEnabled() const;
*
* Note that this will only affect image actors that use the default vertex shader.
* The default mode is to cull actors.
+ * @SINCE_1_0.0
* @param[in] cullMode True if the renderers should be culled.
*/
void SetCullMode( bool cullMode );
/**
* @brief Get the cull mode.
*
+ * @SINCE_1_0.0
* @return True if the render task should cull the actors to the camera's view frustum
*/
bool GetCullMode() const;
* Repeatedly calling SetRefreshRate(REFRESH_ONCE) will cause more
* snap-shots to be taken.
*
+ * @SINCE_1_0.0
* @param[in] refreshRate The new refresh rate.
*/
void SetRefreshRate( unsigned int refreshRate );
/**
* @brief Query the refresh-rate of the RenderTask.
+ * @SINCE_1_0.0
* @return The refresh-rate.
*/
unsigned int GetRefreshRate() const;
/*
* @brief Get viewport coordinates for given world position
*
- * @since DALi 1.1.13
+ * @SINCE_1_1.13
*
* @param[in] position The world position.
* @param[out] viewportX The viewport x position.
/*
* @brief Get actor local coordinates for given viewport coordinates
*
- * @since DALi 1.1.13
+ * @SINCE_1_1.13
*
* @param[in] actor The actor describing local coordinate system.
* @param[in] viewportX The viewport x position.
/**
* @brief If the refresh rate is REFRESH_ONCE, connect to this signal to be notified when a RenderTask has finished.
+ * @SINCE_1_0.0
*/
RenderTaskSignalType& FinishedSignal();
/**
* @brief This constructor is used by Dali New() methods.
+ * @SINCE_1_0.0
* @param [in] renderTask A pointer to a newly allocated render-task
*/
explicit DALI_INTERNAL RenderTask( Internal::RenderTask* renderTask );
* vTexCoord = mix( uTextureRect.xy, uTextureRect.zw, aPosition + vec2(0.5) );
* }
* );
+ * @SINCE_1_0.0
*/
#define DALI_COMPOSE_SHADER(STR) #STR
* Note: In order for fade and color animations to work, the fragment shader needs to multiply the fragment color
* with the uniform color "uColor" of the node
* </B>
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ShaderEffect : public Handle
{
* +---+---+ +---+---+---+
* | | | |
* +---+---+---+
+ * @SINCE_1_0.0
*/
struct Property
{
enum
{
- GRID_DENSITY = DEFAULT_ACTOR_PROPERTY_START_INDEX, ///< name "gridDensity", type float
- IMAGE, ///< name "image", type Map {"filename":"", "loadPolicy":...}
- PROGRAM, ///< name "program", type Map {"vertexPrefix":"","fragmentPrefix":"","vertex":"","fragment":""}
- GEOMETRY_HINTS ///< name "geometryHints", type int (bitfield) values from enum GeometryHints
+ GRID_DENSITY = DEFAULT_ACTOR_PROPERTY_START_INDEX, ///< name "gridDensity", type float @SINCE_1_0.0
+ IMAGE, ///< name "image", type Map {"filename":"", "loadPolicy":...} @SINCE_1_0.0
+ PROGRAM, ///< name "program", type Map {"vertexPrefix":"","fragmentPrefix":"","vertex":"","fragment":""} @SINCE_1_0.0
+ GEOMETRY_HINTS ///< name "geometryHints", type int (bitfield) values from enum GeometryHints @SINCE_1_0.0
};
};
/**
* @brief Hints for rendering/subdividing geometry.
+ * @SINCE_1_0.0
*/
enum GeometryHints
{
- HINT_NONE = 0x00, ///< no hints
- HINT_GRID_X = 0x01, ///< Geometry must be subdivided in X
- HINT_GRID_Y = 0x02, ///< Geometry must be subdivided in Y
+ HINT_NONE = 0x00, ///< no hints @SINCE_1_0.0
+ HINT_GRID_X = 0x01, ///< Geometry must be subdivided in X @SINCE_1_0.0
+ HINT_GRID_Y = 0x02, ///< Geometry must be subdivided in Y @SINCE_1_0.0
HINT_GRID = (HINT_GRID_X | HINT_GRID_Y),
- HINT_DEPTH_BUFFER = 0x04, ///< Needs depth buffering turned on
- HINT_BLENDING = 0x08, ///< Notifies the actor to use blending even if it's fully opaque. Needs actor's blending set to BlendingMode::AUTO
- HINT_DOESNT_MODIFY_GEOMETRY = 0x10 ///< Notifies that the vertex shader will not change geometry (enables bounding box culling)
+ HINT_DEPTH_BUFFER = 0x04, ///< Needs depth buffering turned on @SINCE_1_0.0
+ HINT_BLENDING = 0x08, ///< Notifies the actor to use blending even if it's fully opaque. Needs actor's blending set to BlendingMode::AUTO @SINCE_1_0.0
+ HINT_DOESNT_MODIFY_GEOMETRY = 0x10 ///< Notifies that the vertex shader will not change geometry (enables bounding box culling) @SINCE_1_0.0
};
/**
* Use this coordinate type if your are doing a transformation in view space.
* The texture coordinate type converts a value in actor local space to texture coodinates.
* This is useful for pixel shaders and accounts for texture atlas.
+ * @SINCE_1_0.0
*/
enum UniformCoordinateType
{
- COORDINATE_TYPE_DEFAULT, ///< Default, No transformation to be applied
- COORDINATE_TYPE_VIEWPORT_POSITION, ///< @deprecated Dali 1.1.11 The uniform is a position vector in viewport coordinates that needs to be converted to GL view space coordinates.
- COORDINATE_TYPE_VIEWPORT_DIRECTION ///< @deprecated Dali 1.1.11 The uniform is a directional vector in viewport coordinates that needs to be converted to GL view space coordinates.
+ COORDINATE_TYPE_DEFAULT, ///< Default, No transformation to be applied @SINCE_1_0.0
+ COORDINATE_TYPE_VIEWPORT_POSITION, ///< @deprecated Dali 1.1.11 The uniform is a position vector in viewport coordinates that needs to be converted to GL view space coordinates. @SINCE_1_0.0
+ COORDINATE_TYPE_VIEWPORT_DIRECTION ///< @deprecated Dali 1.1.11 The uniform is a directional vector in viewport coordinates that needs to be converted to GL view space coordinates. @SINCE_1_0.0
};
/**
* @brief Create an empty ShaderEffect.
*
* This can be initialised with ShaderEffect::New(...)
+ * @SINCE_1_0.0
*/
ShaderEffect();
/**
* @brief Create ShaderEffect.
*
+ * @SINCE_1_0.0
* @param vertexShader code for the effect. If you pass in an empty string, the default version will be used
* @param fragmentShader code for the effect. If you pass in an empty string, the default version will be used
* @param hints GeometryHints to define the geometry of the rendered object
/**
* @brief Create ShaderEffect.
+ * @SINCE_1_0.0
* @param vertexShaderPrefix code for the effect. It will be inserted before the default uniforms (ideal for \#defines)
* @param vertexShader code for the effect. If you pass in an empty string, the default version will be used
* @param fragmentShaderPrefix code for the effect. It will be inserted before the default uniforms (ideal for \#defines)
* If handle points to a ShaderEffect 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 ShaderEffect object or an uninitialized handle
*/
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~ShaderEffect();
/**
* @brief Copy constructor
*
+ * @SINCE_1_0.0
* @param object A reference to a ShaderEffect object
*/
ShaderEffect(const ShaderEffect& object);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
* This image texture will be bound to the "sEffect" sampler
* so it can be used in fragment shader for effects
*
+ * @SINCE_1_0.0
* @param[in] image to use as effect texture
*/
void SetEffectImage( Image image );
* @brief Set a uniform value.
* This will register a property of type Property::FLOAT; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
float value,
*
* This will register a property of type Property::VECTOR2; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
Vector2 value,
*
* This will register a property of type Property::VECTOR3; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
Vector3 value,
*
* This will register a property of type Property::VECTOR4; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
Vector4 value,
*
* This will register a property of type Property::MATRIX; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
const Matrix& value,
*
* This will register a property of type Property::MATRIX3; see Object::RegisterProperty() for more details.
* If name matches a uniform in the shader source, this value will be uploaded when rendering.
- * @pre Either the property name is not in use, or a property exists with the correct name & type.
+ * @SINCE_1_0.0
* @param name The name of the uniform.
* @param value The value to to set.
* @param uniformCoordinateType The coordinate type of the uniform.
+ * @pre Either the property name is not in use, or a property exists with the correct name & type.
*/
void SetUniform( const std::string& name,
const Matrix3& value,
/**
* @brief This constructor is used by Dali New() methods.
+ * @SINCE_1_0.0
* @param [in] effect A pointer to a newly allocated Dali resource.
*/
explicit DALI_INTERNAL ShaderEffect(Internal::ShaderEffect* effect);
* Signals implement the Slot Observer interface, to be told when a slot has disconnected
* Connection tracker implements the Signal Observer interface, to be told when a signal has disconnected (died)
*
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API BaseSignal : public SlotObserver
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
BaseSignal();
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~BaseSignal();
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const;
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const;
/**
* @brief Used to guard against nested Emit() calls.
+ * @SINCE_1_0.0
*/
struct EmitGuard
{
/**
* @brief Create the guard.
*
+ * @SINCE_1_0.0
* @param[in,out] flag This flag will be set to true during Emit() calls.
*/
EmitGuard( bool& flag );
/**
* @brief Non-virtual destructor.
*
+ * @SINCE_1_0.0
*/
~EmitGuard();
/**
* @brief Determine if an error occured.
*
+ * @SINCE_1_0.0
* @return True if an error occurred i.e. if Emit() was called during Emit()
*/
bool ErrorOccurred();
/**
* @brief Emit a signal with no parameters.
*
+ * @SINCE_1_0.0
* @pre Cannot be called from inside the same Signal's Emit methods.
*/
void Emit();
/**
* @brief Emit a signal with no parameters.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @return The value returned by the last callback.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Ret >
Ret EmitReturn()
/**
* @brief Emit a signal with 1 parameter.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Arg0 >
void Emit( Arg0 arg0 )
/**
* @brief Emit a signal with 1 parameter.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
* @return The value returned by the last callback.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Ret, typename Arg0 >
Ret EmitReturn( Arg0 arg0 )
/**
* @brief Emit a signal with 2 parameters.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
* @param[in] arg1 The second parameter.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Arg0, typename Arg1 >
void Emit( Arg0 arg0, Arg1 arg1 )
/**
* @brief Emit a signal with 2 parameters.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
* @param[in] arg1 The second parameter.
* @return The value returned by the last callback.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Ret, typename Arg0, typename Arg1 >
Ret EmitReturn( Arg0 arg0, Arg1 arg1 )
/**
* @brief Emit a signal with 3 parameters.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
* @param[in] arg1 The second parameter.
* @param[in] arg2 The third parameter.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Arg0, typename Arg1, typename Arg2 >
void Emit( Arg0 arg0, Arg1 arg1, Arg2 arg2 )
/**
* @brief Emit a signal with 3 parameters.
*
- * @pre Cannot be called from inside the same Signal's Emit methods.
+ * @SINCE_1_0.0
* @param[in] arg0 The first parameter.
* @param[in] arg1 The second parameter.
* @param[in] arg2 The third parameter.
* @return The value returned by the last callback.
+ * @pre Cannot be called from inside the same Signal's Emit methods.
*/
template< typename Ret, typename Arg0, typename Arg1, typename Arg2 >
Ret EmitReturn( Arg0 arg0, Arg1 arg1, Arg2 arg2 )
/**
* @brief Called by Signal implementations, when the user calls Signal.Connect( ... )
*
+ * @SINCE_1_0.0
* @param[in] callback A newly allocated callback object (takes ownership).
*/
void OnConnect( CallbackBase* callback );
/**
* @brief Called by Signal implementations, when the user calls Signal.Disconnect( ... )
*
+ * @SINCE_1_0.0
* @param[in] callback A newly allocated callback object (takes ownership).
*/
void OnDisconnect( CallbackBase* callback );
/**
* @brief Called by Signal implementations, when the user calls Signal.Connect( ... )
*
+ * @SINCE_1_0.0
* @param[in] tracker The connection tracker.
* @param[in] callback A newly allocated callback object (takes ownership).
*/
/**
* @brief Called by Signal implementations, when the user calls Signal.Disconnect( ... )
*
+ * @SINCE_1_0.0
* @param[in] tracker The connection tracker.
* @param[in] callback A newly allocated callback object (takes ownership).
*/
/**
* @brief Returns a callback given an index in to the connection array.
*
+ * @SINCE_1_0.0
* @param[in] connectionIndex The index of the callback.
* @return The callback, or NULL if the connection has been deleted.
*/
/**
* @brief Helper to find whether a callback is connected.
*
+ * @SINCE_1_0.0
* @param[in] callback The call back object.
* @return A valid index if the callback is connected.
*/
/**
* @brief Deletes a connection object from the list of connections.
*
+ * @SINCE_1_0.0
* @param[in] connectionIndex The index of the callback.
*/
void DeleteConnection( std::size_t connectionIndex );
/**
* @brief Helper to remove NULL items from mSignalConnections, which is only safe at the end of Emit()
* i.e. not from methods which can be called during a signal Emit(), such as Disconnect().
+ * @SINCE_1_0.0
*/
void CleanupConnections();
- BaseSignal( const BaseSignal& ); ///< undefined copy constructor, signals don't support copying.
- BaseSignal& operator=( const BaseSignal& ); ///< undefined assignment operator
+ BaseSignal( const BaseSignal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ BaseSignal& operator=( const BaseSignal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief Callback base class to hold the data for callback function and member function calls.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API CallbackBase
{
/**
* @brief Default constructor
+ * @SINCE_1_0.0
*/
CallbackBase();
/**
* @brief Destructor
+ * @SINCE_1_0.0
*/
~CallbackBase();
/**
* @brief Resets the object pointer so that we know not to call methods of this object any more.
+ * @SINCE_1_0.0
*/
void Reset();
/**
* @brief Function to call the function or member function dispatcher
*
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
*/
static void Execute( CallbackBase& callback )
/**
* @brief Function to call the function or member function dispatcher.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @return value from the function
*/
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
*/
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
* @return the value from the function
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site.
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
* @param[in] param2 The second parameter to pass into the function.
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
* @param[in] param2 The second parameter to pass into the function.
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site.
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
* @param[in] param2 The second parameter to pass into the function.
* @brief Function to call the function or member function dispatcher.
*
* This function template gets instantiated at the call site
+ * @SINCE_1_0.0
* @param[in] callback The callback to call.
* @param[in] param1 The first parameter to pass into the function.
* @param[in] param2 The second parameter to pass into the function.
/**
* @brief Function with static linkage
+ * @SINCE_1_0.0
*/
typedef void(*Function)(void);
/**
* @brief Member function
+ * @SINCE_1_0.0
*/
typedef void (CallbackBase::*MemberFunction)( void );
/**
* @brief Used to call the correct member function
+ * @SINCE_1_0.0
*/
typedef void (*Dispatcher)( CallbackBase& base );
/**
* @brief Used to destroy mObjectPointer (NULL if not mObjectPointer is not owned)
+ * @SINCE_1_0.0
*/
typedef void(*Destructor)(void* object);
/**
* @brief Copy constructor operator not declared.
+ * @SINCE_1_0.0
*/
CallbackBase( const CallbackBase& rhs );
/**
* @brief assignment operator not declared.
+ * @SINCE_1_0.0
*/
const CallbackBase& operator=( const CallbackBase& rhs );
/**
* @brief Constructor for function with static linkage.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
*/
CallbackBase( Function function );
/**
* @brief Constructor for member function.
*
+ * @SINCE_1_0.0
* @param[in] object The object to call (not owned).
* @param[in] function The member function of the object.
* @param[in] dispatcher Used to call the actual object.
/**
* @brief Constructor for member function.
*
+ * @SINCE_1_0.0
* @param[in] object The object to call (owned).
* @param[in] function The member function of the object.
* @param dispatcher Used to call the actual object.
/**
* @brief struct to hold the extra data needed for member functions.
+ * @SINCE_1_0.0
*/
struct Impl
{
- Impl(); ///< Default constructor
+ Impl(); ///< Default constructor @SINCE_1_0.0
void* mObjectPointer; ///< Object whose member function will be called. Not owned if mDestructorDispatcher is NULL.
Dispatcher mMemberFunctionDispatcher; ///< Dispatcher for member functions
/**
* @brief Non-member equality operator
+ * @SINCE_1_0.0
*/
bool operator==( const CallbackBase& lhs, const CallbackBase& rhs );
/**
* @brief Dispatcher to delete an object.
+ * @SINCE_1_0.0
*/
template< class T >
struct Destroyer
{
/**
* @brief Dispatcher to delete an object.
+ * @SINCE_1_0.0
*/
static void Delete( void* object )
{
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T >
struct Dispatcher0
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
*/
static void Dispatch( CallbackBase& callback )
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename P1 >
struct Dispatcher1
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
*/
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2 >
struct Dispatcher2
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename P3 >
struct Dispatcher3
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename R >
struct DispatcherReturn0
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @return the value.
*/
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1 >
struct DispatcherReturn1
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @return The return value from the function
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2 >
struct DispatcherReturn2
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call the actual member function.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2, typename P3 >
struct DispatcherReturn3
/**
* @brief Call an actual member function.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T >
struct FunctorDispatcher0
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
*/
static void Dispatch( CallbackBase& callback )
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename P1 >
struct FunctorDispatcher1
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
*/
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2 >
struct FunctorDispatcher2
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename P3 >
struct FunctorDispatcher3
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename R >
struct FunctorDispatcherReturn0
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @return the value.
*/
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1 >
struct FunctorDispatcherReturn1
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @return The return value from the function
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2 >
struct FunctorDispatcherReturn2
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call a functor.
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2, typename P3 >
struct FunctorDispatcherReturn3
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
/**
* @brief Dispatcher to call a functor.
* This variant calls a specific void() member function.
+ * @SINCE_1_0.0
*/
template< class T >
struct VoidFunctorDispatcher0
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
*/
static void Dispatch( CallbackBase& callback )
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, ignoring any signal parameters
+ * @SINCE_1_0.0
*/
template< class T, typename P1 >
struct VoidFunctorDispatcher1
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
*/
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, ignoring any signal parameters
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2 >
struct VoidFunctorDispatcher2
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, ignoring any signal parameters
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename P3 >
struct VoidFunctorDispatcher3
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, and returns a default-constructed value
+ * @SINCE_1_0.0
*/
template< class T, typename R >
struct VoidFunctorDispatcherReturn0
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @return the value.
*/
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, and returns a default-constructed value
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1 >
struct VoidFunctorDispatcherReturn1
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @return The return value from the function
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, and returns a default-constructed value
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2 >
struct VoidFunctorDispatcherReturn2
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
* @brief Dispatcher to call a functor.
*
* This variant calls a void() member, and returns a default-constructed value
+ * @SINCE_1_0.0
*/
template< class T, typename R, typename P1, typename P2, typename P3 >
struct VoidFunctorDispatcherReturn3
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback information.
* @param[in] param1 The first parameter to pass to the real member function.
* @param[in] param2 The second parameter to pass to the real member function.
* @brief Thin template to provide type safety for member function callbacks.
*
* version with two parameters and return value
+ * @SINCE_1_0.0
*/
template< class T >
class Callback : public CallbackBase
/**
* @brief Default constructor.
*
+ * @SINCE_1_0.0
*/
Callback()
: CallbackBase()
* @brief Constructor for member function.
*
* Copies the function object.
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] memberFunction The member function of the object.
*/
/**
* @brief Specializations for static function callbacks.
+ * @SINCE_1_0.0
*/
class CallbackFunction : public CallbackBase
{
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
CallbackFunction()
: CallbackBase()
/**
* @brief Constructors for functions with static linkage.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
*/
CallbackFunction( void(*function)() )
/**
* @brief Specializations for function object callbacks.
+ * @SINCE_1_0.0
*/
template< class T >
class CallbackFunctor0 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctor0( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
class CallbackFunctorDelegate0 : public CallbackBase
{
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object A newly allocated object (ownership is transferred).
*/
CallbackFunctorDelegate0( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature.
+ * @SINCE_1_0.0
*/
template< class T, typename P1 >
class CallbackFunctor1 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctor1( const T& object )
/**
* @brief Function object callback for connecting void() methods.
+ * @SINCE_1_0.0
*/
template< typename P1 >
class CallbackFunctorDelegate1 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegate1( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2 >
class CallbackFunctor2 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctor2( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename P1, typename P2 >
class CallbackFunctorDelegate2 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegate2( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename P3 >
class CallbackFunctor3 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctor3( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename P1, typename P2, typename P3 >
class CallbackFunctorDelegate3 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegate3( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename R >
class CallbackFunctorReturn0 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorReturn0( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename R >
class CallbackFunctorDelegateReturn0 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegateReturn0( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename R >
class CallbackFunctorReturn1 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorReturn1( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename P1, typename R >
class CallbackFunctorDelegateReturn1 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegateReturn1( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename R >
class CallbackFunctorReturn2 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorReturn2( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename P1, typename P2, typename R >
class CallbackFunctorDelegateReturn2 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegateReturn2( FunctorDelegate* object )
/**
* @brief Function object callback for matching callbacks to signal signature
+ * @SINCE_1_0.0
*/
template< class T, typename P1, typename P2, typename P3, typename R >
class CallbackFunctorReturn3 : public CallbackBase
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorReturn3( const T& object )
/**
* @brief Function object callback for connecting void() methods
+ * @SINCE_1_0.0
*/
template< typename P1, typename P2, typename P3, typename R >
class CallbackFunctorDelegateReturn3 : public CallbackBase
* @brief Constructor which copies a function object.
*
* This variant calls a void() member, ignoring any signal parameters.
+ * @SINCE_1_0.0
* @param[in] object The object to copy.
*/
CallbackFunctorDelegateReturn3( FunctorDelegate* object )
/**
* @brief Creates a callback from a C function or static member function with no parameters.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with one parameter.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with no parameters and a return type.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with one parameter and a return type.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with two parameters.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with two parameters and a return type.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with three parameters.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
/**
* @brief Creates a callback from a C function or static member function with three parameters and a return type.
*
+ * @SINCE_1_0.0
* @param[in] function The function to call.
* @return a newly allocated Callback object, ownership transferred to caller
*/
* @brief Creates a callback from a class member function with no parameters.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with one parameter.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with two parameters.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with three parameters.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with no parameters and a return type.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with one parameter and a return type.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with two parameters and a return type.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class member function with three parameters and a return type.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class's parent member function with no parameters.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* @brief Creates a callback from a class's parent member function with no parameters.
*
* requires the function to be member of the same class
+ * @SINCE_1_0.0
* @param[in] object The object to call.
* @param[in] function The member function to call.
* @return a newly allocated Callback object, ownership transferred to caller
* When MyApp is destroyed, it automatically disconnects from Button.ClickSignal.
* It provides a signal observer interface, to observer when signals are destroyed
* e.g. if Button object is destroyed while it is still connected.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ConnectionTrackerInterface : public SignalObserver
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
ConnectionTrackerInterface();
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~ConnectionTrackerInterface();
/**
* @brief Called when a signal is connected.
*
+ * @SINCE_1_0.0
* @param[in] slotObserver The slot observer i.e. a signal. Ownership is not passed.
* @param[in] callback The call back. Ownership is not passed.
*/
private:
- ConnectionTrackerInterface( const ConnectionTrackerInterface& ); ///< undefined copy constructor
- ConnectionTrackerInterface& operator=( const ConnectionTrackerInterface& ); ///< undefined assignment operator
+ ConnectionTrackerInterface( const ConnectionTrackerInterface& ); ///< undefined copy constructor @SINCE_1_0.0
+ ConnectionTrackerInterface& operator=( const ConnectionTrackerInterface& ); ///< undefined assignment operator @SINCE_1_0.0
};
/**
/**
* @brief Connection tracker concrete implementation
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API ConnectionTracker : public ConnectionTrackerInterface
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
ConnectionTracker();
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~ConnectionTracker();
/**
* @brief Disconnect all signals from this object.
+ * @SINCE_1_0.0
*/
void DisconnectAll();
/**
* @brief returns the connection count
+ * @SINCE_1_0.0
* @return the connection count
*/
std::size_t GetConnectionCount() const;
private:
- ConnectionTracker( const ConnectionTracker& ); ///< undefined copy constructor
- ConnectionTracker& operator=( const ConnectionTracker& ); ///< undefined assignment operator
+ ConnectionTracker( const ConnectionTracker& ); ///< undefined copy constructor @SINCE_1_0.0
+ ConnectionTracker& operator=( const ConnectionTracker& ); ///< undefined assignment operator @SINCE_1_0.0
private:
*/
/**
- * The class should implement Dali::ConnectionTrackerInterface, or inherit from Dali::ConnectionTracker.
+ * @brief The class should implement Dali::ConnectionTrackerInterface, or inherit from Dali::ConnectionTracker.
* This enforces automatic disconnection when an object is destroyed, so you don't have
* to manually disconnect from signals.
*
* }
* }
* @endcode
+ * @SINCE_1_0.0
*/
// INTERNAL INCLUDES
* ...
* };
* @endcode
+ * @SINCE_1_0.0
*/
template< typename _Signature >
class Signal
/**
* @brief A template for Signals with no parameters or return value.
+ * @SINCE_1_0.0
*/
template <>
class Signal< void () >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( void (*func)() )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( void (*func)() )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
+ * @SINCE_1_0.0
*/
void Emit()
{
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with no parameters and a return value.
+ * @SINCE_1_0.0
*/
template < typename Ret >
class Signal< Ret() >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( Ret (*func)() )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( Ret (*func)() )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @return The value returned by the last callback, or a default constructed value if no callbacks are connected.
*/
Ret Emit()
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 1 parameter.
+ * @SINCE_1_0.0
*/
template < typename Arg0 >
class Signal< void ( Arg0 ) >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( void (*func)( Arg0 arg0 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( void (*func)( Arg0 arg0 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
*/
void Emit( Arg0 arg0 )
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 1 parameter and a return value.
+ * @SINCE_1_0.0
*/
template < typename Ret, typename Arg0 >
class Signal< Ret( Arg0 ) >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( Ret (*func)( Arg0 arg0 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( Ret (*func)( Arg0 arg0 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
* @return The value returned by the last callback, or a default constructed value if no callbacks are connected.
*/
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 2 parameters.
*
+ * @SINCE_1_0.0
*/
template < typename Arg0, typename Arg1 >
class Signal< void ( Arg0, Arg1 ) >
/**
* @brief Default constructor.
*
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
*
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( void (*func)( Arg0 arg0, Arg1 arg1 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( void (*func)( Arg0 arg0, Arg1 arg1 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
* @param[in] arg1 The second value to pass to callbacks.
*/
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 2 parameters and a return value.
+ * @SINCE_1_0.0
*/
template < typename Ret, typename Arg0, typename Arg1 >
class Signal< Ret( Arg0, Arg1 ) >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
}
/**
* @brief Connect a function.
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( Ret (*func)( Arg0 arg0, Arg1 arg1 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( Ret (*func)( Arg0 arg0, Arg1 arg1 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
* @param[in] arg1 The second value to pass to callbacks.
* @return The value returned by the last callback, or a default constructed value if no callbacks are connected.
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 3 parameters.
+ * @SINCE_1_0.0
*/
template < typename Arg0, typename Arg1, typename Arg2 >
class Signal< void ( Arg0, Arg1, Arg2 ) >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( void (*func)( Arg0 arg0, Arg1 arg1, Arg2 arg2 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( void (*func)( Arg0 arg0, Arg1 arg1, Arg2 arg2 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
* @param[in] arg1 The second value to pass to callbacks.
* @param[in] arg2 The third value to pass to callbacks.
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief A template for Signals with 2 parameters and a return value.
+ * @SINCE_1_0.0
*/
template < typename Ret, typename Arg0, typename Arg1, typename Arg2 >
class Signal< Ret( Arg0, Arg1, Arg2 ) >
/**
* @brief Default constructor.
+ * @SINCE_1_0.0
*/
Signal()
{
/**
* @brief Non-virtual destructor.
+ * @SINCE_1_0.0
*/
~Signal()
{
/**
* @brief Query whether there are any connected slots.
*
+ * @SINCE_1_0.0
* @return True if there are any slots connected to the signal.
*/
bool Empty() const
/**
* @brief Query the number of slots.
*
+ * @SINCE_1_0.0
* @return The number of slots connected to this signal.
*/
std::size_t GetConnectionCount() const
/**
* @brief Connect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to connect.
*/
void Connect( Ret (*func)( Arg0 arg0, Arg1 arg1, Arg2 arg2 ) )
/**
* @brief Disconnect a function.
*
+ * @SINCE_1_0.0
* @param[in] func The function to disconnect.
*/
void Disconnect( Ret (*func)( Arg0 arg0, Arg1 arg1, Arg2 arg2 ) )
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] obj An object which must implement the ConnectionTrackerInterface.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to connect.
*/
/**
* @brief Disconnect a member function.
*
+ * @SINCE_1_0.0
* @param[in] delegate A slot delegate.
* @param[in] func The member function to disconnect.
*/
/**
* @brief Connect a function object.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] func The function object to copy.
*/
/**
* @brief Connect a function object using FunctorDelegate.
*
+ * @SINCE_1_0.0
* @param[in] connectionTracker A connection tracker which can be used to disconnect.
* @param[in] delegate A newly allocated FunctorDelegate (ownership is taken).
*/
/**
* @brief Emit the signal.
*
+ * @SINCE_1_0.0
* @param[in] arg0 The first value to pass to callbacks.
* @param[in] arg1 The second value to pass to callbacks.
* @param[in] arg2 The third value to pass to callbacks.
private:
- Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying.
- Signal& operator=( const Signal& ); ///< undefined assignment operator
+ Signal( const Signal& ); ///< undefined copy constructor, signals don't support copying. @SINCE_1_0.0
+ Signal& operator=( const Signal& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief Dispatcher to call a functor
+ * @SINCE_1_0.0
*/
template< typename T >
struct FunctorDispatcher
/**
* @brief Call a function object.
*
+ * @SINCE_1_0.0
* @param[in] functorPtr The functor to call.
*/
static void Dispatch( void* functorPtr )
/**
* @brief Dispatcher to delete a functor object
+ * @SINCE_1_0.0
*/
template< typename T >
struct FunctorDestroyer
{
/**
* @brief Dispatcher to delete an object
+ * @SINCE_1_0.0
*/
static void Delete( void* functorPtr )
{
/**
* @brief Used to connect a void() functor to a signal via BaseObject::SignalConnect()
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API FunctorDelegate
{
/**
* @brief Constructor which copies a function object.
*
+ * @SINCE_1_0.0
* @param[in] functor The functor object to copy, either a class with operator() or a C function
* @return A pointer to the new function object
*/
/**
* @brief Non-virtual destructor; not intended as a base class.
+ * @SINCE_1_0.0
*/
~FunctorDelegate();
/**
* @brief Function to call the function or member function dispatcher
+ * @SINCE_1_0.0
*/
void Execute();
/**
* @brief Used to call the correct function.
+ * @SINCE_1_0.0
*/
typedef void (*Dispatcher)( void* objectPtr );
/**
* @brief Used to destroy mObjectPointer.
+ * @SINCE_1_0.0
*/
typedef void(*Destructor)( void* objectPtr );
/**
* @brief Not defined
+ * @SINCE_1_0.0
*/
FunctorDelegate( const FunctorDelegate& rhs );
/**
* @brief Not defined
+ * @SINCE_1_0.0
*/
const FunctorDelegate& operator=( const FunctorDelegate& rhs );
/**
* @brief Private constructor.
*
+ * @SINCE_1_0.0
* @param[in] functorPtr A newly allocated functor object (takes ownership)
* @param dispatcher Used to call the actual function.
* @param destructor Used to delete the owned functor object.
* - SlotObserver -interface provided by the signal
*
* It holds a pointer to the callback, but does not own it.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API SlotConnection
{
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] slotObserver The slot observer.
* @param[in] callback A callback object (not owned).
*/
/**
* @brief Non-virtual destructor, not intended as a base class.
+ * @SINCE_1_0.0
*/
~SlotConnection();
/**
* @brief Retrieve the callback.
*
+ * @SINCE_1_0.0
* @return A pointer to the callback.
*/
CallbackBase* GetCallback();
/**
* @brief Retrieve the slot observer.
*
+ * @SINCE_1_0.0
* @return A pointer to the slot observer.
*/
SlotObserver* GetSlotObserver();
private:
- SlotConnection( const SlotConnection& ); ///< undefined copy constructor
- SlotConnection& operator=( const SlotConnection& ); ///< undefined assignment operator
+ SlotConnection( const SlotConnection& ); ///< undefined copy constructor @SINCE_1_0.0
+ SlotConnection& operator=( const SlotConnection& ); ///< undefined assignment operator @SINCE_1_0.0
private:
*
* It takes ownership of the callback, and will delete it when
* the connection is destroyed.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API SignalConnection
{
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback which should be a C function.
*/
SignalConnection( CallbackBase* callback );
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] signalObserver The signal observer.
* @param[in] callback Ownership of this callback object is taken.
*/
/**
* @brief Non-virtual destructor, not intended as a base class.
+ * @SINCE_1_0.0
*/
~SignalConnection();
/**
* @brief Disconnect the signal from the slot.
*
+ * @SINCE_1_0.0
* @param[in] slotObserver The signal disconnecting from the slot.
*/
void Disconnect( SlotObserver* slotObserver );
/**
* @brief Retrieve the callback.
*
+ * @SINCE_1_0.0
* @return A pointer to the callback.
*/
CallbackBase* GetCallback();
private:
- SignalConnection( const SignalConnection& ); ///< undefined copy constructor
- SignalConnection& operator=( const SignalConnection& ); ///< undefined assignment operator
+ SignalConnection( const SignalConnection& ); ///< undefined copy constructor @SINCE_1_0.0
+ SignalConnection& operator=( const SignalConnection& ); ///< undefined assignment operator @SINCE_1_0.0
private:
* @brief Abstract interface used by a signal to inform a slot it is disconnecting.
*
* This will happen if the object owning the signal is destroyed.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API SignalObserver
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
SignalObserver();
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~SignalObserver();
/**
* @brief This method is called when the signal is disconnecting.
*
+ * @SINCE_1_0.0
* @param[in] slotObserver The signal that has disconnected.
* @param[in] callback The callback attached to the signal disconnected.
*/
* @brief Abstract Interface used by a slot to inform a signal it is disconnecting.
*
* This is used by the slot if wants to disconnect or is deleted.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API SlotObserver
{
/**
* @brief Constructor.
+ * @SINCE_1_0.0
*/
SlotObserver();
/**
* @brief Virtual destructor.
+ * @SINCE_1_0.0
*/
virtual ~SlotObserver();
/**
* @brief This method is called when the slot is disconnecting.
*
+ * @SINCE_1_0.0
* @param[in] callback The callback attached to the signal disconnected.
*/
virtual void SlotDisconnected( CallbackBase* callback ) = 0;
* };
*
* @endcode
+ * @SINCE_1_0.0
*/
template <typename Slot>
class SlotDelegate
/**
* @brief Constructor.
*
+ * @SINCE_1_0.0
* @param[in] slot The object with a callback.
*/
SlotDelegate( Slot* slot )
/**
* @brief Non-virtual destructor.
*
+ * @SINCE_1_0.0
*/
~SlotDelegate()
{
/**
* @brief Disconnect all signals from this object.
*
+ * @SINCE_1_0.0
*/
void DisconnectAll()
{
/**
* @brief Retrieve the slot object.
*
+ * @SINCE_1_0.0
* @return The object with a callback.
*/
Slot* GetSlot()
/**
* @brief Retrieve the connection tracker component.
*
+ * @SINCE_1_0.0
* @return The connection tracker component.
*/
ConnectionTracker* GetConnectionTracker()
private:
- SlotDelegate( const SlotDelegate& ); ///< undefined copy constructor
- SlotDelegate& operator=( const SlotDelegate& ); ///< undefined assignment operator
+ SlotDelegate( const SlotDelegate& ); ///< undefined copy constructor @SINCE_1_0.0
+ SlotDelegate& operator=( const SlotDelegate& ); ///< undefined assignment operator @SINCE_1_0.0
private:
/**
* @brief Interface to encapsulate information required for relayout
+ * @SINCE_1_0.0
*/
class RelayoutContainer
{
/**
* @brief Default constructor
*
+ * @SINCE_1_0.0
*/
RelayoutContainer() {}
/**
* @brief Virtual destructor
+ * @SINCE_1_0.0
*/
virtual ~RelayoutContainer() {}
/**
* @brief Add relayout information to the container if it does'nt already exist
*
+ * @SINCE_1_0.0
* @param actor The actor to relayout
* @param size The size to relayout
*/