protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); var position = e.GetPosition(this); var result = CircuitEditorHitTest.HitTest(this, position); var hitTest = ToEditorHitTest(result); foreach (var operation in GetActiveOperations()) { operation.OnMouseDown(position, hitTest, this); } }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); var position = e.GetPosition(this); var result = CircuitEditorHitTest.HitTest(this, position); var hitTest = ToEditorHitTest(result); bool operationPerformed = false; foreach (var operation in GetActiveOperations()) { operationPerformed |= operation.OnMouseMove(position, hitTest, this); } if (result?.Element != null) { HighlightElement(result.Element); result = CircuitEditorHitTest.HitTest(this, position); hitTest = ToEditorHitTest(result); if (hitTest.ResizeHandle != null) { foreach (var operation in GetActiveOperations()) { operation.OnMouseMove(position, hitTest, this); } } } if (!operationPerformed && hitTest.Element == null && hitTest.ResizeHandle == null) { Cursor = Cursors.Arrow; HighlightOnlySelectedElements(); } }