Esempio n. 1
0
        /// <summary>
        /// Adds/updates a tab page with the provided name and the provided component.
        /// </summary>
        /// <param name="name">Name of the tab page to add or update</param>
        /// <param name="component">Component to add or update</param>
        /// <param name="swap">Whether to swap to the new component</param>
        public void AddTabComponent(string name, object component, bool swap = false)
        {
            var design = (Design)component;

            TabPage existingTabPage = FindTab(name);

            if (existingTabPage == null)
            {
                TabPage newTabPage = new TabPage(name);
                newTabPage.Text        = name;
                newTabPage.ToolTipText = $"{name}.vbi";
                newTabPage.Controls.Add(design);

                design.Dock        = DockStyle.Fill;
                design.DesignEdit += (designName, isDirty) => {
                    TabPage tabPage = FindTab(designName);
                    tabPage.Text = isDirty ? $"*{designName}" : designName;
                    Controller.LoadDisplay(DisplayType.EDIT);
                };

                TabControl.TabPages.Add(newTabPage);
                if (swap)
                {
                    TabControl.SelectedTab = newTabPage;
                }
            }
            else
            {
                existingTabPage.Controls.Clear();
                existingTabPage.Controls.Add(design);
                design.Dock = DockStyle.Fill;
                if (swap)
                {
                    TabControl.SelectedTab = existingTabPage;
                }
            }

            pnlMain.Focus();
        }