Beispiel #1
0
 private void PanelDraw_MouseMove(object sender, MouseEventArgs e)
 {
     //Adding (X,Y) to the moving figure to the old coordinates
     if (SelectedFigure != null && IsMoving)
     {
         SelectedFigure.Location = new Point(e.X - DeltaX, e.Y - DeltaY);
     }
     PanelDraw.Invalidate();
     Application.DoEvents();
 }
Beispiel #2
0
        private void Delete_Click(object sender, EventArgs e)
        {
            //Delete selected figure
            if (SelectedFigure != null)
            {
                FigureList.Remove(SelectedFigure);
            }
            SelectedFigure = null;

            CalculateAreaPermiters();
            PanelDraw.Invalidate();
        }
Beispiel #3
0
        private void Rotate_Click(object sender, EventArgs e)
        {
            if (SelectedFigure != null)
            {
                SelectedFigure.Rotate90();
            }

            else
            {
                Mode.Text = "You must Select Figure";
            }

            PanelDraw.Invalidate();
        }
Beispiel #4
0
 private void Clear_Click(object sender, EventArgs e)
 {
     FigureList.Clear();
     CalculateAreaPermiters();
     PanelDraw.Invalidate();
 }
Beispiel #5
0
        private void Edit_Click(object sender, EventArgs e)
        {
            IsEditing = true;
            if (SelectedFigure != null)
            {
                if (SelectedFigure is Rectangle)
                {
                    var f = new RectPerimeters(this);
                    f.ShowDialog();
                    if (CurrentFigure != null)
                    {
                        using (var graphics = PanelDraw.CreateGraphics())
                        {
                            CurrentFigure.Color    = OriginalColor;
                            CurrentFigure.Location = SelectedFigure.Location;
                            CurrentFigure.Index    = SelectedFigure.Index;
                            FigureList.Remove(SelectedFigure);
                            CurrentFigure.Draw(graphics);
                            FigureList.Add(CurrentFigure);
                        }
                        Mode.Text = "Figure: Rectangle has been edited successfully";
                    }
                }
                if (SelectedFigure is Circle)
                {
                    var f = new CirclePerimeters(this);
                    f.ShowDialog();
                    if (CurrentFigure != null)
                    {
                        using (var graphics = PanelDraw.CreateGraphics())
                        {
                            CurrentFigure.Color    = OriginalColor;
                            CurrentFigure.Location = SelectedFigure.Location;
                            CurrentFigure.Index    = SelectedFigure.Index;
                            FigureList.Remove(SelectedFigure);
                            CurrentFigure.Draw(graphics);
                            FigureList.Add(CurrentFigure);
                        }
                        Mode.Text = "Figure: Circle has been edited successfully";
                    }
                }
                if (SelectedFigure is Triangle)
                {
                    var f = new TrianglePerimeters(this);
                    f.ShowDialog();
                    if (CurrentFigure != null)
                    {
                        using (var graphics = PanelDraw.CreateGraphics())
                        {
                            CurrentFigure.Color    = OriginalColor;
                            CurrentFigure.Location = SelectedFigure.Location;
                            CurrentFigure.Index    = SelectedFigure.Index;
                            FigureList.Remove(SelectedFigure);
                            CurrentFigure.Draw(graphics);
                            FigureList.Add(CurrentFigure);
                        }
                        Mode.Text = "Figure: Triangle has been edited successfully";
                    }
                }
                SelectedFigure = null;
                CurrentFigure  = null;
                PanelDraw.Invalidate();
                IsEditing = false;
            }

            CalculateAreaPermiters();
            PanelDraw.Invalidate();
            if (SelectedFigure == null)
            {
                Mode.Text = "You must Select Figure";
            }
        }
Beispiel #6
0
        private void PanelDraw_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left && CurrentFigure != null)
            {
                using (var graphics = PanelDraw.CreateGraphics())
                {
                    CurrentFigure.Color    = colorDialog1.Color;
                    CurrentFigure.Location = e.Location;
                    CurrentFigure.Draw(graphics);
                    CurrentFigure.Index = FigureList
                                          .Select(f => f.Index)
                                          .OrderBy(i => i)
                                          .LastOrDefault() + 1;
                }

                FigureList.Add(CurrentFigure);
                Mode.Text = "Right Click On The Figure Will Select It";

                CurrentFigure = null;
                if (SelectedFigure != null)
                {
                    SelectedFigure.Color = OriginalColor;
                    SelectedFigure       = null;
                }
            }

            else if (e.Button == MouseButtons.Right)
            {
                //If the figure is no longer selected, figure's color turnes back to original color
                if (SelectedFigure != null)
                {
                    SelectedFigure.Color = OriginalColor;
                    Mode.Text            = "Figure:";
                }

                SelectedFigure = FigureList
                                 .OrderByDescending(i => i.Index)
                                 .Where(f => f.Contains(e.Location))
                                 .FirstOrDefault();

                //Selected figure turns Red
                if (SelectedFigure != null)
                {
                    OriginalColor        = SelectedFigure.Color;
                    SelectedFigure.Color = Color.Red;

                    if (SelectedFigure is Circle)
                    {
                        Mode.Text = "Figure: Circle is Selected";
                    }
                    if (SelectedFigure is Triangle)
                    {
                        Mode.Text = "Figure: Triangle is Selected";
                    }
                    if (SelectedFigure is Rectangle)
                    {
                        Mode.Text = "Figure: Rectangle is Selected";
                    }
                }

                //Checking if selected figure is clicked once again- figure is moving
                if (SelectedFigure != null && e.Button == MouseButtons.Right)
                {
                    IsMoving = true;
                }

                if (SelectedFigure != null)
                {
                    DeltaX = e.Location.X - SelectedFigure.Location.X;
                    DeltaY = e.Location.Y - SelectedFigure.Location.Y;
                }
            }
            CalculateAreaPermiters();
            PanelDraw.Invalidate();
        }