X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Flayouting%2Flayout-item-impl.h;h=19b61d55d19c331a77a9e33bd42eaa3935829cb7;hp=3850e5f6dabb4c668236dafcb28917bff20f0b1b;hb=4fcbbea5dc1fb7667607f663f04e898f0e4086ae;hpb=66581ed768a430adc3e6a630948c28bfe6c32aa4 diff --git a/dali-toolkit/devel-api/layouting/layout-item-impl.h b/dali-toolkit/devel-api/layouting/layout-item-impl.h index 3850e5f..19b61d5 100644 --- a/dali-toolkit/devel-api/layouting/layout-item-impl.h +++ b/dali-toolkit/devel-api/layouting/layout-item-impl.h @@ -20,8 +20,10 @@ #include #include +#include #include #include +#include #include #include #include @@ -37,9 +39,13 @@ namespace Toolkit namespace Internal { +struct LayoutData; + class LayoutItem; using LayoutItemPtr = IntrusivePtr; +class LayoutTransitionData; +using LayoutTransitionDataPtr = IntrusivePtr; /** * Base class for layouts. @@ -114,6 +120,28 @@ public: bool IsLayoutAnimated() const; /** + * @brief Get the default transition + * + * @return The default transition + */ + LayoutTransitionDataPtr GetDefaultTransition(); + + /** + * @brief Set the layout transition data + * @param[in] layoutTransitionType The type of the transition + * @param[in] layoutTransitionDataPtr The transition data pointer + */ + void SetTransitionData( int layoutTransitionType, LayoutTransitionDataPtr layoutTransitionDataPtr ); + + /** + * @brief Get the transition data + * @param[in] layoutTransitionType The type of the transition + * + * @return The transition + */ + LayoutTransitionDataPtr GetTransitionData( int layoutTransitionType ) const; + + /** * @brief This is called to find out how big a layout should be. * * The parent supplies constraint information in the width and height parameters. @@ -176,6 +204,14 @@ public: void RequestLayout(); /** + * @brief Request that this layout is re-laid out with particular transition. + * @param[in] layoutTranstionType The transition type + * + * This will make this layout and all it's parent layouts dirty and set the transition queued. + */ + void RequestLayout( Dali::Toolkit::LayoutTransitionData::LayoutTransitionType layoutTranstionType ); + + /** * @brief Predicate to determine if this layout has been requested to re-layout * * @return True if a layout request has occured on this layout @@ -408,10 +444,9 @@ protected: MeasuredSize::State childMeasuredState ); /** - * @brief Sets the frame (the size and position) of the layout onto it's owner + * @brief Sets the frame (the size and position) of the layout onto it's owner. + * Collect all properties to animate after the layout update. * - * @todo Consider instead, collating properties into LayoutCollector in order to set/animate them all - * in one block. * @param[in] left The horizontal position of the left edge of this frame within the parent layout * @param[in] top The vertical position of the top edge of this frame within the parent layout * @param[in] right The horizontal position of the right edge of this frame within the parent layout @@ -466,7 +501,6 @@ private: public: class Impl; // Class declaration is public so we can add devel API's in the future - private: std::unique_ptr mImpl; ///< Implementation class holds all the data SlotDelegate mSlotDelegate;