private void pDrawSpace_MouseMove(object sender, MouseEventArgs e) { x = e.X; y = e.Y; if (clickState == ClickStates.Move) { var nodeInfo = graph.NodeInfos[clickedNode]; nodeInfo.X = x; nodeInfo.Y = y; draw(); return; } var size = trackBarNodeSize.Value; selectedNode = null; selectedEdge = null; mouseOn = NodesEdges.None; foreach (var node in graph.Nodes) { var nodeInfo = graph.NodeInfos[node]; if (Math.Abs(nodeInfo.X - x) < size / 2 && Math.Abs(nodeInfo.Y - y) < size / 2 && selectedNode == null) { mouseOn = NodesEdges.Nodes; selectedNode = node; } } foreach (var edge in graph.Edges) { var edgeInfo = graph.EdgeInfos[edge]; if (pointOnEdge(x, y, edgeInfo) && mouseOn != NodesEdges.Nodes && selectedEdge == null) { mouseOn = NodesEdges.Edges; selectedEdge = edge; } } draw(); }
private void rbNodes_CheckedChanged(object sender, EventArgs e) { nodesEdgesState = NodesEdges.Nodes; }