public void DeselectAll() { foreach (var item in RenderingEngine.CurrentProject.Items) { item.IsSelected = false; } CurrentSelection.Clear(); foreach (var item in RenderingEngine.CurrentProject.Connections) { item.IsSelected = false; } CurrentSelectionConnection.Clear(); }
private void MouseServiceOnMouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { MouseRightDownMoveTranslationPositionLast = e.Location; } if (e.Button == MouseButtons.Left) { StartSelectionRectangle = false; MouseLeftDownMovePositionLast = RenderingEngine.TranslatedMousePosition; MouseLeftDownPositionLast = RenderingEngine.TranslatedMousePosition; if (!StartDrag) { Input = null; Output = null; var mouseOverItems = RenderingEngine.CurrentProject.Items.Where(x => x.IsMouseOver).ToList(); var mouseOverConnections = RenderingEngine.CurrentProject.Connections.Where(x => x.IsMouseOver).ToList(); if (mouseOverItems.Count == 0 && mouseOverConnections.Count == 0) { DeselectAll(); } if (mouseOverItems.Count > 0) { foreach (var selectedItem in mouseOverItems) { if (!CurrentSelection.Contains(selectedItem)) { DeselectAll(); CurrentSelection.Add(selectedItem); } selectedItem.IsSelected = true; List <InputOutputBase> inputOutputs = new List <InputOutputBase>(); inputOutputs.AddRange(selectedItem.Inputs); inputOutputs.AddRange(selectedItem.Outputs); var mouseOverInputOutput = inputOutputs.FirstOrDefault(x => x.IsMouseOver); if (mouseOverInputOutput != null) { if (mouseOverInputOutput is InputBase) { Input = new InputOutputSelector(selectedItem, mouseOverInputOutput); } if (mouseOverInputOutput is OutputBase) { Output = new InputOutputSelector(selectedItem, mouseOverInputOutput); } } } } if (mouseOverConnections.Count > 0) { foreach (var selectedItem in mouseOverConnections) { if (!CurrentSelectionConnection.Contains(selectedItem)) { DeselectAll(); CurrentSelectionConnection.Add(selectedItem); } selectedItem.IsSelected = true; } } } if (!SelectedItemsAvailable) { StartSelectionRectangle = true; SelectionRectangleStart = e.Location; } StartDrag = true; } if (e.Button == MouseButtons.Middle) { MouseMiddleDownMovePositionLast = e.Location; } }