예제 #1
0
        private static PointerPoint GetPointerPoint(NSEvent nativeEvent, Point posInWindow)
        {
            var frameId           = ToFrameId(nativeEvent.Timestamp);
            var timestamp         = ToTimestamp(nativeEvent.Timestamp);
            var pointerDeviceType = GetPointerDeviceType(nativeEvent);
            var pointerDevice     = PointerDevice.For(pointerDeviceType);
            var pointerId         = pointerDeviceType == PointerDeviceType.Pen
                                ? (uint)nativeEvent.PointingDeviceID()
                                : (uint)0;
            var isInContact = GetIsInContact(nativeEvent);
            var properties  = GetPointerProperties(nativeEvent, pointerDeviceType);

            return(new PointerPoint(frameId, timestamp, pointerDevice, pointerId, posInWindow, posInWindow, isInContact, properties));
        }
예제 #2
0
        private static PointerEventArgs BuildPointerArgs(NSEvent nativeEvent, Point posInWindow)
        {
            var frameId           = ToFrameId(nativeEvent.Timestamp);
            var timestamp         = ToTimestamp(nativeEvent.Timestamp);
            var pointerDeviceType = GetPointerDeviceType(nativeEvent);
            var pointerDevice     = PointerDevice.For(pointerDeviceType);
            var pointerId         = pointerDeviceType == PointerDeviceType.Pen
                                ? (uint)nativeEvent.PointingDeviceID()
                                : (uint)1;
            var isInContact = GetIsInContact(nativeEvent);
            var properties  = GetPointerProperties(nativeEvent, pointerDeviceType).SetUpdateKindFromPrevious(_previous?.CurrentPoint.Properties);
            var modifiers   = GetVirtualKeyModifiers(nativeEvent);

            var point = new PointerPoint(frameId, timestamp, pointerDevice, pointerId, posInWindow, posInWindow, isInContact, properties);
            var args  = new PointerEventArgs(point, modifiers);

            _previous = args;

            return(args);
        }
        internal PointerRoutedEventArgs(NSSet touches, NSEvent nativeEvent, UIElement source) : this()
        {
            _nativeEvent   = nativeEvent;
            _nativeTouches = touches;

            var pointerDeviceType = GetPointerDeviceType(nativeEvent);
            var pointerId         = (uint)0;

            if (pointerDeviceType == PointerDeviceType.Pen)
            {
                pointerId = (uint)nativeEvent.PointingDeviceID();
            }

            var isInContact = GetIsInContact(nativeEvent);

            FrameId        = ToFrameId(_nativeEvent.Timestamp);
            Pointer        = new Pointer(pointerId, pointerDeviceType, isInContact, isInRange: true);
            KeyModifiers   = GetVirtualKeyModifiers(nativeEvent);
            OriginalSource = source;
        }