internal void ManagedCb(Efl.Canvas.Object obj, out Efl.Ui.SelectionFormat format, ref Eina.RwSlice drag_data, out Efl.Ui.SelectionAction action) { _cb(_cb_data, obj, out format, ref drag_data, out action); Eina.Error.RaiseIfUnhandledException(); }
internal static void Cb(IntPtr cb_data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Efl.Eo.MarshalEo <Efl.Eo.NonOwnTag>))] Efl.Canvas.Object obj, out Efl.Ui.SelectionFormat format, ref Eina.RwSlice drag_data, out Efl.Ui.SelectionAction action) { GCHandle handle = GCHandle.FromIntPtr(cb_data); DragDataGet cb = (DragDataGet)handle.Target; format = default(Efl.Ui.SelectionFormat); drag_data = default(Eina.RwSlice); action = default(Efl.Ui.SelectionAction); try { cb(obj, out format, ref drag_data, out action); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } }
/// <summary>Set the action for the drag</summary> /// <param name="action">Drag action</param> /// <param name="seat">Specified seat for multiple seats case.</param> /// <returns></returns> public void SetDragAction(Efl.Ui.SelectionAction action, uint seat) { Efl.Ui.IDndNativeInherit.efl_ui_dnd_drag_action_set_ptr.Value.Delegate(this.NativeHandle, action, seat); Eina.Error.RaiseIfUnhandledException(); }
private static void drag_start(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, Eina.Slice data, Efl.Ui.SelectionAction action, IntPtr icon_func_data, Efl.Dnd.DragIconCreateInternal icon_func, EinaFreeCb icon_func_free_cb, uint seat) { Eina.Log.Debug("function efl_ui_dnd_drag_start was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { Efl.Dnd.DragIconCreateWrapper icon_func_wrapper = new Efl.Dnd.DragIconCreateWrapper(icon_func, icon_func_data, icon_func_free_cb); try { ((IDndConcrete)wrapper).DragStart(format, data, action, icon_func_wrapper.ManagedCb, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } else { efl_ui_dnd_drag_start_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), format, data, action, icon_func_data, icon_func, icon_func_free_cb, seat); } }
private static void drag_action_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionAction action, uint seat) { Eina.Log.Debug("function efl_ui_dnd_drag_action_set was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { try { ((IDndConcrete)wrapper).SetDragAction(action, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } else { efl_ui_dnd_drag_action_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), action, seat); } }