/// <summary>Get the data from the object that has selection</summary> /// <param name="type">Selection Type</param> /// <param name="format">Selection Format</param> /// <param name="data_func">Data ready function pointer</param> /// <param name="seat">Specified seat for multiple seats case.</param> /// <returns></returns> public void GetSelection(Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Efl.Ui.SelectionDataReady data_func, uint seat) { GCHandle data_func_handle = GCHandle.Alloc(data_func); Efl.Ui.ISelectionNativeInherit.efl_ui_selection_get_ptr.Value.Delegate(this.NativeHandle, type, format, GCHandle.ToIntPtr(data_func_handle), Efl.Ui.SelectionDataReadyWrapper.Cb, Efl.Eo.Globals.free_gchandle, seat); Eina.Error.RaiseIfUnhandledException(); }
/// <summary>Start a drag and drop process at the drag side. During dragging, there are three events emitted as belows: - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_ACCEPT - EFL_UI_DND_EVENT_DRAG_DONE</summary> /// <param name="format">The data format</param> /// <param name="data">The drag data</param> /// <param name="action">Action when data is transferred</param> /// <param name="icon_func">Function pointer to create icon</param> /// <param name="seat">Specified seat for multiple seats case.</param> public void DragStart(Efl.Ui.SelectionFormat format, Eina.Slice data, Efl.Ui.SelectionAction action, Efl.Dnd.DragIconCreate icon_func, uint seat) { GCHandle icon_func_handle = GCHandle.Alloc(icon_func); Efl.Ui.IDndConcrete.NativeMethods.efl_ui_dnd_drag_start_ptr.Value.Delegate(this.NativeHandle, format, data, action, GCHandle.ToIntPtr(icon_func_handle), Efl.Dnd.DragIconCreateWrapper.Cb, Efl.Eo.Globals.free_gchandle, seat); Eina.Error.RaiseIfUnhandledException(); }
/// <summary>Set the selection data to the object</summary> /// <param name="type">Selection Type</param> /// <param name="format">Selection Format</param> /// <param name="data">Selection data</param> /// <param name="seat">Specified seat for multiple seats case.</param> /// <returns>Future for tracking when the selection is lost</returns> public Eina.Future SetSelection(Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Eina.Slice data, uint seat) { var _ret_var = Efl.Ui.ISelectionNativeInherit.efl_ui_selection_set_ptr.Value.Delegate(this.NativeHandle, type, format, data, seat); Eina.Error.RaiseIfUnhandledException(); return(_ret_var); }
/// <summary></summary> /// <param name="format">Accepted data formats</param> /// <param name="item_func">Get item at specific position</param> /// <param name="seat">Specified seat for multiple seats case.</param> /// <returns></returns> public void AddDropItem(Efl.Ui.SelectionFormat format, Efl.Dnd.ItemGet item_func, uint seat) { GCHandle item_func_handle = GCHandle.Alloc(item_func); Efl.Ui.DndContainerNativeInherit.efl_ui_dnd_container_drop_item_add_ptr.Value.Delegate(this.NativeHandle, format, GCHandle.ToIntPtr(item_func_handle), Efl.Dnd.ItemGetWrapper.Cb, Efl.Eo.Globals.free_gchandle, seat); Eina.Error.RaiseIfUnhandledException(); }
///<summary>Constructor for DragPos.</summary> public DragPos( Eina.Position2D Pos = default(Eina.Position2D), Efl.Ui.SelectionAction Action = default(Efl.Ui.SelectionAction), Efl.Ui.SelectionFormat Format = default(Efl.Ui.SelectionFormat), Efl.Canvas.Object Item = default(Efl.Canvas.Object)) { this.Pos = Pos; this.Action = Action; this.Format = Format; this.Item = Item; }
///<summary>Constructor for SelectionData.</summary> public SelectionData( Eina.Position2D Pos = default(Eina.Position2D), Efl.Ui.SelectionFormat Format = default(Efl.Ui.SelectionFormat), Eina.Slice Content = default(Eina.Slice), Efl.Ui.SelectionAction Action = default(Efl.Ui.SelectionAction), Efl.Object Item = default(Efl.Object)) { this.Pos = Pos; this.Format = Format; this.Content = Content; this.Action = Action; this.Item = Item; }
private static void drop_target_del(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat) { Eina.Log.Debug("function efl_ui_dnd_drop_target_del was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.data_get(pd); if (wrapper != null) { try { ((DndConcrete)wrapper).DelDropTarget(format, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } else { efl_ui_dnd_drop_target_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), format, seat); } }
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.data_get(pd); if (wrapper != null) { Efl.Dnd.DragIconCreateWrapper icon_func_wrapper = new Efl.Dnd.DragIconCreateWrapper(icon_func, icon_func_data, icon_func_free_cb); try { ((DndConcrete)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 drop_item_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, IntPtr item_func_data, Efl.Dnd.ItemGetInternal item_func, EinaFreeCb item_func_free_cb, uint seat) { Eina.Log.Debug("function efl_ui_dnd_container_drop_item_add was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.data_get(pd); if (wrapper != null) { Efl.Dnd.ItemGetWrapper item_func_wrapper = new Efl.Dnd.ItemGetWrapper(item_func, item_func_data, item_func_free_cb); try { ((DndContainerConcrete)wrapper).AddDropItem(format, item_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_container_drop_item_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), format, item_func_data, item_func, item_func_free_cb, seat); } }
private static void drop_target_add(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionFormat format, uint seat) { Eina.Log.Debug("function efl_ui_dnd_drop_target_add was called"); var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj); if (ws != null) { try { ((IDndConcrete)ws.Target).AddDropTarget(format, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } else { efl_ui_dnd_drop_target_add_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), format, seat); } }
/// <summary>Delete the dropable status from object</summary> /// <param name="format">Accepted data format</param> /// <param name="seat">Specified seat for multiple seats case.</param> public void DelDropTarget(Efl.Ui.SelectionFormat format, uint seat) { Efl.Ui.IDndConcrete.NativeMethods.efl_ui_dnd_drop_target_del_ptr.Value.Delegate(this.NativeHandle, format, seat); Eina.Error.RaiseIfUnhandledException(); }
public System.Threading.Tasks.Task <Eina.Value> SetSelectionAsync(Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Eina.Slice data, uint seat, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) { Eina.Future future = SetSelection(type, format, data, seat); return(Efl.Eo.Globals.WrapAsync(future, token)); }
/// <summary>Make the current object as drop target. There are four events emitted: - EFL_UI_DND_EVENT_DRAG_ENTER - EFL_UI_DND_EVENT_DRAG_LEAVE - EFL_UI_DND_EVENT_DRAG_POS - EFL_UI_DND_EVENT_DRAG_DROP.</summary> /// <param name="format">Accepted data format</param> /// <param name="seat">Specified seat for multiple seats case.</param> /// <returns></returns> public void AddDropTarget(Efl.Ui.SelectionFormat format, uint seat) { Efl.Ui.DndNativeInherit.efl_ui_dnd_drop_target_add_ptr.Value.Delegate(this.NativeHandle, format, seat); Eina.Error.RaiseIfUnhandledException(); }
private static void selection_get(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, IntPtr data_func_data, Efl.Ui.SelectionDataReadyInternal data_func, EinaFreeCb data_func_free_cb, uint seat) { Eina.Log.Debug("function efl_ui_selection_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { Efl.Ui.SelectionDataReadyWrapper data_func_wrapper = new Efl.Ui.SelectionDataReadyWrapper(data_func, data_func_data, data_func_free_cb); try { ((ISelectionConcrete)wrapper).GetSelection(type, format, data_func_wrapper.ManagedCb, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } } else { efl_ui_selection_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type, format, data_func_data, data_func, data_func_free_cb, seat); } }
private static Eina.Future selection_set(System.IntPtr obj, System.IntPtr pd, Efl.Ui.SelectionType type, Efl.Ui.SelectionFormat format, Eina.Slice data, uint seat) { Eina.Log.Debug("function efl_ui_selection_set was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { Eina.Future _ret_var = default(Eina.Future); try { _ret_var = ((ISelectionConcrete)wrapper).SetSelection(type, format, data, seat); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return(_ret_var); } else { return(efl_ui_selection_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), type, format, data, seat)); } }
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); } }
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(); }