X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Factors%2Factor-impl.h;h=69c14bcd9a54264c711d778844fdd229228df731;hb=0643c768fd100bd7ffb522e3358b88d075bc1d2e;hp=feef5407349120100559626b8a53c109aacc20fa;hpb=d413b2f6e70764c7f4620cf9bdb26419ff44d6ee;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/actors/actor-impl.h b/dali/internal/event/actors/actor-impl.h index feef540..69c14bc 100644 --- a/dali/internal/event/actors/actor-impl.h +++ b/dali/internal/event/actors/actor-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_ACTOR_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1419,6 +1419,24 @@ public: void EmitVisibilityChangedSignal( bool visible, DevelActor::VisibilityChange::Type type ); /** + * @brief Emits the layout direction change signal for this actor and all its children. + * @param[in] type Whether the actor's layout direction property has changed or a parent's. + */ + void EmitLayoutDirectionChangedSignal( LayoutDirection::Type type ); + + /** + * @brief Emits the ChildAdded signal for this actor + * @param[in] child The child actor that has been added + */ + void EmitChildAddedSignal( Actor& child ); + + /** + * @brief Emits the ChildRemoved signal for this actor + * @param[in] child The child actor that has been removed + */ + void EmitChildRemovedSignal( Actor& child ); + + /** * @copydoc Dali::Actor::TouchedSignal() */ Dali::Actor::TouchSignalType& TouchedSignal(); @@ -1459,6 +1477,26 @@ public: DevelActor::VisibilityChangedSignalType& VisibilityChangedSignal(); /** + * @copydoc LayoutDirectionChangedSignal + */ + Dali::Actor::LayoutDirectionChangedSignalType& LayoutDirectionChangedSignal(); + + /** + * @copydoc DevelActor::ChildAddedSignal + */ + DevelActor::ChildChangedSignalType& ChildAddedSignal(); + + /** + * @copydoc DevelActor::ChildRemovedSignal + */ + DevelActor::ChildChangedSignalType& ChildRemovedSignal(); + + /** + * @copydoc DevelActor::ChildOrderChangedSignal + */ + DevelActor::ChildOrderChangedSignalType& ChildOrderChangedSignal(); + + /** * Connects a callback function with the object's signals. * @param[in] object The object providing the signal. * @param[in] tracker Used to disconnect the signal. @@ -1579,7 +1617,6 @@ public: void RebuildDepthTree(); protected: - /** * Traverse the actor tree, inserting actors into the depth tree in sibling order. * @param[in] sceneGraphNodeDepths A vector capturing the nodes and their depth index @@ -1722,11 +1759,9 @@ private: }; }; - // Undefined - Actor(); - - // Undefined - Actor( const Actor& ); + // Remove default constructor and copy constructor + Actor()=delete; + Actor( const Actor& )=delete; // Undefined Actor& operator=( const Actor& rhs ); @@ -1910,11 +1945,23 @@ private: void SetVisibleInternal( bool visible, SendMessage::Type sendMessage ); /** + * Set whether a child actor inherits it's parent's layout direction. Default is to inherit. + * @param[in] inherit - true if the actor should inherit layout direction, false otherwise. + */ + void SetInheritLayoutDirection( bool inherit ); + + /** + * Returns whether the actor inherits it's parent's layout direction. + * @return true if the actor inherits it's parent's layout direction, false otherwise. + */ + bool IsLayoutDirectionInherited() const; + + /** * @brief Propagates layout direction recursively. * @param[in] actor The actor for seting layout direction. * @param[in] direction New layout direction. */ - void InheritLayoutDirectionRecursively( ActorPtr actor, Dali::DevelActor::LayoutDirection::Type direction ); + void InheritLayoutDirectionRecursively( ActorPtr actor, Dali::LayoutDirection::Type direction, bool set = false ); protected: @@ -1940,6 +1987,10 @@ protected: Dali::Actor::OffStageSignalType mOffStageSignal; Dali::Actor::OnRelayoutSignalType mOnRelayoutSignal; DevelActor::VisibilityChangedSignalType mVisibilityChangedSignal; + Dali::Actor::LayoutDirectionChangedSignalType mLayoutDirectionChangedSignal; + DevelActor::ChildChangedSignalType mChildAddedSignal; + DevelActor::ChildChangedSignalType mChildRemovedSignal; + DevelActor::ChildOrderChangedSignalType mChildOrderChangedSignal; Quaternion mTargetOrientation; ///< Event-side storage for orientation Vector4 mTargetColor; ///< Event-side storage for color @@ -1970,8 +2021,8 @@ protected: bool mInheritScale : 1; ///< Cached: Whether the parent's scale should be inherited. bool mPositionUsesAnchorPoint : 1; ///< Cached: Whether the position uses the anchor point or not. bool mVisible : 1; ///< Cached: Whether the actor is visible or not. - bool mLayoutDirectionInheritance : 1; ///< Whether the actor inherits the layout direction from parent. - DevelActor::LayoutDirection::Type mLayoutDirection : 1; ///< Layout direction, Left to Right or Right to Left. + bool mInheritLayoutDirection : 1; ///< Whether the actor inherits the layout direction from parent. + LayoutDirection::Type mLayoutDirection : 1; ///< Layout direction, Left to Right or Right to Left. DrawMode::Type mDrawMode : 2; ///< Cached: How the actor and its children should be drawn PositionInheritanceMode mPositionInheritanceMode : 2; ///< Cached: Determines how position is inherited ColorMode mColorMode : 2; ///< Cached: Determines whether mWorldColor is inherited