Ejemplo n.º 1
0
 //--- Смена выбранной фигуры в режиме редактирования
 public void ReselectShapeForEdit(ShapeBase new_select_shape)
 {
     UnselectAllShapes();                                                                //  Убираем пометки выбора у всех выбранных до этого фигур
     SelectShape(new_select_shape);                                                      //  и выбираем заданную в параметре
 }
Ejemplo n.º 2
0
        //--- Удаление фигуры из Редактора из МенеджераФигур
        public void RemoveShape(ShapeBase shape)
        {
            if (_Editor.SelectedShapeForEdit != null && _Editor.SelectedShapeForEdit.GetHashCode() == shape.GetHashCode())
            {
                _Editor.IsSelectedShapeForEdit = false;                             // Теперь редактируемой фигуры нет
                _Editor.SelectedShapeForEdit   = null;
            }
            if (_Editor.SelectedShapeList != null && _Editor.SelectedShapeList.Contains(shape))
            {
                _Editor.SelectedShapeList.Remove(shape);
                _Editor.SelectedShapeCount--;
            }

            ((ShapeBase)shape).RemoveShapeFromPanels();                             //  Удалем фигуру из всех панелей рисования и обслуживания
            shapeList.Remove(shape);                                                //  Удаляем фигуру из списока обслуживамых фигур
            _Editor.ShapeCount--;                                                   //  Общее кол-во фигур уменьшилось на одну

            switch (shape.shapeType)                                                // В зависимости от типа фигуры уменьшаем счетчик этих фигур на единицу
            {
            case SHAPE_TYPE.Point:
                if (_Editor.PointsCount > 0)
                {
                    _Editor.PointsCount--;
                }
                break;

            case SHAPE_TYPE.Line:
                if (_Editor.LinesCount > 0)
                {
                    _Editor.LinesCount--;
                }
                break;

            case SHAPE_TYPE.PolyLine:
                if (_Editor.PolyLinesCount > 0)
                {
                    _Editor.PolyLinesCount--;
                }
                break;

            case SHAPE_TYPE.Polygon:
                if (_Editor.PolygonsCount > 0)
                {
                    _Editor.PolygonsCount--;
                }
                if (_Editor.EditorMode == EDITOR_MODE.PolygonOperations)
                {
                    if (_Editor.PolygonsCount < 2)
                    {
                        _Editor.EditorMode = EDITOR_MODE.Selection;
                    }
                }
                break;
            }

            if (_Editor.ShapeCount < 1)
            {
                if (_Editor.EditorMode != EDITOR_MODE.DrawNew)
                {
                    _Editor.EditorMode = EDITOR_MODE.ModeUnknown;
                }
            }
        }