示例#1
0
        /// <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();
        }
示例#2
0
            /// <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();
            }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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;
 }
示例#7
0
 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);
     }
 }
示例#8
0
        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);
            }
        }
示例#9
0
        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);
            }
        }
示例#10
0
                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);
                    }
                }
示例#11
0
 /// <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();
 }
示例#12
0
 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));
 }
示例#13
0
 /// <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();
 }
示例#14
0
                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);
                    }
                }
示例#15
0
                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();
 }