/* * Constructor */ public TabbedLinkedCIO(ApplianceObject ao) : base(ao, new System.Windows.Forms.Panel()) { ApplianceState state = (ApplianceState)GetApplObj(); Panel panel = (Panel)GetControl(); _tabControl = new TabControl(); panel.Controls.Add(_tabControl); _tabControl.Location = new System.Drawing.Point(0, 0); _tabControl.Size = panel.ClientSize; panel.Resize += new EventHandler(this.Resized); _panelCIOs = new ArrayList(); object stateval = state.Value; EnumeratedSpace espc = (EnumeratedSpace)state.Type.ValueSpace; Hashtable labels = state.Type.ValueLabels; int labelWidth = _tabControl.ClientSize.Width / espc.GetItemCount(); for (int i = 1; i <= espc.GetItemCount(); i++) { object labelSpace = i; LabelDictionary ldict = (LabelDictionary)labels[labelSpace]; TabbedPanelCIO pageCIO = new TabbedPanelCIO(ldict); TabPage page = pageCIO.TabPage; page.Enabled = ldict.Enabled; _tabControl.Controls.Add(page); _panelCIOs.Add(pageCIO); pageCIO.ChooseLabel(labelWidth - 2 * MINIMUM_TAB_PAD); if (state.Defined && i == (int)stateval) { _tabControl.SelectedIndex = i - 1; } } state.LabelChangedEvent += new ApplianceObject.LabelChangedHandler(this.LabelChanged); state.EnableChangedEvent += new ApplianceObject.EnableChangedHandler(this.EnableChanged); state.TypeChangedEvent += new ApplianceState.TypeChangedHandler(this.TypeChanged); state.ValueChangedEvent += new ApplianceState.ValueChangedHandler(this.ValueChanged); _tabControl.SelectedIndexChanged += new EventHandler(this.SelectedIndexChanged); refreshDisplay(); }
protected void refreshDisplay() { int labelWidth; int widthLeft = _tabControl.Size.Width; for (int i = 0; i < _cios.Count; i++) { labelWidth = widthLeft / (_cios.Count - i); TabbedPanelCIO page = (TabbedPanelCIO)_cios[i]; widthLeft -= page.ChooseLabel(labelWidth); page.ResolveEnabled(); } }
public int AddTab(TabbedPanelCIO panelCIO) { TabPage page = panelCIO.TabPage; _cios.Add(panelCIO); _tabControl.Controls.Add(page); LabelDictionary labels = panelCIO.Labels; panelCIO.ResolveEnabled(); panelCIO.ChooseLabel(0); refreshDisplay(); return(_cios.Count - 1); }