Esempio n. 1
0
        private void Simulator_MouseClick(object sender, MouseEventArgs e)
        {
            if (Simulating)
            {
                InputPin ip = Scene.InputClicked(e.Location);
                if (ip != null)
                {
                    ip.Toggle();
                }
            }


            if (e.Button == MouseButtons.Right)
            {
                if (CurrentMouseState == MouseState.Default)
                {
                    ClickedPosition = e.Location;
                    cmsMainMenu.Show(Cursor.Position);
                }
                else if (CurrentMouseState == MouseState.Wire)
                {
                    WireBuilder.Dismiss();
                    CurrentMouseState = MouseState.Default;
                }
            }
            Invalidate(true);
        }
Esempio n. 2
0
 public Simulator()
 {
     InitializeComponent();
     Scene             = new Scene();
     CurrentMouseState = MouseState.Default;
     WireBuilder       = new WireBuilder();
     SelectedElement   = null;
     Simulating        = false;
     fileName          = null;
 }
Esempio n. 3
0
 private void Simulator_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (CurrentMouseState == MouseState.Default)
         {
             WireHandle wh       = Scene.ClickedOutHandle(e.Location);
             Component  selected = Scene.ClickSelect(e.Location);
             if (wh != null)
             {
                 WireBuilder.Init(wh.Source, wh);
                 CurrentMouseState = MouseState.Wire;
             }
             else if (selected != null)
             {
                 SelectedElement   = selected;
                 CurrentMouseState = MouseState.Drag;
                 ClickedPosition   = e.Location;
                 SelectionOffset   = GeometryUtil.GetOffset(selected.TopLeft, e.Location);
             }
         }
         else if (CurrentMouseState == MouseState.Wire)
         {
             WireHandle wh = Scene.ClickedInHandle(e.Location);
             if (wh != null)
             {
                 Wire w = WireBuilder.Finalize(wh);
                 Scene.AddElement(w);
                 CurrentMouseState = MouseState.Default;
             }
             else
             {
                 WireBuilder.AddPoint(e.Location);
             }
         }
     }
     Invalidate(true);
 }
Esempio n. 4
0
 private void Simulator_Paint(object sender, PaintEventArgs e)
 {
     e.Graphics.Clear(Color.White);
     Scene.Draw(e.Graphics);
     WireBuilder.Draw(e.Graphics);
 }