public void MouseClick(CanvasController sender, MouseEventArgs e) { VisibleElement el = selected.newInstance(e.Location); Circuit.all.Add(el); Circuit.gates.Add(el); UpdateCanvas(sender); }
public MainWindow() { InitializeComponent(); m_canvas = new CanvasController(panelCanvas.CreateGraphics()); ElementContextProvider.Instance.Menu = this.contextElement; }
public void UpdateCanvas(CanvasController arg) { Graphics buf_gr = Graphics.FromImage(m_buffer); buf_gr.Clear(Color.White); foreach (IDrawable dr in Circuit.all) dr.Draw(buf_gr); arg.Graphics.DrawImage(m_buffer, new Point(0, 0)); }
public void MouseUp(CanvasController sender, MouseEventArgs e) { }
public void MouseUp(CanvasController sender, MouseEventArgs e) { m_prev_loc = default(Point); m_mouse_down = false; }
public void MouseMove(CanvasController sender, MouseEventArgs e) { if (m_mouse_down) { if (m_prev_loc != default(Point)) { Point offset = Point.Subtract(e.Location, new Size(m_prev_loc)); foreach (VisibleElement el in Circuit.gates) if (el.Selected) el.Move(offset); UpdateCanvas(sender); } m_prev_loc = e.Location; } }
public void MouseDown(CanvasController sender, MouseEventArgs e) { m_mouse_down = true; }
public void MouseClick(CanvasController sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { foreach (VisibleElement el in Circuit.gates) { if (el.IsMy(e.Location)) { el.Selected = true; } else el.Selected = false; } UpdateCanvas(sender); } else if (e.Button == MouseButtons.Right) { foreach (VisibleElement el in Circuit.gates) { if (el.Selected) { ContextMenuStrip context = ElementContextProvider.Instance.Menu; ElementContextProvider.Instance.Selected = el; Point offset = ElementContextProvider.Instance.offset; context.Show(offset.X + e.X, offset.Y + e.Y); break; } } } }
public void MouseClick(CanvasController sender, MouseEventArgs e) { if (m_firstPort == null) { foreach (VisibleElement el in Circuit.gates) { m_firstPort = el.IsOutPort(e.Location); if (m_firstPort != null) break; } } else { VisibleInPort second = null; foreach (VisibleElement el in Circuit.gates) { second = el.IsInPort(e.Location); if (second != null) { Wire w = new Wire(m_firstPort.position, second.position, m_firstPort.port, second.port); Circuit.wires.Add(w); Circuit.all.Add(w); m_firstPort.port.AddSubscriber(second.port); break; } } m_firstPort = null; UpdateCanvas(sender); } }