Example #1
0
            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);
                }
            }
Example #2
0
        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;
            }
        }
Example #3
0
 void IAvnWindowBaseEvents.RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta)
 {
     _parent.RawMouseEvent(type, timeStamp, modifiers, point, delta);
 }
Example #4
0
 void IAvnWindowBaseEvents.PositionChanged(AvnPoint position)
 {
     _parent.PositionChanged?.Invoke(position.ToAvaloniaPixelPoint());
 }
Example #5
0
 public static Point ToAvaloniaPoint(this AvnPoint pt)
 {
     return(new Point(pt.X, pt.Y));
 }
Example #6
0
 public static PixelPoint ToAvaloniaPixelPoint(this AvnPoint pt)
 {
     return(new PixelPoint((int)pt.X, (int)pt.Y));
 }
Example #7
0
        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;
            }
        }