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; }
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); } }