예제 #1
0
 // 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));
 }
예제 #2
0
        // --

        // 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 });
        }
예제 #3
0
 // 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();
 }
예제 #4
0
 // 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();
     }
 }
예제 #5
0
 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();
     }
 }
예제 #6
0
 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;
         }
     }
 }
예제 #7
0
        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();
        }
예제 #8
0
        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;
            }
        }