From ea6402486cebd26ced610e6670ce1bb8ed685bfe Mon Sep 17 00:00:00 2001 From: workgroupengineering Date: Wed, 18 Oct 2023 01:08:23 +0200 Subject: [PATCH] feat(Gestures): Allow using some `Gestures` events in Xaml (#13232) * feat(Gestures): Adds HoldingEvent handlers * feat(Gestures): Adds PinchEvent handlers * feat(Gestures): Adds PinchEndedEvent handlers * feat(Gestures): Adds PullGestureEvent handlers * feat(Gestures): Adds PullGestureEndedEvent handlers * feat(Gestures): Adds PointerTouchPadGestureMagnifyEvent handlers * feat(Gestures): Adds PointerTouchPadGestureRotateEvent handlers * feat(Gestures): Adds PointerTouchPadGestureSwipeEvent handlers * feat(Gestures): Adds ScrollGestureEvent handlers * feat(Gestures): Adds ScrollGestureEndedEvent handlers * feat(Gestures): Adds ScrollGestureInertiaStartingEvent handlers --- src/Avalonia.Base/Input/Gestures.cs | 66 +++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/Avalonia.Base/Input/Gestures.cs b/src/Avalonia.Base/Input/Gestures.cs index c8195a18eb..53562d97c6 100644 --- a/src/Avalonia.Base/Input/Gestures.cs +++ b/src/Avalonia.Base/Input/Gestures.cs @@ -132,6 +132,39 @@ namespace Avalonia.Input element.AddHandler(RightTappedEvent, handler); } + public static void AddHoldingHandler(Interactive element, EventHandler handler) => + element.AddHandler(HoldingEvent, handler); + + public static void AddPinchHandler(Interactive element, EventHandler handler) => + element.AddHandler(PinchEvent, handler); + + public static void AddPinchEndedHandler(Interactive element, EventHandler handler) => + element.AddHandler(PinchEndedEvent, handler); + + public static void AddPullGestureHandler(Interactive element, EventHandler handler) => + element.AddHandler(PullGestureEvent, handler); + + public static void AddPullGestureEndedHandler(Interactive element, EventHandler handler) => + element.AddHandler(PullGestureEndedEvent, handler); + + public static void AddPointerTouchPadGestureMagnifyHandler(Interactive element, EventHandler handler) => + element.AddHandler(PointerTouchPadGestureMagnifyEvent, handler); + + public static void AddPointerTouchPadGestureRotateHandler(Interactive element, EventHandler handler) => + element.AddHandler(PointerTouchPadGestureRotateEvent, handler); + + public static void AddPointerTouchPadGestureSwipeHandler(Interactive element, EventHandler handler) => + element.AddHandler(PointerTouchPadGestureSwipeEvent, handler); + + public static void AddScrollGestureHandler(Interactive element, EventHandler handler) => + element.AddHandler(ScrollGestureEvent, handler); + + public static void AddScrollGestureEndedHandler(Interactive element, EventHandler handler) => + element.AddHandler(ScrollGestureEndedEvent, handler); + + public static void AddScrollGestureInertiaStartingHandler(Interactive element, EventHandler handler) => + element.AddHandler(ScrollGestureInertiaStartingEvent, handler); + public static void RemoveTappedHandler(Interactive element, EventHandler handler) { element.RemoveHandler(TappedEvent, handler); @@ -147,6 +180,39 @@ namespace Avalonia.Input element.RemoveHandler(RightTappedEvent, handler); } + public static void RemoveHoldingHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(HoldingEvent, handler); + + public static void RemovePinchHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PinchEvent, handler); + + public static void RemovePinchEndedHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PinchEndedEvent, handler); + + public static void RemovePullGestureHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PullGestureEvent, handler); + + public static void RemovePullGestureEndedHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PullGestureEndedEvent, handler); + + public static void RemovePointerTouchPadGestureMagnifyHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PointerTouchPadGestureMagnifyEvent, handler); + + public static void RemovePointerTouchPadGestureRotateHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PointerTouchPadGestureRotateEvent, handler); + + public static void RemovePointerTouchPadGestureSwipeHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(PointerTouchPadGestureSwipeEvent, handler); + + public static void RemoveScrollGestureHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(ScrollGestureEvent,handler); + + public static void RemoveScrollGestureEndedHandler(Interactive element,EventHandler handler) => + element.RemoveHandler(ScrollGestureEndedEvent,handler); + + public static void RemoveScrollGestureInertiaStartingHandler(Interactive element, EventHandler handler) => + element.RemoveHandler(ScrollGestureInertiaStartingEvent, handler); + private static void PointerPressed(RoutedEventArgs ev) { if (ev.Source is null)