public void RemovePinchListener(IPinchListener listener) { if (_pinchStartListeners != null) _pinchStartListeners -= listener.OnPinchStart; if (_pinchUpdateListeners != null) _pinchUpdateListeners -= listener.OnPinchUpdate; if (_pinchEndListeners != null) _pinchEndListeners -= listener.OnPinchEnd; }
/*private void UpdateGesture(TouchPoint pt1, TouchPoint pt2) * { * this.gesture.Handled = false; * this.gesture.Position = pt1.Position; * this.gesture.Position2 = pt2.Position; * * double dx = pt1.Position.X - pt2.Position.X; * double dy = pt1.Position.Y - pt2.Position.Y; * * this.gesture.Distance = Math.Max(1, Math.Sqrt((dx * dx) + (dy * dy))); * }*/ private void OnListenerUnloaded(object sender, RoutedEventArgs e) { IPinchListener listener = e.OriginalSource as IPinchListener; if (listener != null) { this.RemoveListener(listener); } }
public void AddListener(IPinchListener listener) { this.listeners.Add(listener); listener.Unloaded += this.OnListenerUnloaded; if (!this.eventHooked) { //Windows.UI.Xaml.Input.Pointer //Touch.FrameReported += this.OnFrameReported; this.eventHooked = true; } }
public void RemoveListener(IPinchListener listener) { if (this.listeners.Count == 0) { return; } this.listeners.Remove(listener); listener.Unloaded -= this.OnListenerUnloaded; if (this.listeners.Count == 0) { //Touch.FrameReported -= this.OnFrameReported; this.eventHooked = false; this.pinching = false; } }
public void AddPinchListener(IPinchListener listener) { _pinchStartListeners += listener.OnPinchStart; _pinchUpdateListeners += listener.OnPinchUpdate; _pinchEndListeners += listener.OnPinchEnd; }