+ OnGestureEx(gesture.state);
+}
+
+void ScrollView::OnGestureEx(Gesture::State state)
+{
+ // call necessary signals for application developer
+
+ if(state == Gesture::Started)
+ {
+ Vector3 currentScrollPosition = GetCurrentScrollPosition();
+ Self().SetProperty(mPropertyScrolling, true);
+ mScrolling = true;
+ DALI_LOG_SCROLL_STATE("[0x%X] mScrollStartedSignalV2 2 [%.2f, %.2f]", this, currentScrollPosition.x, currentScrollPosition.y);
+ mScrollStartedSignalV2.Emit( currentScrollPosition );
+ }
+ else if( (state == Gesture::Finished) ||
+ (state == Gesture::Cancelled) ) // Finished/default
+ {
+ // when all the gestures have finished, we finish the transform.
+ // so if a user decides to pan (1 gesture), and then pan+zoom (2 gestures)
+ // then stop panning (back to 1 gesture), and then stop zooming (0 gestures).
+ // this is the point we end, and perform necessary snapping.
+ mGestureStackDepth--;
+ if(mGestureStackDepth==0)
+ {
+ FinishTransform();
+ }
+ }