1 #pragma warning disable CS1591
3 using System.Runtime.InteropServices;
4 using System.Collections.Generic;
6 using System.Threading;
7 using System.ComponentModel;
8 /// <param name="kw_object">The object the callback is being triggered from.</param>
9 /// <param name="emission">The name component of the signal.</param>
10 /// <param name="source">The source of a signal used as context.</param>
11 public delegate void EflLayoutSignalCb(Efl.Layout.ISignal kw_object, System.String emission, System.String source);
12 public delegate void EflLayoutSignalCbInternal(IntPtr data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Layout.ISignal kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source);
13 internal class EflLayoutSignalCbWrapper : IDisposable
16 private EflLayoutSignalCbInternal _cb;
17 private IntPtr _cb_data;
18 private EinaFreeCb _cb_free_cb;
20 internal EflLayoutSignalCbWrapper (EflLayoutSignalCbInternal _cb, IntPtr _cb_data, EinaFreeCb _cb_free_cb)
23 this._cb_data = _cb_data;
24 this._cb_free_cb = _cb_free_cb;
27 ~EflLayoutSignalCbWrapper()
32 protected virtual void Dispose(bool disposing)
34 if (this._cb_free_cb != null)
38 this._cb_free_cb(this._cb_data);
42 Efl.Eo.Globals.ThreadSafeFreeCbExec(this._cb_free_cb, this._cb_data);
44 this._cb_free_cb = null;
45 this._cb_data = IntPtr.Zero;
53 GC.SuppressFinalize(this);
56 internal void ManagedCb(Efl.Layout.ISignal kw_object,System.String emission,System.String source)
58 _cb(_cb_data, kw_object, emission, source);
59 Eina.Error.RaiseIfUnhandledException();
62 internal static void Cb(IntPtr cb_data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.MarshalEo<Efl.Eo.NonOwnTag>))] Efl.Layout.ISignal kw_object, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source)
64 GCHandle handle = GCHandle.FromIntPtr(cb_data);
65 EflLayoutSignalCb cb = (EflLayoutSignalCb)handle.Target;
68 cb(kw_object, emission, source);
69 } catch (Exception e) {
70 Eina.Log.Warning($"Callback error: {e.ToString()}");
71 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
81 /// <summary>Layouts asynchronous messaging and signaling interface.
82 /// (Since EFL 1.22)</summary>
83 [Efl.Layout.ISignalConcrete.NativeMethods]
84 public interface ISignal :
85 Efl.Eo.IWrapper, IDisposable
87 /// <summary>Sends an (Edje) message to a given Edje object
88 /// This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). Only a few types are supported: - int, - float/double, - string/stringshare, - arrays of int, float, double or strings.
90 /// Messages can go both ways, from code to theme, or theme to code.
92 /// The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration, to individualize messages (binding them to a given context).
93 /// (Since EFL 1.22)</summary>
94 /// <param name="id">A identification number for the message to be sent</param>
95 /// <param name="msg">The message's payload</param>
96 void MessageSend(int id, Eina.Value msg);
97 /// <summary>Adds a callback for an arriving Edje signal, emitted by a given Edje object.
98 /// Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general
100 /// Signals can go both ways, from code to theme, or theme to code.
102 /// Though there are those common uses for the two strings, one is free to use them however they like.
104 /// Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of <c>fnmatch</c>() operators can be used, both for emission and source.
106 /// Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.
108 /// With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.
110 /// See also the Edje Data Collection Reference for EDC files.
112 /// See <see cref="Efl.Layout.ISignal.EmitSignal"/> on how to emit signals from code to a an object See <see cref="Efl.Layout.ISignal.DelSignalCallback"/>.
113 /// (Since EFL 1.22)</summary>
114 /// <param name="emission">The signal's "emission" string</param>
115 /// <param name="source">The signal's "source" string</param>
116 /// <param name="func">The callback function to be executed when the signal is emitted.</param>
117 /// <returns><c>true</c> in case of success, <c>false</c> in case of error.</returns>
118 bool AddSignalCallback(System.String emission, System.String source, EflLayoutSignalCb func);
119 /// <summary>Removes a signal-triggered callback from an object.
120 /// This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to <see cref="Efl.Layout.ISignal.AddSignalCallback"/>.
122 /// See <see cref="Efl.Layout.ISignal.AddSignalCallback"/>.
123 /// (Since EFL 1.22)</summary>
124 /// <param name="emission">The signal's "emission" string</param>
125 /// <param name="source">The signal's "source" string</param>
126 /// <param name="func">The callback function to be executed when the signal is emitted.</param>
127 /// <returns><c>true</c> in case of success, <c>false</c> in case of error.</returns>
128 bool DelSignalCallback(System.String emission, System.String source, EflLayoutSignalCb func);
129 /// <summary>Sends/emits an Edje signal to this layout.
130 /// This function sends a signal to the object. An Edje program, at the EDC specification level, can respond to a signal by having declared matching "signal" and "source" fields on its block.
132 /// See also the Edje Data Collection Reference for EDC files.
134 /// See <see cref="Efl.Layout.ISignal.AddSignalCallback"/> for more on Edje signals.
135 /// (Since EFL 1.22)</summary>
136 /// <param name="emission">The signal's "emission" string</param>
137 /// <param name="source">The signal's "source" string</param>
138 void EmitSignal(System.String emission, System.String source);
139 /// <summary>Processes an object's messages and signals queue.
140 /// This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.
142 /// If <c>recurse</c> is <c>true</c>, this function will be called recursively on all subobjects.
143 /// (Since EFL 1.22)</summary>
144 /// <param name="recurse">Whether to process messages on children objects.</param>
145 void SignalProcess(bool recurse);
147 /// <summary>Layouts asynchronous messaging and signaling interface.
148 /// (Since EFL 1.22)</summary>
149 sealed public class ISignalConcrete :
154 ///<summary>Pointer to the native class description.</summary>
155 public System.IntPtr NativeClass
159 if (((object)this).GetType() == typeof(ISignalConcrete))
161 return GetEflClassStatic();
165 return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()];
170 private System.IntPtr handle;
171 ///<summary>Pointer to the native instance.</summary>
172 public System.IntPtr NativeHandle
174 get { return handle; }
177 [System.Runtime.InteropServices.DllImport(efl.Libs.Edje)] internal static extern System.IntPtr
178 efl_layout_signal_interface_get();
179 /// <summary>Initializes a new instance of the <see cref="ISignal"/> class.
180 /// Internal usage: This is used when interacting with C code and should not be used directly.</summary>
181 private ISignalConcrete(System.IntPtr raw)
185 ///<summary>Destructor.</summary>
191 ///<summary>Releases the underlying native instance.</summary>
192 private void Dispose(bool disposing)
194 if (handle != System.IntPtr.Zero)
197 handle = IntPtr.Zero;
199 IntPtr gcHandlePtr = IntPtr.Zero;
202 Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr);
206 Monitor.Enter(Efl.All.InitLock);
207 if (Efl.All.MainLoopInitialized)
209 Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr);
212 Monitor.Exit(Efl.All.InitLock);
218 ///<summary>Releases the underlying native instance.</summary>
219 public void Dispose()
222 GC.SuppressFinalize(this);
225 /// <summary>Verifies if the given object is equal to this one.</summary>
226 /// <param name="instance">The object to compare to.</param>
227 /// <returns>True if both objects point to the same native object.</returns>
228 public override bool Equals(object instance)
230 var other = instance as Efl.Object;
235 return this.NativeHandle == other.NativeHandle;
238 /// <summary>Gets the hash code for this object based on the native pointer it points to.</summary>
239 /// <returns>The value of the pointer, to be used as the hash code of this object.</returns>
240 public override int GetHashCode()
242 return this.NativeHandle.ToInt32();
245 /// <summary>Turns the native pointer into a string representation.</summary>
246 /// <returns>A string with the type and the native pointer for this object.</returns>
247 public override String ToString()
249 return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]";
252 /// <summary>Sends an (Edje) message to a given Edje object
253 /// This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). Only a few types are supported: - int, - float/double, - string/stringshare, - arrays of int, float, double or strings.
255 /// Messages can go both ways, from code to theme, or theme to code.
257 /// The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration, to individualize messages (binding them to a given context).
258 /// (Since EFL 1.22)</summary>
259 /// <param name="id">A identification number for the message to be sent</param>
260 /// <param name="msg">The message's payload</param>
261 public void MessageSend(int id, Eina.Value msg) {
262 Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_message_send_ptr.Value.Delegate(this.NativeHandle,id, msg);
263 Eina.Error.RaiseIfUnhandledException();
265 /// <summary>Adds a callback for an arriving Edje signal, emitted by a given Edje object.
266 /// Edje signals are one of the communication interfaces between code and a given Edje object's theme. With signals, one can communicate two string values at a time, which are: - "emission" value: the name of the signal, in general - "source" value: a name for the signal's context, in general
268 /// Signals can go both ways, from code to theme, or theme to code.
270 /// Though there are those common uses for the two strings, one is free to use them however they like.
272 /// Signal callback registration is powerful, in the way that blobs may be used to match multiple signals at once. All the "*?[" set of <c>fnmatch</c>() operators can be used, both for emission and source.
274 /// Edje has internal signals it will emit, automatically, on various actions taking place on group parts. For example, the mouse cursor being moved, pressed, released, etc., over a given part's area, all generate individual signals.
276 /// With something like emission = "mouse,down,*", source = "button.*" where "button.*" is the pattern for the names of parts implementing buttons on an interface, you'd be registering for notifications on events of mouse buttons being pressed down on either of those parts (those events all have the "mouse,down," common prefix on their names, with a suffix giving the button number). The actual emission and source strings of an event will be passed in as the emission and source parameters of the callback function (e.g. "mouse,down,2" and "button.close"), for each of those events.
278 /// See also the Edje Data Collection Reference for EDC files.
280 /// See <see cref="Efl.Layout.ISignal.EmitSignal"/> on how to emit signals from code to a an object See <see cref="Efl.Layout.ISignal.DelSignalCallback"/>.
281 /// (Since EFL 1.22)</summary>
282 /// <param name="emission">The signal's "emission" string</param>
283 /// <param name="source">The signal's "source" string</param>
284 /// <param name="func">The callback function to be executed when the signal is emitted.</param>
285 /// <returns><c>true</c> in case of success, <c>false</c> in case of error.</returns>
286 public bool AddSignalCallback(System.String emission, System.String source, EflLayoutSignalCb func) {
287 GCHandle func_handle = GCHandle.Alloc(func);
288 var _ret_var = Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_callback_add_ptr.Value.Delegate(this.NativeHandle,emission, source, GCHandle.ToIntPtr(func_handle), EflLayoutSignalCbWrapper.Cb, Efl.Eo.Globals.free_gchandle);
289 Eina.Error.RaiseIfUnhandledException();
292 /// <summary>Removes a signal-triggered callback from an object.
293 /// This function removes a callback, previously attached to the emission of a signal, from the object obj. The parameters emission, source and func must match exactly those passed to a previous call to <see cref="Efl.Layout.ISignal.AddSignalCallback"/>.
295 /// See <see cref="Efl.Layout.ISignal.AddSignalCallback"/>.
296 /// (Since EFL 1.22)</summary>
297 /// <param name="emission">The signal's "emission" string</param>
298 /// <param name="source">The signal's "source" string</param>
299 /// <param name="func">The callback function to be executed when the signal is emitted.</param>
300 /// <returns><c>true</c> in case of success, <c>false</c> in case of error.</returns>
301 public bool DelSignalCallback(System.String emission, System.String source, EflLayoutSignalCb func) {
302 GCHandle func_handle = GCHandle.Alloc(func);
303 var _ret_var = Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_callback_del_ptr.Value.Delegate(this.NativeHandle,emission, source, GCHandle.ToIntPtr(func_handle), EflLayoutSignalCbWrapper.Cb, Efl.Eo.Globals.free_gchandle);
304 Eina.Error.RaiseIfUnhandledException();
307 /// <summary>Sends/emits an Edje signal to this layout.
308 /// This function sends a signal to the object. An Edje program, at the EDC specification level, can respond to a signal by having declared matching "signal" and "source" fields on its block.
310 /// See also the Edje Data Collection Reference for EDC files.
312 /// See <see cref="Efl.Layout.ISignal.AddSignalCallback"/> for more on Edje signals.
313 /// (Since EFL 1.22)</summary>
314 /// <param name="emission">The signal's "emission" string</param>
315 /// <param name="source">The signal's "source" string</param>
316 public void EmitSignal(System.String emission, System.String source) {
317 Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_emit_ptr.Value.Delegate(this.NativeHandle,emission, source);
318 Eina.Error.RaiseIfUnhandledException();
320 /// <summary>Processes an object's messages and signals queue.
321 /// This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.
323 /// If <c>recurse</c> is <c>true</c>, this function will be called recursively on all subobjects.
324 /// (Since EFL 1.22)</summary>
325 /// <param name="recurse">Whether to process messages on children objects.</param>
326 public void SignalProcess(bool recurse) {
327 Efl.Layout.ISignalConcrete.NativeMethods.efl_layout_signal_process_ptr.Value.Delegate(this.NativeHandle,recurse);
328 Eina.Error.RaiseIfUnhandledException();
330 private static IntPtr GetEflClassStatic()
332 return Efl.Layout.ISignalConcrete.efl_layout_signal_interface_get();
334 /// <summary>Wrapper for native methods and virtual method delegates.
335 /// For internal use by generated code only.</summary>
336 public class NativeMethods : Efl.Eo.NativeClass
338 private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule( efl.Libs.Edje);
339 /// <summary>Gets the list of Eo operations to override.</summary>
340 /// <returns>The list of Eo operations to be overload.</returns>
341 public override System.Collections.Generic.List<Efl_Op_Description> GetEoOps(System.Type type)
343 var descs = new System.Collections.Generic.List<Efl_Op_Description>();
344 var methods = Efl.Eo.Globals.GetUserMethods(type);
346 if (efl_layout_signal_message_send_static_delegate == null)
348 efl_layout_signal_message_send_static_delegate = new efl_layout_signal_message_send_delegate(message_send);
351 if (methods.FirstOrDefault(m => m.Name == "MessageSend") != null)
353 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_message_send"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_message_send_static_delegate) });
356 if (efl_layout_signal_callback_add_static_delegate == null)
358 efl_layout_signal_callback_add_static_delegate = new efl_layout_signal_callback_add_delegate(signal_callback_add);
361 if (methods.FirstOrDefault(m => m.Name == "AddSignalCallback") != null)
363 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_callback_add"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_callback_add_static_delegate) });
366 if (efl_layout_signal_callback_del_static_delegate == null)
368 efl_layout_signal_callback_del_static_delegate = new efl_layout_signal_callback_del_delegate(signal_callback_del);
371 if (methods.FirstOrDefault(m => m.Name == "DelSignalCallback") != null)
373 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_callback_del"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_callback_del_static_delegate) });
376 if (efl_layout_signal_emit_static_delegate == null)
378 efl_layout_signal_emit_static_delegate = new efl_layout_signal_emit_delegate(signal_emit);
381 if (methods.FirstOrDefault(m => m.Name == "EmitSignal") != null)
383 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_emit"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_emit_static_delegate) });
386 if (efl_layout_signal_process_static_delegate == null)
388 efl_layout_signal_process_static_delegate = new efl_layout_signal_process_delegate(signal_process);
391 if (methods.FirstOrDefault(m => m.Name == "SignalProcess") != null)
393 descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_layout_signal_process"), func = Marshal.GetFunctionPointerForDelegate(efl_layout_signal_process_static_delegate) });
398 /// <summary>Returns the Eo class for the native methods of this class.</summary>
399 /// <returns>The native class pointer.</returns>
400 public override IntPtr GetEflClass()
402 return Efl.Layout.ISignalConcrete.efl_layout_signal_interface_get();
405 #pragma warning disable CA1707, SA1300, SA1600
408 private delegate void efl_layout_signal_message_send_delegate(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg);
411 public delegate void efl_layout_signal_message_send_api_delegate(System.IntPtr obj, int id, Eina.ValueNative msg);
413 public static Efl.Eo.FunctionWrapper<efl_layout_signal_message_send_api_delegate> efl_layout_signal_message_send_ptr = new Efl.Eo.FunctionWrapper<efl_layout_signal_message_send_api_delegate>(Module, "efl_layout_signal_message_send");
415 private static void message_send(System.IntPtr obj, System.IntPtr pd, int id, Eina.ValueNative msg)
417 Eina.Log.Debug("function efl_layout_signal_message_send was called");
418 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
424 ((ISignal)wrapper).MessageSend(id, msg);
428 Eina.Log.Warning($"Callback error: {e.ToString()}");
429 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
436 efl_layout_signal_message_send_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), id, msg);
440 private static efl_layout_signal_message_send_delegate efl_layout_signal_message_send_static_delegate;
442 [return: MarshalAs(UnmanagedType.U1)]
443 private delegate bool efl_layout_signal_callback_add_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb);
445 [return: MarshalAs(UnmanagedType.U1)]
446 public delegate bool efl_layout_signal_callback_add_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb);
448 public static Efl.Eo.FunctionWrapper<efl_layout_signal_callback_add_api_delegate> efl_layout_signal_callback_add_ptr = new Efl.Eo.FunctionWrapper<efl_layout_signal_callback_add_api_delegate>(Module, "efl_layout_signal_callback_add");
450 private static bool signal_callback_add(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
452 Eina.Log.Debug("function efl_layout_signal_callback_add was called");
453 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
456 EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
457 bool _ret_var = default(bool);
460 _ret_var = ((ISignal)wrapper).AddSignalCallback(emission, source, func_wrapper.ManagedCb);
464 Eina.Log.Warning($"Callback error: {e.ToString()}");
465 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
473 return efl_layout_signal_callback_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), emission, source, func_data, func, func_free_cb);
477 private static efl_layout_signal_callback_add_delegate efl_layout_signal_callback_add_static_delegate;
479 [return: MarshalAs(UnmanagedType.U1)]
480 private delegate bool efl_layout_signal_callback_del_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb);
482 [return: MarshalAs(UnmanagedType.U1)]
483 public delegate bool efl_layout_signal_callback_del_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb);
485 public static Efl.Eo.FunctionWrapper<efl_layout_signal_callback_del_api_delegate> efl_layout_signal_callback_del_ptr = new Efl.Eo.FunctionWrapper<efl_layout_signal_callback_del_api_delegate>(Module, "efl_layout_signal_callback_del");
487 private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb)
489 Eina.Log.Debug("function efl_layout_signal_callback_del was called");
490 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
493 EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb);
494 bool _ret_var = default(bool);
497 _ret_var = ((ISignal)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb);
501 Eina.Log.Warning($"Callback error: {e.ToString()}");
502 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
510 return efl_layout_signal_callback_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), emission, source, func_data, func, func_free_cb);
514 private static efl_layout_signal_callback_del_delegate efl_layout_signal_callback_del_static_delegate;
517 private delegate void efl_layout_signal_emit_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source);
520 public delegate void efl_layout_signal_emit_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String emission, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef=typeof(Efl.Eo.StringKeepOwnershipMarshaler))] System.String source);
522 public static Efl.Eo.FunctionWrapper<efl_layout_signal_emit_api_delegate> efl_layout_signal_emit_ptr = new Efl.Eo.FunctionWrapper<efl_layout_signal_emit_api_delegate>(Module, "efl_layout_signal_emit");
524 private static void signal_emit(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source)
526 Eina.Log.Debug("function efl_layout_signal_emit was called");
527 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
533 ((ISignal)wrapper).EmitSignal(emission, source);
537 Eina.Log.Warning($"Callback error: {e.ToString()}");
538 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
545 efl_layout_signal_emit_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), emission, source);
549 private static efl_layout_signal_emit_delegate efl_layout_signal_emit_static_delegate;
552 private delegate void efl_layout_signal_process_delegate(System.IntPtr obj, System.IntPtr pd, [MarshalAs(UnmanagedType.U1)] bool recurse);
555 public delegate void efl_layout_signal_process_api_delegate(System.IntPtr obj, [MarshalAs(UnmanagedType.U1)] bool recurse);
557 public static Efl.Eo.FunctionWrapper<efl_layout_signal_process_api_delegate> efl_layout_signal_process_ptr = new Efl.Eo.FunctionWrapper<efl_layout_signal_process_api_delegate>(Module, "efl_layout_signal_process");
559 private static void signal_process(System.IntPtr obj, System.IntPtr pd, bool recurse)
561 Eina.Log.Debug("function efl_layout_signal_process was called");
562 Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd);
568 ((ISignal)wrapper).SignalProcess(recurse);
572 Eina.Log.Warning($"Callback error: {e.ToString()}");
573 Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);
580 efl_layout_signal_process_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), recurse);
584 private static efl_layout_signal_process_delegate efl_layout_signal_process_static_delegate;
586 #pragma warning restore CA1707, SA1300, SA1600