Exemplo n.º 1
0
        public override void OnMouseMove(MouseActionEventArgs e)
        {
            base.OnMouseMove(e);
            Resolved = Resolved && Source != null;

            if (Resolved && (e.Button != MouseActionButtons.Left))
            {
                EndAction();
            }
            if (Resolved && !Dragging)
            {
                Dragging = true;
                InprocDragDrop.Dragging = true;
                InprocDragDrop.Data     = new GraphCursor <IVisual, IVisualEdge>(Scene.Graph, Source);

                try {
                    var startData =
                        new DragStartData(
                            DragDropViz.TransferDataOfVisual(Scene.Graph, Source),
                            DragDropAction.All,
                            GetDragImageBackend(Scene.Graph, Source),
                            e.Location.X, e.Location.Y);

                    DragDropHandler.DragStart(startData);
                } catch {} finally {
                    EndAction();
                }
            }
        }
Exemplo n.º 2
0
        void WidgetMouseMoveForDragHandler(object o, MouseEventArgs e)
        {
            if ((enabledEvents & WidgetEvent.DragStarted) == 0)
            {
                return;
            }
            if (e.LeftButton != MouseButtonState.Pressed)
            {
                return;
            }

            if (DragDropInfo.DragRect.IsEmpty)
            {
                SetupDragRect(e);
            }

            if (DragDropInfo.DragRect.Contains(e.GetPosition(Widget)))
            {
                return;
            }

            DragStartData dragData = null;

            Context.InvokeUserCode(delegate {
                dragData = eventSink.OnDragStarted();
            });

            if (dragData != null)
            {
                DragStart(dragData);
            }

            DragDropInfo.DragRect = Rect.Empty;
        }
Exemplo n.º 3
0
        void HandleWidgetDragBegin(object o, Gtk.DragBeginArgs args)
        {
            // If SetDragSource has not been called, ignore the event
            if (DragDropInfo.SourceDragAction == default(Gdk.DragAction))
            {
                return;
            }

            DragStartData sdata = null;

            ApplicationContext.InvokeUserCode(delegate {
                sdata = EventSink.OnDragStarted();
            });

            if (sdata == null)
            {
                return;
            }

            DragDropInfo.CurrentDragData = sdata.Data;

            if (sdata.ImageBackend != null)
            {
                var gi  = (GtkImage)sdata.ImageBackend;
                var img = gi.ToPixbuf(ApplicationContext, Widget);
                Gtk.Drag.SetIconPixbuf(args.Context, img, (int)sdata.HotX, (int)sdata.HotY);
            }

            HandleDragBegin(null, args);
        }
Exemplo n.º 4
0
        void HandleWidgetDragBegin(object o, Gtk.DragBeginArgs args)
        {
            // If SetDragSource has not been called, ignore the event
            if (DragDropInfo.SourceDragAction == default(Gdk.DragAction))
            {
                return;
            }

            DragStartData sdata = null;

            Toolkit.Invoke(delegate {
                sdata = EventSink.OnDragStarted();
            });

            if (sdata == null)
            {
                return;
            }

            DragDropInfo.CurrentDragData = sdata.Data;

            if (sdata.ImageBackend != null)
            {
                Gtk.Drag.SetIconPixbuf(args.Context, (Gdk.Pixbuf)sdata.ImageBackend, (int)sdata.HotX, (int)sdata.HotY);
            }

            HandleDragBegin(null, args);
        }
Exemplo n.º 5
0
 public void DragStart(DragStartData sdata)
 {
     Gdk.DragAction action = ConvertDragAction(sdata.DragAction);
     DragDropInfo.CurrentDragData = sdata.Data;
     Widget.DragBegin            += HandleDragBegin;
     if (sdata.ImageBackend != null)
     {
         IconInitializer.Init(Widget, (Gdk.Pixbuf)sdata.ImageBackend, sdata.HotX, sdata.HotY);
     }
     Gtk.Drag.Begin(Widget, Util.BuildTargetTable(sdata.Data.DataTypes), action, 1, Gtk.Global.CurrentEvent);
 }
Exemplo n.º 6
0
 public void DragStart(DragStartData sdata)
 {
     AllocEventBox();
     Gdk.DragAction action = ConvertDragAction(sdata.DragAction);
     DragDropInfo.CurrentDragData = sdata.Data;
     EventsRootWidget.DragBegin  += HandleDragBegin;
     if (sdata.ImageBackend != null)
     {
         var img = ((GtkImage)sdata.ImageBackend).ToPixbuf(ApplicationContext, Widget);
         IconInitializer.Init(EventsRootWidget, img, sdata.HotX, sdata.HotY);
     }
     Gtk.Drag.Begin(EventsRootWidget, Util.BuildTargetTable(sdata.Data.DataTypes), action, 1, Gtk.Global.CurrentEvent ?? new Gdk.Event(IntPtr.Zero));
 }
