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 }