// DO - UNDO SHORTCUTS protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | Keys.Z)) { ponówToolStripMenuItem.Enabled = true; if (drawings.Count > 0) { temp.Add(drawings[drawings.Count - 1]); drawings.RemoveAt(drawings.Count - 1); Drawing_Box.Refresh(); } return(true); } else if (keyData == (Keys.Control | Keys.Y)) { if (temp.Count > 0) { drawings.Add(temp[temp.Count - 1]); temp.RemoveAt(temp.Count - 1); Drawing_Box.Refresh(); if (temp.Count == 0) { ponówToolStripMenuItem.Enabled = false; } } return(true); } return(base.ProcessCmdKey(ref msg, keyData)); }
// -- // MAIN FORM public Form1() { InitializeComponent(); drawings = new List <Shape>(); temp = new List <Shape>(); penLocation = new List <Point>(); eraserLocation = new List <Point>(); dashValues = new float[4]; drawingPen = new Pen(color, penSize); Filling_Box.Visible = false; Eraser_Size_Box.Visible = false; ponówToolStripMenuItem.Enabled = false; Drawing_Box.Image = new Bitmap(Drawing_Box.Width, Drawing_Box.Height); g = Graphics.FromImage(Drawing_Box.Image); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); // Drawing_Box.SizeMode = PictureBoxSizeMode.CenterImage; Drawing_Box.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(panel1, new object[] { System.Windows.Forms.ControlStyles.UserPaint | System.Windows.Forms.ControlStyles.AllPaintingInWmPaint | System.Windows.Forms.ControlStyles.DoubleBuffer, true }); }
// MAIN OPERATIONS - MENU private void nowyToolStripMenuItem_Click(object sender, EventArgs e) { Drawing_Box.Image = new Bitmap(Drawing_Box.Width, Drawing_Box.Height); drawings.Clear(); temp.Clear(); Drawing_Box.Refresh(); }
// DO - UNDO - MENU private void cofnijToolStripMenuItem_Click(object sender, EventArgs e) { ponówToolStripMenuItem.Enabled = true; if (drawings.Count > 0) { temp.Add(drawings[drawings.Count - 1]); drawings.RemoveAt(drawings.Count - 1); Drawing_Box.Refresh(); } }
private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { toolStripProgressBar1.Style = ProgressBarStyle.Continuous; toolStripProgressBar1.MarqueeAnimationSpeed = 0; if (operation.Equals("open")) { Drawing_Box.Refresh(); drawings.Clear(); temp.Clear(); } }
private void ponówToolStripMenuItem_Click(object sender, EventArgs e) { if (temp.Count > 0) { drawings.Add(temp[temp.Count - 1]); temp.RemoveAt(temp.Count - 1); Drawing_Box.Refresh(); if (temp.Count == 0) { ponówToolStripMenuItem.Enabled = false; } } }
void button_Click(object sender, EventArgs e) { IPlugin plugin = (sender as Button).Tag as IPlugin; Bitmap bmp1 = new Bitmap(Drawing_Box.Width, Drawing_Box.Height); panel1.DrawToBitmap(bmp1, Drawing_Box.Bounds); IPlugin plug = ((IPlugin)Activator.CreateInstance(plugin.GetType())); Drawing_Box.Image = plug.workOnPicture(bmp1); drawings.Clear(); temp.Clear(); Drawing_Box.Refresh(); }
private void Drawing_Box_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (CurrentShape == shape.pen) { penLocation.Add(e.Location); } if (CurrentShape == shape.eraser) { eraserLocation.Add(e.Location); } if (Control.ModifierKeys == Keys.Shift && CurrentShape == shape.line) { endPoint = e.Location; if ((endPoint.X > startPoint.X + 50) || endPoint.X < startPoint.X - 50) { shiftY = startPoint.Y; shiftX = endPoint.X; } else { shiftY = endPoint.Y; shiftX = startPoint.X; } endPoint = new Point(shiftX, shiftY); } else if (Control.ModifierKeys == Keys.Shift && CurrentShape == shape.square) { endPoint = e.Location; endPoint = new Point(endPoint.X, endPoint.X); } else { endPoint = e.Location; } } Drawing_Box.Refresh(); if (CurrentShape == shape.square || CurrentShape == shape.elipse) { Coords_Label.Text = e.X + "," + e.Y + " [ " + (Math.Max(startPoint.X, endPoint.X) - Math.Min(startPoint.X, endPoint.X)) + " x " + (Math.Max(startPoint.Y, endPoint.Y) - Math.Min(startPoint.Y, endPoint.Y)) + " ] "; } else { Coords_Label.Text = e.X + "," + e.Y; } }