Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.WinForms
diff FrmNewUnitEquipment.cs @ 41:4fc87d6e6119
Re #117: Add percentage and number boxes to equipment item dialogs
* Add events and value setting in EquipmentAmount widget
* Hook up "value changed" event on new equipment form
Also fixes adding side of re #114 (Enabling/disabling of "equip all" and number for equipment is wrong) by rebuilding everything
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 06 Sep 2009 19:31:49 +0000 |
parents | 740350673006 |
children | 1576f669b3eb |
line wrap: on
line diff
--- a/FrmNewUnitEquipment.cs Sun Sep 06 18:01:54 2009 +0000 +++ b/FrmNewUnitEquipment.cs Sun Sep 06 19:31:49 2009 +0000 @@ -43,6 +43,7 @@ this.Text = "New equipment for " + unit.Name; object[] items = Arrays.Subtract(unit.GetAllowedOptionalEquipment(), unit.GetEquipment()); listItems.Items.AddRange(items); + equipmentAmount.SetUnit(unit); } /// <summary> @@ -129,6 +130,7 @@ this.equipmentAmount.Name = "equipmentAmount"; this.equipmentAmount.Size = new System.Drawing.Size(155, 77); this.equipmentAmount.TabIndex = 8; + this.equipmentAmount.ValueChanged += new System.EventHandler(this.equipmentAmount_ValueChanged); // // FrmNewUnitEquipment // @@ -179,64 +181,28 @@ this.Close(); } - private void cbEquipAll_CheckedChanged(object sender, System.EventArgs e) - { - //numEquipAmount.Enabled = ((UnitEquipmentItem) listItems.SelectedItem).MinNumber != WarFoundryCore.INFINITY && !rbEquipAll.Checked; - setOkayButton(); - } - private void listItems_SelectedIndexChanged(object sender, System.EventArgs e) { - refreshNumber(); - setOkayButton(); - } - - private void refreshNumber() - { - /* if (listItems.SelectedIndex > -1) { - UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem; - required = equipItem.IsRequired; - - if (equipItem.IsRatioLimit) - { - numEquipAmount.Minimum = (decimal) equipItem.MinPercentage; - numEquipAmount.Maximum = (decimal) equipItem.MaxPercentage; - numEquipAmount.Enabled = true; - numEquipAmount.Value = numEquipAmount.Minimum; - rbEquipAll.Enabled = false; - lblPercent.Visible = true; - numEquipAmount.Width = 120; - } - else - { - numEquipAmount.Minimum = (decimal)(equipItem.MinNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MinNumber, unit.Size) : unit.Size); - numEquipAmount.Maximum = (decimal)(equipItem.MaxNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MaxNumber, unit.Size) : unit.Size); - numEquipAmount.Value = numEquipAmount.Minimum; - numEquipAmount.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY; - rbEquipAll.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY && equipItem.MaxNumber == WarFoundryCore.INFINITY; - rbEquipAll.Checked = equipItem.MinNumber == WarFoundryCore.INFINITY; - lblPercent.Visible = false; - numEquipAmount.Width = 144; - } + equipmentAmount.SetUnitEquipmentItem((UnitEquipmentItem)listItems.SelectedItem); } else { - numEquipAmount.Minimum = 0; - numEquipAmount.Value = 0; - numEquipAmount.Enabled = false; - rbEquipAll.Enabled = false; - }*/ + equipmentAmount.SetUnitEquipmentItem(null); + } + + setOkayButton(); } private void setOkayButton() { - bttnOkay.Enabled = listItems.SelectedIndex > -1;// && (rbEquipAll.Checked || (numEquipAmount.Enabled && numEquipAmount.Value > 0)); + double equipAmount = equipmentAmount.EquipmentAmount; + bttnOkay.Enabled = listItems.SelectedIndex > -1 && (equipAmount > 0 || equipAmount == WarFoundryCore.INFINITY); } - private void numEquipAmount_ValueChanged(object sender, System.EventArgs e) - { + private void equipmentAmount_ValueChanged(object sender, EventArgs e) + { setOkayButton(); } }