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(); } } }
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; }
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); }
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); }
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); }
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)); }
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(); }
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; } })); }
/// <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(); //})); }
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); }
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); }
public virtual void DragStart(DragStartData data) { }
/// <summary> /// Starts a drag operation originated in this widget /// </summary> /// <param name='data'> /// Drag operation arguments /// </param> public abstract void DragStart(DragStartData data);
protected override void ShowDragImage(DragStartData data) { }
public void DragStart(DragStartData data) { throw new NotImplementedException(); }
internal void DragStart(DragStartData sdata) { Backend.DragStart(sdata); }
protected virtual void ShowDragImage(DragStartData data) { }