X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Flayouting%2Flayout-controller-impl.h;h=8f78c32da2cd47c207d7f2b72fc0c91dedc02d0f;hb=c440dd0d4d403b2b31a426a472810e2f94c80f25;hp=1c3130de04d87c610f54c87c49d91361225106d3;hpb=259338bf01cb1d62350be74f4bcc3f43e40bcedb;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/layouting/layout-controller-impl.h b/dali-toolkit/internal/layouting/layout-controller-impl.h index 1c3130d..8f78c32 100644 --- a/dali-toolkit/internal/layouting/layout-controller-impl.h +++ b/dali-toolkit/internal/layouting/layout-controller-impl.h @@ -57,7 +57,7 @@ public: /** * This marks the given layout and all its parents as dirty and triggers a transition if set. */ - void RequestLayout( LayoutItem& layout, int layoutTransitionType ); + void RequestLayout( LayoutItem& layout, int layoutTransitionType, Actor gainedChild, Actor lostChild ); /** * Measures next level of layouts in the actor hierarchy. @@ -79,6 +79,11 @@ public: */ void PerformLayoutAnimation( LayoutTransition& layoutTransition, LayoutPositionDataArray& layoutPositionDataArray, LayoutDataArray& layoutDataArray, LayoutAnimatorArray& layoutAnimatorArray ); + /** + * Focus change callback. + */ + void KeyInputFocusChangedCallback( Control gainingActor, Control lostActor ); + protected: // Implementation of Processor /** @@ -87,6 +92,27 @@ protected: // Implementation of Processor virtual void Process(); private: + struct ActorSizeSpec + { + ActorSizeSpec(Actor actor) + : actor( actor ) + , widthSpec( actor.GetProperty( Toolkit::LayoutItem::ChildProperty::WIDTH_SPECIFICATION ) ) + , heightSpec( actor.GetProperty( Toolkit::LayoutItem::ChildProperty::HEIGHT_SPECIFICATION ) ) + { + } + + WeakHandle actor; + int widthSpec; + int heightSpec; + }; + std::vector mActorSizeSpecs; + + void UpdateMeasureHierarchyForAnimation( LayoutData& layoutData ); + + void UpdateMeasureHierarchyForAnimation( Actor root, LayoutData& layoutData ); + + void RestoreActorsSpecs(); + std::list< LayoutTransition > mLayoutTransitions; struct AnimationFinishedFunctor { @@ -103,7 +129,7 @@ private: { layoutController.PerformLayoutPositioning( layoutDataPositionArray, true ); layoutController.mAnimationFinishedFunctors.pop_front(); - if (layoutTransitionType != -1) + if( layoutTransitionType != -1 ) { LayoutTransitionDataPtr layoutTransitionDataPtr = layoutItem->GetTransitionData( layoutTransitionType ); layoutTransitionDataPtr->EmitSignalFinish( layoutTransitionType ); @@ -120,6 +146,18 @@ private: Animation mAnimation; std::list< AnimationFinishedFunctor > mAnimationFinishedFunctors; + struct FocusChangedFunctor + { + FocusChangedFunctor( LayoutController& layoutController ) + : layoutController( layoutController ) + { + } + + void operator() ( Dali::Toolkit::Control gainingControl, Dali::Toolkit::Control lostActor ); + LayoutController& layoutController; + }; + FocusChangedFunctor mFocusChangedFunctor; + SlotDelegate mSlotDelegate; };