X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fitem-view%2Fspiral-layout.cpp;h=9121ebec91e257a13dd830341814b12fb7f2f617;hb=14455946a98df9b2f7cc5e9d5a972250da70a003;hp=83d2a1f8ccae4a1e6a8b55fbeb191aa5dedcce61;hpb=09e0f6477db3adfa854d2ac4c376c4076bda9796;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp b/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp old mode 100644 new mode 100755 index 83d2a1f..9121ebe --- a/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp +++ b/dali-toolkit/internal/controls/scrollable/item-view/spiral-layout.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -25,6 +25,7 @@ // INTERNAL INCLUDES #include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -424,6 +425,7 @@ Degree SpiralLayout::GetScrollDirection() const 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 ); @@ -478,7 +480,7 @@ void SpiralLayout::ApplyConstraints( Actor& actor, const int itemId, const Vecto // 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 @@ -493,11 +495,57 @@ void SpiralLayout::ApplyConstraints( Actor& actor, const int itemId, const Vecto } 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())); + break; + } + case DefaultItemLayoutProperty::SPIRAL_MAXIMUM_SWIPE_SPEED: + { + SetMaximumSwipeSpeed(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::SPIRAL_TOP_ITEM_ALIGNMENT: + { + SetTopItemAlignment(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::SPIRAL_SCROLL_SPEED_FACTOR: + { + SetScrollSpeedFactor(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::SPIRAL_REVOLUTION_DISTANCE: + { + SetRevolutionDistance(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::SPIRAL_ITEM_FLICK_ANIMATION_DURATION: + { + SetItemFlickAnimationDuration(propertyPair.second.Get()); + break; + } + default: + { + break; + } + } + } +} + Vector3 SpiralLayout::GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const { Vector3 itemPosition = Vector3::ZERO; @@ -517,7 +565,7 @@ Vector3 SpiralLayout::GetItemPosition(int itemID, float currentLayoutPosition, c { positionConstraint.OrientationDown( itemPosition, currentLayoutPosition + itemID, layoutSize ); } - else // orientation == ControlOrientation::Right + else //orientation == ControlOrientation::Right { positionConstraint.OrientationRight( itemPosition, currentLayoutPosition + itemID, layoutSize ); }