0
|
1 // FrmNewArmy.cs
|
|
2 //
|
|
3 // Copyright (C) 2007 IBBoard
|
|
4 //
|
|
5 // This library is free software; you can redistribute it and/or
|
|
6 // modify it under the terms of the GNU Lesser General Public
|
|
7 // License version 2.1 of the License as published by the Free
|
|
8 // Software Foundation.
|
|
9 //
|
|
10 // This library is distributed in the hope that it will be useful,
|
|
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13 // Lesser General Public License for more details.
|
|
14 //
|
|
15 // You should have received a copy of the GNU Lesser General Public
|
|
16 // License along with this library; if not, write to the Free Software
|
|
17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
18 //
|
|
19 //
|
|
20
|
|
21 using System;
|
|
22 using Gtk;
|
|
23 using IBBoard.Lang;
|
|
24 using IBBoard.WarFoundry.API;
|
|
25 using IBBoard.WarFoundry.API.Objects;
|
|
26 using log4net;
|
|
27
|
|
28 namespace IBBoard.WarFoundry
|
|
29 {
|
|
30 public partial class FrmNewArmy : Dialog, ITranslatable
|
|
31 {
|
|
32 private ILog logger = LogManager.GetLogger(typeof(FrmNewArmy));
|
|
33 private GameSystem system;
|
|
34 private Race race;
|
|
35 private string armyName;
|
|
36 private int pointsValue;
|
|
37
|
|
38 public FrmNewArmy(GameSystem gameSystem)
|
|
39 {
|
|
40 this.Build();
|
|
41
|
|
42 system = gameSystem;
|
|
43 lstRaces.Selection.Changed+= new EventHandler(OnSelectionChanged);
|
|
44 TreeViewColumn raceColumn = new TreeViewColumn ();
|
|
45 raceColumn.Title = "Race";
|
|
46 CellRendererText raceCell = new CellRendererText ();
|
|
47 raceColumn.PackStart (raceCell, true);
|
|
48 lstRaces.AppendColumn(raceColumn);
|
|
49 raceColumn.SetCellDataFunc(raceCell, new TreeCellDataFunc(RenderRaceName));
|
|
50 ListStore store = new ListStore(typeof(Race));
|
|
51
|
|
52 foreach (Race r in WarFoundryLoader.GetDefault().GetRaces(system))
|
|
53 {
|
|
54 store.AppendValues(r);
|
|
55 }
|
|
56
|
|
57 lstRaces.Model = store;
|
|
58 }
|
|
59
|
|
60 public string Text
|
|
61 {
|
|
62 get { return Title; }
|
|
63 set { Title = value; }
|
|
64 }
|
|
65
|
|
66 private void RenderRaceName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter)
|
|
67 {
|
|
68 Race r = (Race)model.GetValue(iter, 0);
|
|
69 (cell as CellRendererText).Text = r.Name;
|
|
70 }
|
|
71
|
|
72 protected virtual void OnSelectionChanged(object o, EventArgs e)
|
|
73 {
|
|
74 logger.Debug("Selection changed");
|
|
75 setOkayButtonState();
|
|
76 }
|
|
77
|
|
78 private void setOkayButtonState()
|
|
79 {
|
|
80 bttnCreate.Sensitive = (lstRaces.Selection.CountSelectedRows() > 0 && txtArmyName.Text!="" && sbPointsValue.Value > 0);
|
|
81 }
|
|
82
|
|
83 protected virtual void OnCreateClicked (object sender, System.EventArgs e)
|
|
84 {
|
|
85 TreeModel model;
|
|
86 TreeIter iter;
|
|
87 lstRaces.Selection.GetSelected (out model, out iter);
|
|
88 race = (Race) model.GetValue(iter, 0);
|
|
89 armyName = txtArmyName.Text;
|
|
90 pointsValue = (int)sbPointsValue.Value;
|
|
91 Respond(ResponseType.Ok);
|
|
92 }
|
|
93
|
|
94 protected virtual void OnCancelClicked (object sender, System.EventArgs e)
|
|
95 {
|
|
96 Respond(ResponseType.Cancel);
|
|
97 }
|
|
98
|
|
99 protected virtual void OnTextChanged (object sender, System.EventArgs e)
|
|
100 {
|
|
101 setOkayButtonState();
|
|
102 }
|
|
103
|
|
104 protected virtual void OnSpinChangeValue (object o, Gtk.ChangeValueArgs args)
|
|
105 {
|
|
106 setOkayButtonState();
|
|
107 }
|
|
108
|
|
109 protected virtual void OnSpinValueChanged (object sender, System.EventArgs e)
|
|
110 {
|
|
111 setOkayButtonState();
|
|
112 }
|
|
113
|
|
114 public Race SelectedRace
|
|
115 {
|
|
116 get { return race; }
|
|
117 }
|
|
118
|
|
119 public string ArmyName
|
|
120 {
|
|
121 get { return armyName; }
|
|
122 }
|
|
123
|
|
124 public int ArmySize
|
|
125 {
|
|
126 get { return pointsValue; }
|
|
127 }
|
|
128 }
|
|
129 }
|