projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Size negotiation patch 2: Re-enable size negotiation on builder actors.
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
controls
/
alignment
/
alignment-impl.cpp
diff --git
a/dali-toolkit/internal/controls/alignment/alignment-impl.cpp
b/dali-toolkit/internal/controls/alignment/alignment-impl.cpp
index
97b6f64
..
9713587
100644
(file)
--- a/
dali-toolkit/internal/controls/alignment/alignment-impl.cpp
+++ b/
dali-toolkit/internal/controls/alignment/alignment-impl.cpp
@@
-16,13
+16,13
@@
*/
// CLASS HEADER
*/
// CLASS HEADER
-
#include "alignment-impl.h"
// EXTERNAL INCLUDES
#include "alignment-impl.h"
// EXTERNAL INCLUDES
+#include <dali/public-api/object/property-input.h>
#include <dali/public-api/object/type-registry.h>
#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
+#include <dali/public-api/object/type-registry-helper.h>
+#include <dali/public-api/size-negotiation/relayout-container.h>
namespace Dali
{
namespace Dali
{
@@
-42,7
+42,8
@@
BaseHandle Create()
return Toolkit::Alignment::New();
}
return Toolkit::Alignment::New();
}
-TypeRegistration mType( typeid(Toolkit::Alignment), typeid(Toolkit::Control), Create );
+DALI_TYPE_REGISTRATION_BEGIN( Toolkit::Alignment, Toolkit::Control, Create )
+DALI_TYPE_REGISTRATION_END()
struct ScaleToFillConstraint
{
struct ScaleToFillConstraint
{
@@
-450,7
+451,7
@@
const Toolkit::Alignment::Padding& Alignment::GetPadding() const
return mPadding;
}
return mPadding;
}
-void Alignment::OnRelayout( const Vector2& size,
ActorSize
Container& container )
+void Alignment::OnRelayout( const Vector2& size,
Relayout
Container& container )
{
// lay out the actors
Vector3 anchorPointAndParentOrigin = Vector3::ZERO;
{
// lay out the actors
Vector3 anchorPointAndParentOrigin = Vector3::ZERO;
@@
-474,59
+475,59
@@
void Alignment::OnRelayout( const Vector2& size, ActorSizeContainer& container )
anchorPointAndParentOrigin.y = 1.0f;
}
anchorPointAndParentOrigin.y = 1.0f;
}
- unsigned int childCount = Self().GetChildCount();
- for( unsigned int i=0; i<childCount; ++i )
+ for( unsigned int i = 0, childCount = Self().GetChildCount(); i < childCount; ++i )
{
{
- Actor
actor
= Self().GetChildAt(i);
+ Actor
child
= Self().GetChildAt(i);
-
actor
.SetAnchorPoint( anchorPointAndParentOrigin );
-
actor
.SetParentOrigin( anchorPointAndParentOrigin );
+
child
.SetAnchorPoint( anchorPointAndParentOrigin );
+
child
.SetParentOrigin( anchorPointAndParentOrigin );
- Vector3 actorSize ( actor.GetSize() );
- Toolkit::Control control( Toolkit::Control::DownCast( actor ) );
- if ( actorSize == Vector3::ZERO && control )
+ Vector3 currentChildSize( child.GetTargetSize() );
+ if( currentChildSize == Vector3::ZERO )
{
{
-
actorSize = control
.GetNaturalSize();
+
currentChildSize = child
.GetNaturalSize();
}
}
- Vector3 childSize;
+ bool renegotiate = true;
+ Vector3 newChildSize;
switch( mScaling )
{
case Toolkit::Alignment::ScaleNone:
{
// Nothing to do but needed just to not to jump to the default.
switch( mScaling )
{
case Toolkit::Alignment::ScaleNone:
{
// Nothing to do but needed just to not to jump to the default.
- childSize = actorSize;
+ newChildSize = currentChildSize;
+ renegotiate = false;
break;
}
case Toolkit::Alignment::ScaleToFill:
{
ScaleToFillConstraint constraint( mPadding );
break;
}
case Toolkit::Alignment::ScaleToFill:
{
ScaleToFillConstraint constraint( mPadding );
-
childSize = constraint.GetSize( actor
Size, Vector3(size) ) ;
+
newChildSize = constraint.GetSize( currentChild
Size, Vector3(size) ) ;
break;
}
case Toolkit::Alignment::ScaleToFitKeepAspect:
{
ScaleToFitKeepAspectConstraint constraint( mPadding );
break;
}
case Toolkit::Alignment::ScaleToFitKeepAspect:
{
ScaleToFitKeepAspectConstraint constraint( mPadding );
-
childSize = constraint.GetSize( actor
Size, Vector3(size) ) ;
+
newChildSize = constraint.GetSize( currentChild
Size, Vector3(size) ) ;
break;
}
case Toolkit::Alignment::ScaleToFillKeepAspect:
{
ScaleToFillKeepAspectConstraint constraint( mPadding );
break;
}
case Toolkit::Alignment::ScaleToFillKeepAspect:
{
ScaleToFillKeepAspectConstraint constraint( mPadding );
-
childSize = constraint.GetSize( actor
Size, Vector3(size) );
+
newChildSize = constraint.GetSize( currentChild
Size, Vector3(size) );
break;
}
case Toolkit::Alignment::ShrinkToFit:
{
ShrinkToFitConstraint constraint( mPadding );
break;
}
case Toolkit::Alignment::ShrinkToFit:
{
ShrinkToFitConstraint constraint( mPadding );
-
childSize = constraint.GetSize( actor
Size, Vector3(size) );
+
newChildSize = constraint.GetSize( currentChild
Size, Vector3(size) );
break;
}
case Toolkit::Alignment::ShrinkToFitKeepAspect:
{
ShrinkToFitKeepAspectConstraint constraint( mPadding );
break;
}
case Toolkit::Alignment::ShrinkToFitKeepAspect:
{
ShrinkToFitKeepAspectConstraint constraint( mPadding );
-
childSize = constraint.GetSize( actor
Size, Vector3(size) );
+
newChildSize = constraint.GetSize( currentChild
Size, Vector3(size) );
break;
}
default:
break;
}
default:
@@
-537,14
+538,12
@@
void Alignment::OnRelayout( const Vector2& size, ActorSizeContainer& container )
}
PositionConstraint positionConstraint(mPadding, mHorizontal, mVertical);
}
PositionConstraint positionConstraint(mPadding, mHorizontal, mVertical);
-
actor.SetPosition( positionConstraint.GetPosition(childSize, actor
Size) );
+
child.SetPosition( positionConstraint.GetPosition(newChildSize, currentChild
Size) );
- if(
!control
)
+ if(
renegotiate
)
{
{
-
actor.SetScale(childSize / actorSize
);
+
container.Add( child, Vector2(newChildSize)
);
}
}
-
- Relayout( actor, Vector2(childSize), container );
}
}
}
}