#define DALI_ACTOR_DEVEL_H
/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
INHERIT_ORIENTATION = Dali::Actor::Property::INHERIT_ORIENTATION,
INHERIT_SCALE = Dali::Actor::Property::INHERIT_SCALE,
COLOR_MODE = Dali::Actor::Property::COLOR_MODE,
- POSITION_INHERITANCE = Dali::Actor::Property::POSITION_INHERITANCE,
+ RESERVED_PROPERTY_01 = Dali::Actor::Property::RESERVED_PROPERTY_01,
DRAW_MODE = Dali::Actor::Property::DRAW_MODE,
SIZE_MODE_FACTOR = Dali::Actor::Property::SIZE_MODE_FACTOR,
WIDTH_RESIZE_POLICY = Dali::Actor::Property::WIDTH_RESIZE_POLICY,
* @brief Returns the screen position of the Actor
* @details Name "screenPosition", type Property::VECTOR2. Read-only
* @note This assumes default camera and default render-task and the Z position is ZERO.
+ * @note The last known frame is used for the calculation. May not match a position value just set.
*/
SCREEN_POSITION = INHERIT_LAYOUT_DIRECTION + 3,
* @note Setting this to false will allow scaling or rotation around the anchor-point without affecting the actor's position.
*/
POSITION_USES_ANCHOR_POINT = INHERIT_LAYOUT_DIRECTION + 4,
+
+ /**
+ * @brief Returns whether the actor is culled or not.
+ * @details Name "culled", type Property::BOOLEAN. Read-only
+ * @note True means that the actor is out of the view frustum.
+ */
+ CULLED = INHERIT_LAYOUT_DIRECTION + 5,
};
} // namespace Property
* @pre The Actor has been initialized.
* @note This signal is NOT emitted if the actor becomes transparent (or the reverse), it's only linked with Actor::Property::VISIBLE.
*/
-DALI_IMPORT_API VisibilityChangedSignalType& VisibilityChangedSignal( Actor actor );
+DALI_CORE_API VisibilityChangedSignalType& VisibilityChangedSignal( Actor actor );
+
+
+typedef Signal< void (Actor) > ChildChangedSignalType; ///< Called when the actor has a child added or removed
+
+/**
+ * @brief This signal is emitted when a child is added to this actor.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void MyCallbackName( Actor child );
+ * @endcode
+ * child: The child that has been added.
+ *
+ * @note Use this signal with caution. Changing the parent of the actor
+ * within this callback is possible, but DALi will prevent further signals
+ * being sent.
+ *
+ * @return The signal to connect to
+ * @pre The Actor has been initialized
+ */
+DALI_CORE_API ChildChangedSignalType& ChildAddedSignal( Actor actor );
+
+/**
+ * @brief This signal is emitted when a child is removed from this actor.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void MyCallbackName( Actor child );
+ * @endcode
+ * child: The child that has been removed.
+ *
+ * @note Use this signal with caution. Changing the parent of the actor
+ * within this callback is possible, but DALi will prevent further signals
+ * being sent.
+ *
+ * @note If the child actor is moved from one actor to another, then
+ * this signal will be emitted followed immediately by an
+ * ChildAddedSignal() on the new parent.
+ *
+ * @return The signal to connect to
+ * @pre The Actor has been initialized
+ */
+DALI_CORE_API ChildChangedSignalType& ChildRemovedSignal( Actor actor );
+
+
+typedef Signal< void (Actor) > ChildOrderChangedSignalType; ///< Used when the actor's children have changed order
+
+/**
+ * @brief This signal is emitted when an actor's children change their sibling order
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void MyCallbackName( Actor parent );
+ * @endcode
+ * parent The parent actor of the moved children
+ *
+ * @return The signal to connect to
+ * @pre The Actor has been initialized
+ */
+DALI_CORE_API ChildOrderChangedSignalType& ChildOrderChangedSignal( Actor actor );
+
+
} // namespace DevelActor