Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.WinForms
diff FrmArmyTree.cs @ 239:c06d0865ff27
Fixes #388: Add "Add unit" options to army tree
* Add button, context menu and double-click hooks for adding units
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 21 Jan 2012 11:36:23 +0000 |
parents | 870877498db9 |
children | 2c3474d652e1 |
line wrap: on
line diff
--- a/FrmArmyTree.cs Sat Jan 21 11:35:09 2012 +0000 +++ b/FrmArmyTree.cs Sat Jan 21 11:36:23 2012 +0000 @@ -263,8 +263,12 @@ { EditArmy((Army)tagData); } + else if (tagData is ArmyCategory) + { + AddUnitFromCategory((ArmyCategory)tagData); + } } - + private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue) { if (obj is ICostedWarFoundryObject) @@ -294,7 +298,7 @@ private void treeView_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = treeView.SelectedNode; - + bttnAdd.Enabled = (node != null && node.Tag is ArmyCategory); bttnDelete.Enabled = (node != null && node.Tag is Unit); bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army)); } @@ -327,8 +331,9 @@ Object tag = (node != null) ? node.Tag : null; bool tagIsUnit = (tag is Unit); bool tagIsArmy = (tag is Army); + bool tagIsCategory = (tag is ArmyCategory); - if (!tagIsUnit && !tagIsArmy) + if (!tagIsUnit && !tagIsArmy && !tagIsCategory) { e.Cancel = true; } @@ -337,7 +342,29 @@ miDeleteUnit.Visible = tagIsUnit; miEditUnit.Visible = tagIsUnit; miEditArmy.Visible = tagIsArmy; + miAddUnit.Visible = tagIsCategory; } } + + private void miAddUnit_Click(object sender, EventArgs e) + { + AddUnit(); + } + + private void AddUnit() + { + ArmyCategory tagData = treeView.SelectedNode.Tag as ArmyCategory; + AddUnitFromCategory(tagData); + } + + private void AddUnitFromCategory(ArmyCategory tagData) + { + MdiParent.AddUnitFromCategory(tagData.Category); + } + + private void bttnAdd_Click(object sender, EventArgs e) + { + AddUnit(); + } } }