X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fitem-view%2Fitem-view-impl.cpp;h=ba2000bf61db139791d34fec52593d2898ed3aa8;hb=314952dcbfa53f31a250aa175bf19f0a4ade74f6;hp=9403c8a4f74a6f77e8f2b8cc36a322b3f3109c2b;hpb=2ecd7e13e0dbe45f59b5150abbf7924bf780f720;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp index 9403c8a..ba2000b 100644 --- a/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp +++ b/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp @@ -260,6 +260,8 @@ DALI_ANIMATABLE_PROPERTY_REGISTRATION( Toolkit, ItemView, "scrollContentSize", DALI_SIGNAL_REGISTRATION( Toolkit, ItemView, "layoutActivated", LAYOUT_ACTIVATED_SIGNAL ) +DALI_ACTION_REGISTRATION( Toolkit, ItemView, "stopScrolling", ACTION_STOP_SCROLLING ) + DALI_TYPE_REGISTRATION_END() bool FindById( const ItemContainer& items, ItemId id ) @@ -1378,7 +1380,7 @@ void ItemView::ScrollToItem(unsigned int itemId, float durationSeconds) { RemoveAnimation(mScrollAnimation); mScrollAnimation = Animation::New(durationSeconds); - mScrollAnimation.AnimateTo( Property(self, Toolkit::ItemView::Property::LAYOUT_POSITION), firstItemScrollPosition, AlphaFunction::EASE_OUT ); + mScrollAnimation.AnimateTo( Property(self, Toolkit::ItemView::Property::LAYOUT_POSITION), firstItemScrollPosition, mScrollToAlphaFunction ); mScrollAnimation.FinishedSignal().Connect(this, &ItemView::OnScrollFinished); mScrollAnimation.Play(); } @@ -1492,7 +1494,7 @@ void ItemView::ScrollTo(const Vector2& position, float duration) { RemoveAnimation(mScrollAnimation); mScrollAnimation = Animation::New(duration); - mScrollAnimation.AnimateTo( Property(self, Toolkit::ItemView::Property::LAYOUT_POSITION), firstItemScrollPosition, AlphaFunction::EASE_OUT ); + mScrollAnimation.AnimateTo( Property(self, Toolkit::ItemView::Property::LAYOUT_POSITION), firstItemScrollPosition, mScrollToAlphaFunction ); mScrollAnimation.FinishedSignal().Connect(this, &ItemView::OnScrollFinished); mScrollAnimation.Play(); } @@ -1778,6 +1780,31 @@ Property::Value ItemView::GetProperty( BaseObject* object, Property::Index index return value; } +bool ItemView::DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes ) +{ + Dali::BaseHandle handle( object ); + + Toolkit::ItemView itemView = Toolkit::ItemView::DownCast( handle ); + + DALI_ASSERT_ALWAYS( itemView ); + + if( 0 == strcmp( actionName.c_str(), ACTION_STOP_SCROLLING ) ) + { + GetImpl( itemView ).DoStopScrolling(); + } + + return true; +} + +void ItemView::DoStopScrolling() +{ + if( mScrollAnimation ) + { + mScrollAnimation.Stop(); + mScrollAnimation.Reset(); + } +} + } // namespace Internal } // namespace Toolkit