X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fitem-view%2Fgrid-layout.cpp;h=435cbf3eae3ad8210759a1ec78803d2a0dc93932;hb=14455946a98df9b2f7cc5e9d5a972250da70a003;hp=9339f0a1f0e9de5c84bae6dd25a452b247b5656a;hpb=a78bb823aebc305823855ac35b3413aaff7bc684;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/scrollable/item-view/grid-layout.cpp b/dali-toolkit/internal/controls/scrollable/item-view/grid-layout.cpp old mode 100644 new mode 100755 index 9339f0a..435cbf3 --- a/dali-toolkit/internal/controls/scrollable/item-view/grid-layout.cpp +++ b/dali-toolkit/internal/controls/scrollable/item-view/grid-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; @@ -390,7 +391,7 @@ float GridLayout::GetClosestAnchorPosition(float layoutPosition) const float GridLayout::GetItemScrollToPosition(unsigned int itemId) const { - float rowIndex = static_cast(itemId / mImpl->mNumberOfColumns); + float rowIndex = static_cast< float >( itemId ) / mImpl->mNumberOfColumns; return -rowIndex * static_cast(mImpl->mNumberOfColumns); } @@ -506,23 +507,6 @@ void GridLayout::GetDefaultItemSize( unsigned int itemId, const Vector3& layoutS itemSize.height = itemSize.depth = itemSize.width * 0.75f; } -void GridLayout::GetResizeAnimation(Animation& animation, Actor actor, Vector3 size, float durationSeconds) const -{ - if(animation) - { - Vector3 currentSize( actor.GetCurrentSize() ); - Vector3 shrink( currentSize ); - - shrink.width = std::min(size.width, currentSize.width); - shrink.height = std::min(size.height, currentSize.height); - - // Do a nonlinear size animation to shrink the actor first when the actor size changes, - // so that we can avoid the actors overlapping during orientation change. - animation.AnimateTo( Property( actor, Actor::Property::SIZE ), shrink, AlphaFunction::EASE_OUT, TimePeriod( 0.0f, durationSeconds * 0.5f ) ); - animation.AnimateTo( Property( actor, Actor::Property::SIZE ), size, AlphaFunction::EASE_IN, TimePeriod( 0.0f, durationSeconds ) ); - } -} - Degree GridLayout::GetScrollDirection() const { Degree scrollDirection(0.0f); @@ -612,7 +596,7 @@ void GridLayout::ApplyConstraints( Actor& actor, const int itemId, const Vector3 // Color constraint constraint = Constraint::New< Vector4 >( actor, Actor::Property::COLOR, &GridColorConstraint ); - constraint.SetRemoveAction( Dali::Constraint::Discard ); + constraint.SetRemoveAction( Dali::Constraint::DISCARD ); constraint.Apply(); // Visibility constraint @@ -633,11 +617,72 @@ void GridLayout::ApplyConstraints( Actor& actor, const int itemId, const Vector3 } 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 GridLayout::SetGridLayoutProperties(const Property::Map& properties) +{ + // Set any properties specified for gridLayout. + for( unsigned int idx = 0, mapCount = properties.Count(); idx < mapCount; ++idx ) + { + KeyValuePair propertyPair = properties.GetKeyValue( idx ); + switch(DefaultItemLayoutProperty::Property(propertyPair.first.indexKey)) + { + case DefaultItemLayoutProperty::GRID_COLUMN_NUMBER: + { + SetNumberOfColumns(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_ROW_SPACING: + { + SetRowSpacing(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_COLUMN_SPACING: + { + SetColumnSpacing(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_TOP_MARGIN: + { + SetTopMargin(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_BOTTOM_MARGIN: + { + SetBottomMargin(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_SIDE_MARGIN: + { + SetSideMargin(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_SCROLL_SPEED_FACTOR: + { + SetScrollSpeedFactor(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_MAXIMUM_SWIPE_SPEED: + { + SetMaximumSwipeSpeed(propertyPair.second.Get()); + break; + } + case DefaultItemLayoutProperty::GRID_ITEM_FLICK_ANIMATION_DURATION: + { + SetItemFlickAnimationDuration(propertyPair.second.Get()); + break; + } + default: + { + break; + } + } + } +} + Vector3 GridLayout::GetItemPosition(int itemID, float currentLayoutPosition, const Vector3& layoutSize) const { Vector3 itemPosition = Vector3::ZERO; @@ -716,6 +761,10 @@ int GridLayout::GetNextFocusItemID(int itemID, int maxItems, Dali::Toolkit::Cont } break; } + default: + { + break; + } } return itemID; }