#define DALI_TOOLKIT_INTERNAL_LAYOUT_CONTROLLER_H
/*
- * Copyright (c) 2018 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.
*/
#include <list>
#include <dali/public-api/object/base-object.h>
-#include <dali/integration-api/core.h>
+#include <dali/integration-api/processor-interface.h>
#include <dali-toolkit/public-api/controls/control.h>
#include <dali-toolkit/devel-api/layouting/layout-controller.h>
#include <dali-toolkit/devel-api/layouting/layout-item-impl.h>
virtual void Process();
private:
+ struct ActorSizeSpec
+ {
+ ActorSizeSpec(Actor actor)
+ : actor( actor )
+ , widthSpec( actor.GetProperty<int>( Toolkit::LayoutItem::ChildProperty::WIDTH_SPECIFICATION ) )
+ , heightSpec( actor.GetProperty<int>( Toolkit::LayoutItem::ChildProperty::HEIGHT_SPECIFICATION ) )
+ {
+ }
+
+ WeakHandle<Actor> actor;
+ int widthSpec;
+ int heightSpec;
+ };
+ std::vector<ActorSizeSpec> mActorSizeSpecs;
+
+ void UpdateMeasureHierarchyForAnimation( LayoutData& layoutData );
+
+ void UpdateMeasureHierarchyForAnimation( Actor root, LayoutData& layoutData );
+
+ void RestoreActorsSpecs();
+
std::list< LayoutTransition > mLayoutTransitions;
struct AnimationFinishedFunctor
{
{
layoutController.PerformLayoutPositioning( layoutDataPositionArray, true );
layoutController.mAnimationFinishedFunctors.pop_front();
- if (layoutTransitionType != -1)
+ if( layoutTransitionType != -1 )
{
LayoutTransitionDataPtr layoutTransitionDataPtr = layoutItem->GetTransitionData( layoutTransitionType );
layoutTransitionDataPtr->EmitSignalFinish( layoutTransitionType );