+ // 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)
+ {
+ // no flick if we have not exceeded min flick distance
+ if( (fabsf(mPanDelta.x) < mMinFlickDistance.x)
+ && (fabsf(mPanDelta.y) < mMinFlickDistance.y) )
+ {
+ // reset flick velocity
+ mLastVelocity = Vector2::ZERO;
+ }
+ FinishTransform();
+ }
+ else
+ {
+ DALI_LOG_SCROLL_STATE("[0x%X] mGestureStackDepth[%d]", this, mGestureStackDepth);
+ }
+ }