private void panel1_MouseClick(object sender, MouseEventArgs e) { if (phase == BlockBuildingPhase.ProcessBlock) { Point target = GetClosestGrid(e); buildingBlocks.Add(new ProcessBlock(target)); phase = BlockBuildingPhase.Nothing; this.Cursor = Cursors.Default; panel1.Invalidate(); } else if (phase == BlockBuildingPhase.ConnectionStart) { targetBlock = GetBuildingBlock(e); if (targetBlock != null) { phase = BlockBuildingPhase.ConnectionEnd; if (targetBlock is ProcessBlock) { targetNode = BuildingBlock.NodeDirection.Bottom; } else if (targetBlock is DecisionBlock) { targetNode = ((DecisionBlock)targetBlock).GetNodeFromLocation(e.Location); } } } else if (phase == BlockBuildingPhase.ConnectionEnd) { BuildingBlock nextTargetBlock = GetBuildingBlock(e); if (nextTargetBlock != null) { targetBlock.ConnectNodeToBlock(targetNode, nextTargetBlock); phase = BlockBuildingPhase.Nothing; this.Cursor = Cursors.Default; panel1.Invalidate(); } } else if (phase == BlockBuildingPhase.DecisionBlock) { Point target = GetClosestGrid(e); buildingBlocks.Add(new DecisionBlock(target)); phase = BlockBuildingPhase.Nothing; this.Cursor = Cursors.Default; panel1.Invalidate(); } }
private void button3_Click(object sender, EventArgs e) { phase = BlockBuildingPhase.DecisionBlock; this.Cursor = Cursors.Cross; }
private void button1_Click(object sender, EventArgs e) { phase = BlockBuildingPhase.ProcessBlock; this.Cursor = Cursors.Cross; }
private void button2_Click(object sender, EventArgs e) { phase = BlockBuildingPhase.ConnectionStart; this.Cursor = Cursors.VSplit; }