diff --git a/Paint_2/Form1.cs b/Paint_2/Form1.cs index 7a49b1e..69e0589 100644 --- a/Paint_2/Form1.cs +++ b/Paint_2/Form1.cs @@ -17,8 +17,6 @@ namespace Paint_2 List toolList; bool drawing = false; Random rnd; - - int debugCounter = 0; public PaintForm() { InitializeComponent(); @@ -42,14 +40,17 @@ namespace Paint_2 sketch.StartDrawing(MousePositionToCanvasPosition(), Color.FromArgb(rnd.Next(0,256), rnd.Next(0, 256), rnd.Next(0, 256)), (int)nupPencilWidth.Value); tmrRefresh.Enabled = true; - //new Thread((sketch) => { (sketch as Sketch).AddDrawingPoint(this.PointToClient(MousePosition)); }).Start(); + List colorHistory = sketch.CurrentTool.GetLastColors(4); + btnColorHistory1.BackColor = colorHistory[0]; + btnColorHistory2.BackColor = colorHistory[1]; + btnColorHistory3.BackColor = colorHistory[2]; + btnColorHistory4.BackColor = colorHistory[3]; } private void canvas_MouseUp(object sender, MouseEventArgs e) { tmrRefresh.Enabled = false; sketch.AddDrawingPoint(MousePositionToCanvasPosition()); - sketch.Paint(); - canvas.Image = sketch.Drawing; + canvas.Image = sketch.Paint(); drawing = false; } @@ -58,8 +59,7 @@ namespace Paint_2 if (drawing) { sketch.AddDrawingPoint(MousePositionToCanvasPosition()); - sketch.Paint(); - canvas.Image = sketch.Drawing; + canvas.Image = sketch.Paint(); } } } diff --git a/Paint_2/PaintTool.cs b/Paint_2/PaintTool.cs index 27469cd..edeb856 100644 --- a/Paint_2/PaintTool.cs +++ b/Paint_2/PaintTool.cs @@ -18,6 +18,7 @@ namespace Paint_2 void Start(Point point,Color color,int width); void Stop(Point point); void Add(Point point); + List GetLastColors(int colorNumber); void Paint(Bitmap canvas); } } diff --git a/Paint_2/Pencil.cs b/Paint_2/Pencil.cs index c8a5adc..c167922 100644 --- a/Paint_2/Pencil.cs +++ b/Paint_2/Pencil.cs @@ -66,5 +66,25 @@ namespace Paint_2 { throw new NotImplementedException(); } + public List GetLastColors(int colorNumber) + { + List result = new List(); + if (Colors.Count <= colorNumber) + { + //We need to fill with black color + for (int i = colorNumber; i >= 0; i--) + { + result.Add(Color.FromArgb(0x00,0x00,0x00)); + } + } + else + { + for(int i = colorNumber; i > 0; i--) + { + result.Add(Colors[(Colors.Count)-i]); + } + } + return result; + } } } diff --git a/Paint_2/Sketch.cs b/Paint_2/Sketch.cs index 8715564..14476fe 100644 --- a/Paint_2/Sketch.cs +++ b/Paint_2/Sketch.cs @@ -56,12 +56,13 @@ namespace Paint_2 { CurrentTool.Add(location); } - public void Paint() + public Bitmap Paint() { foreach (PaintTool tool in ToolList) { tool.Paint(Drawing); } + return Drawing; } public Color GetColor(Point location) {