Ejemplo n.º 1
0
 private void mainPictureBox_MouseMove(object sender, MouseEventArgs e)
 {
     if (signPictureBoxIsClicked)
     {
         newSignPictureBoxMain.Location = new Point(e.X + mainPictureBox.Location.X, e.Y + mainPictureBox.Location.Y);
     }
     else
     {
         if (draggedSignPictureBoxIsClicked)
         {
             newSignPictureBoxMain.Location = new Point(e.X + mainPictureBox.Location.X, newSignPictureBoxMain.Location.Y);
             if (newSignPictureBoxMain.Location.X + newSignPictureBoxMain.Width / 10 > mainPictureBox.Width + mainPictureBox.Location.X)
             {
                 SignDrawing removableSignDrawing = null;
                 foreach (SignDrawing sg in RoadDrawing.getRoadDrawing().signDrawings)
                 {
                     if (sg.COORDINATS.X == previousCoordinats.X && sg.COORDINATS.Y == previousCoordinats.Y)
                     {
                         removableSignDrawing = sg;
                     }
                 }
                 RoadDrawing.getRoadDrawing().signDrawings.Remove(removableSignDrawing);
                 if (RoadDrawing.getRoadDrawing().signDrawings.Count == 3)
                 {
                     signPictureBox.Enabled = true;
                     signPictureBox.Image   = Image.FromFile("..\\..\\images\\sign_icon.png");
                 }
                 this.Controls.Remove(newSignPictureBoxMain);
                 signsPictureBoxes.Remove(newSignPictureBoxMain);
                 draggedSignPictureBoxIsClicked = false;
             }
         }
     }
     if (trafficLightPictureBoxIsCLicked)
     {
         topDraggedTrafficLightPictureBox.Location = new Point(e.X + mainPictureBox.Location.X, e.Y + mainPictureBox.Location.Y);
     }
     else
     {
         if (draggedTrafficLightPictureBoxIsClicked)
         {
             topDraggedTrafficLightPictureBox.Location = new Point(e.X + mainPictureBox.Location.X, topDraggedTrafficLightPictureBox.Location.Y);
             if (Road.getRoad().COUNTOFWAYS == 2)
             {
                 bottomTrafficLightPictureBox.Location = new Point(e.X + mainPictureBox.Location.X, bottomTrafficLightPictureBox.Location.Y);
             }
             if (topDraggedTrafficLightPictureBox.Location.X + topDraggedTrafficLightPictureBox.Width / 10 > mainPictureBox.Width + mainPictureBox.Location.X)
             {
                 if (Road.getRoad().COUNTOFWAYS == 2)
                 {
                     this.Controls.Remove(bottomTrafficLightPictureBox);
                 }
                 this.Controls.Remove(topDraggedTrafficLightPictureBox);
                 TrafficLightDrawing.getTrafficLightDrawing().COORDINATS.Clear();
                 Road.getRoad().TRAFFICLIGHTS.Clear();
                 foreach (StripeDrawing sd in RoadDrawing.getRoadDrawing().STRIPEDRAWINGS)
                 {
                     foreach (CarDrawing cd in sd.carsDrawings)
                     {
                         if (cd.car.stayByTrafficLight)
                         {
                             cd.car.stayByTrafficLight = false;
                             cd.car.speed = cd.car.initialSpeed;
                         }
                     }
                 }
                 trafficLightTimer.Stop();
                 trafficLightPictureBox.Enabled         = true;
                 trafficLightPictureBox.Image           = Image.FromFile("..\\..\\images\\traffic_light_icon.jpg");
                 draggedTrafficLightPictureBoxIsClicked = false;
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void initTopDraggedSignPictureBox() //args PictureBox...?????
        {
            startPoint = signPictureBox.Location;
            PictureBox newSignPictureBox = new PictureBox();

            signPictureBoxIsClicked     = true;
            newSignPictureBox.Image     = signPictureBox.Image;
            newSignPictureBox.Size      = signPictureBox.Size;
            newSignPictureBox.SizeMode  = PictureBoxSizeMode.StretchImage;
            newSignPictureBox.Location  = signPictureBox.Location;
            newSignPictureBox.BackColor = Color.WhiteSmoke;

            newSignPictureBox.MouseMove += (s, arg) =>
            {
                if (signPictureBoxIsClicked)
                {
                    newSignPictureBox.Left += signPictureBox.Location.X - startPoint.X;
                    newSignPictureBox.Top  += signPictureBox.Location.Y - startPoint.Y;
                }
            };
            newSignPictureBox.MouseClick += (s, arg) =>
            {
                if (signPictureBoxIsClicked)
                {
                    //if чтобы положить его сожно только в mainPB


                    signPictureBoxIsClicked  = false;
                    newSignPictureBox.Height = mainPictureBox.Height / 14;
                    newSignPictureBox.Width  = newSignPictureBox.Height;
                    SignDrawing addedSignDrawing = new SignDrawing();
                    addedSignDrawing.COORDINATS = newSignPictureBox.Location;
                    //signDrawings.AddLast(addedSignDrawing);
                    RoadDrawing.getRoadDrawing().signDrawings.AddLast(addedSignDrawing);
                    if (RoadDrawing.getRoadDrawing().signDrawings.Count == 4)
                    {
                        signPictureBox.Enabled = false;
                        signPictureBox.Image   = Image.FromFile("..\\..\\images\\not_enabled_sign_icon.png");
                    }
                    SetSignForm setSignForm = new SetSignForm(addedSignDrawing);
                    setSignForm.ShowDialog();
                    Road.getRoad().SIGNS.AddLast(addedSignDrawing.SIGN);
                    addedSignDrawing.getSignGraphic(Graphics.FromImage(newSignPictureBox.Image));
                    signsPictureBoxes.AddLast(newSignPictureBox);
                    newSignPictureBox.Invalidate(); newSignPictureBox.Invalidate(); newSignPictureBox.Invalidate();
                }
                else
                {
                    if (draggedSignPictureBoxIsClicked)
                    {
                        draggedSignPictureBoxIsClicked = false;
                        PictureBox pb = (PictureBox)s;
                        foreach (SignDrawing sd in RoadDrawing.getRoadDrawing().signDrawings)
                        {
                            if ((sd.COORDINATS.X == previousCoordinats.X) && (sd.COORDINATS.Y == previousCoordinats.Y))
                            {
                                sd.COORDINATS = pb.Location;
                            }
                        }
                    }
                    else
                    {
                        draggedSignPictureBoxIsClicked = true;
                        newSignPictureBoxMain          = signsPictureBoxes.Find((PictureBox)s).Value;
                        previousCoordinats             = newSignPictureBoxMain.Location;
                    }
                }
            };
            newSignPictureBox.DoubleClick += (s, arg) =>
            {
                draggedSignPictureBoxIsClicked = false;
                PictureBox pb = (PictureBox)s;
                foreach (SignDrawing sg in RoadDrawing.getRoadDrawing().signDrawings)
                {
                    if (sg.COORDINATS == pb.Location)
                    {
                        SetSignForm ssf = new SetSignForm(sg);
                        ssf.ShowDialog();
                        sg.getSignGraphic(Graphics.FromImage(pb.Image));
                        pb.Invalidate();
                    }
                }
                pb.Invalidate(); pb.Invalidate();
                newSignPictureBox.Invalidate(); newSignPictureBox.Invalidate(); newSignPictureBox.Invalidate();
            };

            newSignPictureBox.Paint += (s, arg) =>
            {
                PictureBox pb = (PictureBox)s;

                foreach (SignDrawing sg in RoadDrawing.getRoadDrawing().signDrawings)
                {
                    if (sg.COORDINATS.X == pb.Location.X && sg.COORDINATS.Y == pb.Location.Y)
                    {
                        sg.getSignGraphic(Graphics.FromImage(pb.Image));
                    }
                }
            };


            this.Controls.Add(newSignPictureBox);
            newSignPictureBoxMain = newSignPictureBox;
            signPictureBox.Image  = Image.FromFile("..\\..\\images\\sign_icon.png");
            newSignPictureBox.BringToFront();
        }
Ejemplo n.º 3
0
 public SetSignForm(SignDrawing sd)
 {
     InitializeComponent();
     this.sd = sd;
 }