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); }
public Simulator() { InitializeComponent(); Scene = new Scene(); CurrentMouseState = MouseState.Default; WireBuilder = new WireBuilder(); SelectedElement = null; Simulating = false; fileName = null; }
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); }
private void Simulator_Paint(object sender, PaintEventArgs e) { e.Graphics.Clear(Color.White); Scene.Draw(e.Graphics); WireBuilder.Draw(e.Graphics); }