Exemplo n.º 7
0
        public override void DragStart(DragStartData data)
        {
            if (data.Data == null)
            {
                throw new ArgumentNullException("data");
            }
            var ds     = Widget.CreateDragOperation();
            var dsData = data.Data;

            ds.SetDragImage(GetDragImage(), data.HotX, data.HotY);
            ds.Data.DataRequestCallback += t => data.Data.GetValue(t);
            foreach (var t in data.Data.DataTypes)
            {
                ds.Data.AddType(t);
            }
            ds.Finished += (s, e) => OnDragFinished(e);
            ds.Start();
        }
Exemplo n.º 8
0
        public void DragStart(DragStartData data)
        {
            if (data.Data == null)
            {
                throw new ArgumentNullException("data");
            }

            DataObject dataObj = data.Data.ToDataObject();

            if (data.ImageBackend != null)
            {
                AdornedWindow           = GetParentWindow();
                AdornedWindow.AllowDrop = true;

                var e = (UIElement)AdornedWindow.Content;

                Adorner = new ImageAdorner(e, data.ImageBackend);

                AdornedLayer = AdornerLayer.GetAdornerLayer(e);
                AdornedLayer.Add(Adorner);

                AdornedWindow.DragOver += AdornedWindowOnDragOver;
            }

            Widget.Dispatcher.BeginInvoke((Action)(() => {
                var effect = DragDrop.DoDragDrop(Widget, dataObj, data.DragAction.ToWpfDropEffect());

                OnDragFinished(this, new DragFinishedEventArgs(effect == DragDropEffects.Move));

                if (Adorner != null)
                {
                    AdornedLayer.Remove(Adorner);
                    AdornedLayer = null;
                    Adorner = null;

                    AdornedWindow.AllowDrop = false;
                    AdornedWindow.DragOver -= AdornedWindowOnDragOver;
                    AdornedWindow = null;
                }
            }));
        }
Exemplo n.º 9
0
        /// <summary>
        /// Starts a drag operation originated in this widget
        /// </summary>
        /// <param name='data'>
        /// Drag operation arguments
        /// </param>
        public override void DragStart(DragStartData data)
        {
            if (data.Data == null)
            {
                throw new ArgumentNullException("data");
            }

            if (data.ImageBackend != null)
            {
                ShowDragImage(data);
            }

            var dataObj = data.Data.ToSwf();

            //Backend.BeginInvoke((Action)(() => {
            var effect = Backend.DoDragDrop(dataObj, data.DragAction.ToSwf());

            OnDragFinished(new DragFinishedEventArgs(effect == System.Windows.Forms.DragDropEffects.Move));

            HideDragImage();
            //}));
        }
Exemplo n.º 10
0
        void HandleWidgetDragBegin(object o, Gtk.DragBeginArgs args)
        {
            DragStartData sdata = null;

            Toolkit.Invoke(delegate {
                sdata = EventSink.OnDragStarted();
            });

            if (sdata == null)
            {
                return;
            }

            DragDropInfo.CurrentDragData = sdata.Data;

            if (sdata.ImageBackend != null)
            {
                Gtk.Drag.SetIconPixbuf(args.Context, (Gdk.Pixbuf)sdata.ImageBackend, (int)sdata.HotX, (int)sdata.HotY);
            }

            HandleDragBegin(null, args);
        }
Exemplo n.º 11
0
        public void DragStart(DragStartData sdata)
        {
            var lo = Widget.ConvertPointToBase(new PointF(Widget.Bounds.X, Widget.Bounds.Y));

            lo = Widget.Window.ConvertBaseToScreen(lo);
            var ml = NSEvent.CurrentMouseLocation;
            var pb = NSPasteboard.FromName(NSPasteboard.NSDragPasteboardName);

            if (pb == null)
            {
                throw new InvalidOperationException("Could not get pasteboard");
            }
            if (sdata.Data == null)
            {
                throw new ArgumentNullException("data");
            }
            InitPasteboard(pb, sdata.Data);
            var img = (NSImage)sdata.ImageBackend;
            var pos = new PointF(ml.X - lo.X - (float)sdata.HotX, lo.Y - ml.Y - (float)sdata.HotY + img.Size.Height);

            Widget.DragImage(img, pos, new SizeF(0, 0), NSApplication.SharedApplication.CurrentEvent, pb, Widget, true);
        }
Exemplo n.º 12
0
 public virtual void DragStart(DragStartData data)
 {
 }
Exemplo n.º 13
0
 /// <summary>
 /// Starts a drag operation originated in this widget
 /// </summary>
 /// <param name='data'>
 /// Drag operation arguments
 /// </param>
 public abstract void DragStart(DragStartData data);
Exemplo n.º 14
0
 protected override void ShowDragImage(DragStartData data)
 {
 }
Exemplo n.º 15
0
 public void DragStart(DragStartData data)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 16
0
 internal void DragStart(DragStartData sdata)
 {
     Backend.DragStart(sdata);
 }
Exemplo n.º 17
0
 protected virtual void ShowDragImage(DragStartData data)
 {
 }