internal PointerRoutedEventArgs( double timestamp, uint pointerId, PointerDeviceType pointerType, Point absolutePosition, bool isInContact, WindowManagerInterop.HtmlPointerButtonsState buttons, WindowManagerInterop.HtmlPointerButtonUpdate buttonUpdate, VirtualKeyModifiers keys, double pressure, UIElement source, bool canBubbleNatively) : this() { _timestamp = timestamp; _absolutePosition = absolutePosition; _buttons = buttons; _buttonUpdate = buttonUpdate; _pressure = pressure; FrameId = ToFrameId(timestamp); Pointer = new Pointer(pointerId, pointerType, isInContact, isInRange: true); KeyModifiers = keys; OriginalSource = source; CanBubbleNatively = canBubbleNatively; }
private static PointerUpdateKind ToUpdateKind(WindowManagerInterop.HtmlPointerButtonUpdate update, PointerPointProperties props) { switch (update) { case WindowManagerInterop.HtmlPointerButtonUpdate.Left when props.IsLeftButtonPressed: return(PointerUpdateKind.LeftButtonPressed); case WindowManagerInterop.HtmlPointerButtonUpdate.Left: return(PointerUpdateKind.LeftButtonReleased); case WindowManagerInterop.HtmlPointerButtonUpdate.Middle when props.IsMiddleButtonPressed: return(PointerUpdateKind.MiddleButtonPressed); case WindowManagerInterop.HtmlPointerButtonUpdate.Middle: return(PointerUpdateKind.MiddleButtonReleased); case WindowManagerInterop.HtmlPointerButtonUpdate.Right when props.IsRightButtonPressed: return(PointerUpdateKind.RightButtonPressed); case WindowManagerInterop.HtmlPointerButtonUpdate.Right: return(PointerUpdateKind.RightButtonReleased); case WindowManagerInterop.HtmlPointerButtonUpdate.X1 when props.IsXButton1Pressed: return(PointerUpdateKind.XButton1Pressed); case WindowManagerInterop.HtmlPointerButtonUpdate.X1: return(PointerUpdateKind.XButton1Released); case WindowManagerInterop.HtmlPointerButtonUpdate.X2 when props.IsXButton2Pressed: return(PointerUpdateKind.XButton1Pressed); case WindowManagerInterop.HtmlPointerButtonUpdate.X2: return(PointerUpdateKind.XButton1Released); default: return(PointerUpdateKind.Other); } }