Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.WinForms
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 } |