internal override void ProcessMotionEvent(GestureMotionEvent e)
        {
            if (e.Action == MotionEventActions.Down && PointerId == -1)
            {
                OnDown(e);

                //TODO - this should probably be possible at this point?
                if (State == GestureRecognizerState.Began)
                {
                    //TODO track all pointers that are down.
                    PointerId     = e.GetPointerId(0);
                    e.IsConsumed  = true;
                    e.IsCancelled = Recognizer.CancelsTouchesInView;
                }
            }
            else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed)
            {
                return;
            }
            else if (e.ActionMasked == MotionEventActions.Cancel)
            {
                State = GestureRecognizerState.Cancelled;
                Console.WriteLine("GESTURE CANCELLED");
                PointerId = -1;
                SendGestureUpdate();
            }
            else if (e.ActionMasked == MotionEventActions.Up)
            {
                OnUp(e);
                e.IsConsumed = State != GestureRecognizerState.Failed;
            }
        }
        internal override void ProcessMotionEvent(GestureMotionEvent e)
        {
//			Console.WriteLine ("pan gesture state - {0} e.action {1}", State, e.Action);
            if (e.Action == MotionEventActions.Down && PointerId == -1)
            {
                OnDown(e);
//				e.IsConsumed = State == GestureRecognizerState.Possible;
            }
            else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed)
            {
                return;
            }
            else
            {
                if (PointerId == e.GetPointerId(0))
                {
                    if (e.ActionMasked == MotionEventActions.Cancel || e.ActionMasked == MotionEventActions.Up)
                    {
                        OnUp(e);
//						e.IsConsumed = true;
                    }
                    else if (e.Action == MotionEventActions.Move)
                    {
                        OnMove(e);
//						e.IsConsumed = State != GestureRecognizerState.Cancelled && State != GestureRecognizerState.Ended && State != GestureRecognizerState.Failed;
                    }
                }
            }
        }
 internal override void ProcessMotionEvent(GestureMotionEvent e)
 {
     _startTime = DateTime.Now;
     if (e.Action == MotionEventActions.Down && PointerId == -1)
     {
         OnDown(e);
         if (State == GestureRecognizerState.Began)
         {
             e.IsConsumed  = true;
             e.IsCancelled = true;
         }
     }
     else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed)
     {
         return;
     }
     else if (e.ActionMasked == MotionEventActions.Cancel)
     {
         State = GestureRecognizerState.Cancelled;
         Console.WriteLine("GESTURE CANCELLED");
         PointerId = -1;
         SendGestureUpdate();
     }
     else if (e.ActionMasked == MotionEventActions.Up)
     {
         OnUp(e);
         if (PointerId == e.GetPointerId(0))
         {
             e.IsConsumed = State != GestureRecognizerState.Failed;
         }
     }
 }
		void OnDown (GestureMotionEvent e)
		{
			//TODO - should really be possible until all taps/fingers are satisfied.
			State = (e.PointerCount == TapGestureRecognizer.NumberOfTouchesRequired) ? GestureRecognizerState.Began : GestureRecognizerState.Failed;
			_currentTapCount = 0;
			//TODO track all pointers that are down.
			PointerId = e.GetPointerId (0);
			FirstTouchPoint = new Xamarin.Forms.Point (e.GetX (0), e.GetY (0));
			if (TapGestureRecognizer.NumberOfTapsRequired > 1 && State == GestureRecognizerState.Began) {
				ResetMultiTapTimer (true);
			}
		}
		void OnDown (GestureMotionEvent e)
		{
			//TODO - should really be possible until all taps/fingers are satisfied.
			if (e.PointerCount == LongPressGestureRecognizer.NumberOfTouchesRequired) {
				State = GestureRecognizerState.Began;
				PointerId = e.GetPointerId (0);
				FirstTouchPoint = new Xamarin.Forms.Point (e.GetX (0), e.GetY (0));
				ResetLongPressTimer (true);
			} else {
				State = GestureRecognizerState.Failed;
				
			}
		}
 void OnDown(GestureMotionEvent e)
 {
     //TODO - should really be possible until all taps/fingers are satisfied.
     State            = (e.PointerCount == TapGestureRecognizer.NumberOfTouchesRequired) ? GestureRecognizerState.Began : GestureRecognizerState.Failed;
     _currentTapCount = 0;
     //TODO track all pointers that are down.
     PointerId       = e.GetPointerId(0);
     FirstTouchPoint = new Xamarin.Forms.Point(e.GetX(0), e.GetY(0));
     if (TapGestureRecognizer.NumberOfTapsRequired > 1 && State == GestureRecognizerState.Began)
     {
         ResetMultiTapTimer(true);
     }
 }
 void OnDown(GestureMotionEvent e)
 {
     //TODO - really should be possible at this point - min distance should trigger began
     State     = GestureRecognizerState.Possible;
     PointerId = e.GetPointerId(0);
     Console.WriteLine("PAN POSSIBLE");
     _rawTranslation     = new Xamarin.Forms.Point(0, 0);
     _currentPoint       = new Xamarin.Forms.Point(e.GetX(), e.GetY());
     _currentScreenPoint = new Xamarin.Forms.Point(e.GetX(), e.GetY());
     _previousPoint      = new Xamarin.Forms.Point(e.GetX(), e.GetY());
     _startPoint         = new Xamarin.Forms.Point(NativeView.GetX(), NativeView.GetY());
     SendGestureEvent();
 }
