Example #1
0
        /// <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));
        }
Example #2
0
        /// <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));
        }
Example #3
0
 private void ResetState()
 {
     _currentTool   = null;
     _lastTool      = null;
     State.Action   = BoxAction.ReadyToDraw;
     State.BoxStart = null;
     State.BoxEnd   = null;
 }
Example #4
0
        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();
        }
Example #5
0
 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();
     }
 }
Example #6
0
 public void TransformationToolChanged(TransformationTool tt)
 {
     _selectedType = tt == null ? null : tt.GetType();
     SetCheckState();
 }