1 #pragma warning disable CS1591
3 using System.Runtime.InteropServices;
4 using System.Collections.Generic;
6 using System.Threading;
7 using System.ComponentModel;
12 /// <summary>An object implementing this interface can send pointer events.
13 /// Windows and canvas objects may send input events.
15 /// A "pointer" refers to the main pointing device, which could be a mouse, trackpad, finger, pen, etc... In other words, the finger id in any pointer event will always be 0.
17 /// A "finger" refers to a single point of input, usually in an absolute coordinates input device, and that can support more than one input position at at time (think multi-touch screens). The first finger (id 0) is sent along with a pointer event, so be careful to not handle those events twice. Note that if the input device can support "hovering", it is entirely possible to receive move events without down coming first.
19 /// A "key" is a key press from a keyboard or equivalent type of input device. Long, repeated, key presses will always happen like this: down...up,down...up,down...up (not down...up or down...down...down...up).</summary>
20 [Efl.Input.IInterfaceConcrete.NativeMethods]
21 public interface IInterface :
22 Efl.Eo.IWrapper, IDisposable
24 /// <summary>Check if input events from a given seat is enabled.</summary>
25 /// <param name="seat">The seat to act on.</param>
26 /// <returns><c>true</c> to enable events for a seat or <c>false</c> otherwise.</returns>
27 bool GetSeatEventFilter(Efl.Input.Device seat);
28 /// <summary>Add or remove a given seat to the filter list. If the filter list is empty this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is in the list.</summary>
29 /// <param name="seat">The seat to act on.</param>
30 /// <param name="enable"><c>true</c> to enable events for a seat or <c>false</c> otherwise.</param>
31 void SetSeatEventFilter(Efl.Input.Device seat, bool enable);
32 /// <summary>Main pointer move (current and previous positions are known).</summary>
33 event EventHandler<Efl.Input.IInterfacePointerMoveEvt_Args> PointerMoveEvt;
34 /// <summary>Main pointer button pressed (button id is known).</summary>
35 event EventHandler<Efl.Input.IInterfacePointerDownEvt_Args> PointerDownEvt;
36 /// <summary>Main pointer button released (button id is known).</summary>
37 event EventHandler<Efl.Input.IInterfacePointerUpEvt_Args> PointerUpEvt;
38 /// <summary>Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.</summary>
39 event EventHandler<Efl.Input.IInterfacePointerCancelEvt_Args> PointerCancelEvt;
40 /// <summary>Pointer entered a window or a widget.</summary>
41 event EventHandler<Efl.Input.IInterfacePointerInEvt_Args> PointerInEvt;
42 /// <summary>Pointer left a window or a widget.</summary>
43 event EventHandler<Efl.Input.IInterfacePointerOutEvt_Args> PointerOutEvt;
44 /// <summary>Mouse wheel event.</summary>
45 event EventHandler<Efl.Input.IInterfacePointerWheelEvt_Args> PointerWheelEvt;
46 /// <summary>Pen or other axis event update.</summary>
47 event EventHandler<Efl.Input.IInterfacePointerAxisEvt_Args> PointerAxisEvt;
48 /// <summary>Finger moved (current and previous positions are known).</summary>
49 event EventHandler<Efl.Input.IInterfaceFingerMoveEvt_Args> FingerMoveEvt;
50 /// <summary>Finger pressed (finger id is known).</summary>
51 event EventHandler<Efl.Input.IInterfaceFingerDownEvt_Args> FingerDownEvt;
52 /// <summary>Finger released (finger id is known).</summary>
53 event EventHandler<Efl.Input.IInterfaceFingerUpEvt_Args> FingerUpEvt;
54 /// <summary>Keyboard key press.</summary>
55 event EventHandler<Efl.Input.IInterfaceKeyDownEvt_Args> KeyDownEvt;
56 /// <summary>Keyboard key release.</summary>
57 event EventHandler<Efl.Input.IInterfaceKeyUpEvt_Args> KeyUpEvt;
58 /// <summary>All input events are on hold or resumed.</summary>
59 event EventHandler<Efl.Input.IInterfaceHoldEvt_Args> HoldEvt;
60 /// <summary>A focus in event.</summary>
61 event EventHandler<Efl.Input.IInterfaceFocusInEvt_Args> FocusInEvt;
62 /// <summary>A focus out event.</summary>
63 event EventHandler<Efl.Input.IInterfaceFocusOutEvt_Args> FocusOutEvt;
65 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerMoveEvt"/>.</summary>
66 public class IInterfacePointerMoveEvt_Args : EventArgs {
67 ///<summary>Actual event payload.</summary>
68 public Efl.Input.Pointer arg { get; set; }
70 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerDownEvt"/>.</summary>
71 public class IInterfacePointerDownEvt_Args : EventArgs {
72 ///<summary>Actual event payload.</summary>
73 public Efl.Input.Pointer arg { get; set; }
75 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerUpEvt"/>.</summary>
76 public class IInterfacePointerUpEvt_Args : EventArgs {
77 ///<summary>Actual event payload.</summary>
78 public Efl.Input.Pointer arg { get; set; }
80 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerCancelEvt"/>.</summary>
81 public class IInterfacePointerCancelEvt_Args : EventArgs {
82 ///<summary>Actual event payload.</summary>
83 public Efl.Input.Pointer arg { get; set; }
85 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerInEvt"/>.</summary>
86 public class IInterfacePointerInEvt_Args : EventArgs {
87 ///<summary>Actual event payload.</summary>
88 public Efl.Input.Pointer arg { get; set; }
90 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerOutEvt"/>.</summary>
91 public class IInterfacePointerOutEvt_Args : EventArgs {
92 ///<summary>Actual event payload.</summary>
93 public Efl.Input.Pointer arg { get; set; }
95 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerWheelEvt"/>.</summary>
96 public class IInterfacePointerWheelEvt_Args : EventArgs {
97 ///<summary>Actual event payload.</summary>
98 public Efl.Input.Pointer arg { get; set; }
100 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.PointerAxisEvt"/>.</summary>
101 public class IInterfacePointerAxisEvt_Args : EventArgs {
102 ///<summary>Actual event payload.</summary>
103 public Efl.Input.Pointer arg { get; set; }
105 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.FingerMoveEvt"/>.</summary>
106 public class IInterfaceFingerMoveEvt_Args : EventArgs {
107 ///<summary>Actual event payload.</summary>
108 public Efl.Input.Pointer arg { get; set; }
110 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.FingerDownEvt"/>.</summary>
111 public class IInterfaceFingerDownEvt_Args : EventArgs {
112 ///<summary>Actual event payload.</summary>
113 public Efl.Input.Pointer arg { get; set; }
115 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.FingerUpEvt"/>.</summary>
116 public class IInterfaceFingerUpEvt_Args : EventArgs {
117 ///<summary>Actual event payload.</summary>
118 public Efl.Input.Pointer arg { get; set; }
120 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.KeyDownEvt"/>.</summary>
121 public class IInterfaceKeyDownEvt_Args : EventArgs {
122 ///<summary>Actual event payload.</summary>
123 public Efl.Input.Key arg { get; set; }
125 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.KeyUpEvt"/>.</summary>
126 public class IInterfaceKeyUpEvt_Args : EventArgs {
127 ///<summary>Actual event payload.</summary>
128 public Efl.Input.Key arg { get; set; }
130 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.HoldEvt"/>.</summary>
131 public class IInterfaceHoldEvt_Args : EventArgs {
132 ///<summary>Actual event payload.</summary>
133 public Efl.Input.Hold arg { get; set; }
135 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.FocusInEvt"/>.</summary>
136 public class IInterfaceFocusInEvt_Args : EventArgs {
137 ///<summary>Actual event payload.</summary>
138 public Efl.Input.Focus arg { get; set; }
140 ///<summary>Event argument wrapper for event <see cref="Efl.Input.IInterface.FocusOutEvt"/>.</summary>
141 public class IInterfaceFocusOutEvt_Args : EventArgs {
142 ///<summary>Actual event payload.</summary>
143 public Efl.Input.Focus arg { get; set; }
145 /// <summary>An object implementing this interface can send pointer events.
146 /// Windows and canvas objects may send input events.
148 /// A "pointer" refers to the main pointing device, which could be a mouse, trackpad, finger, pen, etc... In other words, the finger id in any pointer event will always be 0.
150 /// A "finger" refers to a single point of input, usually in an absolute coordinates input device, and that can support more than one input position at at time (think multi-touch screens). The first finger (id 0) is sent along with a pointer event, so be careful to not handle those events twice. Note that if the input device can support "hovering", it is entirely possible to receive move events without down coming first.
152 /// A "key" is a key press from a keyboard or equivalent type of input device. Long, repeated, key presses will always happen like this: down...up,down...up,down...up (not down...up or down...down...down...up).</summary>
153 sealed public class IInterfaceConcrete :
158 ///<summary>Pointer to the native class description.</summary>
159 public System.IntPtr NativeClass
163 if (((object)this).GetType() == typeof(IInterfaceConcrete))
165 return GetEflClassStatic();
169 return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
174 private Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)> eoEvents = new Dictionary<(IntPtr desc, object evtDelegate), (IntPtr evtCallerPtr, Efl.EventCb evtCaller)>();
175 private readonly object eventLock = new object();
176 private System.IntPtr handle;
177 ///<summary>Pointer to the native instance.</summary>
178 public System.IntPtr NativeHandle
180 get { return handle; }
183 [System.Runtime.InteropServices.DllImport(efl.Libs.Evas)] internal static extern System.IntPtr
184 efl_input_interface_interface_get();
185 /// <summary>Initializes a new instance of the <see cref="IInterface"/> class.
186 /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
187 private IInterfaceConcrete(System.IntPtr raw)
191 ///<summary>Destructor.</summary>
192 ~IInterfaceConcrete()
197 ///<summary>Releases the underlying native instance.</summary>
198 private void Dispose(bool disposing)
200 if (handle != System.IntPtr.Zero)
203 handle = IntPtr.Zero;
205 IntPtr gcHandlePtr = IntPtr.Zero;
206 if (eoEvents.Count != 0)
208 GCHandle gcHandle = GCHandle.Alloc(eoEvents);
209 gcHandlePtr = GCHandle.ToIntPtr(gcHandle);
214 Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
218 Monitor.Enter(Efl.All.InitLock);
219 if (Efl.All.MainLoopInitialized)
221 Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
224 Monitor.Exit(Efl.All.InitLock);
230 ///<summary>Releases the underlying native instance.</summary>
231 public void Dispose()
234 GC.SuppressFinalize(this);
237 /// <summary>Verifies if the given object is equal to this one.</summary>
238 /// <param name="instance">The object to compare to.</param>
239 /// <returns>True if both objects point to the same native object.</returns>
240 public override bool Equals(object instance)
242 var other = instance as Efl.Object;
247 return this.NativeHandle == other.NativeHandle;
250 /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
251 /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
252 public override int GetHashCode()
254 return this.NativeHandle.ToInt32();
257 /// <summary>Turns the native pointer into a string representation.</summary>
258 /// <returns>A string with the type and the native pointer for this object.</returns>
259 public override String ToString()
261 return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
264 ///<summary>Adds a new event handler, registering it to the native event. For internal use only.</summary>
265 ///<param name="lib">The name of the native library definining the event.</param>
266 ///<param name="key">The name of the native event.</param>
267 ///<param name="evtCaller">Delegate to be called by native code on event raising.</param>
268 ///<param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
269 private void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
271 IntPtr desc = Efl.EventDescription.GetNative(lib, key);
272 if (desc == IntPtr.Zero)
274 Eina.Log.Error($"Failed to get native event {key}");
277 if (eoEvents.ContainsKey((desc, evtDelegate)))
279 Eina.Log.Warning($"Event proxy for event {key} already registered!");
283 IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
284 if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, IntPtr.Zero))
286 Eina.Log.Error($"Failed to add event proxy for event {key}");
290 eoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
291 Eina.Error.RaiseIfUnhandledException();
294 ///<summary>Removes the given event handler for the given event. For internal use only.</summary>
295 ///<param name="lib">The name of the native library definining the event.</param>
296 ///<param name="key">The name of the native event.</param>
297 ///<param name="evtDelegate">The delegate to be removed.</param>
298 private void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
300 IntPtr desc = Efl.EventDescription.GetNative(lib, key);
301 if (desc == IntPtr.Zero)
303 Eina.Log.Error($"Failed to get native event {key}");
307 var evtPair = (desc, evtDelegate);
308 if (eoEvents.TryGetValue(evtPair, out var caller))
310 if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, IntPtr.Zero))
312 Eina.Log.Error($"Failed to remove event proxy for event {key}");
316 eoEvents.Remove(evtPair);
317 Eina.Error.RaiseIfUnhandledException();
321 Eina.Log.Error($"Trying to remove proxy for event {key} when it is nothing registered.");
325 /// <summary>Main pointer move (current and previous positions are known).</summary>
326 public event EventHandler<Efl.Input.IInterfacePointerMoveEvt_Args> PointerMoveEvt
332 var wRef = new WeakReference(this);
333 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
335 var obj = wRef.Target as Efl.Eo.IWrapper;
338 Efl.Input.IInterfacePointerMoveEvt_Args args = new Efl.Input.IInterfacePointerMoveEvt_Args();
339 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
342 value?.Invoke(obj, args);
346 Eina.Log.Error(e.ToString());
347 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
352 string key = "_EFL_EVENT_POINTER_MOVE";
353 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
361 string key = "_EFL_EVENT_POINTER_MOVE";
362 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
366 ///<summary>Method to raise event PointerMoveEvt.</summary>
367 public void OnPointerMoveEvt(Efl.Input.IInterfacePointerMoveEvt_Args e)
369 var key = "_EFL_EVENT_POINTER_MOVE";
370 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
371 if (desc == IntPtr.Zero)
373 Eina.Log.Error($"Failed to get native event {key}");
377 IntPtr info = e.arg.NativeHandle;
378 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
380 /// <summary>Main pointer button pressed (button id is known).</summary>
381 public event EventHandler<Efl.Input.IInterfacePointerDownEvt_Args> PointerDownEvt
387 var wRef = new WeakReference(this);
388 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
390 var obj = wRef.Target as Efl.Eo.IWrapper;
393 Efl.Input.IInterfacePointerDownEvt_Args args = new Efl.Input.IInterfacePointerDownEvt_Args();
394 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
397 value?.Invoke(obj, args);
401 Eina.Log.Error(e.ToString());
402 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
407 string key = "_EFL_EVENT_POINTER_DOWN";
408 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
416 string key = "_EFL_EVENT_POINTER_DOWN";
417 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
421 ///<summary>Method to raise event PointerDownEvt.</summary>
422 public void OnPointerDownEvt(Efl.Input.IInterfacePointerDownEvt_Args e)
424 var key = "_EFL_EVENT_POINTER_DOWN";
425 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
426 if (desc == IntPtr.Zero)
428 Eina.Log.Error($"Failed to get native event {key}");
432 IntPtr info = e.arg.NativeHandle;
433 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
435 /// <summary>Main pointer button released (button id is known).</summary>
436 public event EventHandler<Efl.Input.IInterfacePointerUpEvt_Args> PointerUpEvt
442 var wRef = new WeakReference(this);
443 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
445 var obj = wRef.Target as Efl.Eo.IWrapper;
448 Efl.Input.IInterfacePointerUpEvt_Args args = new Efl.Input.IInterfacePointerUpEvt_Args();
449 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
452 value?.Invoke(obj, args);
456 Eina.Log.Error(e.ToString());
457 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
462 string key = "_EFL_EVENT_POINTER_UP";
463 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
471 string key = "_EFL_EVENT_POINTER_UP";
472 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
476 ///<summary>Method to raise event PointerUpEvt.</summary>
477 public void OnPointerUpEvt(Efl.Input.IInterfacePointerUpEvt_Args e)
479 var key = "_EFL_EVENT_POINTER_UP";
480 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
481 if (desc == IntPtr.Zero)
483 Eina.Log.Error($"Failed to get native event {key}");
487 IntPtr info = e.arg.NativeHandle;
488 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
490 /// <summary>Main pointer button press was cancelled (button id is known). This can happen in rare cases when the window manager passes the focus to a more urgent window, for instance. You probably don't need to listen to this event, as it will be accompanied by an up event.</summary>
491 public event EventHandler<Efl.Input.IInterfacePointerCancelEvt_Args> PointerCancelEvt
497 var wRef = new WeakReference(this);
498 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
500 var obj = wRef.Target as Efl.Eo.IWrapper;
503 Efl.Input.IInterfacePointerCancelEvt_Args args = new Efl.Input.IInterfacePointerCancelEvt_Args();
504 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
507 value?.Invoke(obj, args);
511 Eina.Log.Error(e.ToString());
512 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
517 string key = "_EFL_EVENT_POINTER_CANCEL";
518 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
526 string key = "_EFL_EVENT_POINTER_CANCEL";
527 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
531 ///<summary>Method to raise event PointerCancelEvt.</summary>
532 public void OnPointerCancelEvt(Efl.Input.IInterfacePointerCancelEvt_Args e)
534 var key = "_EFL_EVENT_POINTER_CANCEL";
535 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
536 if (desc == IntPtr.Zero)
538 Eina.Log.Error($"Failed to get native event {key}");
542 IntPtr info = e.arg.NativeHandle;
543 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
545 /// <summary>Pointer entered a window or a widget.</summary>
546 public event EventHandler<Efl.Input.IInterfacePointerInEvt_Args> PointerInEvt
552 var wRef = new WeakReference(this);
553 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
555 var obj = wRef.Target as Efl.Eo.IWrapper;
558 Efl.Input.IInterfacePointerInEvt_Args args = new Efl.Input.IInterfacePointerInEvt_Args();
559 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
562 value?.Invoke(obj, args);
566 Eina.Log.Error(e.ToString());
567 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
572 string key = "_EFL_EVENT_POINTER_IN";
573 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
581 string key = "_EFL_EVENT_POINTER_IN";
582 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
586 ///<summary>Method to raise event PointerInEvt.</summary>
587 public void OnPointerInEvt(Efl.Input.IInterfacePointerInEvt_Args e)
589 var key = "_EFL_EVENT_POINTER_IN";
590 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
591 if (desc == IntPtr.Zero)
593 Eina.Log.Error($"Failed to get native event {key}");
597 IntPtr info = e.arg.NativeHandle;
598 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
600 /// <summary>Pointer left a window or a widget.</summary>
601 public event EventHandler<Efl.Input.IInterfacePointerOutEvt_Args> PointerOutEvt
607 var wRef = new WeakReference(this);
608 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
610 var obj = wRef.Target as Efl.Eo.IWrapper;
613 Efl.Input.IInterfacePointerOutEvt_Args args = new Efl.Input.IInterfacePointerOutEvt_Args();
614 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
617 value?.Invoke(obj, args);
621 Eina.Log.Error(e.ToString());
622 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
627 string key = "_EFL_EVENT_POINTER_OUT";
628 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
636 string key = "_EFL_EVENT_POINTER_OUT";
637 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
641 ///<summary>Method to raise event PointerOutEvt.</summary>
642 public void OnPointerOutEvt(Efl.Input.IInterfacePointerOutEvt_Args e)
644 var key = "_EFL_EVENT_POINTER_OUT";
645 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
646 if (desc == IntPtr.Zero)
648 Eina.Log.Error($"Failed to get native event {key}");
652 IntPtr info = e.arg.NativeHandle;
653 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
655 /// <summary>Mouse wheel event.</summary>
656 public event EventHandler<Efl.Input.IInterfacePointerWheelEvt_Args> PointerWheelEvt
662 var wRef = new WeakReference(this);
663 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
665 var obj = wRef.Target as Efl.Eo.IWrapper;
668 Efl.Input.IInterfacePointerWheelEvt_Args args = new Efl.Input.IInterfacePointerWheelEvt_Args();
669 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
672 value?.Invoke(obj, args);
676 Eina.Log.Error(e.ToString());
677 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
682 string key = "_EFL_EVENT_POINTER_WHEEL";
683 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
691 string key = "_EFL_EVENT_POINTER_WHEEL";
692 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
696 ///<summary>Method to raise event PointerWheelEvt.</summary>
697 public void OnPointerWheelEvt(Efl.Input.IInterfacePointerWheelEvt_Args e)
699 var key = "_EFL_EVENT_POINTER_WHEEL";
700 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
701 if (desc == IntPtr.Zero)
703 Eina.Log.Error($"Failed to get native event {key}");
707 IntPtr info = e.arg.NativeHandle;
708 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
710 /// <summary>Pen or other axis event update.</summary>
711 public event EventHandler<Efl.Input.IInterfacePointerAxisEvt_Args> PointerAxisEvt
717 var wRef = new WeakReference(this);
718 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
720 var obj = wRef.Target as Efl.Eo.IWrapper;
723 Efl.Input.IInterfacePointerAxisEvt_Args args = new Efl.Input.IInterfacePointerAxisEvt_Args();
724 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
727 value?.Invoke(obj, args);
731 Eina.Log.Error(e.ToString());
732 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
737 string key = "_EFL_EVENT_POINTER_AXIS";
738 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
746 string key = "_EFL_EVENT_POINTER_AXIS";
747 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
751 ///<summary>Method to raise event PointerAxisEvt.</summary>
752 public void OnPointerAxisEvt(Efl.Input.IInterfacePointerAxisEvt_Args e)
754 var key = "_EFL_EVENT_POINTER_AXIS";
755 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
756 if (desc == IntPtr.Zero)
758 Eina.Log.Error($"Failed to get native event {key}");
762 IntPtr info = e.arg.NativeHandle;
763 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
765 /// <summary>Finger moved (current and previous positions are known).</summary>
766 public event EventHandler<Efl.Input.IInterfaceFingerMoveEvt_Args> FingerMoveEvt
772 var wRef = new WeakReference(this);
773 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
775 var obj = wRef.Target as Efl.Eo.IWrapper;
778 Efl.Input.IInterfaceFingerMoveEvt_Args args = new Efl.Input.IInterfaceFingerMoveEvt_Args();
779 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
782 value?.Invoke(obj, args);
786 Eina.Log.Error(e.ToString());
787 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
792 string key = "_EFL_EVENT_FINGER_MOVE";
793 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
801 string key = "_EFL_EVENT_FINGER_MOVE";
802 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
806 ///<summary>Method to raise event FingerMoveEvt.</summary>
807 public void OnFingerMoveEvt(Efl.Input.IInterfaceFingerMoveEvt_Args e)
809 var key = "_EFL_EVENT_FINGER_MOVE";
810 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
811 if (desc == IntPtr.Zero)
813 Eina.Log.Error($"Failed to get native event {key}");
817 IntPtr info = e.arg.NativeHandle;
818 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
820 /// <summary>Finger pressed (finger id is known).</summary>
821 public event EventHandler<Efl.Input.IInterfaceFingerDownEvt_Args> FingerDownEvt
827 var wRef = new WeakReference(this);
828 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
830 var obj = wRef.Target as Efl.Eo.IWrapper;
833 Efl.Input.IInterfaceFingerDownEvt_Args args = new Efl.Input.IInterfaceFingerDownEvt_Args();
834 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
837 value?.Invoke(obj, args);
841 Eina.Log.Error(e.ToString());
842 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
847 string key = "_EFL_EVENT_FINGER_DOWN";
848 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
856 string key = "_EFL_EVENT_FINGER_DOWN";
857 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
861 ///<summary>Method to raise event FingerDownEvt.</summary>
862 public void OnFingerDownEvt(Efl.Input.IInterfaceFingerDownEvt_Args e)
864 var key = "_EFL_EVENT_FINGER_DOWN";
865 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
866 if (desc == IntPtr.Zero)
868 Eina.Log.Error($"Failed to get native event {key}");
872 IntPtr info = e.arg.NativeHandle;
873 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
875 /// <summary>Finger released (finger id is known).</summary>
876 public event EventHandler<Efl.Input.IInterfaceFingerUpEvt_Args> FingerUpEvt
882 var wRef = new WeakReference(this);
883 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
885 var obj = wRef.Target as Efl.Eo.IWrapper;
888 Efl.Input.IInterfaceFingerUpEvt_Args args = new Efl.Input.IInterfaceFingerUpEvt_Args();
889 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Pointer);
892 value?.Invoke(obj, args);
896 Eina.Log.Error(e.ToString());
897 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
902 string key = "_EFL_EVENT_FINGER_UP";
903 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
911 string key = "_EFL_EVENT_FINGER_UP";
912 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
916 ///<summary>Method to raise event FingerUpEvt.</summary>
917 public void OnFingerUpEvt(Efl.Input.IInterfaceFingerUpEvt_Args e)
919 var key = "_EFL_EVENT_FINGER_UP";
920 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
921 if (desc == IntPtr.Zero)
923 Eina.Log.Error($"Failed to get native event {key}");
927 IntPtr info = e.arg.NativeHandle;
928 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
930 /// <summary>Keyboard key press.</summary>
931 public event EventHandler<Efl.Input.IInterfaceKeyDownEvt_Args> KeyDownEvt
937 var wRef = new WeakReference(this);
938 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
940 var obj = wRef.Target as Efl.Eo.IWrapper;
943 Efl.Input.IInterfaceKeyDownEvt_Args args = new Efl.Input.IInterfaceKeyDownEvt_Args();
944 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
947 value?.Invoke(obj, args);
951 Eina.Log.Error(e.ToString());
952 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
957 string key = "_EFL_EVENT_KEY_DOWN";
958 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
966 string key = "_EFL_EVENT_KEY_DOWN";
967 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
971 ///<summary>Method to raise event KeyDownEvt.</summary>
972 public void OnKeyDownEvt(Efl.Input.IInterfaceKeyDownEvt_Args e)
974 var key = "_EFL_EVENT_KEY_DOWN";
975 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
976 if (desc == IntPtr.Zero)
978 Eina.Log.Error($"Failed to get native event {key}");
982 IntPtr info = e.arg.NativeHandle;
983 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
985 /// <summary>Keyboard key release.</summary>
986 public event EventHandler<Efl.Input.IInterfaceKeyUpEvt_Args> KeyUpEvt
992 var wRef = new WeakReference(this);
993 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
995 var obj = wRef.Target as Efl.Eo.IWrapper;
998 Efl.Input.IInterfaceKeyUpEvt_Args args = new Efl.Input.IInterfaceKeyUpEvt_Args();
999 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Key);
1002 value?.Invoke(obj, args);
1006 Eina.Log.Error(e.ToString());
1007 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1012 string key = "_EFL_EVENT_KEY_UP";
1013 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
1021 string key = "_EFL_EVENT_KEY_UP";
1022 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
1026 ///<summary>Method to raise event KeyUpEvt.</summary>
1027 public void OnKeyUpEvt(Efl.Input.IInterfaceKeyUpEvt_Args e)
1029 var key = "_EFL_EVENT_KEY_UP";
1030 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
1031 if (desc == IntPtr.Zero)
1033 Eina.Log.Error($"Failed to get native event {key}");
1037 IntPtr info = e.arg.NativeHandle;
1038 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
1040 /// <summary>All input events are on hold or resumed.</summary>
1041 public event EventHandler<Efl.Input.IInterfaceHoldEvt_Args> HoldEvt
1047 var wRef = new WeakReference(this);
1048 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
1050 var obj = wRef.Target as Efl.Eo.IWrapper;
1053 Efl.Input.IInterfaceHoldEvt_Args args = new Efl.Input.IInterfaceHoldEvt_Args();
1054 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Hold);
1057 value?.Invoke(obj, args);
1061 Eina.Log.Error(e.ToString());
1062 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1067 string key = "_EFL_EVENT_HOLD";
1068 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
1076 string key = "_EFL_EVENT_HOLD";
1077 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
1081 ///<summary>Method to raise event HoldEvt.</summary>
1082 public void OnHoldEvt(Efl.Input.IInterfaceHoldEvt_Args e)
1084 var key = "_EFL_EVENT_HOLD";
1085 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
1086 if (desc == IntPtr.Zero)
1088 Eina.Log.Error($"Failed to get native event {key}");
1092 IntPtr info = e.arg.NativeHandle;
1093 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
1095 /// <summary>A focus in event.</summary>
1096 public event EventHandler<Efl.Input.IInterfaceFocusInEvt_Args> FocusInEvt
1102 var wRef = new WeakReference(this);
1103 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
1105 var obj = wRef.Target as Efl.Eo.IWrapper;
1108 Efl.Input.IInterfaceFocusInEvt_Args args = new Efl.Input.IInterfaceFocusInEvt_Args();
1109 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
1112 value?.Invoke(obj, args);
1116 Eina.Log.Error(e.ToString());
1117 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1122 string key = "_EFL_EVENT_FOCUS_IN";
1123 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
1131 string key = "_EFL_EVENT_FOCUS_IN";
1132 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
1136 ///<summary>Method to raise event FocusInEvt.</summary>
1137 public void OnFocusInEvt(Efl.Input.IInterfaceFocusInEvt_Args e)
1139 var key = "_EFL_EVENT_FOCUS_IN";
1140 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
1141 if (desc == IntPtr.Zero)
1143 Eina.Log.Error($"Failed to get native event {key}");
1147 IntPtr info = e.arg.NativeHandle;
1148 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
1150 /// <summary>A focus out event.</summary>
1151 public event EventHandler<Efl.Input.IInterfaceFocusOutEvt_Args> FocusOutEvt
1157 var wRef = new WeakReference(this);
1158 Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>
1160 var obj = wRef.Target as Efl.Eo.IWrapper;
1163 Efl.Input.IInterfaceFocusOutEvt_Args args = new Efl.Input.IInterfaceFocusOutEvt_Args();
1164 args.arg = (Efl.Eo.Globals.CreateWrapperFor(evt.Info) as Efl.Input.Focus);
1167 value?.Invoke(obj, args);
1171 Eina.Log.Error(e.ToString());
1172 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1177 string key = "_EFL_EVENT_FOCUS_OUT";
1178 AddNativeEventHandler(efl.Libs.Evas, key, callerCb, value);
1186 string key = "_EFL_EVENT_FOCUS_OUT";
1187 RemoveNativeEventHandler(efl.Libs.Evas, key, value);
1191 ///<summary>Method to raise event FocusOutEvt.</summary>
1192 public void OnFocusOutEvt(Efl.Input.IInterfaceFocusOutEvt_Args e)
1194 var key = "_EFL_EVENT_FOCUS_OUT";
1195 IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Evas, key);
1196 if (desc == IntPtr.Zero)
1198 Eina.Log.Error($"Failed to get native event {key}");
1202 IntPtr info = e.arg.NativeHandle;
1203 Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
1205 /// <summary>Check if input events from a given seat is enabled.</summary>
1206 /// <param name="seat">The seat to act on.</param>
1207 /// <returns><c>true</c> to enable events for a seat or <c>false</c> otherwise.</returns>
1208 public bool GetSeatEventFilter(Efl.Input.Device seat) {
1209 var _ret_var = Efl.Input.IInterfaceConcrete.NativeMethods.efl_input_seat_event_filter_get_ptr.Value.Delegate(this.NativeHandle,seat);
1210 Eina.Error.RaiseIfUnhandledException();
1213 /// <summary>Add or remove a given seat to the filter list. If the filter list is empty this object will report mouse, keyboard and focus events from any seat, otherwise those events will only be reported if the event comes from a seat that is in the list.</summary>
1214 /// <param name="seat">The seat to act on.</param>
1215 /// <param name="enable"><c>true</c> to enable events for a seat or <c>false</c> otherwise.</param>
1216 public void SetSeatEventFilter(Efl.Input.Device seat, bool enable) {
1217 Efl.Input.IInterfaceConcrete.NativeMethods.efl_input_seat_event_filter_set_ptr.Value.Delegate(this.NativeHandle,seat, enable);
1218 Eina.Error.RaiseIfUnhandledException();
1220 private static IntPtr GetEflClassStatic()
1222 return Efl.Input.IInterfaceConcrete.efl_input_interface_interface_get();
1224 /// <summary>Wrapper for native methods and virtual method delegates.
1225 /// For internal use by generated code only.</summary>
1226 public class NativeMethods : Efl.Eo.NativeClass
1228 private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule( efl.Libs.Evas);
1229 /// <summary>Gets the list of Eo operations to override.</summary>
1230 /// <returns>The list of Eo operations to be overload.</returns>
1231 public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
1233 var descs = new System.Collections.Generic.List<Efl_Op_Description>();
1234 var methods = Efl.Eo.Globals.GetUserMethods(type);
1236 if (efl_input_seat_event_filter_get_static_delegate == null)
1238 efl_input_seat_event_filter_get_static_delegate = new efl_input_seat_event_filter_get_delegate(seat_event_filter_get);
1241 if (methods.FirstOrDefault(m => m.Name == "GetSeatEventFilter") != null)
1243 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_input_seat_event_filter_get"), func = Marshal.GetFunctionPointerForDelegate(efl_input_seat_event_filter_get_static_delegate) });
1246 if (efl_input_seat_event_filter_set_static_delegate == null)
1248 efl_input_seat_event_filter_set_static_delegate = new efl_input_seat_event_filter_set_delegate(seat_event_filter_set);
1251 if (methods.FirstOrDefault(m => m.Name == "SetSeatEventFilter") != null)
1253 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_input_seat_event_filter_set"), func = Marshal.GetFunctionPointerForDelegate(efl_input_seat_event_filter_set_static_delegate) });
1258 /// <summary>Returns the Eo class for the native methods of this class.</summary>
1259 /// <returns>The native class pointer.</returns>
1260 public override IntPtr GetEflClass()
1262 return Efl.Input.IInterfaceConcrete.efl_input_interface_interface_get();
1265 #pragma warning disable CA1707, SA1300, SA1600
1267 [return: MarshalAs(UnmanagedType.U1)]
1268 private delegate bool efl_input_seat_event_filter_get_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
1270 [return: MarshalAs(UnmanagedType.U1)]
1271 public delegate bool efl_input_seat_event_filter_get_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat);
1273 public static Efl.Eo.FunctionWrapper<efl_input_seat_event_filter_get_api_delegate> efl_input_seat_event_filter_get_ptr = new Efl.Eo.FunctionWrapper<efl_input_seat_event_filter_get_api_delegate>(Module, "efl_input_seat_event_filter_get");
1275 private static bool seat_event_filter_get(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat)
1277 Eina.Log.Debug("function efl_input_seat_event_filter_get was called");
1278 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
1279 if (wrapper != null)
1281 bool _ret_var = default(bool);
1284 _ret_var = ((IInterface)wrapper).GetSeatEventFilter(seat);
1288 Eina.Log.Warning($"Callback error: {e.ToString()}");
1289 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1297 return efl_input_seat_event_filter_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), seat);
1301 private static efl_input_seat_event_filter_get_delegate efl_input_seat_event_filter_get_static_delegate;
1304 private delegate void efl_input_seat_event_filter_set_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat, [MarshalAs(UnmanagedType.U1)] bool enable);
1307 public delegate void efl_input_seat_event_filter_set_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Input.Device seat, [MarshalAs(UnmanagedType.U1)] bool enable);
1309 public static Efl.Eo.FunctionWrapper<efl_input_seat_event_filter_set_api_delegate> efl_input_seat_event_filter_set_ptr = new Efl.Eo.FunctionWrapper<efl_input_seat_event_filter_set_api_delegate>(Module, "efl_input_seat_event_filter_set");
1311 private static void seat_event_filter_set(System.IntPtr obj, System.IntPtr pd, Efl.Input.Device seat, bool enable)
1313 Eina.Log.Debug("function efl_input_seat_event_filter_set was called");
1314 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
1315 if (wrapper != null)
1320 ((IInterface)wrapper).SetSeatEventFilter(seat, enable);
1324 Eina.Log.Warning($"Callback error: {e.ToString()}");
1325 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
1332 efl_input_seat_event_filter_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), seat, enable);
1336 private static efl_input_seat_event_filter_set_delegate efl_input_seat_event_filter_set_static_delegate;
1338 #pragma warning restore CA1707, SA1300, SA1600