void gemmingTemplateControl_DeleteClicked(object sender, EventArgs e) { GemmingTemplateControl gemmingTemplateControl = (sender as GemmingTemplateControl); _currentCharacter.CustomGemmingTemplates.Remove(gemmingTemplateControl.GemmingTemplate); panelGemmingTemplates.Controls.Remove(gemmingTemplateControl); }
public void UpdateCheckStatesAndVisibles() { SuspendLayout(); foreach (string group in _groups) { Panel panelHeader = null; bool hasEnabled = false; bool hasDisabled = false; List <GemmingTemplateControl> gemmingTemplateControls = new List <GemmingTemplateControl>(); foreach (Control control in panelGemmingTemplates.Controls) { if ((string)control.Tag == group) { panelHeader = control as Panel; } else if (control is GemmingTemplateControl) { GemmingTemplateControl gemmingTemplateControl = control as GemmingTemplateControl; if (gemmingTemplateControl.GemmingTemplate.Group == group) { gemmingTemplateControls.Add(gemmingTemplateControl); } } } foreach (GemmingTemplateControl gemmingTemplateControl in gemmingTemplateControls) { if (gemmingTemplateControl.GemmingTemplateEnabled) { hasEnabled = true; } else { hasDisabled = true; } gemmingTemplateControl.Visible = panelHeader.Controls[0].Text == "-"; } CheckBox checkBoxHeader = panelHeader.Controls[1] as CheckBox; checkBoxHeader.CheckState = hasEnabled && hasDisabled ? CheckState.Indeterminate : (hasEnabled ? CheckState.Checked : CheckState.Unchecked); if (group == "Custom") { _panelAddGemmingTemplate.Visible = panelHeader.Controls[0].Text == "-"; } } ResumeLayout(); }
void buttonAddGemmingTemplate_Click(object sender, EventArgs e) { SuspendLayout(); GemmingTemplate gemmingTemplate = new GemmingTemplate() { Group = "Custom", Enabled = true, Model = Calculations.Instance.Name }; _currentCharacter.CustomGemmingTemplates.Add(gemmingTemplate); GemmingTemplateControl gemmingTemplateControl = new GemmingTemplateControl(); gemmingTemplateControl.Dock = DockStyle.Top; gemmingTemplateControl.GemmingTemplate = gemmingTemplate; gemmingTemplateControl.GemmingTemplateEnabledChanged += new EventHandler(gemmingTemplateControl_GemmingTemplateEnabledChanged); gemmingTemplateControl.DeleteClicked += new EventHandler(gemmingTemplateControl_DeleteClicked); panelGemmingTemplates.Controls.Add(gemmingTemplateControl); gemmingTemplateControl.BringToFront(); _panelAddGemmingTemplate.BringToFront(); ResumeLayout(); }
public void CreateGemmingTemplateControls() { _groups.Clear(); foreach (GemmingTemplate gemmingTemplate in _currentCharacter.CurrentGemmingTemplates) { if (!_groups.Contains(gemmingTemplate.Group)) { _groups.Add(gemmingTemplate.Group); } } if (!_groups.Contains("Custom")) { _groups.Add("Custom"); } panelGemmingTemplates.Controls.Clear(); foreach (string group in _groups) { Panel panelGroupHeader = new Panel(); panelGroupHeader.Tag = group; panelGroupHeader.Height = 20; panelGroupHeader.Dock = DockStyle.Top; Button buttonExpand = new Button(); buttonExpand.TextAlign = ContentAlignment.BottomCenter; buttonExpand.Font = new Font(buttonExpand.Font.FontFamily, 6.25f); buttonExpand.Width = buttonExpand.Height = 17; buttonExpand.Text = "-"; buttonExpand.Left = buttonExpand.Top = 2; buttonExpand.UseVisualStyleBackColor = true; buttonExpand.Click += new EventHandler(buttonExpand_Click); panelGroupHeader.Controls.Add(buttonExpand); CheckBox checkBoxHeader = new CheckBox(); checkBoxHeader.Font = new Font(checkBoxHeader.Font, FontStyle.Bold); checkBoxHeader.ThreeState = true; checkBoxHeader.Text = group; checkBoxHeader.CheckStateChanged += new EventHandler(checkBoxHeader_CheckStateChanged); checkBoxHeader.Left = 22; checkBoxHeader.Top = -1; checkBoxHeader.AutoSize = true; panelGroupHeader.Controls.Add(checkBoxHeader); panelGemmingTemplates.Controls.Add(panelGroupHeader); panelGroupHeader.BringToFront(); bool allDisabled = group != "Custom"; foreach (GemmingTemplate gemmingTemplate in _currentCharacter.CurrentGemmingTemplates) { if (gemmingTemplate.Group == group) { allDisabled = allDisabled && !gemmingTemplate.Enabled; GemmingTemplateControl gemmingTemplateControl = new GemmingTemplateControl(); gemmingTemplateControl.Dock = DockStyle.Top; gemmingTemplateControl.GemmingTemplate = gemmingTemplate; gemmingTemplateControl.GemmingTemplateEnabledChanged += new EventHandler(gemmingTemplateControl_GemmingTemplateEnabledChanged); gemmingTemplateControl.DeleteClicked += new EventHandler(gemmingTemplateControl_DeleteClicked); panelGemmingTemplates.Controls.Add(gemmingTemplateControl); gemmingTemplateControl.BringToFront(); } } if (allDisabled) { buttonExpand.Text = "+"; } } foreach (GemmingTemplate gemmingTemplate in _currentCharacter.CustomGemmingTemplates) { if (gemmingTemplate.Model == _currentCharacter.CurrentModel) { GemmingTemplateControl gemmingTemplateControl = new GemmingTemplateControl(); gemmingTemplateControl.Dock = DockStyle.Top; gemmingTemplateControl.GemmingTemplate = gemmingTemplate; gemmingTemplateControl.GemmingTemplateEnabledChanged += new EventHandler(gemmingTemplateControl_GemmingTemplateEnabledChanged); gemmingTemplateControl.DeleteClicked += new EventHandler(gemmingTemplateControl_DeleteClicked); panelGemmingTemplates.Controls.Add(gemmingTemplateControl); gemmingTemplateControl.BringToFront(); } } _panelAddGemmingTemplate = new Panel(); _panelAddGemmingTemplate.Height = 50; _panelAddGemmingTemplate.Dock = DockStyle.Top; Button buttonAddGemmingTemplate = new Button(); buttonAddGemmingTemplate.Text = "Add"; buttonAddGemmingTemplate.Location = new System.Drawing.Point(3, 14); buttonAddGemmingTemplate.Size = new System.Drawing.Size(46, 23); buttonAddGemmingTemplate.UseVisualStyleBackColor = true; buttonAddGemmingTemplate.Click += new EventHandler(buttonAddGemmingTemplate_Click); _panelAddGemmingTemplate.Controls.Add(buttonAddGemmingTemplate); panelGemmingTemplates.Controls.Add(_panelAddGemmingTemplate); _panelAddGemmingTemplate.BringToFront(); UpdateCheckStatesAndVisibles(); }