/// <inheritdoc /> public FrmDesigner(FrmWelcome ParentFrmWelcome = null) { InitializeComponent(); //Connections = new Dictionary<BaseBlock, BaseBlock>(); PnlCommandPalette.Hide(); SContainer_Workspace.Panel2.Paint += DrawLinks; SContainer_Workspace.Panel2.Refresh(); MovementTicker = new Timer { Interval = 10, Enabled = false }; MovementTicker.Tick += DoMove; _ParentFrmWelcome = ParentFrmWelcome; BlockTree.NodeMouseDoubleClick += AddBlock; BlockTree.KeyPress += BlockTree_KeyPress; TxtCommandPaletteSearch.TextChanged += (S, E) => { DoSearch(); }; BtnHideCommandPalette.Click += (S, E) => { TxtCommandPaletteSearch.Text = ""; PnlCommandPalette.Hide(); }; KeyUp += OnKeyRelease; LViewSearchResults.ItemActivate += LViewSearchResults_Activated; SContainer_Workspace.Panel2.SuspendLayout(); /*{ * var VarBlock = new DeclareVarBlock { * Location = new Point(300, 10), * Id = (int) BasicBlockIds.Starter, * Size = new Size(200, 100), * TabIndex = (int) BasicBlockIds.Starter * }; * * VarBlock.MouseDown += Block_OnMouseDown; * VarBlock.MouseUp += Block_OnMouseUp; * * SContainer_Workspace.Panel2.Controls.Add(VarBlock); * }*/ { var StartBlock = new StartBlock { Location = new Point(10, 10), Id = (int)BasicBlockIds.Starter, Size = new Size(100, 100), TabIndex = (int)BasicBlockIds.Starter }; StartBlock.Name = StartBlock.GetType().Name + StartBlock.Id; StartBlock.MouseDown += Block_OnMouseDown; StartBlock.MouseUp += Block_OnMouseUp; SContainer_Workspace.Panel2.Controls.Add(StartBlock); } { var DeclarationBlock = new VarDeclareBlock { Location = new Point(SContainer_Workspace.Panel2.Width - 210, 10), Id = (int)BasicBlockIds.Variable, Size = new Size(100, 100), TabIndex = (int)BasicBlockIds.Variable }; DeclarationBlock.Name = DeclarationBlock.GetType().Name + DeclarationBlock.Id; DeclarationBlock.MouseDown += Block_OnMouseDown; DeclarationBlock.MouseUp += Block_OnMouseUp; SContainer_Workspace.Panel2.Controls.Add(DeclarationBlock); } SContainer_Workspace.Panel2.ResumeLayout(true); }
private static BaseBlock RebuildBlock(DeserializedProps Props) { var TypeName = Props.Name.Trim(Digits); BaseBlock BlockToReturn = null; switch (TypeName) { case "StartBlock": { BlockToReturn = new StartBlock(); break; } case "VarDeclareBlock": { BlockToReturn = new VarDeclareBlock(); break; } case "BeepBlock": { BlockToReturn = new BeepBlock(); break; } case "EmptyNormalBlock": { BlockToReturn = new EmptyNormalBlock(); break; } case "DecimalCreateBlock": { BlockToReturn = new DecimalCreateBlock { Value = (decimal)Props.Value, VarName = Props.VarName, }; break; } case "VarRefBlock": { BlockToReturn = new VarRefBlock { VarName = Props.VarName, }; break; } default: { MessageBox.Show("Unable to build the following Block Type - Definition Missing:" + $"{Environment.NewLine}{TypeName}", "B#", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } } BlockToReturn.Location = Props.Location; BlockToReturn.Code = Props.Code; BlockToReturn.Name = Props.Name; BlockToReturn.ConnectorSelected = Props.ConnectorSelected; BlockToReturn.TopConnectorZone = Props.TopConnectorZone; BlockToReturn.BottomConnectorZone = Props.BottomConnectorZone; BlockToReturn.OutlineRectangle = Props.OutlineRectangle; BlockToReturn.Size = Props.Size; BlockToReturn.Id = Props.Id; BlockToReturn.NextBlockId = Props.NextBlockId; return(BlockToReturn); }