Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }