/// <inheritdoc /> public (Point location, DragDropModifiers modifier) GetState() { var wpfLocation = _wpfArgs.GetPosition(WpfHost.Current); var location = new Windows.Foundation.Point(wpfLocation.X, wpfLocation.Y); var mods = DragDropModifiers.None; if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.LeftMouseButton)) { mods |= DragDropModifiers.LeftButton; } if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.MiddleMouseButton)) { mods |= DragDropModifiers.MiddleButton; } if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.RightMouseButton)) { mods |= DragDropModifiers.RightButton; } if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.ShiftKey)) { mods |= DragDropModifiers.Shift; } if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.ControlKey)) { mods |= DragDropModifiers.Control; } if (_wpfArgs.KeyStates.HasFlag(DragDropKeyStates.AltKey)) { mods |= DragDropModifiers.Alt; } return(location, mods); }
public (Point location, DragDropModifiers modifier) GetState() { CGPoint windowLocation = new CGPoint(0.0, 0.0); if (_macOSDraggingInfo != null && _window.ContentView is { } contentView) { windowLocation = contentView.ConvertPointFromView(_macOSDraggingInfo.DraggingLocation, null); } var location = new Windows.Foundation.Point(windowLocation.X, windowLocation.Y); // macOS requires access to NSEvent.ModifierFlags to determine key press. // This isn't available from the dragging info. var mods = DragDropModifiers.None; return(location, mods); }
public static PointerPoint GetPoint( double x, double y, uint?id = null, ulong?ts = null, PointerDeviceType?device = null, bool?isInContact = true, PointerPointProperties properties = null) { id = id ?? (uint)Interlocked.Increment(ref _pointerId); ts = ts ?? (ulong)id; var pointer = new PointerDevice(device ?? PointerDeviceType.Mouse); var location = new Windows.Foundation.Point(x, y); properties = properties ?? new PointerPointProperties { IsPrimary = true, IsInRange = true, IsLeftButtonPressed = true, }; return(new PointerPoint(id.Value, ts.Value, pointer, (uint)pointer.PointerDeviceType, location, location, isInContact.GetValueOrDefault(), properties)); }