comparison 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
comparison
equal deleted inserted replaced
40:740350673006 41:4fc87d6e6119
41 this.unit = unit; 41 this.unit = unit;
42 InitializeComponent(); 42 InitializeComponent();
43 this.Text = "New equipment for " + unit.Name; 43 this.Text = "New equipment for " + unit.Name;
44 object[] items = Arrays.Subtract(unit.GetAllowedOptionalEquipment(), unit.GetEquipment()); 44 object[] items = Arrays.Subtract(unit.GetAllowedOptionalEquipment(), unit.GetEquipment());
45 listItems.Items.AddRange(items); 45 listItems.Items.AddRange(items);
46 equipmentAmount.SetUnit(unit);
46 } 47 }
47 48
48 /// <summary> 49 /// <summary>
49 /// Clean up any resources being used. 50 /// Clean up any resources being used.
50 /// </summary> 51 /// </summary>
127 // 128 //
128 this.equipmentAmount.Location = new System.Drawing.Point(88, 80); 129 this.equipmentAmount.Location = new System.Drawing.Point(88, 80);
129 this.equipmentAmount.Name = "equipmentAmount"; 130 this.equipmentAmount.Name = "equipmentAmount";
130 this.equipmentAmount.Size = new System.Drawing.Size(155, 77); 131 this.equipmentAmount.Size = new System.Drawing.Size(155, 77);
131 this.equipmentAmount.TabIndex = 8; 132 this.equipmentAmount.TabIndex = 8;
133 this.equipmentAmount.ValueChanged += new System.EventHandler(this.equipmentAmount_ValueChanged);
132 // 134 //
133 // FrmNewUnitEquipment 135 // FrmNewUnitEquipment
134 // 136 //
135 this.AcceptButton = this.bttnOkay; 137 this.AcceptButton = this.bttnOkay;
136 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 138 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
177 private void bttnCancel_Click(object sender, System.EventArgs e) 179 private void bttnCancel_Click(object sender, System.EventArgs e)
178 { 180 {
179 this.Close(); 181 this.Close();
180 } 182 }
181 183
182 private void cbEquipAll_CheckedChanged(object sender, System.EventArgs e) 184 private void listItems_SelectedIndexChanged(object sender, System.EventArgs e)
183 { 185 {
184 //numEquipAmount.Enabled = ((UnitEquipmentItem) listItems.SelectedItem).MinNumber != WarFoundryCore.INFINITY && !rbEquipAll.Checked; 186 if (listItems.SelectedIndex > -1)
187 {
188 equipmentAmount.SetUnitEquipmentItem((UnitEquipmentItem)listItems.SelectedItem);
189 }
190 else
191 {
192 equipmentAmount.SetUnitEquipmentItem(null);
193 }
194
185 setOkayButton(); 195 setOkayButton();
186 } 196 }
187 197
188 private void listItems_SelectedIndexChanged(object sender, System.EventArgs e)
189 {
190 refreshNumber();
191 setOkayButton();
192 }
193
194 private void refreshNumber()
195 {
196 /*
197 if (listItems.SelectedIndex > -1)
198 {
199 UnitEquipmentItem equipItem = (UnitEquipmentItem)listItems.SelectedItem;
200 required = equipItem.IsRequired;
201
202 if (equipItem.IsRatioLimit)
203 {
204 numEquipAmount.Minimum = (decimal) equipItem.MinPercentage;
205 numEquipAmount.Maximum = (decimal) equipItem.MaxPercentage;
206 numEquipAmount.Enabled = true;
207 numEquipAmount.Value = numEquipAmount.Minimum;
208 rbEquipAll.Enabled = false;
209 lblPercent.Visible = true;
210 numEquipAmount.Width = 120;
211 }
212 else
213 {
214 numEquipAmount.Minimum = (decimal)(equipItem.MinNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MinNumber, unit.Size) : unit.Size);
215 numEquipAmount.Maximum = (decimal)(equipItem.MaxNumber != WarFoundryCore.INFINITY ? Math.Min(equipItem.MaxNumber, unit.Size) : unit.Size);
216 numEquipAmount.Value = numEquipAmount.Minimum;
217 numEquipAmount.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY;
218 rbEquipAll.Enabled = equipItem.MinNumber != WarFoundryCore.INFINITY && equipItem.MaxNumber == WarFoundryCore.INFINITY;
219 rbEquipAll.Checked = equipItem.MinNumber == WarFoundryCore.INFINITY;
220 lblPercent.Visible = false;
221 numEquipAmount.Width = 144;
222 }
223 }
224 else
225 {
226 numEquipAmount.Minimum = 0;
227 numEquipAmount.Value = 0;
228 numEquipAmount.Enabled = false;
229 rbEquipAll.Enabled = false;
230 }*/
231 }
232
233 private void setOkayButton() 198 private void setOkayButton()
234 { 199 {
235 bttnOkay.Enabled = listItems.SelectedIndex > -1;// && (rbEquipAll.Checked || (numEquipAmount.Enabled && numEquipAmount.Value > 0)); 200 double equipAmount = equipmentAmount.EquipmentAmount;
236 } 201 bttnOkay.Enabled = listItems.SelectedIndex > -1 && (equipAmount > 0 || equipAmount == WarFoundryCore.INFINITY);
237 202 }
238 private void numEquipAmount_ValueChanged(object sender, System.EventArgs e) 203
239 { 204 private void equipmentAmount_ValueChanged(object sender, EventArgs e)
205 {
240 setOkayButton(); 206 setOkayButton();
241 } 207 }
242 } 208 }
243 } 209 }