private bool SaveFile() { if (PixelPainter.Image != null) { if (SelectedImagePath == string.Empty) { SaveFileDialog SaveDlg = new SaveFileDialog(); SaveDlg.Filter = SaveDlgFilter; if (SaveDlg.ShowDialog() == DialogResult.OK) { SelectedImagePath = SaveDlg.FileName; } else { return(false); } } SetCurrPathStatusLabel(SelectedImagePath); PixelPainter.Save(SelectedImagePath); IsModified = false; return(true); } return(false); }
public void FloodPixels_ColorsAllAdjacentPixelsOfSameColor() { // Arrange PixelPainter pixelPainter = new PixelPainter(9, 9); pixelPainter.Grid[new Point(2, 3)] = Color.Blue; pixelPainter.Grid[new Point(3, 2)] = Color.Green; pixelPainter.Grid[new Point(3, 3)] = Color.Green; pixelPainter.Grid[new Point(3, 4)] = Color.Green; pixelPainter.Grid[new Point(3, 5)] = Color.Green; pixelPainter.Grid[new Point(3, 6)] = Color.Green; pixelPainter.Grid[new Point(4, 3)] = Color.Blue; pixelPainter.Grid[new Point(5, 3)] = Color.Blue; pixelPainter.Grid[new Point(5, 4)] = Color.Blue; pixelPainter.Grid[new Point(6, 3)] = Color.Blue; pixelPainter.Grid[new Point(6, 4)] = Color.Blue; pixelPainter.Grid[new Point(7, 3)] = Color.Blue; pixelPainter.Grid[new Point(8, 2)] = Color.Yellow; pixelPainter.Grid[new Point(8, 4)] = Color.Blue; pixelPainter.Grid[new Point(8, 5)] = Color.Blue; // Act pixelPainter.FloodPixels(new Point(6, 3), Color.Red); var numberOfFloodedPixels = pixelPainter.Grid.Values.Where(x => x == Color.Red).Count(); // Assert Assert.AreEqual(6, numberOfFloodedPixels); }
public void ColorSelectCallback(Color c) { GridColorButton.BackColor = c; if (CurrPixelMap != null) { CurrPixelMap.GridColor = Color.FromArgb(GridAlphaTrack.Value, c); PixelPainter.RefreshGrid(); } }
private void ShowGridCheckBox_CheckedChanged(object sender, EventArgs e) { if (CurrPixelMap != null) { CurrPixelMap.ShowGrid = ShowGridCheckBox.Checked; CurrPixelMap.PixelWidth = PixelMap.DefaultPixelWidth - (CurrPixelMap.ShowGrid ? CurrPixelMap.GridWidth : 0); PixelPainter.RefreshPixel(); } }
public void PixelPainter_CanCreateGrid() { // Arrange - Act PixelPainter nineByNinePixelPainter = new PixelPainter(9, 9); PixelPainter twentyByFiftyPixelPainter = new PixelPainter(20, 50); // Assert Assert.AreEqual(81, nineByNinePixelPainter.Grid.Count); Assert.AreEqual(1000, twentyByFiftyPixelPainter.Grid.Count); }
public void FloodPixels_StopsAtGridBoundaries() { // Arrange PixelPainter pixelPainter = new PixelPainter(9, 9); // Act pixelPainter.FloodPixels(new Point(1, 1), Color.Red); var numberOfFloodedPixels = pixelPainter.Grid.Values.Where(x => x == Color.Red).Count(); // Assert Assert.AreEqual(81, numberOfFloodedPixels); }
private void GridWidthBox_TextChanged(object sender, EventArgs e) { int w = 0; if (int.TryParse(GridWidthBox.Text, out w)) { if (CurrPixelMap != null) { CurrPixelMap.GridWidth = (w == 0 ? 1 : w); PixelPainter.RefreshPixel(); } } }
public void FillPixel_FillsOnlyTheSpecifiedPixel() { // Arrange PixelPainter pixelPainter = new PixelPainter(9, 9); Point pixel = new Point(2, 3); // Act pixelPainter.FillPixel(pixel, Color.Red); var numberOfUnaffectedPixels = pixelPainter.Grid.Values.Where(x => x.IsEmpty).Count(); // Assert Assert.AreEqual(Color.Red, pixelPainter.Grid[pixel]); Assert.AreEqual(80, numberOfUnaffectedPixels); }
public void FillAdjacentCells_FillsOnlyTheSpecifiedRow() { // Arrange PixelPainter pixelPainter = new PixelPainter(9, 9); Point firstPixel = new Point(2, 3); Point endPixel = new Point(6, 3); // Act pixelPainter.FillAdjacentCells(firstPixel, endPixel, Color.Red); var numberOfUnaffectedPixels = pixelPainter.Grid.Values.Where(x => x.IsEmpty).Count(); var numberOfAffectedPixels = pixelPainter.Grid.Values.Where(x => x == Color.Red).Count(); // Assert Assert.AreEqual(5, numberOfAffectedPixels); Assert.AreEqual(76, numberOfUnaffectedPixels); }
private void ZoomResetMenuItem_Click(object sender, EventArgs e) { PixelPainter.ZoomReset(); }
private void ZoomOutMenuItem_Click(object sender, EventArgs e) { PixelPainter.Zoom(-1); }
private void ResumeMenuItem_Click(object sender, EventArgs e) { CommandManager.Instance.Redo(); PixelPainter.UpdateDrawable(); }