Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
comparison FrmArmyTree.cs @ 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 | 417d3f75a752 |
children | 4ada3252d1ea |
comparison
equal
deleted
inserted
replaced
220:467decfdde8e | 221:5233147ca7e4 |
---|---|
34 private StringValChangedDelegate UnitNameChangedMethod, ArmyNameChangedMethod, TreeNameChangedMethod; | 34 private StringValChangedDelegate UnitNameChangedMethod, ArmyNameChangedMethod, TreeNameChangedMethod; |
35 private ToolBar toolBar; | 35 private ToolBar toolBar; |
36 private IBBToolBarButton bttnEdit; | 36 private IBBToolBarButton bttnEdit; |
37 private IBBToolBarButton bttnDelete; | 37 private IBBToolBarButton bttnDelete; |
38 private ImageList imageList; | 38 private ImageList imageList; |
39 private IBBMenuItem miEditArmy; | |
39 private CommandStack commandStack; | 40 private CommandStack commandStack; |
40 public GameSystem CurrentGameSystem | 41 public GameSystem CurrentGameSystem |
41 { | 42 { |
42 get { return WarFoundryCore.CurrentGameSystem; } | 43 get { return WarFoundryCore.CurrentGameSystem; } |
43 set { WarFoundryCore.CurrentGameSystem = value; } | 44 set { WarFoundryCore.CurrentGameSystem = value; } |
100 /// Required method for Designer support - do not modify | 101 /// Required method for Designer support - do not modify |
101 /// the contents of this method with the code editor. | 102 /// the contents of this method with the code editor. |
102 /// </summary> | 103 /// </summary> |
103 private void InitializeComponent() | 104 private void InitializeComponent() |
104 { | 105 { |
105 this.components = new System.ComponentModel.Container(); | 106 this.components = new System.ComponentModel.Container(); |
106 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree)); | 107 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmArmyTree)); |
107 this.contextMenu = new System.Windows.Forms.ContextMenu(); | 108 this.contextMenu = new System.Windows.Forms.ContextMenu(); |
108 this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem(); | 109 this.miEditUnit = new IBBoard.Windows.Forms.IBBMenuItem(); |
109 this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem(); | 110 this.miDeleteUnit = new IBBoard.Windows.Forms.IBBMenuItem(); |
110 this.imageList = new System.Windows.Forms.ImageList(this.components); | 111 this.imageList = new System.Windows.Forms.ImageList(this.components); |
111 this.toolBar = new System.Windows.Forms.ToolBar(); | 112 this.toolBar = new System.Windows.Forms.ToolBar(); |
112 this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton(); | 113 this.bttnEdit = new IBBoard.Windows.Forms.IBBToolBarButton(); |
113 this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton(); | 114 this.bttnDelete = new IBBoard.Windows.Forms.IBBToolBarButton(); |
114 this.treeView = new System.Windows.Forms.TreeView(); | 115 this.treeView = new System.Windows.Forms.TreeView(); |
115 this.SuspendLayout(); | 116 this.miEditArmy = new IBBoard.Windows.Forms.IBBMenuItem(); |
116 // | 117 this.SuspendLayout(); |
117 // contextMenu | 118 // |
118 // | 119 // contextMenu |
119 this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { | 120 // |
121 this.contextMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { | |
122 this.miEditArmy, | |
120 this.miEditUnit, | 123 this.miEditUnit, |
121 this.miDeleteUnit}); | 124 this.miDeleteUnit}); |
122 this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); | 125 this.contextMenu.Popup += new System.EventHandler(this.contextMenu_Popup); |
123 // | 126 // |
124 // miEditUnit | 127 // miEditUnit |
125 // | 128 // |
126 this.miEditUnit.Index = 0; | 129 this.miEditUnit.Index = 1; |
127 this.miEditUnit.Text = "&edit unit"; | 130 this.miEditUnit.Text = "&edit unit"; |
128 this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click); | 131 this.miEditUnit.Click += new System.EventHandler(this.miEdit_Click); |
129 // | 132 // |
130 // miDeleteUnit | 133 // miDeleteUnit |
131 // | 134 // |
132 this.miDeleteUnit.Index = 1; | 135 this.miDeleteUnit.Index = 2; |
133 this.miDeleteUnit.Text = "&delete unit"; | 136 this.miDeleteUnit.Text = "&delete unit"; |
134 this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click); | 137 this.miDeleteUnit.Click += new System.EventHandler(this.miDelete_Click); |
135 // | 138 // |
136 // imageList | 139 // imageList |
137 // | 140 // |
138 this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); | 141 this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); |
139 this.imageList.TransparentColor = System.Drawing.Color.Transparent; | 142 this.imageList.TransparentColor = System.Drawing.Color.Transparent; |
140 this.imageList.Images.SetKeyName(0, "gtk-edit.png"); | 143 this.imageList.Images.SetKeyName(0, "gtk-edit.png"); |
141 this.imageList.Images.SetKeyName(1, "edit-delete.png"); | 144 this.imageList.Images.SetKeyName(1, "edit-delete.png"); |
142 // | 145 // |
143 // toolBar | 146 // toolBar |
144 // | 147 // |
145 this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { | 148 this.toolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { |
146 this.bttnEdit, | 149 this.bttnEdit, |
147 this.bttnDelete}); | 150 this.bttnDelete}); |
148 this.toolBar.ButtonSize = new System.Drawing.Size(16, 16); | 151 this.toolBar.ButtonSize = new System.Drawing.Size(16, 16); |
149 this.toolBar.DropDownArrows = true; | 152 this.toolBar.DropDownArrows = true; |
150 this.toolBar.ImageList = this.imageList; | 153 this.toolBar.ImageList = this.imageList; |
151 this.toolBar.Location = new System.Drawing.Point(0, 0); | 154 this.toolBar.Location = new System.Drawing.Point(0, 0); |
152 this.toolBar.Name = "toolBar"; | 155 this.toolBar.Name = "toolBar"; |
153 this.toolBar.ShowToolTips = true; | 156 this.toolBar.ShowToolTips = true; |
154 this.toolBar.Size = new System.Drawing.Size(240, 28); | 157 this.toolBar.Size = new System.Drawing.Size(240, 28); |
155 this.toolBar.TabIndex = 3; | 158 this.toolBar.TabIndex = 3; |
156 this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick); | 159 this.toolBar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar_ButtonClick); |
157 // | 160 // |
158 // bttnEdit | 161 // bttnEdit |
159 // | 162 // |
160 this.bttnEdit.Enabled = false; | 163 this.bttnEdit.Enabled = false; |
161 this.bttnEdit.ImageIndex = 0; | 164 this.bttnEdit.ImageIndex = 0; |
162 this.bttnEdit.Name = "bttnEdit"; | 165 this.bttnEdit.Name = "bttnEdit"; |
163 // | 166 // |
164 // bttnDelete | 167 // bttnDelete |
165 // | 168 // |
166 this.bttnDelete.Enabled = false; | 169 this.bttnDelete.Enabled = false; |
167 this.bttnDelete.ImageIndex = 1; | 170 this.bttnDelete.ImageIndex = 1; |
168 this.bttnDelete.Name = "bttnDelete"; | 171 this.bttnDelete.Name = "bttnDelete"; |
169 // | 172 // |
170 // treeView | 173 // treeView |
171 // | 174 // |
172 this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | 175 this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) |
173 | System.Windows.Forms.AnchorStyles.Left) | 176 | System.Windows.Forms.AnchorStyles.Left) |
174 | System.Windows.Forms.AnchorStyles.Right))); | 177 | System.Windows.Forms.AnchorStyles.Right))); |
175 this.treeView.ContextMenu = this.contextMenu; | 178 this.treeView.ContextMenu = this.contextMenu; |
176 this.treeView.FullRowSelect = true; | 179 this.treeView.FullRowSelect = true; |
177 this.treeView.Location = new System.Drawing.Point(0, 28); | 180 this.treeView.Location = new System.Drawing.Point(0, 28); |
178 this.treeView.Name = "treeView"; | 181 this.treeView.Name = "treeView"; |
179 this.treeView.Size = new System.Drawing.Size(240, 250); | 182 this.treeView.Size = new System.Drawing.Size(240, 250); |
180 this.treeView.TabIndex = 0; | 183 this.treeView.TabIndex = 0; |
181 this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick); | 184 this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect); |
182 this.treeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView_AfterSelect); | 185 this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick); |
183 this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown); | 186 this.treeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseDown); |
184 // | 187 // |
185 // FrmArmyTree | 188 // miEditArmy |
186 // | 189 // |
187 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); | 190 this.miEditArmy.Index = 0; |
188 this.ClientSize = new System.Drawing.Size(240, 277); | 191 this.miEditArmy.Text = "&edit army"; |
189 this.ControlBox = false; | 192 this.miEditArmy.Click += new System.EventHandler(this.miEditArmy_Click); |
190 this.Controls.Add(this.toolBar); | 193 // |
191 this.Controls.Add(this.treeView); | 194 // FrmArmyTree |
192 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; | 195 // |
193 this.MaximizeBox = false; | 196 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); |
194 this.MinimizeBox = false; | 197 this.ClientSize = new System.Drawing.Size(240, 277); |
195 this.Name = "FrmArmyTree"; | 198 this.ControlBox = false; |
196 this.Text = "FrmArmyTree"; | 199 this.Controls.Add(this.toolBar); |
197 this.ResumeLayout(false); | 200 this.Controls.Add(this.treeView); |
198 this.PerformLayout(); | 201 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; |
202 this.MaximizeBox = false; | |
203 this.MinimizeBox = false; | |
204 this.Name = "FrmArmyTree"; | |
205 this.Text = "FrmArmyTree"; | |
206 this.ResumeLayout(false); | |
207 this.PerformLayout(); | |
199 | 208 |
200 } | 209 } |
201 #endregion | 210 #endregion |
202 | 211 |
203 private void ClearArmy() | 212 private void ClearArmy() |
339 | 348 |
340 | 349 |
341 private void contextMenu_Popup(object sender, System.EventArgs e) | 350 private void contextMenu_Popup(object sender, System.EventArgs e) |
342 { | 351 { |
343 TreeNode node = treeView.SelectedNode; | 352 TreeNode node = treeView.SelectedNode; |
344 | 353 Object tag = (node != null) ? node.Tag : null; |
345 if (node!=null && node.Tag is Unit) | 354 |
346 { | 355 if (tag is Unit) |
347 foreach(MenuItem item in contextMenu.MenuItems) | 356 { |
348 { | 357 miDeleteUnit.Visible = true; |
349 item.Visible = true; | 358 miEditUnit.Visible = true; |
350 } | 359 miEditArmy.Visible = false; |
360 } | |
361 else if (tag is Army) | |
362 { | |
363 miDeleteUnit.Visible = false; | |
364 miEditUnit.Visible = false; | |
365 miEditArmy.Visible = true; | |
351 } | 366 } |
352 else | 367 else |
353 { | 368 { |
354 foreach(MenuItem item in contextMenu.MenuItems) | 369 miDeleteUnit.Visible = false; |
355 { | 370 miEditUnit.Visible = false; |
356 item.Visible = false; | 371 miEditArmy.Visible = false; |
357 } | |
358 } | 372 } |
359 } | 373 } |
360 | 374 |
361 private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) | 375 private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) |
362 { | 376 { |
392 } | 406 } |
393 } | 407 } |
394 | 408 |
395 private void miEdit_Click(object sender, System.EventArgs e) | 409 private void miEdit_Click(object sender, System.EventArgs e) |
396 { | 410 { |
397 EditUnit(); | 411 EditTreeItem(); |
398 } | 412 } |
399 | 413 |
400 private void treeView_DoubleClick(object sender, System.EventArgs e) | 414 private void treeView_DoubleClick(object sender, System.EventArgs e) |
401 { | 415 { |
402 EditUnit(); | 416 EditTreeItem(); |
403 } | 417 } |
404 | 418 |
405 private void EditUnit() | 419 private void EditTreeItem() |
406 { | 420 { |
407 TreeNode selected = treeView.SelectedNode; | 421 TreeNode selected = treeView.SelectedNode; |
408 object tagData = selected.Tag; | 422 object tagData = selected.Tag; |
409 | 423 |
410 if (tagData is Unit) | 424 if (tagData is Unit) |
411 { | 425 { |
412 Unit unit = (Unit) tagData; | 426 Unit unit = (Unit) tagData; |
413 MdiParent.OpenUnitDialog(unit); | 427 MdiParent.OpenUnitDialog(unit); |
428 } | |
429 else if (tagData is Army) | |
430 { | |
431 EditArmy((Army)tagData); | |
414 } | 432 } |
415 } | 433 } |
416 | 434 |
417 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue) | 435 private void UpdateUnitName(WarFoundryObject obj, string oldValue, string newValue) |
418 { | 436 { |
452 { | 470 { |
453 DeleteUnit(); | 471 DeleteUnit(); |
454 } | 472 } |
455 else if (e.Button == bttnEdit) | 473 else if (e.Button == bttnEdit) |
456 { | 474 { |
457 EditUnit(); | 475 EditTreeItem(); |
458 } | 476 } |
459 } | 477 } |
460 | 478 |
461 private void treeView_AfterSelect(object sender, TreeViewEventArgs e) | 479 private void treeView_AfterSelect(object sender, TreeViewEventArgs e) |
462 { | 480 { |
463 TreeNode node = treeView.SelectedNode; | 481 TreeNode node = treeView.SelectedNode; |
464 | 482 |
465 bttnDelete.Enabled = (node != null && node.Tag is Unit); | 483 bttnDelete.Enabled = (node != null && node.Tag is Unit); |
466 bttnEdit.Enabled = bttnDelete.Enabled; | 484 bttnEdit.Enabled = (node != null && (node.Tag is Unit || node.Tag is Army)); |
485 } | |
486 | |
487 private void miEditArmy_Click(object sender, EventArgs e) | |
488 { | |
489 Army army = treeView.SelectedNode.Tag as Army; | |
490 EditArmy(army); | |
491 } | |
492 | |
493 private void EditArmy(Army army) | |
494 { | |
495 FrmEditArmy editForm = new FrmEditArmy(commandStack, army); | |
496 editForm.ShowDialog(this.ParentForm); | |
467 } | 497 } |
468 } | 498 } |
469 } | 499 } |