Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void ColorSelectCallback(Color c)
 {
     GridColorButton.BackColor = c;
     if (CurrPixelMap != null)
     {
         CurrPixelMap.GridColor = Color.FromArgb(GridAlphaTrack.Value, c);
         PixelPainter.RefreshGrid();
     }
 }
Exemplo n.º 4
0
        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();
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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();
                }
            }
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
 private void ZoomResetMenuItem_Click(object sender, EventArgs e)
 {
     PixelPainter.ZoomReset();
 }
Exemplo n.º 11
0
 private void ZoomOutMenuItem_Click(object sender, EventArgs e)
 {
     PixelPainter.Zoom(-1);
 }
Exemplo n.º 12
0
 private void ResumeMenuItem_Click(object sender, EventArgs e)
 {
     CommandManager.Instance.Redo();
     PixelPainter.UpdateDrawable();
 }