/// <summary> /// Deselect (first) a list of objects and then select (second) another list. /// </summary> /// <param name="objectsToDeselect">The objects to deselect</param> /// <param name="objectsToSelect">The objects to select</param> /// <param name="deselectAll">If true, this will ignore the objectToDeselect parameter and just deselect everything</param> /// <param name="ignoreGrouping">If true, object groups will be ignored</param> private void SetSelected(IEnumerable <MapObject> objectsToDeselect, IEnumerable <MapObject> objectsToSelect, bool deselectAll, bool ignoreGrouping) { if (objectsToDeselect == null) { objectsToDeselect = new MapObject[0]; } if (objectsToSelect == null) { objectsToSelect = new MapObject[0]; } if (deselectAll) { objectsToDeselect = Document.Selection.GetSelectedObjects(); _lastTool = null; } // Normalise selections objectsToDeselect = NormaliseSelection(objectsToDeselect.Where(x => x != null), ignoreGrouping); objectsToSelect = NormaliseSelection(objectsToSelect.Where(x => x != null), ignoreGrouping); // Don't bother deselecting the objects we're about to select objectsToDeselect = objectsToDeselect.Where(x => !objectsToSelect.Contains(x)); // Perform selections var deselected = objectsToDeselect.ToList(); var selected = objectsToSelect.ToList(); Document.PerformAction("Selection changed", new ChangeSelection(selected, deselected)); }
/// <summary> /// Deselect (first) a list of objects and then select (second) another list. /// </summary> /// <param name="objectsToDeselect">The objects to deselect</param> /// <param name="objectsToSelect">The objects to select</param> /// <param name="deselectAll">If true, this will ignore the objectToDeselect parameter and just deselect everything</param> /// <param name="ignoreGrouping">If true, object groups will be ignored</param> private void SetSelected(IEnumerable <MapObject> objectsToDeselect, IEnumerable <MapObject> objectsToSelect, bool deselectAll, bool ignoreGrouping) { if (objectsToDeselect == null) { objectsToDeselect = new MapObject[0]; } if (objectsToSelect == null) { objectsToSelect = new MapObject[0]; } if (deselectAll) { objectsToDeselect = Document.Selection.GetSelectedObjects(); _lastTool = null; } // Normalise selections objectsToDeselect = NormaliseSelection(objectsToDeselect.Where(x => x != null), ignoreGrouping); objectsToSelect = NormaliseSelection(objectsToSelect.Where(x => x != null), ignoreGrouping); // The following line breaks undo, don't uncomment unless you know what you're doing! // (pro tip: you don't know what you're doing) //objectsToDeselect = objectsToDeselect.Where(x => !objectsToSelect.Contains(x)); // Perform selections var deselected = objectsToDeselect.ToList(); var selected = objectsToSelect.ToList(); Document.PerformAction("Selection changed", new ChangeSelection(selected, deselected)); }
private void ResetState() { _currentTool = null; _lastTool = null; State.Action = BoxAction.ReadyToDraw; State.BoxStart = null; State.BoxEnd = null; }
public override void ToolSelected(bool preventHistory) { _form.Show(Editor.Instance); Editor.Instance.Focus(); TotalTranslation = Coordinate.Zero; TotalRotation = new OpenTK.Quaternion(0, 0, 0, 1); _currentTool = null; _lastTool = null; _form.OnShow(); }
private void SetCurrentTool(TransformationTool tool) { if (tool != null) { _lastTool = tool; } _currentTool = tool; _widgets = (_currentTool == null) ? new List <Widget>() : _currentTool.GetWidgets(Document).ToList(); foreach (var widget in _widgets) { widget.OnTransforming = OnWidgetTransforming; widget.OnTransformed = OnWidgetTransformed; widget.SelectionChanged(); } }
public void TransformationToolChanged(TransformationTool tt) { _selectedType = tt == null ? null : tt.GetType(); SetCheckState(); }