Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
diff FrmArmyTree.cs @ 229:870877498db9
Re #382: WinForms builds from Linux/Mono fail on Windows/.Net
* Rebuild FrmArmyTree from scratch, in case old file hasn't migrated through the versions properly
* Add edit and delete icons
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 03 Dec 2011 14:48:40 +0000 |
parents | 4ada3252d1ea |
children | c06d0865ff27 |
line wrap: on
line diff
--- a/FrmArmyTree.cs Sat Nov 26 14:50:44 2011 +0000 +++ b/FrmArmyTree.cs Sat Dec 03 14:48:40 2011 +0000 @@ -1,48 +1,32 @@ -// This file (FrmArmyTree.cs) is a part of the IBBoard.WarFoundry.GUI.WinForms project and is copyright 2009 IBBoard. -// -// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. - -using System; -using System.Drawing; +using System; using System.Collections.Generic; using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; using System.Windows.Forms; using IBBoard.Commands; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API; using IBBoard.Lang; using IBBoard.Windows.Forms.I18N; +using IBBoard.WarFoundry.API.Commands; using IBBoard.Windows.Forms; -using IBBoard.WarFoundry.API; -using IBBoard.WarFoundry.API.Commands; -using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry.GUI.WinForms { - /// <summary> - /// Summary description for FrmArmyTree. - /// </summary> - public class FrmArmyTree : IBBoard.Windows.Forms.IBBForm + public partial class FrmArmyTree : IBBoard.Windows.Forms.IBBForm { - private System.Windows.Forms.TreeView treeView; - private IContainer components; private Dictionary<string, TreeNode> nodes; - private System.Windows.Forms.ContextMenu contextMenu; - private IBBMenuItem miDeleteUnit; - private IBBMenuItem miEditUnit; - private ObjectAddDelegate UnitAddedMethod; private ObjectRemoveDelegate UnitRemovedMethod; private StringValChangedDelegate UnitNameChangedMethod, ArmyNameChangedMethod, TreeNameChangedMethod; - private ToolBar toolBar; - private IBBToolBarButton bttnEdit; - private IBBToolBarButton bttnDelete; - private ImageList imageList; - private IBBMenuItem miEditArmy; private CommandStack commandStack; - public GameSystem CurrentGameSystem - { - get { return WarFoundryCore.CurrentGameSystem; } - set { WarFoundryCore.CurrentGameSystem = value; } - } + public GameSystem CurrentGameSystem + { + get { return WarFoundryCore.CurrentGameSystem; } + set { WarFoundryCore.CurrentGameSystem = value; } + } public FrmArmyTree(CommandStack cmdStack) { @@ -58,7 +42,7 @@ miDeleteUnit.Name = "miDeleteUnit"; miEditUnit.Name = "miEditUnit"; miEditArmy.Name = "miEditArmy"; - WarFoundryCore.ArmyChanged+= new ArmyChangedDelegate(FrmArmyTree_ArmyChanged); + WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(FrmArmyTree_ArmyChanged); TranslateForm(); Translation.TranslationChanged += new MethodInvoker(TranslateForm); } @@ -72,147 +56,16 @@ ControlTranslator.TranslateComponent(comp); } - foreach (IBBMenuItem mi in contextMenu.MenuItems) + foreach (IBBToolStripMenuItem mi in contextMenuStrip.Items) { - ControlTranslator.TranslateComponent(mi); + ControlTranslator.TranslateComponent(mi); } - foreach (TreeNode node in nodes.Values) - { - node.Text = CreateNodeName((ICostedWarFoundryObject)node.Tag); - } - } - - /// <summary> - /// Clean up any resources being used. - /// </summary> - protected override void Dispose( bool disposing ) - { - if( disposing ) + foreach (TreeNode node in nodes.Values) { - if(components != null) - { - components.Dispose(); - } + node.Text = CreateNodeName((ICostedWarFoundryObject)node.Tag); } - base.Dispose( disposing ); - Translation.TranslationChanged -= new MethodInvoker(TranslateForm); - WarFoundryCore.ArmyChanged -= new ArmyChangedDelegate(FrmArmyTree_ArmyChanged); } - - #region Windows Form Designer generated code - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree)); - this.contextMenu = new System.Windows.Forms.ContextMenu(); - this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem(); - this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.toolBar = new System.Windows.Forms.ToolBar(); - this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton(); - this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton(); - this.treeView = new System.Windows.Forms.TreeView(); - this.miEditArmy = new IBBoard.Windows.Forms.IBBMenuItem(); - this.SuspendLayout(); - // - // contextMenu - // - this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.miEditArmy, - this.miEditUnit, - this.miDeleteUnit}); - this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); - // - // miEditUnit - // - this.miEditUnit.Index = 1; - this.miEditUnit.Text = "&edit unit"; - this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click); - // - // miDeleteUnit - // - this.miDeleteUnit.Index = 2; - this.miDeleteUnit.Text = "&delete unit"; - this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click); - // - // imageList - // - this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - this.imageList.Images.SetKeyName(0, "gtk-edit.png"); - this.imageList.Images.SetKeyName(1, "edit-delete.png"); - // - // toolBar - // - this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { - this.bttnEdit, - this.bttnDelete}); - this.toolBar.ButtonSize = new System.Drawing.Size(16, 16); - this.toolBar.DropDownArrows = true; - this.toolBar.ImageList = this.imageList; - this.toolBar.Location = new System.Drawing.Point(0, 0); - this.toolBar.Name = "toolBar"; - this.toolBar.ShowToolTips = true; - this.toolBar.Size = new System.Drawing.Size(240, 28); - this.toolBar.TabIndex = 3; - this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick); - // - // bttnEdit - // - this.bttnEdit.Enabled = false; - this.bttnEdit.ImageIndex = 0; - this.bttnEdit.Name = "bttnEdit"; - // - // bttnDelete - // - this.bttnDelete.Enabled = false; - this.bttnDelete.ImageIndex = 1; - this.bttnDelete.Name = "bttnDelete"; - // - // treeView - // - this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.treeView.ContextMenu = this.contextMenu; - this.treeView.FullRowSelect = true; - this.treeView.Location = new System.Drawing.Point(0, 28); - this.treeView.Name = "treeView"; - this.treeView.Size = new System.Drawing.Size(240, 250); - this.treeView.TabIndex = 0; - this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect); - this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick); - this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown); - // - // miEditArmy - // - this.miEditArmy.Index = 0; - this.miEditArmy.Text = "&edit army"; - this.miEditArmy.Click += new System.EventHandler(this.miEditArmy_Click); - // - // FrmArmyTree - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(240, 277); - this.ControlBox = false; - this.Controls.Add(this.toolBar); - this.Controls.Add(this.treeView); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FrmArmyTree"; - this.Text = "FrmArmyTree"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - private void ClearArmy() { nodes.Clear(); @@ -257,10 +110,10 @@ root.ExpandAll(); } } - + private string CreateNodeName(ICostedWarFoundryObject obj) { - return Translation.GetTranslation("treeNodeText", "{0} ({1} pts)", obj.Name, obj.Points, CurrentGameSystem.GetPointsAbbrev(obj.Points)); + return Translation.GetTranslation("treeNodeText", "{0} ({1} pts)", obj.Name, obj.Points, CurrentGameSystem.GetPointsAbbrev(obj.Points)); } private void NodePointsValueChanged(WarFoundryObject obj, double oldValue, double newValue) @@ -285,7 +138,7 @@ { TreeNode temp = new TreeNode(CreateNodeName(unit)); temp.Tag = unit; - unit.NameChanged+= UnitNameChangedMethod; + unit.NameChanged += UnitNameChangedMethod; unit.PointsValueChanged += NodePointsValueChanged; nodes[unit.ID] = temp; return temp; @@ -327,7 +180,7 @@ public new FrmMain MdiParent { - get { return (FrmMain) base.MdiParent; } + get { return (FrmMain)base.MdiParent; } set { base.MdiParent = value; } } @@ -343,48 +196,22 @@ private void RemoveUnitFromTree(Unit unit) { TreeNode unitNode = nodes[unit.ID]; - unit.NameChanged-= UnitNameChangedMethod; + unit.NameChanged -= UnitNameChangedMethod; - if (unitNode!=null) + if (unitNode != null) { unitNode.Remove(); nodes.Remove(unit.ID); } } - - private void contextMenu_Popup(object sender, System.EventArgs e) - { - TreeNode node = treeView.SelectedNode; - Object tag = (node != null) ? node.Tag : null; - - if (tag is Unit) - { - miDeleteUnit.Visible = true; - miEditUnit.Visible = true; - miEditArmy.Visible = false; - } - else if (tag is Army) - { - miDeleteUnit.Visible = false; - miEditUnit.Visible = false; - miEditArmy.Visible = true; - } - else - { - miDeleteUnit.Visible = false; - miEditUnit.Visible = false; - miEditArmy.Visible = false; - } - } - private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == MouseButtons.Right) { TreeNode tn = treeView.GetNodeAt(e.X, e.Y); - if (tn!=null) + if (tn != null) { treeView.SelectedNode = tn; } @@ -407,19 +234,19 @@ if (selected.Tag != null && selected.Tag is Unit) { - Unit unit = (Unit) selected.Tag; + Unit unit = (Unit)selected.Tag; commandStack.Execute(new RemoveUnitCommand(unit)); } } private void miEdit_Click(object sender, System.EventArgs e) - { + { EditTreeItem(); } private void treeView_DoubleClick(object sender, System.EventArgs e) { - EditTreeItem(); + EditTreeItem(); } private void EditTreeItem() @@ -429,7 +256,7 @@ if (tagData is Unit) { - Unit unit = (Unit) tagData; + Unit unit = (Unit)tagData; MdiParent.OpenUnitDialog(unit); } else if (tagData is Army) @@ -458,24 +285,12 @@ { TreeNode node = nodes[obj.ID]; - if (node!=null) + if (node != null) { node.Text = obj.Name; } } - private void toolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e) - { - if (e.Button == bttnDelete) - { - DeleteUnit(); - } - else if (e.Button == bttnEdit) - { - EditTreeItem(); - } - } - private void treeView_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = treeView.SelectedNode; @@ -495,5 +310,34 @@ FrmEditArmy editForm = new FrmEditArmy(commandStack, army); editForm.ShowDialog(this.ParentForm); } + + private void bttnEdit_Click(object sender, EventArgs e) + { + EditTreeItem(); + } + + private void bttnDelete_Click(object sender, EventArgs e) + { + DeleteUnit(); + } + + private void contextMenuStrip_Opening(object sender, CancelEventArgs e) + { + TreeNode node = treeView.SelectedNode; + Object tag = (node != null) ? node.Tag : null; + bool tagIsUnit = (tag is Unit); + bool tagIsArmy = (tag is Army); + + if (!tagIsUnit && !tagIsArmy) + { + e.Cancel = true; + } + else + { + miDeleteUnit.Visible = tagIsUnit; + miEditUnit.Visible = tagIsUnit; + miEditArmy.Visible = tagIsArmy; + } + } } }