Mercurial > repos > IBBoard.WarFoundry.GUI.GTK
diff Widgets/UnitDisplayWidget.cs @ 71:91354245218a
Fixes #305: Add abilities to GTK# UI
* Add Abilities section to UnitDisplayWidget that shows list of required abilities
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 06 Nov 2010 20:22:19 +0000 |
parents | 7028e24b67ec |
children | f0cc295e883c |
line wrap: on
line diff
--- a/Widgets/UnitDisplayWidget.cs Sat Nov 06 17:03:13 2010 +0000 +++ b/Widgets/UnitDisplayWidget.cs Sat Nov 06 20:22:19 2010 +0000 @@ -5,15 +5,15 @@ using System; using Gtk; using IBBoard.Commands; +using IBBoard.GtkSharp; using IBBoard.Lang; using IBBoard.WarFoundry.API; -using WFObjects = IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Commands; -using IBBoard.WarFoundry.GUI.GTK.UIControl; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Util; -using IBBoard.GtkSharp; +using IBBoard.WarFoundry.GUI.GTK.UIControl; using log4net; +using WFObjects = IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.GTK.Widgets { @@ -41,6 +41,7 @@ unit.UnitSizeChanged += UnitSizeChanged; unit.UnitEquipmentAmountChanged += HandleUnitUnitEquipmentAmountChanged; equipmentList.Selection.Changed += HandleEquipmentListSelectionChanged; + SetAbilities(); SetStats(); SetWeapons(); } @@ -62,6 +63,33 @@ { return (UnitEquipmentItem)TreeUtils.GetSelectedItem(equipmentList); } + + private void SetAbilities() + { + CellRendererText renderer = new CellRendererText(); + abilitiesList.AppendColumn("", renderer, new TreeCellDataFunc(RenderAbility)); + + ListStore model = new ListStore(typeof(Ability)); + + foreach (Ability ability in unit.UnitType.GetRequiredAbilities()) + { + model.AppendValues(ability); + } + + abilitiesList.Model = model; + } + + public void RenderAbility(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + { + object o = model.GetValue(iter, 0); + + if (o is Ability) + { + Ability ability = (Ability)o; + (cell as CellRendererText).Text = ability.Name; + } + + } private void SetStats() {