/// <summary> /// Sets the <see cref="Canvas"/> cursor associated with the object under mouse /// </summary> public override void OnKeyDown(KeyEventArgs e) { var feedback = objectUnderMouse?.GetFeedback(previousMouseLocation, e.Modifiers) ?? new Feedback(Cursors.Default, string.Empty); Canvas.OnFeedbackChanged(feedback.Cursor, feedback.Hint); base.OnKeyDown(e); }
/// <summary> /// TODO /// </summary> public override void OnMouseMove(MouseEventArgs e, Keys modifierKeys) { var location = Canvas.SnapToInterval && (modifierKeys & Keys.Control) != Keys.Control ? e.Location.Snap(Canvas.SnapInterval) : e.Location; var dx = location.X - previousMouseLocation.X; var dy = location.Y - previousMouseLocation.Y; previousMouseLocation = location; objectUnderMouse = FindObjectAt(Layer.CanvasObjects, e.Location, modifierKeys); if (IsMouseDown && allowMove) { selectedObjects.ForEach(o => o.MoveBy(dx, dy, modifierKeys)); } var feedback = objectUnderMouse?.GetFeedback(e.Location, modifierKeys) ?? new Feedback(Cursors.Default, string.Empty); Canvas.OnFeedbackChanged(feedback.Cursor, feedback.Hint); Refresh(); base.OnMouseMove(e, modifierKeys); }