public override void Dispose() { base.Dispose(); _events.OnRepeatedlyExecute.Unsubscribe(onRepeatedlyExecute); foreach (var handle in _resizeHandles) { handle.Dispose(); } foreach (var handle in _rotateHandles) { handle.Dispose(); } _pivotHandle?.Dispose(); _dragHandle?.Dispose(); _resizeHandles.Clear(); _rotateHandles.Clear(); _pivotHandle = null; _dragHandle = null; var window = _window; if (window != null) { window.PropertyChanged -= onWindowPropertyChanged; _window = null; } }
private void onMouseDown(MouseButtonEventArgs args) { if (args.Button != MouseButton.Left) { return; } if (!_selectionMarker.Visible) { return; } var obj = _editor.CanvasHitTest.ObjectAtMousePosition; if (obj == null) { return; } _dragHandle?.Dispose(); var handle = _editor.Editor.Factory.Object.GetObject($"{obj.ID}_DraggingHandle"); _dragHandle = new DragHandle(handle, _editor, _editor.Editor.State, _editor.EditorResolver.Container.Resolve <ActionManager>(), false); _dragHandle.SetBox(obj.GetComponent <IBoundingBoxComponent>()); _dragHandle.SetTranslate(obj.GetComponent <ITranslateComponent>()); _dragHandle.SetImage(obj.GetComponent <IImageComponent>()); handle.GetComponent <IDraggableComponent>().SimulateMouseDown(args); }
private void addDragHandle(IEntity entity) { var obj = _factory.Object.GetObject($"{entity.ID}_DragHandle"); _dragHandle = new DragHandle(obj, _editor, _state, _input, _actions, true); }