/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/scrollable/item-view/item-view.h>
+#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout-property.h>
using namespace Dali;
using namespace Dali::Toolkit;
itemSize.height = itemSize.depth = ( itemSize.width / 4.0f ) * 3.0f;
}
-void SpiralLayout::GetResizeAnimation(Animation& animation, Actor actor, Vector3 size, float durationSeconds) const
-{
- if(animation)
- {
- animation.AnimateTo( Property( actor, Actor::Property::SIZE ), size );
- }
-}
-
Degree SpiralLayout::GetScrollDirection() const
{
Degree scrollDirection(0);
void SpiralLayout::ApplyConstraints( Actor& actor, const int itemId, const Vector3& layoutSize, 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 );
// Color constraint
constraint = Constraint::New< Vector4 >( actor, Actor::Property::COLOR, SpiralColorConstraint( itemId, mImpl->mItemSpacingRadians ) );
constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) );
- constraint.SetRemoveAction(Dali::Constraint::Discard);
+ constraint.SetRemoveAction(Dali::Constraint::DISCARD);
constraint.Apply();
// Visibility constraint
}
constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) );
constraint.AddSource( ParentSource( Actor::Property::SIZE ) );
- constraint.SetRemoveAction(Dali::Constraint::Discard);
+ constraint.SetRemoveAction(Dali::Constraint::DISCARD);
constraint.Apply();
}
}
+void SpiralLayout::SetSpiralLayoutProperties(const Property::Map& properties)
+{
+ // Set any properties specified for SpiralLayout.
+ for( unsigned int idx = 0, mapCount = properties.Count(); idx < mapCount; ++idx )
+ {
+ KeyValuePair propertyPair = properties.GetKeyValue( idx );
+ switch(DefaultItemLayoutProperty::Property(propertyPair.first.indexKey))
+ {
+ case DefaultItemLayoutProperty::SPIRAL_ITEM_SPACING:
+ {
+ SetItemSpacing(Radian(propertyPair.second.Get<float>()));
+ break;
+ }
+ case DefaultItemLayoutProperty::SPIRAL_MAXIMUM_SWIPE_SPEED:
+ {
+ SetMaximumSwipeSpeed(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::SPIRAL_TOP_ITEM_ALIGNMENT:
+ {
+ SetTopItemAlignment(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::SPIRAL_SCROLL_SPEED_FACTOR:
+ {
+ SetScrollSpeedFactor(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::SPIRAL_REVOLUTION_DISTANCE:
+ {
+ SetRevolutionDistance(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::SPIRAL_ITEM_FLICK_ANIMATION_DURATION:
+ {
+ SetItemFlickAnimationDuration(propertyPair.second.Get<float>());
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+}
+
Vector3 SpiralLayout::GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const
{
Vector3 itemPosition = Vector3::ZERO;
{
positionConstraint.OrientationDown( itemPosition, currentLayoutPosition + itemID, layoutSize );
}
- else // orientation == ControlOrientation::Right
+ else //orientation == ControlOrientation::Right
{
positionConstraint.OrientationRight( itemPosition, currentLayoutPosition + itemID, layoutSize );
}