Пример #8
0
 void OnDown(GestureMotionEvent e)
 {
     //TODO - should really be possible until all taps/fingers are satisfied.
     if (e.PointerCount == LongPressGestureRecognizer.NumberOfTouchesRequired)
     {
         State           = GestureRecognizerState.Began;
         PointerId       = e.GetPointerId(0);
         FirstTouchPoint = new Xamarin.Forms.Point(e.GetX(0), e.GetY(0));
         ResetLongPressTimer(true);
     }
     else
     {
         State = GestureRecognizerState.Failed;
     }
 }
		internal override void ProcessMotionEvent (GestureMotionEvent e)
		{
//			Console.WriteLine ("pan gesture state - {0} e.action {1}", State, e.Action);
			if (e.Action == MotionEventActions.Down && PointerId == -1) {
				OnDown (e);
//				e.IsConsumed = State == GestureRecognizerState.Possible;
			} else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed) {
				return;
			} else {
				if (PointerId == e.GetPointerId (0)) {
					if (e.ActionMasked == MotionEventActions.Cancel || e.ActionMasked == MotionEventActions.Up) {
						OnUp (e);
//						e.IsConsumed = true;
					} else if (e.Action == MotionEventActions.Move) {
						OnMove (e);
//						e.IsConsumed = State != GestureRecognizerState.Cancelled && State != GestureRecognizerState.Ended && State != GestureRecognizerState.Failed;
					}
				} 
			}
		}
		internal override void ProcessMotionEvent (GestureMotionEvent e)
		{
			_startTime = DateTime.Now;
			if (e.Action == MotionEventActions.Down && PointerId == -1) {
				OnDown (e);
				if (State == GestureRecognizerState.Began) {
//					e.IsConsumed = true;
					e.IsCancelled = true;
				}
			} else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed) {
				return;
			} else if (e.ActionMasked == MotionEventActions.Cancel) {
				State = GestureRecognizerState.Cancelled;
				Console.WriteLine ("GESTURE CANCELLED");
			} else if (e.ActionMasked == MotionEventActions.Up) {
				OnUp (e);
				if (PointerId == e.GetPointerId (0)) {
//					e.IsConsumed = State != GestureRecognizerState.Failed;
				}
			}
		}
		internal override void ProcessMotionEvent (GestureMotionEvent e)
		{
			if (e.Action == MotionEventActions.Down && PointerId == -1) {
				OnDown (e);

				//TODO - this should probably be possible at this point?
				if (State == GestureRecognizerState.Began) {
					//TODO track all pointers that are down.
					PointerId = e.GetPointerId (0);
//					e.IsConsumed = true;
					e.IsCancelled = Recognizer.CancelsTouchesInView;
				}
			} else if (State == GestureRecognizerState.Cancelled || State == GestureRecognizerState.Ended || State == GestureRecognizerState.Failed) {
				return;
			} else if (e.ActionMasked == MotionEventActions.Cancel) {
				State = GestureRecognizerState.Cancelled;
				Console.WriteLine ("GESTURE CANCELLED");
			} else if (e.ActionMasked == MotionEventActions.Up) {
				OnUp (e);
//				e.IsConsumed = State != GestureRecognizerState.Failed;
			}
		}
		void OnDown (GestureMotionEvent e)
		{
			//TODO - really should be possible at this point - min distance should trigger began
			State = GestureRecognizerState.Possible;
			PointerId = e.GetPointerId (0);
			Console.WriteLine ("PAN POSSIBLE");
			_rawTranslation = new Xamarin.Forms.Point (0, 0);
			FirstTouchPoint = new Xamarin.Forms.Point (e.GetX (), e.GetY ()); 
			_currentPoint = FirstTouchPoint;
			_currentScreenPoint = FirstTouchPoint;
			_previousPoint = FirstTouchPoint;

			_viewStartLocation = Recognizer.View.GetNativeScreenPosition ();
		}