Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
comparison FrmNewArmy.cs @ 171:0e17097db8e5
Fixes #300: WinForms UI doesn't make it obvious why nothing is listed on first run
* Added a warning icon and tooltip message to the New Army dialog
* Added initial English translation text
Also:
* Layered the enabling of widgets so that they are only enabled when they make sense (so empty list won't be enabled)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 31 Jul 2010 14:26:21 +0000 |
parents | 18d607b0249b |
children | 0e39412353c4 946d37003f97 |
comparison
equal
deleted
inserted
replaced
170:1925af42100c | 171:0e17097db8e5 |
---|---|
18 /// <summary> | 18 /// <summary> |
19 /// Summary description for FrmNewArmy. | 19 /// Summary description for FrmNewArmy. |
20 /// </summary> | 20 /// </summary> |
21 public class FrmNewArmy : IBBForm | 21 public class FrmNewArmy : IBBForm |
22 { | 22 { |
23 /// <summary> | 23 private IContainer components; |
24 /// Required designer variable. | |
25 /// </summary> | |
26 private System.ComponentModel.Container components = null; | |
27 private IBBoard.Windows.Forms.IBBButton bttnCancel; | 24 private IBBoard.Windows.Forms.IBBButton bttnCancel; |
28 private IBBoard.Windows.Forms.IBBLabel lblRaceList; | 25 private IBBoard.Windows.Forms.IBBLabel lblRaceList; |
29 private IBBoard.Windows.Forms.IBBButton bttnSelectRace; | 26 private IBBoard.Windows.Forms.IBBButton bttnSelectRace; |
30 private System.Windows.Forms.ListBox lstRaces; | 27 private System.Windows.Forms.ListBox lstRaces; |
31 private IBBoard.Windows.Forms.IBBLabel lblArmyName; | 28 private IBBoard.Windows.Forms.IBBLabel lblArmyName; |
36 private System.Windows.Forms.TextBox txtArmyName; | 33 private System.Windows.Forms.TextBox txtArmyName; |
37 | 34 |
38 private GameSystem system; | 35 private GameSystem system; |
39 private Race race; | 36 private Race race; |
40 private string armyName; | 37 private string armyName; |
38 private ToolTip gameSystemToolTip; | |
41 private int maxPoints; | 39 private int maxPoints; |
42 | 40 |
43 public FrmNewArmy(GameSystem system) | 41 public FrmNewArmy(GameSystem system) |
44 { | 42 { |
45 InitializeComponent(); | 43 InitializeComponent(); |
47 ControlTranslator.TranslateControl(this); | 45 ControlTranslator.TranslateControl(this); |
48 | 46 |
49 foreach (GameSystem gameSystem in WarFoundryLoader.GetDefault().GetGameSystems()) | 47 foreach (GameSystem gameSystem in WarFoundryLoader.GetDefault().GetGameSystems()) |
50 { | 48 { |
51 gameSystems.Items.Add(gameSystem); | 49 gameSystems.Items.Add(gameSystem); |
50 } | |
51 | |
52 if (gameSystems.Items.Count > 0) | |
53 { | |
54 gameSystems.Enabled = true; | |
55 lblGameSystem.Image = null; | |
56 } | |
57 else | |
58 { | |
59 gameSystems.Enabled = false; | |
60 gameSystemToolTip.SetToolTip(lblGameSystem, Translation.GetTranslation("newArmyNoGameSystems", "could not load data for game systems - please check logs")); | |
52 } | 61 } |
53 | 62 |
54 if (system != null) | 63 if (system != null) |
55 { | 64 { |
56 gameSystems.SelectedItem = system; | 65 gameSystems.SelectedItem = system; |
89 /// Required method for Designer support - do not modify | 98 /// Required method for Designer support - do not modify |
90 /// the contents of this method with the code editor. | 99 /// the contents of this method with the code editor. |
91 /// </summary> | 100 /// </summary> |
92 private void InitializeComponent() | 101 private void InitializeComponent() |
93 { | 102 { |
103 this.components = new System.ComponentModel.Container(); | |
94 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmNewArmy)); | 104 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmNewArmy)); |
95 this.lstRaces = new System.Windows.Forms.ListBox(); | 105 this.lstRaces = new System.Windows.Forms.ListBox(); |
96 this.bttnCancel = new IBBoard.Windows.Forms.IBBButton(); | 106 this.bttnCancel = new IBBoard.Windows.Forms.IBBButton(); |
97 this.lblRaceList = new IBBoard.Windows.Forms.IBBLabel(); | 107 this.lblRaceList = new IBBoard.Windows.Forms.IBBLabel(); |
98 this.bttnSelectRace = new IBBoard.Windows.Forms.IBBButton(); | 108 this.bttnSelectRace = new IBBoard.Windows.Forms.IBBButton(); |
99 this.lblArmyName = new IBBoard.Windows.Forms.IBBLabel(); | 109 this.lblArmyName = new IBBoard.Windows.Forms.IBBLabel(); |
100 this.txtArmyName = new System.Windows.Forms.TextBox(); | 110 this.txtArmyName = new System.Windows.Forms.TextBox(); |
101 this.lblArmySize = new IBBoard.Windows.Forms.IBBLabel(); | 111 this.lblArmySize = new IBBoard.Windows.Forms.IBBLabel(); |
102 this.armySize = new System.Windows.Forms.NumericUpDown(); | 112 this.armySize = new System.Windows.Forms.NumericUpDown(); |
113 this.gameSystems = new System.Windows.Forms.ComboBox(); | |
103 this.lblGameSystem = new IBBoard.Windows.Forms.IBBLabel(); | 114 this.lblGameSystem = new IBBoard.Windows.Forms.IBBLabel(); |
104 this.gameSystems = new System.Windows.Forms.ComboBox(); | 115 this.gameSystemToolTip = new System.Windows.Forms.ToolTip(this.components); |
105 ((System.ComponentModel.ISupportInitialize) (this.armySize)).BeginInit(); | 116 ((System.ComponentModel.ISupportInitialize)(this.armySize)).BeginInit(); |
106 this.SuspendLayout(); | 117 this.SuspendLayout(); |
107 // | 118 // |
108 // lstRaces | 119 // lstRaces |
109 // | 120 // |
110 this.lstRaces.Anchor = ((System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | 121 this.lstRaces.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) |
111 | System.Windows.Forms.AnchorStyles.Right))); | 122 | System.Windows.Forms.AnchorStyles.Right))); |
112 this.lstRaces.DisplayMember = "Name"; | 123 this.lstRaces.DisplayMember = "Name"; |
124 this.lstRaces.Enabled = false; | |
113 this.lstRaces.Location = new System.Drawing.Point(141, 33); | 125 this.lstRaces.Location = new System.Drawing.Point(141, 33); |
114 this.lstRaces.Name = "lstRaces"; | 126 this.lstRaces.Name = "lstRaces"; |
115 this.lstRaces.Size = new System.Drawing.Size(265, 121); | 127 this.lstRaces.Size = new System.Drawing.Size(265, 121); |
116 this.lstRaces.TabIndex = 7; | 128 this.lstRaces.TabIndex = 7; |
117 this.lstRaces.SelectedIndexChanged += new System.EventHandler(this.lstRaces_SelectedIndexChanged); | 129 this.lstRaces.SelectedIndexChanged += new System.EventHandler(this.lstRaces_SelectedIndexChanged); |
136 this.lblRaceList.Text = "race list"; | 148 this.lblRaceList.Text = "race list"; |
137 this.lblRaceList.TextAlign = System.Drawing.ContentAlignment.TopRight; | 149 this.lblRaceList.TextAlign = System.Drawing.ContentAlignment.TopRight; |
138 // | 150 // |
139 // bttnSelectRace | 151 // bttnSelectRace |
140 // | 152 // |
141 this.bttnSelectRace.Anchor = ((System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | 153 this.bttnSelectRace.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) |
142 | System.Windows.Forms.AnchorStyles.Right))); | 154 | System.Windows.Forms.AnchorStyles.Right))); |
143 this.bttnSelectRace.Enabled = false; | 155 this.bttnSelectRace.Enabled = false; |
144 this.bttnSelectRace.FlatStyle = System.Windows.Forms.FlatStyle.System; | 156 this.bttnSelectRace.FlatStyle = System.Windows.Forms.FlatStyle.System; |
145 this.bttnSelectRace.Location = new System.Drawing.Point(254, 231); | 157 this.bttnSelectRace.Location = new System.Drawing.Point(254, 231); |
146 this.bttnSelectRace.Name = "bttnSelectRace"; | 158 this.bttnSelectRace.Name = "bttnSelectRace"; |
158 this.lblArmyName.Text = "army name"; | 170 this.lblArmyName.Text = "army name"; |
159 this.lblArmyName.TextAlign = System.Drawing.ContentAlignment.TopRight; | 171 this.lblArmyName.TextAlign = System.Drawing.ContentAlignment.TopRight; |
160 // | 172 // |
161 // txtArmyName | 173 // txtArmyName |
162 // | 174 // |
163 this.txtArmyName.Anchor = ((System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | 175 this.txtArmyName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) |
164 | System.Windows.Forms.AnchorStyles.Right))); | 176 | System.Windows.Forms.AnchorStyles.Right))); |
177 this.txtArmyName.Enabled = false; | |
165 this.txtArmyName.Location = new System.Drawing.Point(141, 160); | 178 this.txtArmyName.Location = new System.Drawing.Point(141, 160); |
166 this.txtArmyName.Name = "txtArmyName"; | 179 this.txtArmyName.Name = "txtArmyName"; |
167 this.txtArmyName.Size = new System.Drawing.Size(265, 20); | 180 this.txtArmyName.Size = new System.Drawing.Size(265, 20); |
168 this.txtArmyName.TabIndex = 9; | 181 this.txtArmyName.TabIndex = 9; |
169 this.txtArmyName.TextChanged += new System.EventHandler(this.txtArmyName_TextChanged); | 182 this.txtArmyName.TextChanged += new System.EventHandler(this.txtArmyName_TextChanged); |
177 this.lblArmySize.Text = "army size"; | 190 this.lblArmySize.Text = "army size"; |
178 this.lblArmySize.TextAlign = System.Drawing.ContentAlignment.TopRight; | 191 this.lblArmySize.TextAlign = System.Drawing.ContentAlignment.TopRight; |
179 // | 192 // |
180 // armySize | 193 // armySize |
181 // | 194 // |
195 this.armySize.Enabled = false; | |
182 this.armySize.Increment = new decimal(new int[] { | 196 this.armySize.Increment = new decimal(new int[] { |
183 50, | 197 50, |
184 0, | 198 0, |
185 0, | 199 0, |
186 0}); | 200 0}); |
198 2000, | 212 2000, |
199 0, | 213 0, |
200 0, | 214 0, |
201 0}); | 215 0}); |
202 // | 216 // |
203 // lblGameSystem | |
204 // | |
205 this.lblGameSystem.Location = new System.Drawing.Point(12, 9); | |
206 this.lblGameSystem.Name = "lblGameSystem"; | |
207 this.lblGameSystem.Size = new System.Drawing.Size(123, 18); | |
208 this.lblGameSystem.TabIndex = 12; | |
209 this.lblGameSystem.Text = "game system"; | |
210 this.lblGameSystem.TextAlign = System.Drawing.ContentAlignment.TopRight; | |
211 // | |
212 // gameSystems | 217 // gameSystems |
213 // | 218 // |
214 this.gameSystems.Anchor = ((System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | 219 this.gameSystems.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) |
215 | System.Windows.Forms.AnchorStyles.Right))); | 220 | System.Windows.Forms.AnchorStyles.Right))); |
216 this.gameSystems.DisplayMember = "Name"; | 221 this.gameSystems.DisplayMember = "Name"; |
217 this.gameSystems.FormattingEnabled = true; | 222 this.gameSystems.FormattingEnabled = true; |
218 this.gameSystems.Location = new System.Drawing.Point(141, 6); | 223 this.gameSystems.Location = new System.Drawing.Point(141, 6); |
219 this.gameSystems.Name = "gameSystems"; | 224 this.gameSystems.Name = "gameSystems"; |
220 this.gameSystems.Size = new System.Drawing.Size(265, 21); | 225 this.gameSystems.Size = new System.Drawing.Size(265, 21); |
221 this.gameSystems.TabIndex = 13; | 226 this.gameSystems.TabIndex = 13; |
222 this.gameSystems.SelectedValueChanged += new System.EventHandler(this.gameSystems_SelectedValueChanged); | 227 this.gameSystems.SelectedValueChanged += new System.EventHandler(this.gameSystems_SelectedValueChanged); |
228 // | |
229 // lblGameSystem | |
230 // | |
231 this.lblGameSystem.Image = global::IBBoard.WarFoundry.GUI.WinForms.Properties.Resources.warning_sml; | |
232 this.lblGameSystem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; | |
233 this.lblGameSystem.Location = new System.Drawing.Point(12, 9); | |
234 this.lblGameSystem.Name = "lblGameSystem"; | |
235 this.lblGameSystem.Size = new System.Drawing.Size(123, 18); | |
236 this.lblGameSystem.TabIndex = 12; | |
237 this.lblGameSystem.Text = "game system"; | |
238 this.lblGameSystem.TextAlign = System.Drawing.ContentAlignment.TopRight; | |
223 // | 239 // |
224 // FrmNewArmy | 240 // FrmNewArmy |
225 // | 241 // |
226 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); | 242 this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); |
227 this.ClientSize = new System.Drawing.Size(418, 267); | 243 this.ClientSize = new System.Drawing.Size(418, 267); |
234 this.Controls.Add(this.bttnCancel); | 250 this.Controls.Add(this.bttnCancel); |
235 this.Controls.Add(this.lblRaceList); | 251 this.Controls.Add(this.lblRaceList); |
236 this.Controls.Add(this.bttnSelectRace); | 252 this.Controls.Add(this.bttnSelectRace); |
237 this.Controls.Add(this.lstRaces); | 253 this.Controls.Add(this.lstRaces); |
238 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; | 254 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; |
239 this.Icon = ((System.Drawing.Icon) (resources.GetObject("$this.Icon"))); | 255 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); |
240 this.MaximizeBox = false; | 256 this.MaximizeBox = false; |
241 this.MinimizeBox = false; | 257 this.MinimizeBox = false; |
242 this.Name = "FrmNewArmy"; | 258 this.Name = "FrmNewArmy"; |
243 this.ShowInTaskbar = false; | 259 this.ShowInTaskbar = false; |
244 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; | 260 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; |
245 this.Text = "FrmNewArmy"; | 261 this.Text = "FrmNewArmy"; |
246 ((System.ComponentModel.ISupportInitialize) (this.armySize)).EndInit(); | 262 ((System.ComponentModel.ISupportInitialize)(this.armySize)).EndInit(); |
247 this.ResumeLayout(false); | 263 this.ResumeLayout(false); |
248 this.PerformLayout(); | 264 this.PerformLayout(); |
249 | 265 |
250 } | 266 } |
251 #endregion | 267 #endregion |
307 } | 323 } |
308 | 324 |
309 private void lstRaces_SelectedIndexChanged(object sender, System.EventArgs e) | 325 private void lstRaces_SelectedIndexChanged(object sender, System.EventArgs e) |
310 { | 326 { |
311 setSelectRaceEnabledVal(); | 327 setSelectRaceEnabledVal(); |
328 bool raceSelected = lstRaces.SelectedItem != null; | |
329 txtArmyName.Enabled = raceSelected; | |
330 armySize.Enabled = raceSelected; | |
312 } | 331 } |
313 | 332 |
314 private void gameSystems_SelectedValueChanged(object sender, EventArgs e) | 333 private void gameSystems_SelectedValueChanged(object sender, EventArgs e) |
315 { | 334 { |
316 GameSystem selected = GetSelectedGameSystem(); | 335 GameSystem selected = GetSelectedGameSystem(); |
318 | 337 |
319 if (selected != null) | 338 if (selected != null) |
320 { | 339 { |
321 SetRaces(selected); | 340 SetRaces(selected); |
322 | 341 |
323 if (lstRaces.Items.Count > 0) | 342 if (lstRaces.Items.Count == 1) |
324 { | 343 { |
325 lstRaces.SelectedIndex = 0; | 344 lstRaces.SelectedIndex = 0; |
326 } | 345 } |
327 } | 346 } |
347 | |
348 lstRaces.Enabled = lstRaces.Items.Count > 0; | |
328 } | 349 } |
329 } | 350 } |
330 } | 351 } |