diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs b/Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs new file mode 100644 index 00000000..f8e09078 --- /dev/null +++ b/Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs @@ -0,0 +1,56 @@ +using System; +using System.ComponentModel; +using ElmSharp; + +namespace Xamarin.Forms.Platform.Tizen +{ + public class TapGestureHandler : GestureHandler + { + public TapGestureHandler(IGestureRecognizer recognizer) : base(recognizer) + { + recognizer.PropertyChanged += OnRecognizerPropertyChanged; + } + + public override GestureLayer.GestureType Type + { + get + { + var recognizer = Recognizer as TapGestureRecognizer; + if (recognizer != null) + { + int numberOfTaps = recognizer.NumberOfTapsRequired; + + if (numberOfTaps > 2) + return GestureLayer.GestureType.TripleTap; + else if (numberOfTaps > 1) + return GestureLayer.GestureType.DoubleTap; + } + return GestureLayer.GestureType.Tap; + } + } + + public override event PropertyChangedEventHandler PropertyChanged; + + protected override void OnStarted(View sender, object data) + { + } + + protected override void OnMoved(View sender, object data) + { + } + + protected override void OnCompleted(View sender, object data) + { + (Recognizer as TapGestureRecognizer)?.SendTapped(sender); + } + + protected override void OnCanceled(View sender, object data) + { + } + + void OnRecognizerPropertyChanged(object sender, PropertyChangedEventArgs e) + { + PropertyChanged?.Invoke(this, e); + } + } +}
\ No newline at end of file |