#define EFL_BETA #pragma warning disable CS1591 using System; using System.Runtime.InteropServices; using System.Collections.Generic; using System.Linq; using System.Threading; using System.ComponentModel; namespace Efl { namespace Gesture { /// This is a BETA class. It can be modified or removed in the future. Do not use it for product development. [Efl.Gesture.IEventsConcrete.NativeMethods] [Efl.Eo.BindingEntity] public interface IEvents : Efl.Eo.IWrapper, IDisposable { /// Event for tap gesture /// event EventHandler GestureTapEvt; /// Event for double tap gesture /// event EventHandler GestureDoubleTapEvt; /// Event for triple tap gesture /// event EventHandler GestureTripleTapEvt; /// Event for long tap gesture /// event EventHandler GestureLongTapEvt; /// Event for momentum gesture /// event EventHandler GestureMomentumEvt; /// Event for flick gesture /// event EventHandler GestureFlickEvt; /// Event for zoom gesture /// event EventHandler GestureZoomEvt; } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureTapEvt_Args : EventArgs { /// Actual event payload. /// Event for tap gesture public Efl.Canvas.GestureTap arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureDoubleTapEvt_Args : EventArgs { /// Actual event payload. /// Event for double tap gesture public Efl.Canvas.GestureDoubleTap arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureTripleTapEvt_Args : EventArgs { /// Actual event payload. /// Event for triple tap gesture public Efl.Canvas.GestureTripleTap arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureLongTapEvt_Args : EventArgs { /// Actual event payload. /// Event for long tap gesture public Efl.Canvas.GestureLongTap arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureMomentumEvt_Args : EventArgs { /// Actual event payload. /// Event for momentum gesture public Efl.Canvas.GestureMomentum arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureFlickEvt_Args : EventArgs { /// Actual event payload. /// Event for flick gesture public Efl.Canvas.GestureFlick arg { get; set; } } /// Event argument wrapper for event . [Efl.Eo.BindingEntity] public class IEventsGestureZoomEvt_Args : EventArgs { /// Actual event payload. /// Event for zoom gesture public Efl.Canvas.GestureZoom arg { get; set; } } /// This is a BETA class. It can be modified or removed in the future. Do not use it for product development. sealed public class IEventsConcrete : Efl.Eo.EoWrapper , IEvents { /// Pointer to the native class description. public override System.IntPtr NativeClass { get { if (((object)this).GetType() == typeof(IEventsConcrete)) { return GetEflClassStatic(); } else { return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()]; } } } /// Subclasses should override this constructor if they are expected to be instantiated from native code. /// Do not call this constructor directly. /// Tag struct storing the native handle of the object being constructed. private IEventsConcrete(ConstructingHandle ch) : base(ch) { } [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr efl_gesture_events_interface_get(); /// Initializes a new instance of the class. /// Internal usage: This is used when interacting with C code and should not be used directly. /// The native pointer to be wrapped. private IEventsConcrete(Efl.Eo.Globals.WrappingHandle wh) : base(wh) { } /// Event for tap gesture /// public event EventHandler GestureTapEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureTapEvt_Args args = new Efl.Gesture.IEventsGestureTapEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTap); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_TAP"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_TAP"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureTapEvt. public void OnGestureTapEvt(Efl.Gesture.IEventsGestureTapEvt_Args e) { var key = "_EFL_EVENT_GESTURE_TAP"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for double tap gesture /// public event EventHandler GestureDoubleTapEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureDoubleTapEvt_Args args = new Efl.Gesture.IEventsGestureDoubleTapEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureDoubleTap); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_DOUBLE_TAP"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureDoubleTapEvt. public void OnGestureDoubleTapEvt(Efl.Gesture.IEventsGestureDoubleTapEvt_Args e) { var key = "_EFL_EVENT_GESTURE_DOUBLE_TAP"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for triple tap gesture /// public event EventHandler GestureTripleTapEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureTripleTapEvt_Args args = new Efl.Gesture.IEventsGestureTripleTapEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureTripleTap); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_TRIPLE_TAP"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureTripleTapEvt. public void OnGestureTripleTapEvt(Efl.Gesture.IEventsGestureTripleTapEvt_Args e) { var key = "_EFL_EVENT_GESTURE_TRIPLE_TAP"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for long tap gesture /// public event EventHandler GestureLongTapEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureLongTapEvt_Args args = new Efl.Gesture.IEventsGestureLongTapEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureLongTap); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_LONG_TAP"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_LONG_TAP"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureLongTapEvt. public void OnGestureLongTapEvt(Efl.Gesture.IEventsGestureLongTapEvt_Args e) { var key = "_EFL_EVENT_GESTURE_LONG_TAP"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for momentum gesture /// public event EventHandler GestureMomentumEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureMomentumEvt_Args args = new Efl.Gesture.IEventsGestureMomentumEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureMomentum); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_MOMENTUM"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_MOMENTUM"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureMomentumEvt. public void OnGestureMomentumEvt(Efl.Gesture.IEventsGestureMomentumEvt_Args e) { var key = "_EFL_EVENT_GESTURE_MOMENTUM"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for flick gesture /// public event EventHandler GestureFlickEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureFlickEvt_Args args = new Efl.Gesture.IEventsGestureFlickEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureFlick); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_FLICK"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_FLICK"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureFlickEvt. public void OnGestureFlickEvt(Efl.Gesture.IEventsGestureFlickEvt_Args e) { var key = "_EFL_EVENT_GESTURE_FLICK"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } /// Event for zoom gesture /// public event EventHandler GestureZoomEvt { add { lock (eflBindingEventLock) { Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) => { var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target; if (obj != null) { Efl.Gesture.IEventsGestureZoomEvt_Args args = new Efl.Gesture.IEventsGestureZoomEvt_Args(); args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Canvas.GestureZoom); try { value?.Invoke(obj, args); } catch (Exception e) { Eina.Log.Error(e.ToString()); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } }; string key = "_EFL_EVENT_GESTURE_ZOOM"; AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value); } } remove { lock (eflBindingEventLock) { string key = "_EFL_EVENT_GESTURE_ZOOM"; RemoveNativeEventHandler(efl.Libs.Evas, key, value); } } } /// Method to raise event GestureZoomEvt. public void OnGestureZoomEvt(Efl.Gesture.IEventsGestureZoomEvt_Args e) { var key = "_EFL_EVENT_GESTURE_ZOOM"; IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key); if (desc == IntPtr.Zero) { Eina.Log.Error($"Failed to get native event {key}"); return; } IntPtr info = e.arg.NativeHandle; Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info); } private static IntPtr GetEflClassStatic() { return Efl.Gesture.IEventsConcrete.efl_gesture_events_interface_get(); } /// Wrapper for native methods and virtual method delegates. /// For internal use by generated code only. public new class NativeMethods : Efl.Eo.EoWrapper.NativeMethods { /// Gets the list of Eo operations to override. /// The list of Eo operations to be overload. public override System.Collections.Generic.List GetEoOps(System.Type type) { var descs = new System.Collections.Generic.List(); return descs; } /// Returns the Eo class for the native methods of this class. /// The native class pointer. public override IntPtr GetEflClass() { return Efl.Gesture.IEventsConcrete.efl_gesture_events_interface_get(); } #pragma warning disable CA1707, CS1591, SA1300, SA1600 #pragma warning restore CA1707, CS1591, SA1300, SA1600 } } } } #if EFL_BETA #pragma warning disable CS1591 public static class Efl_GestureIEventsConcrete_ExtensionMethods { } #pragma warning restore CS1591 #endif