/// <summary> /// Функция определяет операцию взаимодействия и инициирует ее /// </summary> /// <param name="status">Статус (тип) действия</param> public static void SLERoute(ESaveLoadStatus status) { CurrentSettings.SetCurrentItem(); switch (status) { case ESaveLoadStatus.Save: Save(); break; case ESaveLoadStatus.Load: Load(); break; case ESaveLoadStatus.Export: Export(); break; } }
/// <summary> /// Функция определяет последнее действие и инициирует его отмену /// </summary> public void Cancel() { if (_cancelEvents.Count == 0) { return; } var tmpCEvent = _cancelEvents.Pop(); object[] tmp = null; if (tmpCEvent.CancelObject is object[]) { tmp = (object[])tmpCEvent.CancelObject; } if (tmpCEvent.CancelObject == null) { return; } switch (tmpCEvent.CancelType) { case ECancelTypes.Add: CancelAdd((ICanvasItem)tmpCEvent.CancelObject); break; case ECancelTypes.Remove: CancelRemove((ICanvasItem)tmpCEvent.CancelObject); break; case ECancelTypes.Move: CancelMove((ICanvasItem)tmp[0], (List <CustPoint>)tmp[1]); CurrentSettings.MoveDelegate?.Invoke(); break; case ECancelTypes.Width: CancelWidth((IRectangleItem)tmp[0], (double)tmp[1]); CurrentSettings.MoveDelegate?.Invoke(); break; case ECancelTypes.Height: CancelHeight((IRectangleItem)tmp[0], (double)tmp[1]); CurrentSettings.MoveDelegate?.Invoke(); break; case ECancelTypes.FillColor: CancelFillColor((IPropertiesItem)tmp[0], (Brush)tmp[1]); break; case ECancelTypes.Thickness: CancelThickness((IPropertiesItem)tmp[0], (double)tmp[1]); break; case ECancelTypes.StrokeColor: CancelStrokeColor((IPropertiesItem)tmp[0], (Brush)tmp[1]); break; case ECancelTypes.AddNewPoint: CancelAddNewPoint((ICanvasItem)tmp[0], (List <CustPoint>)tmp[1]); CurrentSettings.MoveDelegate?.Invoke(); break; } CurrentSettings.SetCurrentItem(); }