public AvnDragDropEffects DragEvent(AvnDragEventType type, AvnPoint position, AvnInputModifiers modifiers, AvnDragDropEffects effects, IAvnClipboard clipboard, IntPtr dataObjectHandle) { var device = AvaloniaLocator.Current.GetService <IDragDropDevice>(); IDataObject dataObject = null; if (dataObjectHandle != IntPtr.Zero) { dataObject = GCHandle.FromIntPtr(dataObjectHandle).Target as IDataObject; } using (var clipboardDataObject = new ClipboardDataObject(clipboard)) { if (dataObject == null) { dataObject = clipboardDataObject; } var args = new RawDragEvent(device, (RawDragEventType)type, _parent._inputRoot, position.ToAvaloniaPoint(), dataObject, (DragDropEffects)effects, (RawInputModifiers)modifiers); _parent.Input(args); return((AvnDragDropEffects)args.Effects); } }
public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); switch (type) { case AvnRawMouseEventType.Wheel: Input?.Invoke(new RawMouseWheelEventArgs(_mouse, timeStamp, _inputRoot, point.ToAvaloniaPoint(), new Vector(delta.X, delta.Y), (RawInputModifiers)modifiers)); break; default: var e = new RawPointerEventArgs(_mouse, timeStamp, _inputRoot, (RawPointerEventType)type, point.ToAvaloniaPoint(), (RawInputModifiers)modifiers); if (!ChromeHitTest(e)) { Input?.Invoke(e); } break; } }
void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { _parent.RawMouseEvent(type, timeStamp, modifiers, point, delta); }
void IAvnWindowBaseEvents.PositionChanged(AvnPoint position) { _parent.PositionChanged?.Invoke(position.ToAvaloniaPixelPoint()); }
public static Point ToAvaloniaPoint(this AvnPoint pt) { return(new Point(pt.X, pt.Y)); }
public static PixelPoint ToAvaloniaPixelPoint(this AvnPoint pt) { return(new PixelPoint((int)pt.X, (int)pt.Y)); }
public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta) { Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1); switch (type) { case AvnRawMouseEventType.Wheel: Input?.Invoke(new RawMouseWheelEventArgs(_mouse, timeStamp, point.ToAvaloniaPoint() * Scaling, new Vector(delta.X, delta.Y), (InputModifiers)modifiers)); break; default: Input?.Invoke(new RawMouseEventArgs(_mouse, timeStamp, (RawMouseEventType)type, point.ToAvaloniaPoint() * Scaling, (InputModifiers)modifiers)); break; } }