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();
 		}
 	}