public GestureNotification(GestureNotificationKind kind, Vector2 position, Vector2 clientArea, int id, int sequenceId, long gestureDeviceID, int flags, Int64 ullArguments, int cbExtraArgs) { Kind = kind; Position = position; ClientArea = clientArea; Id = id; SequenceId = sequenceId; GestureDeviceID = gestureDeviceID; Flags = flags; Arguments = ullArguments; ExtraArguments = cbExtraArgs; }
public GestureNotification(GestureNotificationKind kind, Point position, Size clientArea, int id, int sequenceId, long gestureDeviceID, int flags, Int64 ullArguments, int cbExtraArgs, object sender) : base(sender) { Kind = kind; Position = position; ClientArea = clientArea; Id = id; SequenceId = sequenceId; GestureDeviceID = gestureDeviceID; Flags = flags; Arguments = ullArguments; ExtraArguments = cbExtraArgs; }
public virtual void OnImportsSatisfied() { FGestureFilterKind = SetGestureKindFilter(); PositionOut.SliceCount = 0; IdOut.SliceCount = 0; DeviceIDOut.SliceCount = 0; FSubscription = new Subscription <GestureDevice, GestureNotification>( gestureDevice => { return(gestureDevice.Notifications.Where(g => (g.Kind == FGestureFilterKind) || (g.Kind == GestureNotificationKind.GestureEnd))); }, (gestureDevice, g) => { var index = IdOut.IndexOf(g.Id); var isFilterMatch = g.Kind == FGestureFilterKind; UseGesture(g, isFilterMatch, index); if (isFilterMatch) { var position = new Vector2D(g.Position.X, g.Position.Y); var clientArea = new Vector2D(g.ClientArea.Width, g.ClientArea.Height); var normalizedPosition = VMath.Map(position, Vector2D.Zero, clientArea, new Vector2D(-1, 1), new Vector2D(1, -1), TMapMode.Float); if (index < 0) { PositionOut.Add(normalizedPosition); IdOut.Add(g.Id); DeviceIDOut.Add(g.GestureDeviceID); } else { PositionOut[index] = normalizedPosition; IdOut[index] = g.Id; DeviceIDOut[index] = g.GestureDeviceID; } } else if (index >= 0) { PositionOut.RemoveAt(index); IdOut.RemoveAt(index); DeviceIDOut.RemoveAt(index); } }, FScheduler ); }
public virtual void OnImportsSatisfied() { FGestureFilterKind = SetGestureKindFilter(); }
public virtual void OnImportsSatisfied() { FGestureFilterKind = SetGestureKindFilter(); PositionPixelOut.SliceCount = 0; PositionInProjectionSpaceOut.SliceCount = 0; PositionInNormalizedProjectionOut.SliceCount = 0; PositionOut.SliceCount = 0; IdOut.SliceCount = 0; DeviceIDOut.SliceCount = 0; FSubscription = new Subscription <GestureDevice, GestureNotification>( gestureDevice => { return(gestureDevice.Notifications.Where(g => (g.Kind == FGestureFilterKind) || (g.Kind == GestureNotificationKind.GestureEnd))); }, (gestureDevice, g) => { var index = IdOut.IndexOf(g.Id); var isFilterMatch = g.Kind == FGestureFilterKind; UseGesture(g, isFilterMatch, index); if (isFilterMatch) { Vector2D inNormalizedProjection, inProjection; SpaceHelpers.MapFromPixels(g.Position, g.Sender, g.ClientArea, out inNormalizedProjection, out inProjection); var normalizedPosition = MouseExtensions.GetLegacyMousePositon(g.Position, g.ClientArea); var inPixels = new Vector2D(g.Position.X, g.Position.Y); if (index < 0) { PositionPixelOut.Add(inPixels); PositionInProjectionSpaceOut.Add(inProjection); PositionInNormalizedProjectionOut.Add(inNormalizedProjection); PositionOut.Add(normalizedPosition); IdOut.Add(g.Id); DeviceIDOut.Add(g.GestureDeviceID); } else { PositionPixelOut[index] = inPixels; PositionInProjectionSpaceOut[index] = inProjection; PositionInNormalizedProjectionOut[index] = inNormalizedProjection; PositionOut[index] = normalizedPosition; IdOut[index] = g.Id; DeviceIDOut[index] = g.GestureDeviceID; } } else if (index >= 0) { PositionPixelOut.RemoveAt(index); PositionInProjectionSpaceOut.RemoveAt(index); PositionInNormalizedProjectionOut.RemoveAt(index); PositionOut.RemoveAt(index); IdOut.RemoveAt(index); DeviceIDOut.RemoveAt(index); } }, FScheduler ); }