changeset 221:5233147ca7e4

Re #101: Make army names and sizes modifiable after creation * Add form for editing name and size * Add edit options from army tree * Add edit options from Edit menu
author IBBoard <dev@ibboard.co.uk>
date Mon, 29 Aug 2011 20:06:54 +0100
parents 467decfdde8e
children 4ada3252d1ea
files FrmArmyTree.cs FrmArmyTree.resx FrmEditArmy.Designer.cs FrmEditArmy.cs FrmEditArmy.resx FrmMain.cs FrmMain.resx IBBoard.WarFoundry.GUI.WinForms.csproj
diffstat 8 files changed, 864 insertions(+), 470 deletions(-) [+]
line diff
     1.1 --- a/FrmArmyTree.cs	Mon Aug 29 15:17:59 2011 +0100
     1.2 +++ b/FrmArmyTree.cs	Mon Aug 29 20:06:54 2011 +0100
     1.3 @@ -36,6 +36,7 @@
     1.4  		private IBBToolBarButton bttnEdit;
     1.5  		private IBBToolBarButton bttnDelete;
     1.6  		private ImageList imageList;
     1.7 +		private IBBMenuItem miEditArmy;
     1.8  		private CommandStack commandStack;
     1.9          public GameSystem CurrentGameSystem
    1.10          {
    1.11 @@ -102,100 +103,108 @@
    1.12  		/// </summary>
    1.13  		private void InitializeComponent()
    1.14  		{
    1.15 -            this.components = new System.ComponentModel.Container();
    1.16 -            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree));
    1.17 -            this.contextMenu = new System.Windows.Forms.ContextMenu();
    1.18 -            this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem();
    1.19 -            this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem();
    1.20 -            this.imageList = new System.Windows.Forms.ImageList(this.components);
    1.21 -            this.toolBar = new System.Windows.Forms.ToolBar();
    1.22 -            this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton();
    1.23 -            this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton();
    1.24 -            this.treeView = new System.Windows.Forms.TreeView();
    1.25 -            this.SuspendLayout();
    1.26 -            // 
    1.27 -            // contextMenu
    1.28 -            // 
    1.29 -            this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    1.30 +			this.components = new System.ComponentModel.Container();
    1.31 +			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree));
    1.32 +			this.contextMenu = new System.Windows.Forms.ContextMenu();
    1.33 +			this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem();
    1.34 +			this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem();
    1.35 +			this.imageList = new System.Windows.Forms.ImageList(this.components);
    1.36 +			this.toolBar = new System.Windows.Forms.ToolBar();
    1.37 +			this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton();
    1.38 +			this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton();
    1.39 +			this.treeView = new System.Windows.Forms.TreeView();
    1.40 +			this.miEditArmy = new IBBoard.Windows.Forms.IBBMenuItem();
    1.41 +			this.SuspendLayout();
    1.42 +			// 
    1.43 +			// contextMenu
    1.44 +			// 
    1.45 +			this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
    1.46 +            this.miEditArmy,
    1.47              this.miEditUnit,
    1.48              this.miDeleteUnit});
    1.49 -            this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup);
    1.50 -            // 
    1.51 -            // miEditUnit
    1.52 -            // 
    1.53 -            this.miEditUnit.Index = 0;
    1.54 -            this.miEditUnit.Text = "&edit unit";
    1.55 -            this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click);
    1.56 -            // 
    1.57 -            // miDeleteUnit
    1.58 -            // 
    1.59 -            this.miDeleteUnit.Index = 1;
    1.60 -            this.miDeleteUnit.Text = "&delete unit";
    1.61 -            this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click);
    1.62 -            // 
    1.63 -            // imageList
    1.64 -            // 
    1.65 -            this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
    1.66 -            this.imageList.TransparentColor = System.Drawing.Color.Transparent;
    1.67 -            this.imageList.Images.SetKeyName(0, "gtk-edit.png");
    1.68 -            this.imageList.Images.SetKeyName(1, "edit-delete.png");
    1.69 -            // 
    1.70 -            // toolBar
    1.71 -            // 
    1.72 -            this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
    1.73 +			this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup);
    1.74 +			// 
    1.75 +			// miEditUnit
    1.76 +			// 
    1.77 +			this.miEditUnit.Index = 1;
    1.78 +			this.miEditUnit.Text = "&edit unit";
    1.79 +			this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click);
    1.80 +			// 
    1.81 +			// miDeleteUnit
    1.82 +			// 
    1.83 +			this.miDeleteUnit.Index = 2;
    1.84 +			this.miDeleteUnit.Text = "&delete unit";
    1.85 +			this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click);
    1.86 +			// 
    1.87 +			// imageList
    1.88 +			// 
    1.89 +			this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
    1.90 +			this.imageList.TransparentColor = System.Drawing.Color.Transparent;
    1.91 +			this.imageList.Images.SetKeyName(0, "gtk-edit.png");
    1.92 +			this.imageList.Images.SetKeyName(1, "edit-delete.png");
    1.93 +			// 
    1.94 +			// toolBar
    1.95 +			// 
    1.96 +			this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
    1.97              this.bttnEdit,
    1.98              this.bttnDelete});
    1.99 -            this.toolBar.ButtonSize = new System.Drawing.Size(16, 16);
   1.100 -            this.toolBar.DropDownArrows = true;
   1.101 -            this.toolBar.ImageList = this.imageList;
   1.102 -            this.toolBar.Location = new System.Drawing.Point(0, 0);
   1.103 -            this.toolBar.Name = "toolBar";
   1.104 -            this.toolBar.ShowToolTips = true;
   1.105 -            this.toolBar.Size = new System.Drawing.Size(240, 28);
   1.106 -            this.toolBar.TabIndex = 3;
   1.107 -            this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick);
   1.108 -            // 
   1.109 -            // bttnEdit
   1.110 -            // 
   1.111 -            this.bttnEdit.Enabled = false;
   1.112 -            this.bttnEdit.ImageIndex = 0;
   1.113 -            this.bttnEdit.Name = "bttnEdit";
   1.114 -            // 
   1.115 -            // bttnDelete
   1.116 -            // 
   1.117 -            this.bttnDelete.Enabled = false;
   1.118 -            this.bttnDelete.ImageIndex = 1;
   1.119 -            this.bttnDelete.Name = "bttnDelete";
   1.120 -            // 
   1.121 -            // treeView
   1.122 -            // 
   1.123 -            this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
   1.124 -                        | System.Windows.Forms.AnchorStyles.Left)
   1.125 -                        | System.Windows.Forms.AnchorStyles.Right)));
   1.126 -            this.treeView.ContextMenu = this.contextMenu;
   1.127 -            this.treeView.FullRowSelect = true;
   1.128 -            this.treeView.Location = new System.Drawing.Point(0, 28);
   1.129 -            this.treeView.Name = "treeView";
   1.130 -            this.treeView.Size = new System.Drawing.Size(240, 250);
   1.131 -            this.treeView.TabIndex = 0;
   1.132 -            this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick);
   1.133 -            this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect);
   1.134 -            this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown);
   1.135 -            // 
   1.136 -            // FrmArmyTree
   1.137 -            // 
   1.138 -            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   1.139 -            this.ClientSize = new System.Drawing.Size(240, 277);
   1.140 -            this.ControlBox = false;
   1.141 -            this.Controls.Add(this.toolBar);
   1.142 -            this.Controls.Add(this.treeView);
   1.143 -            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
   1.144 -            this.MaximizeBox = false;
   1.145 -            this.MinimizeBox = false;
   1.146 -            this.Name = "FrmArmyTree";
   1.147 -            this.Text = "FrmArmyTree";
   1.148 -            this.ResumeLayout(false);
   1.149 -            this.PerformLayout();
   1.150 +			this.toolBar.ButtonSize = new System.Drawing.Size(16, 16);
   1.151 +			this.toolBar.DropDownArrows = true;
   1.152 +			this.toolBar.ImageList = this.imageList;
   1.153 +			this.toolBar.Location = new System.Drawing.Point(0, 0);
   1.154 +			this.toolBar.Name = "toolBar";
   1.155 +			this.toolBar.ShowToolTips = true;
   1.156 +			this.toolBar.Size = new System.Drawing.Size(240, 28);
   1.157 +			this.toolBar.TabIndex = 3;
   1.158 +			this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick);
   1.159 +			// 
   1.160 +			// bttnEdit
   1.161 +			// 
   1.162 +			this.bttnEdit.Enabled = false;
   1.163 +			this.bttnEdit.ImageIndex = 0;
   1.164 +			this.bttnEdit.Name = "bttnEdit";
   1.165 +			// 
   1.166 +			// bttnDelete
   1.167 +			// 
   1.168 +			this.bttnDelete.Enabled = false;
   1.169 +			this.bttnDelete.ImageIndex = 1;
   1.170 +			this.bttnDelete.Name = "bttnDelete";
   1.171 +			// 
   1.172 +			// treeView
   1.173 +			// 
   1.174 +			this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
   1.175 +						| System.Windows.Forms.AnchorStyles.Left)
   1.176 +						| System.Windows.Forms.AnchorStyles.Right)));
   1.177 +			this.treeView.ContextMenu = this.contextMenu;
   1.178 +			this.treeView.FullRowSelect = true;
   1.179 +			this.treeView.Location = new System.Drawing.Point(0, 28);
   1.180 +			this.treeView.Name = "treeView";
   1.181 +			this.treeView.Size = new System.Drawing.Size(240, 250);
   1.182 +			this.treeView.TabIndex = 0;
   1.183 +			this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect);
   1.184 +			this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick);
   1.185 +			this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown);
   1.186 +			// 
   1.187 +			// miEditArmy
   1.188 +			// 
   1.189 +			this.miEditArmy.Index = 0;
   1.190 +			this.miEditArmy.Text = "&edit army";
   1.191 +			this.miEditArmy.Click += new System.EventHandler(this.miEditArmy_Click);
   1.192 +			// 
   1.193 +			// FrmArmyTree
   1.194 +			// 
   1.195 +			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   1.196 +			this.ClientSize = new System.Drawing.Size(240, 277);
   1.197 +			this.ControlBox = false;
   1.198 +			this.Controls.Add(this.toolBar);
   1.199 +			this.Controls.Add(this.treeView);
   1.200 +			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
   1.201 +			this.MaximizeBox = false;
   1.202 +			this.MinimizeBox = false;
   1.203 +			this.Name = "FrmArmyTree";
   1.204 +			this.Text = "FrmArmyTree";
   1.205 +			this.ResumeLayout(false);
   1.206 +			this.PerformLayout();
   1.207  
   1.208  		}
   1.209  		#endregion
   1.210 @@ -341,20 +350,25 @@
   1.211  		private void contextMenu_Popup(object sender, System.EventArgs e)
   1.212  		{
   1.213  			TreeNode node = treeView.SelectedNode;
   1.214 +			Object tag = (node != null) ? node.Tag : null;
   1.215  
   1.216 -			if (node!=null && node.Tag is Unit)
   1.217 +			if (tag is Unit)
   1.218  			{
   1.219 -				foreach(MenuItem item in contextMenu.MenuItems)
   1.220 -				{
   1.221 -					item.Visible = true;
   1.222 -				}
   1.223 +				miDeleteUnit.Visible = true;
   1.224 +				miEditUnit.Visible = true;
   1.225 +				miEditArmy.Visible = false;
   1.226 +			}
   1.227 +			else if (tag is Army)
   1.228 +			{
   1.229 +				miDeleteUnit.Visible = false;
   1.230 +				miEditUnit.Visible = false;
   1.231 +				miEditArmy.Visible = true;
   1.232  			}
   1.233  			else
   1.234  			{
   1.235 -				foreach(MenuItem item in contextMenu.MenuItems)
   1.236 -				{
   1.237 -					item.Visible = false;
   1.238 -				}
   1.239 +				miDeleteUnit.Visible = false;
   1.240 +				miEditUnit.Visible = false;
   1.241 +				miEditArmy.Visible = false;
   1.242  			}
   1.243  		}
   1.244  
   1.245 @@ -394,15 +408,15 @@
   1.246  
   1.247  		private void miEdit_Click(object sender, System.EventArgs e)
   1.248  		{	
   1.249 -			EditUnit();
   1.250 +			EditTreeItem();
   1.251  		}
   1.252  
   1.253  		private void treeView_DoubleClick(object sender, System.EventArgs e)
   1.254  		{
   1.255 -			EditUnit();			
   1.256 +			EditTreeItem();			
   1.257  		}
   1.258  
   1.259 -		private void EditUnit()
   1.260 +		private void EditTreeItem()
   1.261  		{
   1.262  			TreeNode selected = treeView.SelectedNode;
   1.263  			object tagData = selected.Tag;
   1.264 @@ -412,6 +426,10 @@
   1.265  				Unit unit = (Unit) tagData;
   1.266  				MdiParent.OpenUnitDialog(unit);
   1.267  			}
   1.268 +			else if (tagData is Army)
   1.269 +			{
   1.270 +				EditArmy((Army)tagData);
   1.271 +			}
   1.272  		}
   1.273  
   1.274  		private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue)
   1.275 @@ -454,7 +472,7 @@
   1.276  			}
   1.277  			else if (e.Button == bttnEdit)
   1.278  			{
   1.279 -				EditUnit();
   1.280 +				EditTreeItem();
   1.281  			}
   1.282  		}
   1.283  
   1.284 @@ -463,7 +481,19 @@
   1.285  			TreeNode node = treeView.SelectedNode;
   1.286  
   1.287  			bttnDelete.Enabled = (node != null && node.Tag is Unit);
   1.288 -			bttnEdit.Enabled = bttnDelete.Enabled;
   1.289 +			bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army));
   1.290 +		}
   1.291 +
   1.292 +		private void miEditArmy_Click(object sender, EventArgs e)
   1.293 +		{
   1.294 +			Army army = treeView.SelectedNode.Tag as Army;
   1.295 +			EditArmy(army);
   1.296 +		}
   1.297 +
   1.298 +		private void EditArmy(Army army)
   1.299 +		{
   1.300 +			FrmEditArmy editForm = new FrmEditArmy(commandStack, army);
   1.301 +			editForm.ShowDialog(this.ParentForm);
   1.302  		}
   1.303  	}
   1.304  }
     2.1 --- a/FrmArmyTree.resx	Mon Aug 29 15:17:59 2011 +0100
     2.2 +++ b/FrmArmyTree.resx	Mon Aug 29 20:06:54 2011 +0100
     2.3 @@ -125,7 +125,7 @@
     2.4    </metadata>
     2.5    <data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
     2.6      <value>
     2.7 -        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
     2.8 +        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
     2.9          LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
    2.10          ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABO
    2.11          BwAAAk1TRnQBSQFMAgEBAgEAAQQBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/FrmEditArmy.Designer.cs	Mon Aug 29 20:06:54 2011 +0100
     3.3 @@ -0,0 +1,146 @@
     3.4 +´╗┐namespace IBBoard.WarFoundry.GUI.WinForms
     3.5 +{
     3.6 +	partial class FrmEditArmy
     3.7 +	{
     3.8 +		/// <summary>
     3.9 +		/// Required designer variable.
    3.10 +		/// </summary>
    3.11 +		private System.ComponentModel.IContainer components = null;
    3.12 +
    3.13 +		/// <summary>
    3.14 +		/// Clean up any resources being used.
    3.15 +		/// </summary>
    3.16 +		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    3.17 +		protected override void Dispose(bool disposing)
    3.18 +		{
    3.19 +			if (disposing && (components != null))
    3.20 +			{
    3.21 +				components.Dispose();
    3.22 +			}
    3.23 +			base.Dispose(disposing);
    3.24 +		}
    3.25 +
    3.26 +		#region Windows Form Designer generated code
    3.27 +
    3.28 +		/// <summary>
    3.29 +		/// Required method for Designer support - do not modify
    3.30 +		/// the contents of this method with the code editor.
    3.31 +		/// </summary>
    3.32 +		private void InitializeComponent()
    3.33 +		{
    3.34 +			this.bttnOkay = new IBBoard.Windows.Forms.IBBButton();
    3.35 +			this.armySize = new System.Windows.Forms.NumericUpDown();
    3.36 +			this.lblArmySize = new IBBoard.Windows.Forms.IBBLabel();
    3.37 +			this.txtArmyName = new System.Windows.Forms.TextBox();
    3.38 +			this.lblArmyName = new IBBoard.Windows.Forms.IBBLabel();
    3.39 +			this.bttnCancel = new IBBoard.Windows.Forms.IBBButton();
    3.40 +			((System.ComponentModel.ISupportInitialize)(this.armySize)).BeginInit();
    3.41 +			this.SuspendLayout();
    3.42 +			// 
    3.43 +			// bttnOkay
    3.44 +			// 
    3.45 +			this.bttnOkay.Location = new System.Drawing.Point(330, 76);
    3.46 +			this.bttnOkay.Name = "bttnOkay";
    3.47 +			this.bttnOkay.Size = new System.Drawing.Size(75, 23);
    3.48 +			this.bttnOkay.TabIndex = 13;
    3.49 +			this.bttnOkay.Text = "okay";
    3.50 +			this.bttnOkay.UseVisualStyleBackColor = true;
    3.51 +			this.bttnOkay.Click += new System.EventHandler(this.bttnOkay_Click);
    3.52 +			// 
    3.53 +			// armySize
    3.54 +			// 
    3.55 +			this.armySize.Increment = new decimal(new int[] {
    3.56 +            50,
    3.57 +            0,
    3.58 +            0,
    3.59 +            0});
    3.60 +			this.armySize.Location = new System.Drawing.Point(140, 38);
    3.61 +			this.armySize.Maximum = new decimal(new int[] {
    3.62 +            1000000,
    3.63 +            0,
    3.64 +            0,
    3.65 +            0});
    3.66 +			this.armySize.Name = "armySize";
    3.67 +			this.armySize.Size = new System.Drawing.Size(99, 20);
    3.68 +			this.armySize.TabIndex = 17;
    3.69 +			this.armySize.ThousandsSeparator = true;
    3.70 +			this.armySize.Value = new decimal(new int[] {
    3.71 +            2000,
    3.72 +            0,
    3.73 +            0,
    3.74 +            0});
    3.75 +			this.armySize.ValueChanged += new System.EventHandler(this.armySize_ValueChanged);
    3.76 +			this.armySize.KeyUp += new System.Windows.Forms.KeyEventHandler(this.armySize_KeyUp);
    3.77 +			// 
    3.78 +			// lblArmySize
    3.79 +			// 
    3.80 +			this.lblArmySize.Location = new System.Drawing.Point(12, 40);
    3.81 +			this.lblArmySize.Name = "lblArmySize";
    3.82 +			this.lblArmySize.Size = new System.Drawing.Size(122, 18);
    3.83 +			this.lblArmySize.TabIndex = 16;
    3.84 +			this.lblArmySize.Text = "army size";
    3.85 +			this.lblArmySize.TextAlign = System.Drawing.ContentAlignment.TopRight;
    3.86 +			// 
    3.87 +			// txtArmyName
    3.88 +			// 
    3.89 +			this.txtArmyName.Location = new System.Drawing.Point(140, 12);
    3.90 +			this.txtArmyName.Name = "txtArmyName";
    3.91 +			this.txtArmyName.Size = new System.Drawing.Size(265, 20);
    3.92 +			this.txtArmyName.TabIndex = 15;
    3.93 +			this.txtArmyName.TextChanged += new System.EventHandler(this.txtArmyName_TextChanged);
    3.94 +			// 
    3.95 +			// lblArmyName
    3.96 +			// 
    3.97 +			this.lblArmyName.Location = new System.Drawing.Point(12, 15);
    3.98 +			this.lblArmyName.Name = "lblArmyName";
    3.99 +			this.lblArmyName.Size = new System.Drawing.Size(122, 17);
   3.100 +			this.lblArmyName.TabIndex = 14;
   3.101 +			this.lblArmyName.Text = "army name";
   3.102 +			this.lblArmyName.TextAlign = System.Drawing.ContentAlignment.TopRight;
   3.103 +			// 
   3.104 +			// bttnCancel
   3.105 +			// 
   3.106 +			this.bttnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
   3.107 +			this.bttnCancel.Location = new System.Drawing.Point(13, 76);
   3.108 +			this.bttnCancel.Name = "bttnCancel";
   3.109 +			this.bttnCancel.Size = new System.Drawing.Size(75, 23);
   3.110 +			this.bttnCancel.TabIndex = 18;
   3.111 +			this.bttnCancel.Text = "cancel";
   3.112 +			this.bttnCancel.UseVisualStyleBackColor = true;
   3.113 +			this.bttnCancel.Click += new System.EventHandler(this.bttnCancel_Click);
   3.114 +			// 
   3.115 +			// FrmEditArmy
   3.116 +			// 
   3.117 +			this.AcceptButton = this.bttnOkay;
   3.118 +			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
   3.119 +			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
   3.120 +			this.CancelButton = this.bttnCancel;
   3.121 +			this.ClientSize = new System.Drawing.Size(417, 111);
   3.122 +			this.Controls.Add(this.bttnCancel);
   3.123 +			this.Controls.Add(this.armySize);
   3.124 +			this.Controls.Add(this.lblArmySize);
   3.125 +			this.Controls.Add(this.txtArmyName);
   3.126 +			this.Controls.Add(this.lblArmyName);
   3.127 +			this.Controls.Add(this.bttnOkay);
   3.128 +			this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
   3.129 +			this.Name = "FrmEditArmy";
   3.130 +			this.ShowIcon = false;
   3.131 +			this.ShowInTaskbar = false;
   3.132 +			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
   3.133 +			this.Text = "edit army";
   3.134 +			((System.ComponentModel.ISupportInitialize)(this.armySize)).EndInit();
   3.135 +			this.ResumeLayout(false);
   3.136 +			this.PerformLayout();
   3.137 +
   3.138 +		}
   3.139 +
   3.140 +		#endregion
   3.141 +
   3.142 +		private Windows.Forms.IBBButton bttnOkay;
   3.143 +		private System.Windows.Forms.NumericUpDown armySize;
   3.144 +		private Windows.Forms.IBBLabel lblArmySize;
   3.145 +		private System.Windows.Forms.TextBox txtArmyName;
   3.146 +		private Windows.Forms.IBBLabel lblArmyName;
   3.147 +		private Windows.Forms.IBBButton bttnCancel;
   3.148 +	}
   3.149 +}
   3.150 \ No newline at end of file
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/FrmEditArmy.cs	Mon Aug 29 20:06:54 2011 +0100
     4.3 @@ -0,0 +1,64 @@
     4.4 +´╗┐using System;
     4.5 +using System.Collections.Generic;
     4.6 +using System.ComponentModel;
     4.7 +using System.Data;
     4.8 +using System.Drawing;
     4.9 +using System.Text;
    4.10 +using System.Windows.Forms;
    4.11 +using IBBoard.Commands;
    4.12 +using IBBoard.WarFoundry.API.Commands;
    4.13 +using IBBoard.WarFoundry.API.Objects;
    4.14 +
    4.15 +namespace IBBoard.WarFoundry.GUI.WinForms
    4.16 +{
    4.17 +	public partial class FrmEditArmy : Form
    4.18 +	{
    4.19 +		private Army army;
    4.20 +		private CommandStack stack;
    4.21 +
    4.22 +		public FrmEditArmy(CommandStack cmdStack, Army toEdit)
    4.23 +		{
    4.24 +			army = toEdit;
    4.25 +			stack = cmdStack;
    4.26 +			InitializeComponent();
    4.27 +			txtArmyName.Text = army.Name;
    4.28 +			armySize.Value = army.MaxPoints;
    4.29 +		}
    4.30 +
    4.31 +		private void bttnOkay_Click(object sender, EventArgs e)
    4.32 +		{
    4.33 +			EditArmyCommand command = new EditArmyCommand(army);
    4.34 +			command.NewName = txtArmyName.Text;
    4.35 +			command.NewSize = (int)armySize.Value;
    4.36 +			stack.Execute(command);
    4.37 +			DialogResult = DialogResult.OK;
    4.38 +			Close();
    4.39 +		}
    4.40 +
    4.41 +		private void bttnCancel_Click(object sender, EventArgs e)
    4.42 +		{
    4.43 +			Close();
    4.44 +		}
    4.45 +
    4.46 +		private void armySize_ValueChanged(object sender, EventArgs e)
    4.47 +		{
    4.48 +			SetOkayEnabled();
    4.49 +		}
    4.50 +
    4.51 +		private void SetOkayEnabled()
    4.52 +		{
    4.53 +			string trimmedName = txtArmyName.Text.Trim();
    4.54 +			bttnOkay.Enabled = ((army.MaxPoints != armySize.Value || army.Name != trimmedName) && trimmedName != "");
    4.55 +		}
    4.56 +
    4.57 +		private void txtArmyName_TextChanged(object sender, EventArgs e)
    4.58 +		{
    4.59 +			SetOkayEnabled();
    4.60 +		}
    4.61 +
    4.62 +		private void armySize_KeyUp(object sender, KeyEventArgs e)
    4.63 +		{
    4.64 +			SetOkayEnabled();
    4.65 +		}
    4.66 +	}
    4.67 +}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/FrmEditArmy.resx	Mon Aug 29 20:06:54 2011 +0100
     5.3 @@ -0,0 +1,120 @@
     5.4 +´╗┐<?xml version="1.0" encoding="utf-8"?>
     5.5 +<root>
     5.6 +  <!-- 
     5.7 +    Microsoft ResX Schema 
     5.8 +    
     5.9 +    Version 2.0
    5.10 +    
    5.11 +    The primary goals of this format is to allow a simple XML format 
    5.12 +    that is mostly human readable. The generation and parsing of the 
    5.13 +    various data types are done through the TypeConverter classes 
    5.14 +    associated with the data types.
    5.15 +    
    5.16 +    Example:
    5.17 +    
    5.18 +    ... ado.net/XML headers & schema ...
    5.19 +    <resheader name="resmimetype">text/microsoft-resx</resheader>
    5.20 +    <resheader name="version">2.0</resheader>
    5.21 +    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    5.22 +    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    5.23 +    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    5.24 +    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    5.25 +    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    5.26 +        <value>[base64 mime encoded serialized .NET Framework object]</value>
    5.27 +    </data>
    5.28 +    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    5.29 +        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    5.30 +        <comment>This is a comment</comment>
    5.31 +    </data>
    5.32 +                
    5.33 +    There are any number of "resheader" rows that contain simple 
    5.34 +    name/value pairs.
    5.35 +    
    5.36 +    Each data row contains a name, and value. The row also contains a 
    5.37 +    type or mimetype. Type corresponds to a .NET class that support 
    5.38 +    text/value conversion through the TypeConverter architecture. 
    5.39 +    Classes that don't support this are serialized and stored with the 
    5.40 +    mimetype set.
    5.41 +    
    5.42 +    The mimetype is used for serialized objects, and tells the 
    5.43 +    ResXResourceReader how to depersist the object. This is currently not 
    5.44 +    extensible. For a given mimetype the value must be set accordingly:
    5.45 +    
    5.46 +    Note - application/x-microsoft.net.object.binary.base64 is the format 
    5.47 +    that the ResXResourceWriter will generate, however the reader can 
    5.48 +    read any of the formats listed below.
    5.49 +    
    5.50 +    mimetype: application/x-microsoft.net.object.binary.base64
    5.51 +    value   : The object must be serialized with 
    5.52 +            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    5.53 +            : and then encoded with base64 encoding.
    5.54 +    
    5.55 +    mimetype: application/x-microsoft.net.object.soap.base64
    5.56 +    value   : The object must be serialized with 
    5.57 +            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    5.58 +            : and then encoded with base64 encoding.
    5.59 +
    5.60 +    mimetype: application/x-microsoft.net.object.bytearray.base64
    5.61 +    value   : The object must be serialized into a byte array 
    5.62 +            : using a System.ComponentModel.TypeConverter
    5.63 +            : and then encoded with base64 encoding.
    5.64 +    -->
    5.65 +  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    5.66 +    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    5.67 +    <xsd:element name="root" msdata:IsDataSet="true">
    5.68 +      <xsd:complexType>
    5.69 +        <xsd:choice maxOccurs="unbounded">
    5.70 +          <xsd:element name="metadata">
    5.71 +            <xsd:complexType>
    5.72 +              <xsd:sequence>
    5.73 +                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    5.74 +              </xsd:sequence>
    5.75 +              <xsd:attribute name="name" use="required" type="xsd:string" />
    5.76 +              <xsd:attribute name="type" type="xsd:string" />
    5.77 +              <xsd:attribute name="mimetype" type="xsd:string" />
    5.78 +              <xsd:attribute ref="xml:space" />
    5.79 +            </xsd:complexType>
    5.80 +          </xsd:element>
    5.81 +          <xsd:element name="assembly">
    5.82 +            <xsd:complexType>
    5.83 +              <xsd:attribute name="alias" type="xsd:string" />
    5.84 +              <xsd:attribute name="name" type="xsd:string" />
    5.85 +            </xsd:complexType>
    5.86 +          </xsd:element>
    5.87 +          <xsd:element name="data">
    5.88 +            <xsd:complexType>
    5.89 +              <xsd:sequence>
    5.90 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    5.91 +                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    5.92 +              </xsd:sequence>
    5.93 +              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    5.94 +              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    5.95 +              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    5.96 +              <xsd:attribute ref="xml:space" />
    5.97 +            </xsd:complexType>
    5.98 +          </xsd:element>
    5.99 +          <xsd:element name="resheader">
   5.100 +            <xsd:complexType>
   5.101 +              <xsd:sequence>
   5.102 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   5.103 +              </xsd:sequence>
   5.104 +              <xsd:attribute name="name" type="xsd:string" use="required" />
   5.105 +            </xsd:complexType>
   5.106 +          </xsd:element>
   5.107 +        </xsd:choice>
   5.108 +      </xsd:complexType>
   5.109 +    </xsd:element>
   5.110 +  </xsd:schema>
   5.111 +  <resheader name="resmimetype">
   5.112 +    <value>text/microsoft-resx</value>
   5.113 +  </resheader>
   5.114 +  <resheader name="version">
   5.115 +    <value>2.0</value>
   5.116 +  </resheader>
   5.117 +  <resheader name="reader">
   5.118 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   5.119 +  </resheader>
   5.120 +  <resheader name="writer">
   5.121 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   5.122 +  </resheader>
   5.123 +</root>
   5.124 \ No newline at end of file
     6.1 --- a/FrmMain.cs	Mon Aug 29 15:17:59 2011 +0100
     6.2 +++ b/FrmMain.cs	Mon Aug 29 20:06:54 2011 +0100
     6.3 @@ -94,6 +94,8 @@
     6.4  		private ToolStripSeparator toolStripSeparator4;
     6.5  		private IBBToolStripMenuItem miPreferences;
     6.6  		private IBBToolStripMenuItem miExportArmyAsBasicXml;
     6.7 +		private IBBToolStripMenuItem miEditArmy;
     6.8 +		private ToolStripSeparator toolStripSeparator5;
     6.9  		private IBBToolStripMenuItem miAbout;
    6.10  
    6.11  
    6.12 @@ -243,73 +245,203 @@
    6.13  		/// </summary>
    6.14  		private void InitializeComponent()
    6.15  		{
    6.16 -            this.components = new System.ComponentModel.Container();
    6.17 -            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
    6.18 -            this.undoMenu = new System.Windows.Forms.ContextMenu();
    6.19 -            this.redoMenu = new System.Windows.Forms.ContextMenu();
    6.20 -            this.mainMenu = new System.Windows.Forms.MainMenu(this.components);
    6.21 -            this.openArmyDialog = new System.Windows.Forms.OpenFileDialog();
    6.22 -            this.saveArmyDialog = new System.Windows.Forms.SaveFileDialog();
    6.23 -            this.menuStrip = new System.Windows.Forms.MenuStrip();
    6.24 -            this.menuFile = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.25 -            this.miNewArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.26 -            this.miOpenArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.27 -            this.miSaveArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.28 -            this.miSaveArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.29 -            this.miExportArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.30 -            this.miExportArmyAsBasicHTML = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.31 -            this.miExportArmyAsBasicXml = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.32 -            this.miCloseArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.33 -            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
    6.34 -            this.miReloadFiles = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.35 -            this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
    6.36 -            this.miExit = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.37 -            this.menuEdit = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.38 -            this.miUndo = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.39 -            this.miRedo = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.40 -            this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
    6.41 -            this.miPreferences = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.42 -            this.menuHelp = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.43 -            this.miAbout = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.44 -            this.mainToolStrip = new System.Windows.Forms.ToolStrip();
    6.45 -            this.bttnNewArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.46 -            this.bttnOpenArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.47 -            this.bttnSaveArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.48 -            this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
    6.49 -            this.bttnUndo = new IBBoard.Windows.Forms.IBBToolStripSplitButton();
    6.50 -            this.bttnRedo = new IBBoard.Windows.Forms.IBBToolStripSplitButton();
    6.51 -            this.catToolStrip = new System.Windows.Forms.ToolStrip();
    6.52 -            this.statusBar = new IBBoard.Windows.Forms.ColorableStatusBar();
    6.53 -            this.sbMainPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.54 -            this.sbErrorPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.55 -            this.sbPointsPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.56 -            this.toolStripPanel = new System.Windows.Forms.ToolStripPanel();
    6.57 -            this.menuStrip.SuspendLayout();
    6.58 -            this.mainToolStrip.SuspendLayout();
    6.59 -            ((System.ComponentModel.ISupportInitialize)(this.sbMainPanel)).BeginInit();
    6.60 -            ((System.ComponentModel.ISupportInitialize)(this.sbErrorPanel)).BeginInit();
    6.61 -            ((System.ComponentModel.ISupportInitialize)(this.sbPointsPanel)).BeginInit();
    6.62 -            this.SuspendLayout();
    6.63 -            // 
    6.64 -            // saveArmyDialog
    6.65 -            // 
    6.66 -            this.saveArmyDialog.Title = "Translatable:saveArmyDialog";
    6.67 -            // 
    6.68 -            // menuStrip
    6.69 -            // 
    6.70 -            this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
    6.71 +			this.components = new System.ComponentModel.Container();
    6.72 +			System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
    6.73 +			this.undoMenu = new System.Windows.Forms.ContextMenu();
    6.74 +			this.redoMenu = new System.Windows.Forms.ContextMenu();
    6.75 +			this.mainMenu = new System.Windows.Forms.MainMenu(this.components);
    6.76 +			this.openArmyDialog = new System.Windows.Forms.OpenFileDialog();
    6.77 +			this.saveArmyDialog = new System.Windows.Forms.SaveFileDialog();
    6.78 +			this.menuStrip = new System.Windows.Forms.MenuStrip();
    6.79 +			this.mainToolStrip = new System.Windows.Forms.ToolStrip();
    6.80 +			this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
    6.81 +			this.catToolStrip = new System.Windows.Forms.ToolStrip();
    6.82 +			this.toolStripPanel = new System.Windows.Forms.ToolStripPanel();
    6.83 +			this.bttnNewArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.84 +			this.bttnOpenArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.85 +			this.bttnSaveArmy = new IBBoard.Windows.Forms.IBBToolStripButton();
    6.86 +			this.bttnUndo = new IBBoard.Windows.Forms.IBBToolStripSplitButton();
    6.87 +			this.bttnRedo = new IBBoard.Windows.Forms.IBBToolStripSplitButton();
    6.88 +			this.statusBar = new IBBoard.Windows.Forms.ColorableStatusBar();
    6.89 +			this.sbMainPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.90 +			this.sbErrorPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.91 +			this.sbPointsPanel = new IBBoard.Windows.Forms.ColorableStatusBarPanel();
    6.92 +			this.menuFile = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.93 +			this.miNewArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.94 +			this.miOpenArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.95 +			this.miSaveArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.96 +			this.miSaveArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.97 +			this.miExportArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.98 +			this.miExportArmyAsBasicHTML = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    6.99 +			this.miExportArmyAsBasicXml = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.100 +			this.miCloseArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.101 +			this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
   6.102 +			this.miReloadFiles = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.103 +			this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
   6.104 +			this.miExit = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.105 +			this.menuEdit = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.106 +			this.miUndo = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.107 +			this.miRedo = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.108 +			this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
   6.109 +			this.miEditArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.110 +			this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
   6.111 +			this.miPreferences = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.112 +			this.menuHelp = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.113 +			this.miAbout = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
   6.114 +			this.menuStrip.SuspendLayout();
   6.115 +			this.mainToolStrip.SuspendLayout();
   6.116 +			((System.ComponentModel.ISupportInitialize)(this.sbMainPanel)).BeginInit();
   6.117 +			((System.ComponentModel.ISupportInitialize)(this.sbErrorPanel)).BeginInit();
   6.118 +			((System.ComponentModel.ISupportInitialize)(this.sbPointsPanel)).BeginInit();
   6.119 +			this.SuspendLayout();
   6.120 +			// 
   6.121 +			// saveArmyDialog
   6.122 +			// 
   6.123 +			this.saveArmyDialog.Title = "Translatable:saveArmyDialog";
   6.124 +			// 
   6.125 +			// menuStrip
   6.126 +			// 
   6.127 +			this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.128              this.menuFile,
   6.129              this.menuEdit,
   6.130              this.menuHelp});
   6.131 -            this.menuStrip.Location = new System.Drawing.Point(0, 0);
   6.132 -            this.menuStrip.Name = "menuStrip";
   6.133 -            this.menuStrip.Size = new System.Drawing.Size(790, 24);
   6.134 -            this.menuStrip.TabIndex = 6;
   6.135 -            this.menuStrip.Text = "menuStrip1";
   6.136 -            // 
   6.137 -            // menuFile
   6.138 -            // 
   6.139 -            this.menuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.140 +			this.menuStrip.Location = new System.Drawing.Point(0, 0);
   6.141 +			this.menuStrip.Name = "menuStrip";
   6.142 +			this.menuStrip.Size = new System.Drawing.Size(790, 24);
   6.143 +			this.menuStrip.TabIndex = 6;
   6.144 +			this.menuStrip.Text = "menuStrip1";
   6.145 +			// 
   6.146 +			// mainToolStrip
   6.147 +			// 
   6.148 +			this.mainToolStrip.Dock = System.Windows.Forms.DockStyle.None;
   6.149 +			this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.150 +            this.bttnNewArmy,
   6.151 +            this.bttnOpenArmy,
   6.152 +            this.bttnSaveArmy,
   6.153 +            this.toolStripSeparator3,
   6.154 +            this.bttnUndo,
   6.155 +            this.bttnRedo});
   6.156 +			this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
   6.157 +			this.mainToolStrip.Name = "mainToolStrip";
   6.158 +			this.mainToolStrip.Size = new System.Drawing.Size(151, 25);
   6.159 +			this.mainToolStrip.TabIndex = 8;
   6.160 +			// 
   6.161 +			// toolStripSeparator3
   6.162 +			// 
   6.163 +			this.toolStripSeparator3.Name = "toolStripSeparator3";
   6.164 +			this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
   6.165 +			// 
   6.166 +			// catToolStrip
   6.167 +			// 
   6.168 +			this.catToolStrip.Dock = System.Windows.Forms.DockStyle.None;
   6.169 +			this.catToolStrip.Location = new System.Drawing.Point(161, 24);
   6.170 +			this.catToolStrip.Name = "catToolStrip";
   6.171 +			this.catToolStrip.Size = new System.Drawing.Size(111, 25);
   6.172 +			this.catToolStrip.TabIndex = 9;
   6.173 +			this.catToolStrip.Visible = false;
   6.174 +			// 
   6.175 +			// toolStripPanel
   6.176 +			// 
   6.177 +			this.toolStripPanel.Dock = System.Windows.Forms.DockStyle.Top;
   6.178 +			this.toolStripPanel.Location = new System.Drawing.Point(0, 24);
   6.179 +			this.toolStripPanel.Name = "toolStripPanel";
   6.180 +			this.toolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
   6.181 +			this.toolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
   6.182 +			this.toolStripPanel.Size = new System.Drawing.Size(790, 0);
   6.183 +			// 
   6.184 +			// bttnNewArmy
   6.185 +			// 
   6.186 +			this.bttnNewArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.187 +			this.bttnNewArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_new;
   6.188 +			this.bttnNewArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.189 +			this.bttnNewArmy.Name = "bttnNewArmy";
   6.190 +			this.bttnNewArmy.Size = new System.Drawing.Size(23, 22);
   6.191 +			this.bttnNewArmy.Text = "new army";
   6.192 +			this.bttnNewArmy.Click += new System.EventHandler(this.miNewArmy_Click);
   6.193 +			// 
   6.194 +			// bttnOpenArmy
   6.195 +			// 
   6.196 +			this.bttnOpenArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.197 +			this.bttnOpenArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_open;
   6.198 +			this.bttnOpenArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.199 +			this.bttnOpenArmy.Name = "bttnOpenArmy";
   6.200 +			this.bttnOpenArmy.Size = new System.Drawing.Size(23, 22);
   6.201 +			this.bttnOpenArmy.Text = "open army";
   6.202 +			this.bttnOpenArmy.Click += new System.EventHandler(this.miOpenArmy_Click);
   6.203 +			// 
   6.204 +			// bttnSaveArmy
   6.205 +			// 
   6.206 +			this.bttnSaveArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.207 +			this.bttnSaveArmy.Enabled = false;
   6.208 +			this.bttnSaveArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_save;
   6.209 +			this.bttnSaveArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.210 +			this.bttnSaveArmy.Name = "bttnSaveArmy";
   6.211 +			this.bttnSaveArmy.Size = new System.Drawing.Size(23, 22);
   6.212 +			this.bttnSaveArmy.Text = "save army";
   6.213 +			this.bttnSaveArmy.Click += new System.EventHandler(this.miSaveArmy_Click);
   6.214 +			// 
   6.215 +			// bttnUndo
   6.216 +			// 
   6.217 +			this.bttnUndo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.218 +			this.bttnUndo.Enabled = false;
   6.219 +			this.bttnUndo.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.edit_undo;
   6.220 +			this.bttnUndo.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.221 +			this.bttnUndo.Name = "bttnUndo";
   6.222 +			this.bttnUndo.Size = new System.Drawing.Size(32, 22);
   6.223 +			this.bttnUndo.Text = "undo";
   6.224 +			this.bttnUndo.ButtonClick += new System.EventHandler(this.miUndo_Click);
   6.225 +			// 
   6.226 +			// bttnRedo
   6.227 +			// 
   6.228 +			this.bttnRedo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.229 +			this.bttnRedo.Enabled = false;
   6.230 +			this.bttnRedo.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.edit_redo;
   6.231 +			this.bttnRedo.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.232 +			this.bttnRedo.Name = "bttnRedo";
   6.233 +			this.bttnRedo.Size = new System.Drawing.Size(32, 22);
   6.234 +			this.bttnRedo.Text = "redo";
   6.235 +			this.bttnRedo.ButtonClick += new System.EventHandler(this.miRedo_Click);
   6.236 +			// 
   6.237 +			// statusBar
   6.238 +			// 
   6.239 +			this.statusBar.Location = new System.Drawing.Point(0, 586);
   6.240 +			this.statusBar.Name = "statusBar";
   6.241 +			this.statusBar.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
   6.242 +            this.sbMainPanel,
   6.243 +            this.sbErrorPanel,
   6.244 +            this.sbPointsPanel});
   6.245 +			this.statusBar.ShowPanels = true;
   6.246 +			this.statusBar.Size = new System.Drawing.Size(790, 22);
   6.247 +			this.statusBar.TabIndex = 1;
   6.248 +			this.statusBar.DrawItem += new System.Windows.Forms.StatusBarDrawItemEventHandler(this.statusBar_DrawItem);
   6.249 +			this.statusBar.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler(this.statusBar_PanelClick);
   6.250 +			// 
   6.251 +			// sbMainPanel
   6.252 +			// 
   6.253 +			this.sbMainPanel.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
   6.254 +			this.sbMainPanel.Color = System.Drawing.SystemColors.WindowText;
   6.255 +			this.sbMainPanel.Name = "sbMainPanel";
   6.256 +			this.sbMainPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.257 +			this.sbMainPanel.Width = 473;
   6.258 +			// 
   6.259 +			// sbErrorPanel
   6.260 +			// 
   6.261 +			this.sbErrorPanel.Color = System.Drawing.SystemColors.WindowText;
   6.262 +			this.sbErrorPanel.Name = "sbErrorPanel";
   6.263 +			this.sbErrorPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.264 +			this.sbErrorPanel.Width = 150;
   6.265 +			// 
   6.266 +			// sbPointsPanel
   6.267 +			// 
   6.268 +			this.sbPointsPanel.Color = System.Drawing.SystemColors.WindowText;
   6.269 +			this.sbPointsPanel.Name = "sbPointsPanel";
   6.270 +			this.sbPointsPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.271 +			this.sbPointsPanel.ToolTipText = "current points total";
   6.272 +			this.sbPointsPanel.Width = 150;
   6.273 +			// 
   6.274 +			// menuFile
   6.275 +			// 
   6.276 +			this.menuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.277              this.miNewArmy,
   6.278              this.miOpenArmy,
   6.279              this.miSaveArmy,
   6.280 @@ -320,303 +452,189 @@
   6.281              this.miReloadFiles,
   6.282              this.toolStripSeparator2,
   6.283              this.miExit});
   6.284 -            this.menuFile.Name = "menuFile";
   6.285 -            this.menuFile.Size = new System.Drawing.Size(35, 20);
   6.286 -            this.menuFile.Text = "&file";
   6.287 -            // 
   6.288 -            // miNewArmy
   6.289 -            // 
   6.290 -            this.miNewArmy.Name = "miNewArmy";
   6.291 -            this.miNewArmy.Size = new System.Drawing.Size(160, 22);
   6.292 -            this.miNewArmy.Text = "&new army";
   6.293 -            this.miNewArmy.Click += new System.EventHandler(this.miNewArmy_Click);
   6.294 -            // 
   6.295 -            // miOpenArmy
   6.296 -            // 
   6.297 -            this.miOpenArmy.Name = "miOpenArmy";
   6.298 -            this.miOpenArmy.Size = new System.Drawing.Size(160, 22);
   6.299 -            this.miOpenArmy.Text = "&open army";
   6.300 -            this.miOpenArmy.Click += new System.EventHandler(this.miOpenArmy_Click);
   6.301 -            // 
   6.302 -            // miSaveArmy
   6.303 -            // 
   6.304 -            this.miSaveArmy.Enabled = false;
   6.305 -            this.miSaveArmy.Name = "miSaveArmy";
   6.306 -            this.miSaveArmy.Size = new System.Drawing.Size(160, 22);
   6.307 -            this.miSaveArmy.Text = "&save army";
   6.308 -            this.miSaveArmy.Click += new System.EventHandler(this.miSaveArmy_Click);
   6.309 -            // 
   6.310 -            // miSaveArmyAs
   6.311 -            // 
   6.312 -            this.miSaveArmyAs.Enabled = false;
   6.313 -            this.miSaveArmyAs.Name = "miSaveArmyAs";
   6.314 -            this.miSaveArmyAs.Size = new System.Drawing.Size(160, 22);
   6.315 -            this.miSaveArmyAs.Text = "save army &as...";
   6.316 -            this.miSaveArmyAs.Click += new System.EventHandler(this.miSaveArmyAs_Click);
   6.317 -            // 
   6.318 -            // miExportArmyAs
   6.319 -            // 
   6.320 -            this.miExportArmyAs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.321 +			this.menuFile.Name = "menuFile";
   6.322 +			this.menuFile.Size = new System.Drawing.Size(33, 20);
   6.323 +			this.menuFile.Text = "&file";
   6.324 +			// 
   6.325 +			// miNewArmy
   6.326 +			// 
   6.327 +			this.miNewArmy.Name = "miNewArmy";
   6.328 +			this.miNewArmy.Size = new System.Drawing.Size(170, 22);
   6.329 +			this.miNewArmy.Text = "&new army";
   6.330 +			this.miNewArmy.Click += new System.EventHandler(this.miNewArmy_Click);
   6.331 +			// 
   6.332 +			// miOpenArmy
   6.333 +			// 
   6.334 +			this.miOpenArmy.Name = "miOpenArmy";
   6.335 +			this.miOpenArmy.Size = new System.Drawing.Size(170, 22);
   6.336 +			this.miOpenArmy.Text = "&open army";
   6.337 +			this.miOpenArmy.Click += new System.EventHandler(this.miOpenArmy_Click);
   6.338 +			// 
   6.339 +			// miSaveArmy
   6.340 +			// 
   6.341 +			this.miSaveArmy.Enabled = false;
   6.342 +			this.miSaveArmy.Name = "miSaveArmy";
   6.343 +			this.miSaveArmy.Size = new System.Drawing.Size(170, 22);
   6.344 +			this.miSaveArmy.Text = "&save army";
   6.345 +			this.miSaveArmy.Click += new System.EventHandler(this.miSaveArmy_Click);
   6.346 +			// 
   6.347 +			// miSaveArmyAs
   6.348 +			// 
   6.349 +			this.miSaveArmyAs.Enabled = false;
   6.350 +			this.miSaveArmyAs.Name = "miSaveArmyAs";
   6.351 +			this.miSaveArmyAs.Size = new System.Drawing.Size(170, 22);
   6.352 +			this.miSaveArmyAs.Text = "save army &as...";
   6.353 +			this.miSaveArmyAs.Click += new System.EventHandler(this.miSaveArmyAs_Click);
   6.354 +			// 
   6.355 +			// miExportArmyAs
   6.356 +			// 
   6.357 +			this.miExportArmyAs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.358              this.miExportArmyAsBasicHTML,
   6.359              this.miExportArmyAsBasicXml});
   6.360 -            this.miExportArmyAs.Enabled = false;
   6.361 -            this.miExportArmyAs.Name = "miExportArmyAs";
   6.362 -            this.miExportArmyAs.Size = new System.Drawing.Size(160, 22);
   6.363 -            this.miExportArmyAs.Text = "export army as...";
   6.364 -            // 
   6.365 -            // miExportArmyAsBasicHTML
   6.366 -            // 
   6.367 -            this.miExportArmyAsBasicHTML.Name = "miExportArmyAsBasicHTML";
   6.368 -            this.miExportArmyAsBasicHTML.Size = new System.Drawing.Size(152, 22);
   6.369 -            this.miExportArmyAsBasicHTML.Text = "&basic html";
   6.370 -            this.miExportArmyAsBasicHTML.Click += new System.EventHandler(this.miExportArmyAsBasicHTML_Click);
   6.371 -            // 
   6.372 -            // miExportArmyAsBasicXml
   6.373 -            // 
   6.374 -            this.miExportArmyAsBasicXml.Name = "miExportArmyAsBasicXml";
   6.375 -            this.miExportArmyAsBasicXml.Size = new System.Drawing.Size(152, 22);
   6.376 -            this.miExportArmyAsBasicXml.Text = "basic xml";
   6.377 -            this.miExportArmyAsBasicXml.Click += new System.EventHandler(this.miExportArmyAsBasicXml_Click);
   6.378 -            // 
   6.379 -            // miCloseArmy
   6.380 -            // 
   6.381 -            this.miCloseArmy.Enabled = false;
   6.382 -            this.miCloseArmy.Name = "miCloseArmy";
   6.383 -            this.miCloseArmy.Size = new System.Drawing.Size(160, 22);
   6.384 -            this.miCloseArmy.Text = "&close army";
   6.385 -            this.miCloseArmy.Click += new System.EventHandler(this.miCloseArmy_Click);
   6.386 -            // 
   6.387 -            // toolStripSeparator1
   6.388 -            // 
   6.389 -            this.toolStripSeparator1.Name = "toolStripSeparator1";
   6.390 -            this.toolStripSeparator1.Size = new System.Drawing.Size(157, 6);
   6.391 -            // 
   6.392 -            // miReloadFiles
   6.393 -            // 
   6.394 -            this.miReloadFiles.Name = "miReloadFiles";
   6.395 -            this.miReloadFiles.Size = new System.Drawing.Size(160, 22);
   6.396 -            this.miReloadFiles.Text = "&reload files";
   6.397 -            this.miReloadFiles.Click += new System.EventHandler(this.miReloadFiles_Click);
   6.398 -            // 
   6.399 -            // toolStripSeparator2
   6.400 -            // 
   6.401 -            this.toolStripSeparator2.Name = "toolStripSeparator2";
   6.402 -            this.toolStripSeparator2.Size = new System.Drawing.Size(157, 6);
   6.403 -            // 
   6.404 -            // miExit
   6.405 -            // 
   6.406 -            this.miExit.Name = "miExit";
   6.407 -            this.miExit.Size = new System.Drawing.Size(160, 22);
   6.408 -            this.miExit.Text = "e&xit";
   6.409 -            this.miExit.Click += new System.EventHandler(this.miExit_Click);
   6.410 -            // 
   6.411 -            // menuEdit
   6.412 -            // 
   6.413 -            this.menuEdit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.414 +			this.miExportArmyAs.Enabled = false;
   6.415 +			this.miExportArmyAs.Name = "miExportArmyAs";
   6.416 +			this.miExportArmyAs.Size = new System.Drawing.Size(170, 22);
   6.417 +			this.miExportArmyAs.Text = "export army as...";
   6.418 +			// 
   6.419 +			// miExportArmyAsBasicHTML
   6.420 +			// 
   6.421 +			this.miExportArmyAsBasicHTML.Name = "miExportArmyAsBasicHTML";
   6.422 +			this.miExportArmyAsBasicHTML.Size = new System.Drawing.Size(132, 22);
   6.423 +			this.miExportArmyAsBasicHTML.Text = "&basic html";
   6.424 +			this.miExportArmyAsBasicHTML.Click += new System.EventHandler(this.miExportArmyAsBasicHTML_Click);
   6.425 +			// 
   6.426 +			// miExportArmyAsBasicXml
   6.427 +			// 
   6.428 +			this.miExportArmyAsBasicXml.Name = "miExportArmyAsBasicXml";
   6.429 +			this.miExportArmyAsBasicXml.Size = new System.Drawing.Size(132, 22);
   6.430 +			this.miExportArmyAsBasicXml.Text = "basic xml";
   6.431 +			this.miExportArmyAsBasicXml.Click += new System.EventHandler(this.miExportArmyAsBasicXml_Click);
   6.432 +			// 
   6.433 +			// miCloseArmy
   6.434 +			// 
   6.435 +			this.miCloseArmy.Enabled = false;
   6.436 +			this.miCloseArmy.Name = "miCloseArmy";
   6.437 +			this.miCloseArmy.Size = new System.Drawing.Size(170, 22);
   6.438 +			this.miCloseArmy.Text = "&close army";
   6.439 +			this.miCloseArmy.Click += new System.EventHandler(this.miCloseArmy_Click);
   6.440 +			// 
   6.441 +			// toolStripSeparator1
   6.442 +			// 
   6.443 +			this.toolStripSeparator1.Name = "toolStripSeparator1";
   6.444 +			this.toolStripSeparator1.Size = new System.Drawing.Size(167, 6);
   6.445 +			// 
   6.446 +			// miReloadFiles
   6.447 +			// 
   6.448 +			this.miReloadFiles.Name = "miReloadFiles";
   6.449 +			this.miReloadFiles.Size = new System.Drawing.Size(170, 22);
   6.450 +			this.miReloadFiles.Text = "&reload files";
   6.451 +			this.miReloadFiles.Click += new System.EventHandler(this.miReloadFiles_Click);
   6.452 +			// 
   6.453 +			// toolStripSeparator2
   6.454 +			// 
   6.455 +			this.toolStripSeparator2.Name = "toolStripSeparator2";
   6.456 +			this.toolStripSeparator2.Size = new System.Drawing.Size(167, 6);
   6.457 +			// 
   6.458 +			// miExit
   6.459 +			// 
   6.460 +			this.miExit.Name = "miExit";
   6.461 +			this.miExit.Size = new System.Drawing.Size(170, 22);
   6.462 +			this.miExit.Text = "e&xit";
   6.463 +			this.miExit.Click += new System.EventHandler(this.miExit_Click);
   6.464 +			// 
   6.465 +			// menuEdit
   6.466 +			// 
   6.467 +			this.menuEdit.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.468              this.miUndo,
   6.469              this.miRedo,
   6.470              this.toolStripSeparator4,
   6.471 +            this.miEditArmy,
   6.472 +            this.toolStripSeparator5,
   6.473              this.miPreferences});
   6.474 -            this.menuEdit.Name = "menuEdit";
   6.475 -            this.menuEdit.Size = new System.Drawing.Size(39, 20);
   6.476 -            this.menuEdit.Text = "&edit";
   6.477 -            // 
   6.478 -            // miUndo
   6.479 -            // 
   6.480 -            this.miUndo.Enabled = false;
   6.481 -            this.miUndo.Name = "miUndo";
   6.482 -            this.miUndo.Size = new System.Drawing.Size(135, 22);
   6.483 -            this.miUndo.Text = "&undo";
   6.484 -            this.miUndo.Click += new System.EventHandler(this.miUndo_Click);
   6.485 -            // 
   6.486 -            // miRedo
   6.487 -            // 
   6.488 -            this.miRedo.Enabled = false;
   6.489 -            this.miRedo.Name = "miRedo";
   6.490 -            this.miRedo.Size = new System.Drawing.Size(135, 22);
   6.491 -            this.miRedo.Text = "&redo";
   6.492 -            this.miRedo.Click += new System.EventHandler(this.miRedo_Click);
   6.493 -            // 
   6.494 -            // toolStripSeparator4
   6.495 -            // 
   6.496 -            this.toolStripSeparator4.Name = "toolStripSeparator4";
   6.497 -            this.toolStripSeparator4.Size = new System.Drawing.Size(132, 6);
   6.498 -            // 
   6.499 -            // miPreferences
   6.500 -            // 
   6.501 -            this.miPreferences.Name = "miPreferences";
   6.502 -            this.miPreferences.Size = new System.Drawing.Size(135, 22);
   6.503 -            this.miPreferences.Text = "&preferences";
   6.504 -            this.miPreferences.Click += new System.EventHandler(this.miPreferences_Click);
   6.505 -            // 
   6.506 -            // menuHelp
   6.507 -            // 
   6.508 -            this.menuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.509 +			this.menuEdit.Name = "menuEdit";
   6.510 +			this.menuEdit.Size = new System.Drawing.Size(37, 20);
   6.511 +			this.menuEdit.Text = "&edit";
   6.512 +			// 
   6.513 +			// miUndo
   6.514 +			// 
   6.515 +			this.miUndo.Enabled = false;
   6.516 +			this.miUndo.Name = "miUndo";
   6.517 +			this.miUndo.Size = new System.Drawing.Size(152, 22);
   6.518 +			this.miUndo.Text = "&undo";
   6.519 +			this.miUndo.Click += new System.EventHandler(this.miUndo_Click);
   6.520 +			// 
   6.521 +			// miRedo
   6.522 +			// 
   6.523 +			this.miRedo.Enabled = false;
   6.524 +			this.miRedo.Name = "miRedo";
   6.525 +			this.miRedo.Size = new System.Drawing.Size(152, 22);
   6.526 +			this.miRedo.Text = "&redo";
   6.527 +			this.miRedo.Click += new System.EventHandler(this.miRedo_Click);
   6.528 +			// 
   6.529 +			// toolStripSeparator4
   6.530 +			// 
   6.531 +			this.toolStripSeparator4.Name = "toolStripSeparator4";
   6.532 +			this.toolStripSeparator4.Size = new System.Drawing.Size(149, 6);
   6.533 +			// 
   6.534 +			// miEditArmy
   6.535 +			// 
   6.536 +			this.miEditArmy.Name = "miEditArmy";
   6.537 +			this.miEditArmy.Size = new System.Drawing.Size(152, 22);
   6.538 +			this.miEditArmy.Text = "&edit army";
   6.539 +			this.miEditArmy.Click += new System.EventHandler(this.miEditArmy_Click);
   6.540 +			// 
   6.541 +			// toolStripSeparator5
   6.542 +			// 
   6.543 +			this.toolStripSeparator5.Name = "toolStripSeparator5";
   6.544 +			this.toolStripSeparator5.Size = new System.Drawing.Size(149, 6);
   6.545 +			// 
   6.546 +			// miPreferences
   6.547 +			// 
   6.548 +			this.miPreferences.Name = "miPreferences";
   6.549 +			this.miPreferences.Size = new System.Drawing.Size(152, 22);
   6.550 +			this.miPreferences.Text = "&preferences";
   6.551 +			this.miPreferences.Click += new System.EventHandler(this.miPreferences_Click);
   6.552 +			// 
   6.553 +			// menuHelp
   6.554 +			// 
   6.555 +			this.menuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.556              this.miAbout});
   6.557 -            this.menuHelp.Name = "menuHelp";
   6.558 -            this.menuHelp.Size = new System.Drawing.Size(42, 20);
   6.559 -            this.menuHelp.Text = "&help";
   6.560 -            // 
   6.561 -            // miAbout
   6.562 -            // 
   6.563 -            this.miAbout.Name = "miAbout";
   6.564 -            this.miAbout.Size = new System.Drawing.Size(105, 22);
   6.565 -            this.miAbout.Text = "&about";
   6.566 -            this.miAbout.Click += new System.EventHandler(this.miAbout_Click);
   6.567 -            // 
   6.568 -            // mainToolStrip
   6.569 -            // 
   6.570 -            this.mainToolStrip.Dock = System.Windows.Forms.DockStyle.None;
   6.571 -            this.mainToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
   6.572 -            this.bttnNewArmy,
   6.573 -            this.bttnOpenArmy,
   6.574 -            this.bttnSaveArmy,
   6.575 -            this.toolStripSeparator3,
   6.576 -            this.bttnUndo,
   6.577 -            this.bttnRedo});
   6.578 -            this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
   6.579 -            this.mainToolStrip.Name = "mainToolStrip";
   6.580 -            this.mainToolStrip.Size = new System.Drawing.Size(151, 25);
   6.581 -            this.mainToolStrip.TabIndex = 8;
   6.582 -            // 
   6.583 -            // bttnNewArmy
   6.584 -            // 
   6.585 -            this.bttnNewArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.586 -            this.bttnNewArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_new;
   6.587 -            this.bttnNewArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.588 -            this.bttnNewArmy.Name = "bttnNewArmy";
   6.589 -            this.bttnNewArmy.Size = new System.Drawing.Size(23, 22);
   6.590 -            this.bttnNewArmy.Text = "new army";
   6.591 -            this.bttnNewArmy.Click += new System.EventHandler(this.miNewArmy_Click);
   6.592 -            // 
   6.593 -            // bttnOpenArmy
   6.594 -            // 
   6.595 -            this.bttnOpenArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.596 -            this.bttnOpenArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_open;
   6.597 -            this.bttnOpenArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.598 -            this.bttnOpenArmy.Name = "bttnOpenArmy";
   6.599 -            this.bttnOpenArmy.Size = new System.Drawing.Size(23, 22);
   6.600 -            this.bttnOpenArmy.Text = "open army";
   6.601 -            this.bttnOpenArmy.Click += new System.EventHandler(this.miOpenArmy_Click);
   6.602 -            // 
   6.603 -            // bttnSaveArmy
   6.604 -            // 
   6.605 -            this.bttnSaveArmy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.606 -            this.bttnSaveArmy.Enabled = false;
   6.607 -            this.bttnSaveArmy.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.document_save;
   6.608 -            this.bttnSaveArmy.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.609 -            this.bttnSaveArmy.Name = "bttnSaveArmy";
   6.610 -            this.bttnSaveArmy.Size = new System.Drawing.Size(23, 22);
   6.611 -            this.bttnSaveArmy.Text = "save army";
   6.612 -            this.bttnSaveArmy.Click += new System.EventHandler(this.miSaveArmy_Click);
   6.613 -            // 
   6.614 -            // toolStripSeparator3
   6.615 -            // 
   6.616 -            this.toolStripSeparator3.Name = "toolStripSeparator3";
   6.617 -            this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
   6.618 -            // 
   6.619 -            // bttnUndo
   6.620 -            // 
   6.621 -            this.bttnUndo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.622 -            this.bttnUndo.Enabled = false;
   6.623 -            this.bttnUndo.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.edit_undo;
   6.624 -            this.bttnUndo.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.625 -            this.bttnUndo.Name = "bttnUndo";
   6.626 -            this.bttnUndo.Size = new System.Drawing.Size(32, 22);
   6.627 -            this.bttnUndo.Text = "undo";
   6.628 -            this.bttnUndo.ButtonClick += new System.EventHandler(this.miUndo_Click);
   6.629 -            // 
   6.630 -            // bttnRedo
   6.631 -            // 
   6.632 -            this.bttnRedo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
   6.633 -            this.bttnRedo.Enabled = false;
   6.634 -            this.bttnRedo.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.edit_redo;
   6.635 -            this.bttnRedo.ImageTransparentColor = System.Drawing.Color.Magenta;
   6.636 -            this.bttnRedo.Name = "bttnRedo";
   6.637 -            this.bttnRedo.Size = new System.Drawing.Size(32, 22);
   6.638 -            this.bttnRedo.Text = "redo";
   6.639 -            this.bttnRedo.ButtonClick += new System.EventHandler(this.miRedo_Click);
   6.640 -            // 
   6.641 -            // catToolStrip
   6.642 -            // 
   6.643 -            this.catToolStrip.Dock = System.Windows.Forms.DockStyle.None;
   6.644 -            this.catToolStrip.Location = new System.Drawing.Point(161, 24);
   6.645 -            this.catToolStrip.Name = "catToolStrip";
   6.646 -            this.catToolStrip.Size = new System.Drawing.Size(111, 25);
   6.647 -            this.catToolStrip.TabIndex = 9;
   6.648 -            this.catToolStrip.Visible = false;
   6.649 -            // 
   6.650 -            // statusBar
   6.651 -            // 
   6.652 -            this.statusBar.Location = new System.Drawing.Point(0, 586);
   6.653 -            this.statusBar.Name = "statusBar";
   6.654 -            this.statusBar.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
   6.655 -            this.sbMainPanel,
   6.656 -            this.sbErrorPanel,
   6.657 -            this.sbPointsPanel});
   6.658 -            this.statusBar.ShowPanels = true;
   6.659 -            this.statusBar.Size = new System.Drawing.Size(790, 22);
   6.660 -            this.statusBar.TabIndex = 1;
   6.661 -            this.statusBar.DrawItem += new System.Windows.Forms.StatusBarDrawItemEventHandler(this.statusBar_DrawItem);
   6.662 -            this.statusBar.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler(this.statusBar_PanelClick);
   6.663 -            // 
   6.664 -            // sbMainPanel
   6.665 -            // 
   6.666 -            this.sbMainPanel.AutoSize = System.Windows.Forms.StatusBarPanelAutoSize.Spring;
   6.667 -            this.sbMainPanel.Color = System.Drawing.SystemColors.WindowText;
   6.668 -            this.sbMainPanel.Name = "sbMainPanel";
   6.669 -            this.sbMainPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.670 -            this.sbMainPanel.Width = 473;
   6.671 -            // 
   6.672 -            // sbErrorPanel
   6.673 -            // 
   6.674 -            this.sbErrorPanel.Color = System.Drawing.SystemColors.WindowText;
   6.675 -            this.sbErrorPanel.Name = "sbErrorPanel";
   6.676 -            this.sbErrorPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.677 -            this.sbErrorPanel.Width = 150;
   6.678 -            // 
   6.679 -            // sbPointsPanel
   6.680 -            // 
   6.681 -            this.sbPointsPanel.Color = System.Drawing.SystemColors.WindowText;
   6.682 -            this.sbPointsPanel.Name = "sbPointsPanel";
   6.683 -            this.sbPointsPanel.Style = System.Windows.Forms.StatusBarPanelStyle.OwnerDraw;
   6.684 -            this.sbPointsPanel.ToolTipText = "current points total";
   6.685 -            this.sbPointsPanel.Width = 150;
   6.686 -            // 
   6.687 -            // toolStripPanel
   6.688 -            // 
   6.689 -            this.toolStripPanel.Dock = System.Windows.Forms.DockStyle.Top;
   6.690 -            this.toolStripPanel.Location = new System.Drawing.Point(0, 24);
   6.691 -            this.toolStripPanel.Name = "toolStripPanel";
   6.692 -            this.toolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal;
   6.693 -            this.toolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0);
   6.694 -            this.toolStripPanel.Size = new System.Drawing.Size(790, 0);
   6.695 -            // 
   6.696 -            // FrmMain
   6.697 -            // 
   6.698 -            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   6.699 -            this.ClientSize = new System.Drawing.Size(790, 608);
   6.700 -            this.Controls.Add(this.mainToolStrip);
   6.701 -            this.Controls.Add(this.toolStripPanel);
   6.702 -            this.Controls.Add(this.statusBar);
   6.703 -            this.Controls.Add(this.catToolStrip);
   6.704 -            this.Controls.Add(this.menuStrip);
   6.705 -            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   6.706 -            this.IsMdiContainer = true;
   6.707 -            this.MainMenuStrip = this.menuStrip;
   6.708 -            this.Menu = this.mainMenu;
   6.709 -            this.Name = "FrmMain";
   6.710 -            this.Text = "WarFoundry";
   6.711 -            this.Load += new System.EventHandler(this.FrmMain_Load);
   6.712 -            this.menuStrip.ResumeLayout(false);
   6.713 -            this.menuStrip.PerformLayout();
   6.714 -            this.mainToolStrip.ResumeLayout(false);
   6.715 -            this.mainToolStrip.PerformLayout();
   6.716 -            ((System.ComponentModel.ISupportInitialize)(this.sbMainPanel)).EndInit();
   6.717 -            ((System.ComponentModel.ISupportInitialize)(this.sbErrorPanel)).EndInit();
   6.718 -            ((System.ComponentModel.ISupportInitialize)(this.sbPointsPanel)).EndInit();
   6.719 -            this.ResumeLayout(false);
   6.720 -            this.PerformLayout();
   6.721 +			this.menuHelp.Name = "menuHelp";
   6.722 +			this.menuHelp.Size = new System.Drawing.Size(39, 20);
   6.723 +			this.menuHelp.Text = "&help";
   6.724 +			// 
   6.725 +			// miAbout
   6.726 +			// 
   6.727 +			this.miAbout.Name = "miAbout";
   6.728 +			this.miAbout.Size = new System.Drawing.Size(113, 22);
   6.729 +			this.miAbout.Text = "&about";
   6.730 +			this.miAbout.Click += new System.EventHandler(this.miAbout_Click);
   6.731 +			// 
   6.732 +			// FrmMain
   6.733 +			// 
   6.734 +			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   6.735 +			this.ClientSize = new System.Drawing.Size(790, 608);
   6.736 +			this.Controls.Add(this.mainToolStrip);
   6.737 +			this.Controls.Add(this.toolStripPanel);
   6.738 +			this.Controls.Add(this.statusBar);
   6.739 +			this.Controls.Add(this.catToolStrip);
   6.740 +			this.Controls.Add(this.menuStrip);
   6.741 +			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   6.742 +			this.IsMdiContainer = true;
   6.743 +			this.MainMenuStrip = this.menuStrip;
   6.744 +			this.Menu = this.mainMenu;
   6.745 +			this.Name = "FrmMain";
   6.746 +			this.Text = "WarFoundry";
   6.747 +			this.Load += new System.EventHandler(this.FrmMain_Load);
   6.748 +			this.menuStrip.ResumeLayout(false);
   6.749 +			this.menuStrip.PerformLayout();
   6.750 +			this.mainToolStrip.ResumeLayout(false);
   6.751 +			this.mainToolStrip.PerformLayout();
   6.752 +			((System.ComponentModel.ISupportInitialize)(this.sbMainPanel)).EndInit();
   6.753 +			((System.ComponentModel.ISupportInitialize)(this.sbErrorPanel)).EndInit();
   6.754 +			((System.ComponentModel.ISupportInitialize)(this.sbPointsPanel)).EndInit();
   6.755 +			this.ResumeLayout(false);
   6.756 +			this.PerformLayout();
   6.757  
   6.758  		}
   6.759  		#endregion
   6.760 @@ -895,6 +913,7 @@
   6.761  			loadedFilePath = null;
   6.762  			miSaveArmy.Enabled = false;
   6.763  			bttnSaveArmy.Enabled = false;
   6.764 +			miEditArmy.Enabled = (CurrentArmy == null);
   6.765              //TODO: Subscribe to an "army changed" event here
   6.766  			SetPointsPanelText();
   6.767  			SetAppTitle();
   6.768 @@ -1428,5 +1447,11 @@
   6.769  			Form xmlOutput = new FrmXmlExport(CurrentArmy);
   6.770  			xmlOutput.ShowDialog(this);
   6.771  		}
   6.772 +
   6.773 +		private void miEditArmy_Click(object sender, EventArgs e)
   6.774 +		{
   6.775 +			FrmEditArmy editArmy = new FrmEditArmy(commandStack, CurrentArmy);
   6.776 +			editArmy.ShowDialog(this);
   6.777 +		}
   6.778  	}
   6.779  }
     7.1 --- a/FrmMain.resx	Mon Aug 29 15:17:59 2011 +0100
     7.2 +++ b/FrmMain.resx	Mon Aug 29 20:06:54 2011 +0100
     7.3 @@ -112,36 +112,36 @@
     7.4      <value>2.0</value>
     7.5    </resheader>
     7.6    <resheader name="reader">
     7.7 -    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     7.8 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     7.9    </resheader>
    7.10    <resheader name="writer">
    7.11 -    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    7.12 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    7.13    </resheader>
    7.14 -  <metadata name="undoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.15 +  <metadata name="undoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.16      <value>17, 17</value>
    7.17    </metadata>
    7.18 -  <metadata name="redoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.19 +  <metadata name="redoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.20      <value>122, 17</value>
    7.21    </metadata>
    7.22 -  <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.23 +  <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.24      <value>334, 17</value>
    7.25    </metadata>
    7.26 -  <metadata name="openArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.27 +  <metadata name="openArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.28      <value>438, 17</value>
    7.29    </metadata>
    7.30 -  <metadata name="saveArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.31 +  <metadata name="saveArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.32      <value>573, 17</value>
    7.33    </metadata>
    7.34 -  <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.35 +  <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.36      <value>835, 17</value>
    7.37    </metadata>
    7.38 -  <metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.39 +  <metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.40      <value>17, 54</value>
    7.41    </metadata>
    7.42 -  <metadata name="catToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.43 +  <metadata name="catToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    7.44      <value>138, 54</value>
    7.45    </metadata>
    7.46 -  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    7.47 +  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    7.48    <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    7.49      <value>
    7.50          AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAA
     8.1 --- a/IBBoard.WarFoundry.GUI.WinForms.csproj	Mon Aug 29 15:17:59 2011 +0100
     8.2 +++ b/IBBoard.WarFoundry.GUI.WinForms.csproj	Mon Aug 29 20:06:54 2011 +0100
     8.3 @@ -127,6 +127,12 @@
     8.4      <Compile Include="AssemblyInfo.cs">
     8.5        <SubType>Code</SubType>
     8.6      </Compile>
     8.7 +    <Compile Include="FrmEditArmy.cs">
     8.8 +      <SubType>Form</SubType>
     8.9 +    </Compile>
    8.10 +    <Compile Include="FrmEditArmy.Designer.cs">
    8.11 +      <DependentUpon>FrmEditArmy.cs</DependentUpon>
    8.12 +    </Compile>
    8.13      <Compile Include="FrmAbout.cs">
    8.14        <SubType>Form</SubType>
    8.15      </Compile>
    8.16 @@ -193,6 +199,9 @@
    8.17        <DependentUpon>FrmArmyTree.cs</DependentUpon>
    8.18        <SubType>Designer</SubType>
    8.19      </EmbeddedResource>
    8.20 +    <EmbeddedResource Include="FrmEditArmy.resx">
    8.21 +      <DependentUpon>FrmEditArmy.cs</DependentUpon>
    8.22 +    </EmbeddedResource>
    8.23      <EmbeddedResource Include="FrmEditUnitEquipment.resx">
    8.24        <DependentUpon>FrmEditUnitEquipment.cs</DependentUpon>
    8.25        <SubType>Designer</SubType>