summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/TapGestureHandler.cs56
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