示例#1
0
 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();
     }
 }
示例#2
0
 private void button3_Click(object sender, EventArgs e)
 {
     phase       = BlockBuildingPhase.DecisionBlock;
     this.Cursor = Cursors.Cross;
 }
示例#3
0
 private void button1_Click(object sender, EventArgs e)
 {
     phase       = BlockBuildingPhase.ProcessBlock;
     this.Cursor = Cursors.Cross;
 }
示例#4
0
 private void button2_Click(object sender, EventArgs e)
 {
     phase       = BlockBuildingPhase.ConnectionStart;
     this.Cursor = Cursors.VSplit;
 }