コード例 #1
0
 public virtual void HandleDragDrop(object o, Gtk.DragDropArgs args)
 {
     DragArgs = GetDragEventArgs(args.Context, new PointF(args.X, args.Y), args.Time);
     Handler.Callback.OnDragDrop(Handler.Widget, DragArgs);
     Gtk.Drag.Finish(args.Context, true, DragArgs.Effects.HasFlag(DragEffects.Move), args.Time);
     DragArgs    = null;
     args.RetVal = true;
 }
コード例 #2
0
ファイル: TreeGridViewHandler.cs プロジェクト: zzlvff/Eto
            public override void HandleDragDrop(object o, Gtk.DragDropArgs args)
            {
                // use the info from last drag if it was set
                var info = Handler?.GetDragInfo(DragArgs);

                if (info?.IsChanged == true)
                {
                    _dragInfo = info;
                }
                base.HandleDragDrop(o, args);
                _dragInfo = null;
            }
コード例 #3
0
ファイル: Fixed.cs プロジェクト: noah1510/dotdevelop
        void FixedDragDrop(object obj, Gtk.DragDropArgs args)
        {
            Gtk.Widget w  = DND.Drop(args.Context, gtkfixed, args.Time);
            Widget     ww = Widget.Lookup(w);

            if (ww != null)
            {
                gtkfixed.Put(w, args.X - DND.DragHotX, args.Y - DND.DragHotY);
                NotifyChildAdded(w);
                args.RetVal = true;
                ww.Select();
            }
        }
コード例 #4
0
 void HandleStatBarDragDrop
     (object sender, Gtk.DragDropArgs args)
 {
     isChecked = !isChecked;
     if (isChecked)
     {
         sBar.Push((uint)StatusType.Checked, "Checked");
     }
     else
     {
         sBar.Pop((uint)StatusType.Checked);
     }
 }
コード例 #5
0
        static void FaultDragDrop(object obj, Gtk.DragDropArgs args)
        {
            Gtk.Widget            w       = DND.Drop(args.Context, (Gtk.Widget)obj, args.Time);
            Stetic.Wrapper.Widget dropped = Stetic.Wrapper.Widget.Lookup(w);
            if (dropped != null)
            {
                Gtk.Widget targetWidget = (Gtk.Widget)obj;
                int        px           = args.X + targetWidget.Allocation.X;
                int        py           = args.Y + targetWidget.Allocation.Y;

                FaultDrop(dropped, px, py, targetWidget);
                args.RetVal = true;
            }
        }
コード例 #6
0
        void HandleTargetDragDrop
            (object sender, Gtk.DragDropArgs args)
        {
            Console.WriteLine("drop");
            if (args.Context.Targets.Length != 0)
            {
                Gtk.Drag.GetData
                    ((Gtk.Widget)sender, args.Context,
                    args.Context.Targets[0], args.Time);
                args.RetVal = true;
            }

            args.RetVal = false;
        }
コード例 #7
0
ファイル: WidgetBackend.cs プロジェクト: migueldeicaza/xwt
        void HandleWidgetDragDrop(object o, Gtk.DragDropArgs args)
        {
            lastDragPosition = new Point(args.X, args.Y);
            var cda = ConvertDragAction(args.Context.Action);

            DragDropResult res;

            if ((enabledEvents & WidgetEvent.DragDropCheck) == 0)
            {
                if ((enabledEvents & WidgetEvent.DragDrop) != 0)
                {
                    res = DragDropResult.None;
                }
                else
                {
                    res = DragDropResult.Canceled;
                }
            }
            else
            {
                DragCheckEventArgs da = new DragCheckEventArgs(new Point(args.X, args.Y), Util.GetDragTypes(args.Context.Targets), cda);
                Toolkit.Invoke(delegate {
                    EventSink.OnDragDropCheck(da);
                });
                res = da.Result;
                if ((enabledEvents & WidgetEvent.DragDrop) == 0 && res == DragDropResult.None)
                {
                    res = DragDropResult.Canceled;
                }
            }
            if (res == DragDropResult.Canceled)
            {
                args.RetVal = true;
                Gtk.Drag.Finish(args.Context, false, false, args.Time);
            }
            else if (res == DragDropResult.Success)
            {
                args.RetVal = true;
                Gtk.Drag.Finish(args.Context, true, cda == DragDropAction.Move, args.Time);
            }
            else
            {
                // Undefined, we need more data
                args.RetVal = true;
                QueryDragData(args.Context, args.Time, false);
            }
        }
コード例 #8
0
 void HandleWidgetDragDrop(object o, Gtk.DragDropArgs args)
 {
     args.RetVal = DoDragDrop(args.Context, args.X, args.Y, args.Time);
 }
コード例 #9
0
 /// <summary>
 /// Handles the drag drop event.
 /// </summary>
 /// <param name="o">The menu layout Gtk.TreeView.</param>
 /// <param name="args">The event data.</param>
 protected void HandleDragDrop(object o, Gtk.DragDropArgs args)
 {
     DebugDragDrop("HandleDragDrop");
 }
コード例 #10
0
 void OnLabelDragDrop(object sender, Gtk.DragDropArgs args)
 {
     Gtk.Drag.GetData
         ((Gtk.Widget)sender, args.Context,
         args.Context.Targets[0], args.Time);
 }