-void ItemLayout::ApplyConstraints( Actor& actor, const int itemId, const float durationSeconds, Handle scrollPositionObject, const Actor& itemViewActor )
-{
- // This just implements the default behaviour of constraint application.
- // Custom layouts can override this function to apply their custom constraints.
- Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::DownCast( itemViewActor );
- if(itemView && scrollPositionObject)
- {
- Property::Index scrollSpeedProperty = itemView.GetPropertyIndex("item-view-scroll-speed");
- Property::Index scrollPositionProperty = scrollPositionObject.GetPropertyIndex("scroll-position");
-
- ItemLayout::Vector3Function positionConstraint;
- if (GetPositionConstraint(itemId, positionConstraint))
- {
- WrappedVector3Constraint wrapped(positionConstraint, itemId);
- Constraint constraint = Constraint::New<Vector3>( Actor::Property::POSITION,
- Source( scrollPositionObject, scrollPositionProperty ),
- ParentSource( scrollSpeedProperty ),
- ParentSource( Actor::Property::SIZE ),
- wrapped );
- constraint.SetApplyTime(durationSeconds);
- constraint.SetAlphaFunction(mAlphaFunction);
- actor.ApplyConstraint(constraint);
- }
-
- ItemLayout::QuaternionFunction rotationConstraint;
- if (GetRotationConstraint(itemId, rotationConstraint))
- {
- WrappedQuaternionConstraint wrapped(rotationConstraint, itemId);
-
- Constraint constraint = Constraint::New<Quaternion>( Actor::Property::ORIENTATION,
- Source( scrollPositionObject, scrollPositionProperty ),
- ParentSource( scrollSpeedProperty ),
- ParentSource( Actor::Property::SIZE ),
- wrapped );
- constraint.SetApplyTime(durationSeconds);
- constraint.SetAlphaFunction(mAlphaFunction);
-
- actor.ApplyConstraint(constraint);
- }
-
- ItemLayout::Vector3Function scaleConstraint;
- if (GetScaleConstraint(itemId, scaleConstraint))
- {
- WrappedVector3Constraint wrapped(scaleConstraint, itemId);
-
- Constraint constraint = Constraint::New<Vector3>( Actor::Property::SCALE,
- Source( scrollPositionObject, scrollPositionProperty ),
- ParentSource( scrollSpeedProperty ),
- ParentSource( Actor::Property::SIZE ),
- wrapped );
- constraint.SetApplyTime(durationSeconds);
- constraint.SetAlphaFunction(mAlphaFunction);
-
- actor.ApplyConstraint(constraint);
- }
-
- ItemLayout::Vector4Function colorConstraint;
- if (GetColorConstraint(itemId, colorConstraint))
- {
- WrappedVector4Constraint wrapped(colorConstraint, itemId);
-
- Constraint constraint = Constraint::New<Vector4>( Actor::Property::COLOR,
- Source( scrollPositionObject, scrollPositionProperty ),
- ParentSource( scrollSpeedProperty ),
- ParentSource( Actor::Property::SIZE ),
- wrapped );
-
- constraint.SetApplyTime(durationSeconds);
- constraint.SetAlphaFunction(mAlphaFunction);
- constraint.SetRemoveAction(Dali::Constraint::Discard);
-
- actor.ApplyConstraint(constraint);
- }
-
- ItemLayout::BoolFunction visibilityConstraint;
- if (GetVisibilityConstraint(itemId, visibilityConstraint))
- {
- WrappedBoolConstraint wrapped(visibilityConstraint, itemId);
-
- Constraint constraint = Constraint::New<bool>( Actor::Property::VISIBLE,
- Source( scrollPositionObject, scrollPositionProperty ),
- ParentSource( scrollSpeedProperty ),
- ParentSource( Actor::Property::SIZE ),
- wrapped );
-
- constraint.SetApplyTime(durationSeconds);
- constraint.SetAlphaFunction(mAlphaFunction);
-
- // Release visibility constraints the same time as the color constraint
- constraint.SetRemoveAction(Dali::Constraint::Discard);
-
- actor.ApplyConstraint(constraint);
- }
- }
-}
-
-Vector3 ItemLayout::GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const
-{
- Vector3 itemPosition = Vector3::ZERO;
-
- ItemLayout::Vector3Function positionConstraint;
- if (GetPositionConstraint(itemID, positionConstraint))
- {
- itemPosition = positionConstraint(Vector3::ZERO, currentLayoutPosition + itemID, 0.0f, layoutSize);
- }
-
- return itemPosition;
-}
-
-void ItemLayout::SetAlphaFunction(AlphaFunction func)
-{
- mAlphaFunction = func;
-}
-
-AlphaFunction ItemLayout::GetAlphaFunction() const
-{
- return mAlphaFunction;
-}
-
-