private void BuildControls() { this.Controls.Clear(); this.GroupBoxes.Clear(); this.CheckBoxes.Clear(); this.SuspendLayout(); List <Buff> buffs = CalculationsHunter.RelevantPetBuffs; foreach (Buff buff in buffs) { if (!GroupBoxes.ContainsKey(buff.Group)) { GroupBox groupBox = new GroupBox(); groupBox.Text = buff.Group; groupBox.Tag = buff.Group; groupBox.Font = new Font(this.Font.FontFamily, 7f); groupBox.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; groupBox.MouseMove += new MouseEventHandler(BuffSelector_MouseMove); groupBox.Dock = DockStyle.Top; GroupBoxes.Add(buff.Group, groupBox); this.Controls.Add(groupBox); groupBox.BringToFront(); } } foreach (Buff buff in buffs) { ExtendedToolTipCheckBox checkBox = new ExtendedToolTipCheckBox(); checkBox.Tag = buff; if (Rawr.Properties.GeneralSettings.Default.DisplayBuffSource && buff.Source != null) { checkBox.Text = buff.Name + " (" + buff.Source + ")"; } else { checkBox.Text = buff.Name; } checkBox.AutoSize = true; checkBox.Font = this.Font; checkBox.Dock = DockStyle.Top; checkBox.ToolTipText = buff.Stats.ToString(); checkBox.CheckedChanged += new EventHandler(checkBoxBuff_CheckedChanged); GroupBoxes[buff.Group].Controls.Add(checkBox); checkBox.BringToFront(); CheckBoxes.Add(buff, checkBox); foreach (Buff improvement in buff.Improvements) { ExtendedToolTipCheckBox checkBoxImprovement = new ExtendedToolTipCheckBox(); checkBoxImprovement.Tag = improvement; if (Rawr.Properties.GeneralSettings.Default.DisplayBuffSource && improvement.Source != null) { checkBoxImprovement.Text = improvement.Name + " (" + improvement.Source + ")"; } else { checkBoxImprovement.Text = improvement.Name; } checkBoxImprovement.Padding = new Padding(8 + checkBoxImprovement.Padding.Left, checkBoxImprovement.Padding.Top, checkBoxImprovement.Padding.Right, checkBoxImprovement.Padding.Bottom); checkBoxImprovement.AutoSize = true; checkBoxImprovement.Font = this.Font; checkBoxImprovement.Dock = DockStyle.Top; checkBoxImprovement.ToolTipText = improvement.Stats.ToString(); checkBoxImprovement.CheckedChanged += new EventHandler(checkBoxBuff_CheckedChanged); GroupBoxes[buff.Group].Controls.Add(checkBoxImprovement); checkBoxImprovement.BringToFront(); CheckBoxes.Add(improvement, checkBoxImprovement); } } foreach (GroupBox groupBox in GroupBoxes.Values) { groupBox.Height = groupBox.Controls[0].Bottom + 2; } UpdateEnabledStates(); this.ResumeLayout(); }
private void BuildControls() { this.Controls.Clear(); this.GroupBoxes.Clear(); this.CheckBoxes.Clear(); this.SuspendLayout(); foreach (Buff buff in Buff.RelevantBuffs) { if (!GroupBoxes.ContainsKey(buff.Group)) { GroupBox groupBox = new GroupBox(); groupBox.Text = buff.Group; groupBox.Tag = buff.Group; groupBox.Font = new Font(this.Font.FontFamily, 7f); groupBox.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; groupBox.MouseMove += new MouseEventHandler(BuffSelector_MouseMove); groupBox.Dock = DockStyle.Top; GroupBoxes.Add(buff.Group, groupBox); this.Controls.Add(groupBox); groupBox.BringToFront(); } } List <Buff> buffs = Buff.RelevantBuffs; foreach (Buff buff in buffs) { if (Character == null || !Rawr.Properties.GeneralSettings.Default.HideProfEnchants || (buff.Professions != null && Character.HasProfession(buff.Professions))) { ExtendedToolTipCheckBox checkBox = new ExtendedToolTipCheckBox(); checkBox.Tag = buff; if (Rawr.Properties.GeneralSettings.Default.DisplayBuffSource && buff.Source != null) { checkBox.Text = buff.Name + " (" + buff.Source + ")"; } else { checkBox.Text = buff.Name; } checkBox.AutoSize = true; checkBox.Font = this.Font; checkBox.Dock = DockStyle.Top; checkBox.ToolTipText = buff.Stats.ToString(); checkBox.CheckedChanged += new EventHandler(checkBoxBuff_CheckedChanged); GroupBoxes[buff.Group].Controls.Add(checkBox); checkBox.BringToFront(); // only add Draenei Heroic Presence buff if Alliance /*if (buff.Name.Equals("Heroic Presence") && FormMain.Instance.IsHandleCreated) * { * if (FormMain.Instance.Character.Faction == CharacterFaction.Alliance) * CheckBoxes.Add(buff, checkBox); * else * checkBox.Enabled = false; * } * else * CheckBoxes.Add(buff, checkBox);*/ CheckBoxes.Add(buff, checkBox); foreach (Buff improvement in buff.Improvements) { if (Character == null || !Rawr.Properties.GeneralSettings.Default.HideProfEnchants || Character.HasProfession(improvement.Professions)) { ExtendedToolTipCheckBox checkBoxImprovement = new ExtendedToolTipCheckBox(); checkBoxImprovement.Tag = improvement; if (Rawr.Properties.GeneralSettings.Default.DisplayBuffSource && improvement.Source != null) { checkBoxImprovement.Text = improvement.Name + " (" + improvement.Source + ")"; } else { checkBoxImprovement.Text = improvement.Name; } checkBoxImprovement.Padding = new Padding(8 + checkBoxImprovement.Padding.Left, checkBoxImprovement.Padding.Top, checkBoxImprovement.Padding.Right, checkBoxImprovement.Padding.Bottom); checkBoxImprovement.AutoSize = true; checkBoxImprovement.Font = this.Font; checkBoxImprovement.Dock = DockStyle.Top; checkBoxImprovement.ToolTipText = improvement.Stats.ToString(); checkBoxImprovement.CheckedChanged += new EventHandler(checkBoxBuff_CheckedChanged); GroupBoxes[buff.Group].Controls.Add(checkBoxImprovement); checkBoxImprovement.BringToFront(); CheckBoxes.Add(improvement, checkBoxImprovement); } } } } foreach (GroupBox groupBox in GroupBoxes.Values) { // Make sure not to index an empty array if (groupBox.Controls.Count > 0) { groupBox.Height = groupBox.Controls[0].Bottom + 2; } // Hide empty group boxes else { groupBox.Hide(); } } ScrollHook.hookRec(this); this.ResumeLayout(); }