Mercurial > repos > IBBoard.WarFoundry.GUI.GTK
diff UIControl/AddEquipmentUIControl.cs @ 56:0c5fbb54bfb0
Re #60: Add UI to add/remove/edit weapons in GTK
* Refactor enabling/disabling of radio buttons
* Handle null selections
* Move Dispose() to be an interface method and move call out to controller
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Wed, 25 Aug 2010 20:04:27 +0000 |
parents | eb7db8495bb5 |
children | 293d204e40db |
line wrap: on
line diff
--- a/UIControl/AddEquipmentUIControl.cs Wed Aug 25 19:51:23 2010 +0000 +++ b/UIControl/AddEquipmentUIControl.cs Wed Aug 25 20:04:27 2010 +0000 @@ -24,6 +24,7 @@ private void SetupUI() { CreateEquipmentUI(); + ui.SetUnitEquipmentLimitsEnabled(false); UnitEquipmentItem[] items = Arrays.Subtract(UnitEquipmentUtil.GetAllowedEquipmentItems(unit), unit.GetEquipment()); ui.SetUnitEquipmentItems(items); ui.UnitEquipmentItemChoiceChanged += HandleUiUnitEquipmentItemChoiceChanged; @@ -37,28 +38,38 @@ private void HandleUiUnitEquipmentItemChoiceChanged(UnitEquipmentItem equip) { - bool equipIsRatioLimit = UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equip); - double maxPercent = RoundPercentage(UnitEquipmentUtil.GetMaxEquipmentPercentage(unit, equip)); - maxPercent = Math.Max(0, maxPercent); - double minPercent = RoundPercentage(UnitEquipmentUtil.GetMinEquipmentPercentage(unit, equip)); - minPercent = Math.Max(0, minPercent); - int maxNumber = UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip); - maxNumber = Math.Max(0, maxNumber); - int minNumber = UnitEquipmentUtil.GetMinEquipmentCount(unit, equip); - minNumber = Math.Max(0, minNumber); + if (equip != null) + { + bool equipIsRatioLimit = UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equip); + double maxPercent = RoundPercentage(UnitEquipmentUtil.GetMaxEquipmentPercentage(unit, equip)); + maxPercent = Math.Max(0, maxPercent); + double minPercent = RoundPercentage(UnitEquipmentUtil.GetMinEquipmentPercentage(unit, equip)); + minPercent = Math.Max(0, minPercent); + int maxNumber = UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip); + maxNumber = Math.Max(0, maxNumber); + int minNumber = UnitEquipmentUtil.GetMinEquipmentCount(unit, equip); + minNumber = Math.Max(0, minNumber); - ui.SetUnitEquipmentLimits(equipIsRatioLimit, minPercent, maxPercent, minNumber, maxNumber); - + ui.SetUnitEquipmentLimits(equipIsRatioLimit, minPercent, maxPercent, minNumber, maxNumber); + ui.SetUnitEquipmentLimitsEnabled(true); + } + else + { + ui.SetUnitEquipmentLimits(true, 0, 0, 0, 0); + ui.SetUnitEquipmentLimitsEnabled(false); + } } private double RoundPercentage(double percent) { return Math.Round(percent, 1); } - + public void Show() { ui.ShowControl(); + //Do command stuff here + ui.Dispose(); } } }