Esempio n. 1
0
        public async void AddColumn(bool addRight, int index = -1, IDominoShape colorReference = null)
        {
            var selected = GetSelectedDominoes();

            try
            {
                if (selected.Count > 0 || index != -1)
                {
                    int selDomino = selected.Count > 0 ? selected.First() : index;
                    int color     = (colorReference ?? dominoTransfer[selDomino]).Color;
                    if (CurrentProject is IRowColumnAddableDeletable)
                    {
                        AddColumns addRows = new AddColumns((CurrentProject as IRowColumnAddableDeletable), selDomino, 1, color, addRight);
                        ClearCanvas();
                        ExecuteOperation(addRows);

                        RecreateCanvasViewModel();
                        SelectionTool.Select(addRows.added_indizes, true);
                        UpdateUIElements();
                        DisplaySettingsTool.SliceImage();
                    }
                    else
                    {
                        await Errorhandler.RaiseMessage(_("Adding columns is not supported in this project."), _("Add Row"), Errorhandler.MessageType.Warning);
                    }
                }
            }
            catch (InvalidOperationException ex)
            {
                await Errorhandler.RaiseMessage(ex.Message, _("Error"), Errorhandler.MessageType.Error);
            }
        }
 public EditingDominoVM(int idx, IDominoShape domino, ColorRepository colorlist, bool expanded = false)
 {
     colorRepository = colorlist;
     this.idx        = idx;
     this.domino     = domino;
     this.expanded   = expanded;
 }
Esempio n. 3
0
        public DominoInCanvas(int idx, IDominoShape domino, ColorRepository colorlist, bool showSpaces)
        {
            colorRepository      = colorlist;
            this.idx             = idx;
            StoneColor           = colorlist[domino.color].mediaColor;
            this.domino          = domino;
            domino.ColorChanged += Domino_ColorChanged;
            Stroke          = Brushes.Blue;
            StrokeThickness = 1;
            DominoPath rectangle = domino.GetPath();

            if (domino is RectangleDomino rectangleDomino)
            {
                double stoneWidth  = 0;
                double stoneHeight = 0;
                if (showSpaces)
                {
                    stoneHeight = rectangleDomino.height;
                    stoneWidth  = rectangleDomino.width;
                }
                else
                {
                    stoneHeight = rectangleDomino.expanded_height;
                    stoneWidth  = rectangleDomino.expanded_width;
                }
                canvasPoints[0] = new System.Windows.Point(rectangleDomino.x, rectangleDomino.y);
                canvasPoints[1] = new System.Windows.Point(rectangleDomino.x + stoneWidth, rectangleDomino.y);
                canvasPoints[2] = new System.Windows.Point(rectangleDomino.x + stoneWidth, rectangleDomino.y + stoneHeight);
                canvasPoints[3] = new System.Windows.Point(rectangleDomino.x, rectangleDomino.y + stoneHeight);
            }
            else
            {
                canvasPoints[0] = new System.Windows.Point(rectangle.points[0].X, rectangle.points[0].Y);
                canvasPoints[1] = new System.Windows.Point(rectangle.points[1].X, rectangle.points[1].Y);
                canvasPoints[2] = new System.Windows.Point(rectangle.points[2].X, rectangle.points[2].Y);
                canvasPoints[3] = new System.Windows.Point(rectangle.points[3].X, rectangle.points[3].Y);
            }
        }