コード例 #1
0
        /// <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;
            }
        }
コード例 #2
0
        /// <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();
        }