public override void PostAllPoints(MouseMessageType type, Point point) { if (HasEscapedInitialRadius(point)) { effector.NewPoint(type, point); } }
public LocalDragEventArgs(Point rawPoint, MouseMessageType messageType, Size targetSize, MouseButton buttonUsed, FrameworkElement target) { RawPoint = rawPoint; MessageType = messageType; TargetSize = targetSize; ButtonUsed = buttonUsed; Target = target; TransformedPoint = rawPoint; }
protected virtual double Snap(double angleInDegrees, MouseMessageType type) { foreach (var anchor in anchors) { if (IsCloseEnoughToSnapToAnchor(angleInDegrees, anchor)) { return(anchor); } } return(angleInDegrees); }
private void TryShowOrHideWindow(MouseMessageType type, Point point) { switch (type) { case MouseMessageType.Down: SwapTargetWithProxyWindow(point); break; case MouseMessageType.Up: FinishDrag(); break; } }
public void NewPoint(MouseMessageType type, T point) { if (type == MouseMessageType.Down) { // Several draggers cache the initial point to work their magic. We send the // mouse down to both draggers, but to the nonpreferred dragger first, so the // message to the preferred dragger will overwrite the nonpreferred. SendMouseDownToBothDraggers(type, point); } else { SendMouseToActiveDragger(type, point); } }
private void SendClickSpecificMessage(MouseMessageType type, T point) { switch (type) { case MouseMessageType.Down: MouseDown(point); break; case MouseMessageType.Move: MouseMove(point); break; case MouseMessageType.Up: MouseUp(point); break; } }
public void NewPoint(MouseMessageType type, T point) { PreAllPoints(type, point); SendClickSpecificMessage(type, point); PostAllPoints(type, point); }
public override void PostAllPoints(MouseMessageType type, T point) => effector.NewPoint(type, point);
public void NewPoint(MouseMessageType type, T point) => action(type, point);
private void SendMousePosition(MouseMessageType type, MouseEventArgs args) { SendMousePosition(type, args.GetPosition(Target)); }
protected override LocalDragEventArgs CreateLocalDragEventArgs(MouseMessageType type, Point position) { return(new LocalDragEventArgs(position, type, new Size(Target.ActualWidth, Target.ActualHeight), buttonBeingDragged, Target)); }
// this is a test hook public override void SendMousePosition(MouseMessageType type, Point position) { CheckInitialArgsSent(); base.SendMousePosition(type, position); }
protected abstract LocalDragEventArgs CreateLocalDragEventArgs(MouseMessageType type, Point position);
public override void PostAllPoints(MouseMessageType type, Point point) { NotifyDeltaMove(type, point); RecordLastPoint(point); }
public void NewPoint(MouseMessageType type, Point point) { TryShowOrHideWindow(type, point); UpdateWindowLocation(); }
public override void PostAllPoints(MouseMessageType type, Point point) => target.NewPoint(type, AdjustPoint(point));
private void SendMouseToActiveDragger(MouseMessageType type, T point) => PickDragger().Active.NewPoint(type, point);
private LocalDragEventArgs CreateLdea(MouseMessageType type, (double X, double Y) pt) =>
protected override double Snap(double angleInDegrees, MouseMessageType type) => type == MouseMessageType.Up ? base.Snap(angleInDegrees, type): angleInDegrees;
private void SendMouseMessage(MouseMessageType type, MouseEventArgs args) { reportMove(type, args.GetPosition(target)); args.Handled = true; }
public void NewPoint(MouseMessageType type, CircularPoint point) => target.NewPoint(type, new CircularPoint(Snap(point.AngleInDegrees, type), point.Length));
private void SendMouseDownToBothDraggers(MouseMessageType type, T point) { var(inactive, active) = PickDragger(); inactive.NewPoint(type, point); active.NewPoint(type, point); }
protected virtual void PreAllPoints(MouseMessageType type, T point) { }
public override void PostAllPoints(MouseMessageType type, Point point) => target.NewPoint(type, point + offset);
public virtual void PostAllPoints(MouseMessageType type, T point) { }
public void SendMousePosition(MouseMessageType type, Point position) => MouseMoved?.Invoke(type, position);
protected override LocalDragEventArgs CreateLocalDragEventArgs(MouseMessageType type, Point position) => new LocalDragEventArgs(position, type, windowSize, buttonUsed, target);
private void NotifyDeltaMove(MouseMessageType type, Point point) => target.NewPoint(type, (point - lastPoint).AsPoint());
// this is a test hook public virtual void SendMousePosition(MouseMessageType type, Point position) { MouseMoved?.Invoke(this, CreateLocalDragEventArgs(type, position)); }