# HG changeset patch # User IBBoard # Date 1292690571 0 # Node ID 68804784bf6f6b6460bcd6f09a6160ac41b930e0 # Parent 7055b24cfc79058ef4e32852a2933c773acab7c0 Re #86: Complete initial GTK# UI * Add About dialog * Make sure app builds as "WarFoundry-GTK.exe" * Move all UI components to IBBoard.WarFoundry.GUI.GTK namespace diff -r 7055b24cfc79 -r 68804784bf6f App-lrg.png Binary file App-lrg.png has changed diff -r 7055b24cfc79 -r 68804784bf6f FrmAbout.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmAbout.cs Sat Dec 18 16:42:51 2010 +0000 @@ -0,0 +1,35 @@ +// This file (FrmAbout.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2010 IBBoard +// +// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. + +using System; +using Gtk; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAbout : Gtk.Dialog + { + private static FrmAbout frm; + + public static FrmAbout GetForm() + { + if (frm == null) + { + frm = new FrmAbout(); + } + + return frm; + } + + private FrmAbout() + { + this.Build(); + } + + protected virtual void OkayClicked(object sender, System.EventArgs e) + { + Respond(ResponseType.Ok); + } + } +} + diff -r 7055b24cfc79 -r 68804784bf6f FrmMainWindow.cs --- a/FrmMainWindow.cs Tue Nov 23 21:03:46 2010 +0000 +++ b/FrmMainWindow.cs Sat Dec 18 16:42:51 2010 +0000 @@ -3,33 +3,34 @@ // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. using System; -using System.IO; using System.Collections.Generic; using System.Configuration; +using System.IO; +using GLib; using Gtk; using IBBoard; using IBBoard.Commands; +using IBBoard.CustomMath; using IBBoard.GtkSharp; +using IBBoard.GtkSharp.Translatable; using IBBoard.IO; using IBBoard.Lang; using IBBoard.Logging; -using IBBoard.CustomMath; using IBBoard.WarFoundry.API; +using IBBoard.WarFoundry.API.Commands; using IBBoard.WarFoundry.API.Exporters; using IBBoard.WarFoundry.API.Factories; using IBBoard.WarFoundry.API.Factories.Xml; using IBBoard.WarFoundry.API.Objects; -using WFObjects = IBBoard.WarFoundry.API.Objects; -using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.API.Requirements; using IBBoard.WarFoundry.API.Savers; -using IBBoard.WarFoundry.API.Requirements; -using IBBoard.WarFoundry.GTK.Widgets; +using IBBoard.WarFoundry.GUI.GTK.Widgets; using IBBoard.WarFoundry.Plugin.Rollcall; using IBBoard.Xml; using log4net; -using GLib; +using WFObjects = IBBoard.WarFoundry.API.Objects; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { public partial class FrmMainWindow: Gtk.Window { @@ -126,7 +127,7 @@ mainColumn.SetCellDataFunc(mainCell, new TreeCellDataFunc(RenderCategoryTreeObjectName)); treeUnits.Model = new TreeStore(typeof(WarFoundryObject)); logger.Debug("Loading preferences"); - Preferences = new Preferences("WarFoundryGTK"); + Preferences = new Preferences("WarFoundry-GTK"); logger.Debug("Loading translations"); try @@ -149,6 +150,7 @@ WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(OnArmyChanged); Destroyed += new EventHandler(OnWindowDestroyed); //TODO: Translate and subscribe to other events + ControlTranslator.TranslateWidget(this); UnitAddedMethod = new ObjectAddDelegate(OnUnitAdded); UnitRemovedMethod = new ObjectRemoveDelegate(OnUnitRemoved); PointsValueChangedMethod = new DoubleValChangedDelegate(OnPointsValueChanged); @@ -368,7 +370,7 @@ } while (model.IterNext(ref iter)); } - + private void RemoveUnitTab(WFObjects.Unit unit) { UnitDisplayWidget widget = DictionaryUtils.GetValue(unitToWidgetMap, unit); @@ -720,7 +722,7 @@ saveArmyButton.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy != null; miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy != null; } - + private void RedoMenuActivated(object sender, EventArgs e) { if (sender is MenuItem) @@ -855,7 +857,7 @@ return SaveArmyToPath(WarFoundryCore.CurrentArmy, filePath); } - + private bool SaveArmyToPath(Army army, string filePath) { bool success = false; @@ -908,12 +910,12 @@ { if (dr == ResponseType.No) { - //They don't care about their changes + //They don't care about their changes canClose = true; } else { - //Assume cancel or close with the X button + //Assume cancel or close with the X button canClose = false; } @@ -1000,7 +1002,7 @@ ShowUnitWidget(unit); } } - + private void ShowUnitWidget(WFObjects.Unit unit) { UnitDisplayWidget widget; @@ -1090,7 +1092,7 @@ OnTreeUnitsPopupMenu(o, null); } } - + protected virtual void NotebookPageRemoved(object o, Gtk.RemovedArgs args) { Widget widget = args.Widget; @@ -1100,7 +1102,12 @@ unitToWidgetMap.Remove(((UnitDisplayWidget)widget).Unit); } } - - + + protected virtual void HelpAboutActivated(object sender, System.EventArgs e) + { + FrmAbout form = FrmAbout.GetForm(); + form.Run(); + form.Hide(); + } } } diff -r 7055b24cfc79 -r 68804784bf6f FrmNewArmy.cs --- a/FrmNewArmy.cs Tue Nov 23 21:03:46 2010 +0000 +++ b/FrmNewArmy.cs Sat Dec 18 16:42:51 2010 +0000 @@ -12,7 +12,7 @@ using IBBoard.WarFoundry.GUI.GTK.Util; using IBBoard.GtkSharp.Translatable; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { public partial class FrmNewArmy : TranslatableDialog, ITranslatable { @@ -20,7 +20,7 @@ private Race race; private string armyName; private int pointsValue; - + public FrmNewArmy(GameSystem gameSystem) { this.Build(); @@ -46,13 +46,13 @@ ComboBoxUtils.SelectIndex(systemCombo, 0); } } - + protected virtual void OnSelectionChanged(object o, EventArgs e) { logger.Debug("Race selection changed"); SetOkayButtonState(); } - + private void SetOkayButtonState() { bttnCreate.Sensitive = (lstRaces.Selection.CountSelectedRows() == 1 && txtArmyName.Text != "" && sbPointsValue.Value > 0); @@ -88,7 +88,7 @@ { SetOkayButtonState(); } - + protected virtual void OnSystemComboChanged(object sender, System.EventArgs e) { GameSystem system = ComboBoxUtils.GetSelectedItem(systemCombo); @@ -96,7 +96,7 @@ logger.Debug("System selection changed: " + (system == null ? "null" : system.Name)); SetOkayButtonState(); } - + private void SetRaces(GameSystem system) { ListStore store = new ListStore(typeof(Race)); @@ -111,17 +111,17 @@ lstRaces.Model = store; } - + public Race SelectedRace { get { return race; } } - + public string ArmyName { get { return armyName; } } - + public int ArmySize { get { return pointsValue; } diff -r 7055b24cfc79 -r 68804784bf6f FrmNewUnit.cs --- a/FrmNewUnit.cs Tue Nov 23 21:03:46 2010 +0000 +++ b/FrmNewUnit.cs Sat Dec 18 16:42:51 2010 +0000 @@ -10,14 +10,14 @@ using IBBoard.WarFoundry.API.Requirements; using log4net; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { public partial class FrmNewUnit : TranslatableDialog { private ILog logger = LogManager.GetLogger(typeof(FrmNewUnit)); - private UnitType unitType; + private UnitType unitType; private Army unitArmy; - + public FrmNewUnit(Race race, Category cat, Army army) { this.Build(); @@ -42,23 +42,23 @@ lstUnitTypes.Model = store; lstUnitTypes.Selection.Changed += new EventHandler(OnSelectionChanged); } - + private void RenderUnitTypeName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { UnitType type = (UnitType)model.GetValue(iter, 0); (cell as CellRendererText).Text = type.Name; } - + protected virtual void OnSelectionChanged(object o, EventArgs e) { SetSelectUnitEnabledVal(); } - + public UnitType SelectedUnit { get { return unitType; } } - + private UnitType GetSelectedUnitType() { TreeModel model; @@ -73,7 +73,7 @@ return toReturn; } - + private void SetSelectUnitEnabledVal() { UnitType type = GetSelectedUnitType(); diff -r 7055b24cfc79 -r 68804784bf6f IBBoard.WarFoundry.GUI.GTK.csproj --- a/IBBoard.WarFoundry.GUI.GTK.csproj Tue Nov 23 21:03:46 2010 +0000 +++ b/IBBoard.WarFoundry.GUI.GTK.csproj Sat Dec 18 16:42:51 2010 +0000 @@ -9,8 +9,9 @@ WinExe Properties IBBoard.WarFoundry.GUI.GTK - IBBoard.WarFoundry.GTK.FrmMainWindow + IBBoard.WarFoundry.GUI.GTK.FrmMainWindow App.ico + WarFoundry-GTK true @@ -20,7 +21,6 @@ DEBUG;TRACE prompt 4 - WarFoundryGTK pdbonly @@ -29,7 +29,6 @@ TRACE prompt 4 - IBBoard.WarFoundry.GUI.GTK