Mercurial > repos > IBDev-IBBoard.WarFoundry.GUI.GTK
changeset 113:4a33b3012100 WarFoundry_v0.1RC1
* Tag v0.1RC1 release
no-open-ticket
line wrap: on
line diff
--- a/AssemblyInfo.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/AssemblyInfo.cs Mon Jan 17 19:43:47 2011 +0000 @@ -16,7 +16,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("IBBoard.WarFoundry.GTK")] -[assembly: AssemblyCopyright("IBBoard 2009")] +[assembly: AssemblyCopyright("IBBoard 2009-2011")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -27,7 +27,7 @@ // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): -[assembly: AssemblyVersion("1.0.0.*")] +[assembly: AssemblyVersion("0.0.*")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmAbout.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,57 @@ +// 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; +using IBBoard.GtkSharp.Translatable; +using IBBoard.Lang; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAbout : TranslatableDialog + { + private static FrmAbout frm; + + public static FrmAbout GetForm() + { + if (frm == null) + { + frm = new FrmAbout(); + } + + return frm; + } + + private FrmAbout() + { + this.Build(); + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + protected virtual void CloseClicked(object sender, System.EventArgs e) + { + Respond(ResponseType.Close); + } + + protected virtual void BttnCreditsClicked(object sender, System.EventArgs e) + { + FrmAboutCredits credits = new FrmAboutCredits(); + credits.Run(); + credits.Hide(); + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmAboutCredits.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,31 @@ +// This file (FrmAboutCredits.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 IBBoard.GtkSharp.Translatable; +using IBBoard.Lang; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAboutCredits : TranslatableDialog + { + public FrmAboutCredits() + { + this.Build(); + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmAddEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,274 @@ +// This file (FrmAddEquipment.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; +using IBBoard.GtkSharp; +using IBBoard.GtkSharp.Translatable; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using IBBoard.WarFoundry.GUI.GTK.Util; +using log4net; +using IBBoard.Lang; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAddEquipment : TranslatableDialog, IAddEquipmentUI + { + private static ILog log = LogManager.GetLogger(typeof(FrmAddEquipment)); + + public event SingleArgMethodInvoker<UnitEquipmentItem> UnitEquipmentItemChoiceChanged; + public event MethodInvoker UnitEquipmentAmountTypeChanged; + public event MethodInvoker UnitEquipmentAmountChanged; + + private bool isRatioLimited; + + public FrmAddEquipment() + { + this.Build(); + lstEquipment.Selection.Changed += OnSelectionChanged; + TreeViewColumn equipColumn = new TreeViewColumn(); + CellRendererText equipCell = new CellRendererText(); + equipColumn.PackStart(equipCell, true); + equipColumn.SetCellDataFunc(equipCell, GtkWarFoundryUtil.RenderWarFoundryObjectName); + lstEquipment.AppendColumn(equipColumn); + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + protected override void Translate() + { + base.Translate(); + lstEquipment.Columns[0].Title = Translation.GetTranslation("frmAddEquipmentColumnTitle", "equipment"); + } + + private void OnUnitEquipmentAmountChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountChanged(); + } + } + + private void OnUnitEquipmentAmountTypeChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountTypeChanged(); + } + } + + protected void OnSelectionChanged(object o, EventArgs e) + { + if (UnitEquipmentItemChoiceChanged != null) + { + UnitEquipmentItemChoiceChanged(SelectedUnitEquipmentItem); + } + } + + public void SetUnitEquipmentItems(UnitEquipmentItem[] items) + { + ListStore store = new ListStore(typeof(UnitEquipmentItem)); + + foreach (UnitEquipmentItem equipItem in items) + { + store.AppendValues(equipItem); + } + + lstEquipment.Model = store; + } + + public void SetUnitEquipmentLimits(bool isRatioLimit, double minPercent, double maxPercent, int minNumber, int maxNumber) + { + log.DebugFormat("IsRatio? {0}. Limits: {1}->{2}, {3}%->{4}%", isRatioLimit, minNumber, maxNumber, minPercent, maxPercent); + numericAmount.SetRange(minNumber, maxNumber); + percentageAmount.SetRange(minPercent, maxPercent); + + if (isRatioLimit) + { + if (minPercent == 100) + { + rbEquipAll.Active = true; + } + else + { + rbEquipPercent.Active = true; + } + } + else + { + rbEquipNumeric.Active = true; + } + + isRatioLimited = isRatioLimit; + } + + public void SetUnitEquipmentLimitsEnabled(bool isEnabled) + { + SetNumericAmountEnabledState(isEnabled); + SetPercentageAmountEnabledState(isEnabled); + } + + public bool ShowControl() + { + int result = Run(); + bool okayClicked = (result == (int)ResponseType.Ok); + this.Hide(); + return okayClicked; + } + + protected virtual void CancelButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Cancel clicked"); + Respond(ResponseType.Cancel); + } + + protected virtual void OkayButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Okay clicked"); + Respond(ResponseType.Ok); + } + + public void SetOkayEnabledState(bool enabled) + { + bttnOkay.Sensitive = enabled; + } + + protected virtual void SpinButtonValueChanged(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountChanged(); + } + + protected virtual void RadioButtonClicked(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountTypeChanged(); + } + + public void SetNumericAmountEnabledState(bool enabled) + { + double minPercent = GetMinPercentage(); + rbEquipNumeric.Sensitive = enabled && !(isRatioLimited && minPercent == 100); + numericAmount.Sensitive = rbEquipNumeric.Sensitive; + } + + public void SetPercentageAmountEnabledState(bool enabled) + { + if (enabled) + { + double minPercentage = GetMinPercentage(); + rbEquipPercent.Sensitive = isRatioLimited && minPercentage != 100; + percentageAmount.Sensitive = rbEquipPercent.Sensitive; + double maxPercentage = GetMaxPercentage(); + rbEquipAll.Sensitive = isRatioLimited && maxPercentage == 100; + lblEquipAll.Sensitive = rbEquipAll.Sensitive; + } + else + { + rbEquipPercent.Sensitive = false; + percentageAmount.Sensitive = false; + rbEquipAll.Sensitive = false; + lblEquipAll.Sensitive = false; + } + } + + private double GetMaxPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return max; + } + + private double GetMinPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return min; + } + + public void ListenToWidgets() + { + rbEquipAll.Clicked += RadioButtonClicked; + rbEquipNumeric.Clicked += RadioButtonClicked; + rbEquipPercent.Clicked += RadioButtonClicked; + numericAmount.ValueChanged += SpinButtonValueChanged; + percentageAmount.ValueChanged += SpinButtonValueChanged; + lstEquipment.Selection.Changed += OnSelectionChanged; + } + + public void IgnoreWidgets() + { + rbEquipAll.Clicked -= RadioButtonClicked; + rbEquipNumeric.Clicked -= RadioButtonClicked; + rbEquipPercent.Clicked -= RadioButtonClicked; + numericAmount.ValueChanged -= SpinButtonValueChanged; + percentageAmount.ValueChanged -= SpinButtonValueChanged; + lstEquipment.Selection.Changed -= OnSelectionChanged; + } + + public UnitEquipmentItem SelectedUnitEquipmentItem + { + get + { + return (UnitEquipmentItem)TreeUtils.GetSelectedItem(lstEquipment); + } + } + + public bool IsRatioEquipmentAmount + { + get + { + return !rbEquipNumeric.Active; + } + } + + public int EquipmentNumericAmount + { + get + { + return (int)numericAmount.Value; + } + + set + { + numericAmount.Value = value; + } + } + + public double EquipmentPercentageAmount + { + get + { + double percent; + + if (rbEquipAll.Active) + { + percent = 100; + } + else + { + percent = percentageAmount.Value; + } + + return percent; + } + + set + { + percentageAmount.Value = value; + } + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmEditEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,236 @@ +// This file (FrmEditEquipment.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 IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using IBBoard.WarFoundry.API.Objects; +using Gtk; +using IBBoard.WarFoundry.GUI.GTK.Util; +using IBBoard.GtkSharp; +using log4net.Repository.Hierarchy; +using log4net; +using IBBoard.GtkSharp.Translatable; +using IBBoard.Lang; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmEditEquipment : TranslatableDialog, IEditEquipmentUI + { + private static ILog log = LogManager.GetLogger(typeof(FrmAddEquipment)); + + public event SingleArgMethodInvoker<UnitEquipmentItem> UnitEquipmentItemChoiceChanged; + public event MethodInvoker UnitEquipmentAmountTypeChanged; + public event MethodInvoker UnitEquipmentAmountChanged; + + private bool isRatioLimited; + + public FrmEditEquipment() + { + this.Build(); + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + public void ListenToWidgets() + { + rbEquipAll.Clicked += RadioButtonClicked; + rbEquipNumeric.Clicked += RadioButtonClicked; + rbEquipPercent.Clicked += RadioButtonClicked; + numericAmount.ValueChanged += SpinButtonValueChanged; + percentageAmount.ValueChanged += SpinButtonValueChanged; + } + + public void IgnoreWidgets() + { + rbEquipAll.Clicked -= RadioButtonClicked; + rbEquipNumeric.Clicked -= RadioButtonClicked; + rbEquipPercent.Clicked -= RadioButtonClicked; + numericAmount.ValueChanged -= SpinButtonValueChanged; + percentageAmount.ValueChanged -= SpinButtonValueChanged; + } + + private void OnUnitEquipmentAmountChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountChanged(); + } + } + + private void OnUnitEquipmentAmountTypeChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountTypeChanged(); + } + } + + public void SetUnitEquipmentLimits(bool isRatioLimit, double minPercent, double maxPercent, int minNumber, int maxNumber) + { + log.DebugFormat("IsRatio? {0}. Limits: {1}->{2}, {3}%->{4}%", isRatioLimit, minNumber, maxNumber, minPercent, maxPercent); + numericAmount.SetRange(minNumber, maxNumber); + percentageAmount.SetRange(minPercent, maxPercent); + SetEquipmentAmountType(isRatioLimit); + isRatioLimited = isRatioLimit; + } + + public void SetEquipmentAmountType(bool isRatioAmount) + { + if (isRatioAmount) + { + if (percentageAmount.Value == 100) + { + rbEquipAll.Active = true; + } + else + { + rbEquipPercent.Active = true; + } + } + else + { + rbEquipNumeric.Active = true; + } + } + + public void SetUnitEquipmentLimitsEnabled(bool isEnabled) + { + SetNumericAmountEnabledState(isEnabled); + SetPercentageAmountEnabledState(isEnabled); + } + + public bool ShowControl() + { + int result = Run(); + bool okayClicked = (result == (int)ResponseType.Ok); + this.Hide(); + return okayClicked; + } + + protected virtual void CancelButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Cancel clicked"); + Respond(ResponseType.Cancel); + } + + protected virtual void OkayButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Okay clicked"); + Respond(ResponseType.Ok); + } + + public void SetOkayEnabledState(bool enabled) + { + bttnOkay.Sensitive = enabled; + } + + protected virtual void SpinButtonValueChanged(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountChanged(); + } + + protected virtual void RadioButtonClicked(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountTypeChanged(); + } + + public void SetNumericAmountEnabledState(bool enabled) + { + double minPercent = GetMinPercentage(); + rbEquipNumeric.Sensitive = enabled && !(isRatioLimited && minPercent == 100); + numericAmount.Sensitive = rbEquipNumeric.Sensitive; + } + + public void SetPercentageAmountEnabledState(bool enabled) + { + if (enabled) + { + double minPercentage = GetMinPercentage(); + rbEquipPercent.Sensitive = isRatioLimited && minPercentage != 100; + percentageAmount.Sensitive = rbEquipPercent.Sensitive; + double maxPercentage = GetMaxPercentage(); + rbEquipAll.Sensitive = isRatioLimited && maxPercentage == 100; + lblEquipAll.Sensitive = rbEquipAll.Sensitive; + } + else + { + rbEquipPercent.Sensitive = false; + percentageAmount.Sensitive = false; + rbEquipAll.Sensitive = false; + lblEquipAll.Sensitive = false; + } + } + + private double GetMaxPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return max; + } + + private double GetMinPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return min; + } + + public bool IsRatioEquipmentAmount + { + get + { + return !rbEquipNumeric.Active; + } + } + + public int EquipmentNumericAmount + { + get + { + return (int)numericAmount.Value; + } + + set + { + numericAmount.Value = value; + } + } + + public double EquipmentPercentageAmount + { + get + { + double percent; + + if (rbEquipAll.Active) + { + percent = 100; + } + else + { + percent = percentageAmount.Value; + } + + return percent; + } + + set + { + percentageAmount.Value = value; + } + } + } +} +
--- a/FrmMainWindow.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/FrmMainWindow.cs Mon Jan 17 19:43:47 2011 +0000 @@ -3,69 +3,95 @@ // 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 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 WFObjects = IBBoard.WarFoundry.API.Objects; +using System.Collections; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { - public partial class FrmMainWindow: Gtk.Window + public partial class FrmMainWindow: TranslatableWindowWithActions { private static readonly string AppTitle = "WarFoundry"; private const int CATEGORY_BUTTON_SEPARATOR_INDEX = 6; - private Preferences preferences; private ILog logger = LogManager.GetLogger(typeof(FrmMainWindow)); - private CommandStack commandStack; - private Dictionary<ToolButton, Category> categoryMap = new Dictionary<ToolButton, Category>(); - private Dictionary<IBBoard.WarFoundry.API.Objects.Unit, UnitDisplayWidget> unitToWidgetMap = new Dictionary<IBBoard.WarFoundry.API.Objects.Unit,UnitDisplayWidget>(); - + private Dictionary<WFObjects.Unit, UnitDisplayWidget> unitToWidgetMap = new Dictionary<WFObjects.Unit,UnitDisplayWidget>(); private ObjectAddDelegate UnitAddedMethod; private ObjectRemoveDelegate UnitRemovedMethod; private DoubleValChangedDelegate PointsValueChangedMethod; private FailedUnitRequirementDelegate FailedUnitRequirementMethod; private StringValChangedDelegate UnitNameChangedMethod; - private GameSystem system; private string loadedArmyPath; - private MenuToolButton undoMenuButton, redoMenuButton; - public static void Main (string[] args) + public static void Main(string[] args) { try { + ExceptionManager.UnhandledException += HandleUnhandledException; Application.Init(); FrmMainWindow win = new FrmMainWindow(args); win.Show(); Application.Run(); LogManager.GetLogger(typeof(FrmMainWindow)).Debug("Application ended"); } - catch(Exception ex) + catch (Exception ex) + { + HandleUnhandledException(ex); + } + } + + private static void HandleUnhandledException(UnhandledExceptionArgs args) + { + object obj = args.ExceptionObject; + Exception ex = null; + + if (obj is Exception) { - LogManager.GetLogger(typeof(FrmMainWindow)).Fatal("("+ex.GetType().Name+") "+ex.Message + Environment.NewLine + ex.StackTrace); + ex = (Exception)obj; + } + else + { + ex = new Exception("GLib returned unexpected exception object type " + obj.GetType()); } + + HandleUnhandledException(ex); + } + + private static void HandleUnhandledException(Exception ex) + { + string msg = String.Format("({0}) {1}", ex.GetType().FullName, ex.Message); + LogManager.GetLogger(typeof(FrmMainWindow)).Fatal(msg, ex); + MessageDialog dialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, false, "An unhandled exception occurred. Please check the log for more details."); + dialog.Run(); + dialog.Hide(); + dialog.Dispose(); } public FrmMainWindow() : this(new string[0]) @@ -73,35 +99,33 @@ //Do nothing extra } - public FrmMainWindow (string[] args): base (Gtk.WindowType.Toplevel) + public FrmMainWindow(string[] args) : base(Gtk.WindowType.Toplevel) { logger.Info("Opening FrmMainWindow"); - Build (); + Build(); //Replace the undo/redo buttons with menu versions, which Monodevelop's GUI editor doesn't currently support redoMenuButton = new MenuToolButton("gtk-redo"); - redoMenuButton.Label = "Redo"; - redoMenuButton.TooltipText = "Redo"; - redoMenuButton.Clicked+= redoTBButtonActivated; + redoMenuButton.Name = "bttnRedo"; + redoMenuButton.Clicked += redoTBButtonActivated; + redoMenuButton.Sensitive = false; toolbar.Insert(redoMenuButton, CATEGORY_BUTTON_SEPARATOR_INDEX); undoMenuButton = new MenuToolButton("gtk-undo"); - undoMenuButton.Label = "Undo"; - undoMenuButton.TooltipText = "Undo"; - undoMenuButton.Clicked+= undoTBButtonActivated; + undoMenuButton.Name = "bttnUndo"; + undoMenuButton.Clicked += undoTBButtonActivated; + undoMenuButton.Sensitive = false; toolbar.Insert(undoMenuButton, CATEGORY_BUTTON_SEPARATOR_INDEX); - toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX-1]); - toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX-2]); + toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX - 1]); + toolbar.Remove(toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX - 2]); toolbar.ShowAll(); - Title = AppTitle; - TreeViewColumn mainColumn = new TreeViewColumn (); - mainColumn.Title = "Army Categories"; - CellRendererText mainCell = new CellRendererText (); - mainColumn.PackStart (mainCell, true); + TreeViewColumn mainColumn = new TreeViewColumn(); + CellRendererText mainCell = new CellRendererText(); + mainColumn.PackStart(mainCell, true); treeUnits.AppendColumn(mainColumn); 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 @@ -119,11 +143,12 @@ logger.Debug("Initialising"); commandStack = new CommandStack(); - commandStack.CommandStackUpdated+=new MethodInvoker(commandStack_CommandStackUpdated); - WarFoundryCore.GameSystemChanged+= new GameSystemChangedDelegate(OnGameSystemChanged); - WarFoundryCore.ArmyChanged+= new ArmyChangedDelegate(OnArmyChanged); - Destroyed+= new EventHandler(OnWindowDestroyed); - //TODO: Translate and subscribe to other events + commandStack.CommandStackUpdated += new MethodInvoker(commandStack_CommandStackUpdated); + WarFoundryCore.GameSystemChanged += new GameSystemChangedDelegate(OnGameSystemChanged); + WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(OnArmyChanged); + Destroyed += new EventHandler(OnWindowDestroyed); + Translation.TranslationChanged += Retranslate; + Translate(); UnitAddedMethod = new ObjectAddDelegate(OnUnitAdded); UnitRemovedMethod = new ObjectRemoveDelegate(OnUnitRemoved); PointsValueChangedMethod = new DoubleValChangedDelegate(OnPointsValueChanged); @@ -159,10 +184,14 @@ WarFoundryCore.CurrentArmy = (Army)loadedObject; logger.InfoFormat("Loaded army from {0}", file.FullName); } - else if (loadedObject is GameSystem) + else { - WarFoundryCore.CurrentGameSystem = (GameSystem)loadedObject; - logger.InfoFormat("Loaded game system from {0}", file.FullName); + if (loadedObject is GameSystem) + { + WarFoundryCore.CurrentGameSystem = (GameSystem)loadedObject; + logger.InfoFormat("Loaded game system from {0}", file.FullName); + } + } } } @@ -176,12 +205,12 @@ { string gameSystemID = Preferences.GetStringProperty("currSystem"); - if (gameSystemID!=null && !"".Equals(gameSystemID)) + if (gameSystemID != null && !"".Equals(gameSystemID)) { logger.Debug("Attempting to load current game system from properties"); GameSystem sys = WarFoundryLoader.GetDefault().GetGameSystem(gameSystemID); - if (sys!=null) + if (sys != null) { WarFoundryCore.CurrentGameSystem = sys; logger.InfoFormat("Loaded game system {0} from properties", gameSystemID); @@ -190,9 +219,28 @@ } } - private void FileLoadingFinished (List<FileLoadFailure> failures) + protected override void Translate() + { + base.Translate(); + SetAppTitle(); + treeUnits.GetColumn(0).Title = Translation.GetTranslation("armyCategoryColumnTitle", "categories"); + RebuildUndoRedoMenus(); + } + + private void Retranslate() { - foreach(FileLoadFailure failure in failures) + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + private void FileLoadingFinished(List<FileLoadFailure> failures) + { + foreach (FileLoadFailure failure in failures) { logger.Warn("Failed to load " + failure.FailedFile.FullName + ": " + failure.Message); } @@ -218,11 +266,15 @@ (cell as CellRendererText).Text = name; } - else if (o is IBBoard.WarFoundry.API.Objects.Unit) + else { - IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o; - string name = Translation.GetTranslation("unitTreeCatName", "{0} - {1}pts", u.Name, u.Points); - (cell as CellRendererText).Text = name; + if (o is WFObjects.Unit) + { + WFObjects.Unit u = (WFObjects.Unit)o; + string name = Translation.GetTranslation("unitTreeCatName", "{0} - {1}pts", u.Name, u.Points); + (cell as CellRendererText).Text = name; + } + } } @@ -234,24 +286,33 @@ private void OnUnitNameChanged(WarFoundryObject val, string oldValue, string newValue) { - IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)val; + WFObjects.Unit unit = (WFObjects.Unit)val; + logger.DebugFormat("Unit name changed for {0} - now called {1}", unit.ID, unit.Name); UnitDisplayWidget widget; unitToWidgetMap.TryGetValue(unit, out widget); - - if (widget!=null) + + if (widget != null) { - unitsNotebook.SetTabLabel(widget, NotebookUtil.CreateNotebookTabLabelWithClose(unitsNotebook, widget, newValue)); + unitsNotebook.SetTabLabel(widget, NotebookUtil.CreateNotebookTabLabelWithClose(unitsNotebook, widget, unit.Name)); } + + treeUnits.QueueDraw(); } private void OnUnitAdded(WarFoundryObject val) { - IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)val; - unit.NameChanged+= UnitNameChangedMethod; + WFObjects.Unit unit = (WFObjects.Unit)val; + unit.NameChanged += UnitNameChangedMethod; + unit.PointsValueChanged += HandleUnitPointsValueChanged; AddUnitToTree(unit); } - private void AddUnitToTree(IBBoard.WarFoundry.API.Objects.Unit unit) + private void HandleUnitPointsValueChanged(WarFoundryObject obj, double oldValue, double newValue) + { + treeUnits.QueueDraw(); + } + + private void AddUnitToTree(WFObjects.Unit unit) { TreeStore model = (TreeStore)treeUnits.Model; TreeIter iter; @@ -278,14 +339,13 @@ private void OnUnitRemoved(WarFoundryObject obj) { - IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)obj; - unit.NameChanged-= UnitNameChangedMethod; + WFObjects.Unit unit = (WFObjects.Unit)obj; + unit.NameChanged -= UnitNameChangedMethod; RemoveUnitFromTree(unit); - - //See if unit has a tab open and close it if it does + RemoveUnitTab(unit); } - private void RemoveUnitFromTree(IBBoard.WarFoundry.API.Objects.Unit unit) + private void RemoveUnitFromTree(WFObjects.Unit unit) { TreeStore model = (TreeStore)treeUnits.Model; TreeIter iter; @@ -328,9 +388,19 @@ while (model.IterNext(ref iter)); } + private void RemoveUnitTab(WFObjects.Unit unit) + { + UnitDisplayWidget widget = DictionaryUtils.GetValue(unitToWidgetMap, unit); + + if (widget != null) + { + unitsNotebook.Remove(widget); + } + } + private void OnPointsValueChanged(WarFoundryObject obj, double before, double after) { - //Set points in panel + SetPointsPanelText(); } private void OnFailedUnitRequirement(List<FailedUnitRequirement> failedRequirement) @@ -344,14 +414,9 @@ set { preferences = value; } } - /*public AbstractNativeWarFoundryFactory Factory + protected void OnDeleteEvent(object sender, DeleteEventArgs a) { - get { return WarFoundryFactoryFactory.GetFactoryFactory().GetFactory(Constants.ExecutablePath, factoryType); } - }*/ - - protected void OnDeleteEvent (object sender, DeleteEventArgs a) - { - Application.Quit (); + Application.Quit(); a.RetVal = true; } @@ -367,6 +432,7 @@ protected virtual void OnReloadFilesActivated(object sender, System.EventArgs e) { + WarFoundryLoader.GetDefault().LoadFiles(); } protected virtual void OnSaveArmyAsActivated(object sender, System.EventArgs e) @@ -393,20 +459,21 @@ { if (sender is ToolButton) { - Category cat = null; - categoryMap.TryGetValue((ToolButton)sender, out cat); + ToolButton toolButton = (ToolButton)sender; + Category cat = (Category)toolButton.Data["Category"]; - if (cat!=null) + if (cat != null) { logger.DebugFormat("Show FrmNewUnit for {0}", cat.Name); FrmNewUnit newUnit = new FrmNewUnit(WarFoundryCore.CurrentArmy.Race, cat, WarFoundryCore.CurrentArmy); ResponseType response = (ResponseType)newUnit.Run(); newUnit.Hide(); - if (response==ResponseType.Ok) + if (response == ResponseType.Ok) { CreateAndAddUnitCommand cmd = new CreateAndAddUnitCommand(newUnit.SelectedUnit, WarFoundryCore.CurrentArmy.GetCategory(cat)); commandStack.Execute(cmd); + ShowUnitWidget(cmd.Unit); } newUnit.Dispose(); @@ -421,17 +488,21 @@ private void SetAppTitle() { - if (WarFoundryCore.CurrentArmy!=null) + if (WarFoundryCore.CurrentArmy != null) { Title = AppTitle + " - " + WarFoundryCore.CurrentGameSystem.Name + " - " + WarFoundryCore.CurrentArmy.Name; } - else if (WarFoundryCore.CurrentGameSystem!=null) - { - Title = AppTitle + " - " + WarFoundryCore.CurrentGameSystem.Name; - } else { - Title = AppTitle; + if (WarFoundryCore.CurrentGameSystem != null) + { + Title = AppTitle + " - " + WarFoundryCore.CurrentGameSystem.Name; + } + else + { + Title = AppTitle; + } + } } @@ -441,7 +512,7 @@ SetAppTitle(); RemoveCategoryButtons(); - if (system!=null) + if (system != null) { AddCategoryButtons(system.Categories); } @@ -453,12 +524,12 @@ SetAppTitle(); SetArmyTree(newArmy); - if (oldArmy!=null) + if (oldArmy != null) { - oldArmy.UnitAdded-= UnitAddedMethod; - oldArmy.UnitRemoved-= UnitRemovedMethod; - oldArmy.PointsValueChanged-= PointsValueChangedMethod; - oldArmy.FailedRequirement-=FailedUnitRequirementMethod; + oldArmy.UnitAdded -= UnitAddedMethod; + oldArmy.UnitRemoved -= UnitRemovedMethod; + oldArmy.PointsValueChanged -= PointsValueChangedMethod; + oldArmy.FailedRequirement -= FailedUnitRequirementMethod; } unitToWidgetMap.Clear(); @@ -468,16 +539,16 @@ unitsNotebook.RemovePage(0); } - if (newArmy==null) + if (newArmy == null) { DisableCategoryButtons(); } else { - newArmy.UnitAdded+= UnitAddedMethod; - newArmy.UnitRemoved+= UnitRemovedMethod; - newArmy.PointsValueChanged+= PointsValueChangedMethod; - newArmy.FailedRequirement+=FailedUnitRequirementMethod; + newArmy.UnitAdded += UnitAddedMethod; + newArmy.UnitRemoved += UnitRemovedMethod; + newArmy.PointsValueChanged += PointsValueChangedMethod; + newArmy.FailedRequirement += FailedUnitRequirementMethod; //TODO: Clear all buttons EnableCategoryButtons(); @@ -488,13 +559,15 @@ } } - miCloseArmy.Sensitive = newArmy!=null; - miSaveArmyAs.Sensitive = newArmy!=null; - miExportArmy.Sensitive = newArmy!=null; + bool nonNullNewArmy = (newArmy != null); + miCloseArmy.Sensitive = nonNullNewArmy; + miSaveArmyAs.Sensitive = nonNullNewArmy; + miExportArmyAs.Sensitive = nonNullNewArmy; + hpaned2.Visible = nonNullNewArmy; loadedArmyPath = null; //New army has no changes, so we can't save it miSaveArmy.Sensitive = false; - saveArmyButton.Sensitive = false; + bttnSaveArmy.Sensitive = false; CommandStack.Reset(); SetPointsPanelText(); @@ -507,7 +580,7 @@ store.Clear(); TreeIter iter; - if (army!=null) + if (army != null) { logger.Debug("Loading in categories to tree"); @@ -516,7 +589,7 @@ logger.DebugFormat("Append category {0}", cat.Name); iter = store.AppendValues(cat); - foreach (IBBoard.WarFoundry.API.Objects.Unit unit in cat.GetUnits()) + foreach (WFObjects.Unit unit in cat.GetUnits()) { store.AppendValues(iter, unit); } @@ -539,7 +612,7 @@ private void SetCategoryButtonsSensitive(bool state) { int toolbarButtonCount = toolbar.Children.Length - 1; - logger.Debug("Last button index: "+toolbarButtonCount); + logger.Debug("Last button index: " + toolbarButtonCount); for (int i = toolbarButtonCount; i > CATEGORY_BUTTON_SEPARATOR_INDEX; i--) { @@ -556,13 +629,11 @@ { toolbar.Remove(toolbar.Children[i]); } - - categoryMap.Clear(); } private void AddCategoryButtons(Category[] cats) { - if (cats!=null && cats.Length > 0) + if (cats != null && cats.Length > 0) { logger.DebugFormat("Toolbar button count: {0}. Adding {1} categories.", toolbar.Children.Length, cats.Length); @@ -570,22 +641,28 @@ { ToolButton button = new ToolButton("gtk-add"); button.Label = cat.Name; - button.TooltipText = "Add unit from "+cat.Name; - //TODO: See if we can associate data in some way, the same as we can with SWF. For now we just use the map. - categoryMap.Add(button, cat); - button.Clicked+= new System.EventHandler(OnAddUnitActivated); + button.TooltipText = Translation.GetTranslation("bttnCreateFromCat", "{0}", cat.Name); + button.Data["Category"] = cat; + button.Clicked += new System.EventHandler(OnAddUnitActivated); toolbar.Insert(button, -1); } } - toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX].Visible = cats!=null && cats.Length>0; + toolbar.Children[CATEGORY_BUTTON_SEPARATOR_INDEX].Visible = cats != null && cats.Length > 0; toolbar.ShowAll(); } private void SetPointsPanelText() { - //TODO: Set the points value in the status bar + if (WarFoundryCore.CurrentArmy != null) + { + lblTotalPoints.Text = Translation.GetTranslation("statusPanelPoints", "{0}pts of {1} pts", WarFoundryCore.CurrentArmy.Points, WarFoundryCore.CurrentArmy.MaxPoints); + } + else + { + lblTotalPoints.Text = ""; + } } private void commandStack_CommandStackUpdated() @@ -594,85 +671,115 @@ miUndo.Sensitive = undoMenuButton.Sensitive; redoMenuButton.Sensitive = commandStack.CanRedo(); miRedo.Sensitive = redoMenuButton.Sensitive; + + RebuildUndoRedoMenus(); + + bttnSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy != null; + miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy != null; + } + + private void RebuildUndoRedoMenus() + { int redoLength = commandStack.RedoLength; - //TODO: Build menus for undo/redo and find way of adding tooltips - /*int maxRedo = Math.Min(10, redoLength); - MenuItem[] menuItems = null; - + int maxRedo = Math.Min(10, redoLength); + if (redoLength > 0) { - menuItems = new MenuItem[maxRedo]; + Menu menu = new Menu(); Command com; MenuItem mi; - + for (int i = 0; i < maxRedo; i++) { - com = commandStack.PeekRedoCommand(i+1); - + com = commandStack.PeekRedoCommand(i + 1); + if (com == null) { break; } - + mi = new MenuItem(com.Description); - mi.Click+=new EventHandler(redoMenu_Click); - menuItems[i] = mi; + mi.Activated += new EventHandler(RedoMenuActivated); + menu.Append(mi); } + + menu.ShowAll(); + redoMenuButton.Menu = menu; } - - redoMenu.MenuItems.Clear(); - - if (menuItems!=null && menuItems[0]!=null) + else { - bttnRedo.ToolTipText = menuItems[0].Text; - redoMenu.MenuItems.AddRange(menuItems); - }*/ - //TODO: Put above code back when we have a dropdown version of the redo button - if (redoLength > 0) - { - //redoMenuButton.Tooltip = CommandStack.PeekRedoCommand().Description; + redoMenuButton.Menu = null; } - + int undoLength = commandStack.UndoLength; - /*int maxUndo = Math.Min(10, undoLength); - MenuItem[] menuItemsUndo = null; - + int maxUndo = Math.Min(10, undoLength); + if (undoLength > 0) { - menuItemsUndo = new MenuItem[maxUndo]; + Menu menu = new Menu(); Command com; MenuItem mi; - + for (int i = 0; i < maxUndo; i++) { - com = commandStack.PeekUndoCommand(i+1); - + com = commandStack.PeekUndoCommand(i + 1); + if (com == null) { break; } - + mi = new MenuItem(com.UndoDescription); - mi.Click+=new EventHandler(undoMenu_Click); - menuItemsUndo[i] = mi; + mi.Activated += new EventHandler(UndoMenuActivated); + menu.Add(mi); + } + + menu.ShowAll(); + undoMenuButton.Menu = menu; + } + else + { + undoMenuButton.Menu = null; + } + } + + private void RedoMenuActivated(object sender, EventArgs e) + { + if (sender is MenuItem) + { + MenuItem item = (MenuItem)sender; + //we know it's an redo menu item so find it's index and redo everything + + int max = Arrays.IndexOf(((Menu)redoMenuButton.Menu).Children, item); + + if (max >= 0) + { + for (int i = 0; i <= max; i++) + { + commandStack.Redo(); + } } } + } - undoMenu.MenuItems.Clear(); - - if (menuItemsUndo!=null && menuItemsUndo[0]!=null) + private void UndoMenuActivated(object sender, EventArgs e) + { + if (sender is MenuItem) { - bttnUndo.ToolTipText = menuItemsUndo[0].Text; - undoMenu.MenuItems.AddRange(menuItemsUndo); - }*/ - //TODO: Put above code back when we have a dropdown version of the undo button - if (undoLength > 0) - { - //undoMenuButton.Tooltip = CommandStack.PeekUndoCommand().UndoDescription; + + MenuItem item = (MenuItem)sender; + //we know it's an undo menu item so find it's index and undo everything + + int max = Arrays.IndexOf(((Menu)undoMenuButton.Menu).Children, item); + + if (max >= 0) + { + for (int i = 0; i <= max; i++) + { + commandStack.Undo(); + } + } } - - saveArmyButton.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null; - miSaveArmy.Sensitive = commandStack.IsDirty() && WarFoundryCore.CurrentArmy!=null; } private bool SaveCurrentArmyOrSaveAs() @@ -689,10 +796,13 @@ private bool OpenArmy() { - FileChooserDialog fileDialog = new FileChooserDialog("Open army", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); + string title = Translation.GetTranslation("openArmyDialog", "open army"); + string cancelText = Translation.GetTranslation("bttnCancel", "cancel"); + string openText = Translation.GetTranslation("bttnOpen", "open"); + FileChooserDialog fileDialog = new FileChooserDialog(title, this, FileChooserAction.Open, cancelText, ResponseType.Cancel, openText, ResponseType.Accept); FileFilter filter = new FileFilter(); filter.AddPattern("*.army"); - filter.Name = "WarFoundry Army files (*.army)"; + filter.Name = Translation.GetTranslation("armyFileFilter", "WarFoundry .army files"); fileDialog.AddFilter(filter); int response = fileDialog.Run(); string filePath = null; @@ -710,7 +820,16 @@ if (filePath != null) { FileInfo file = new FileInfo(filePath); - Army army = WarFoundryLoader.GetDefault().LoadArmy(file); + Army army = null; + + try + { + army = WarFoundryLoader.GetDefault().LoadArmy(file); + } + catch (Exception ex) + { + logger.Error("Error while loading army file " + filePath, ex); + } if (army != null) { @@ -722,9 +841,8 @@ } else { - logger.ErrorFormat("Failed to load {0} as an army file", filePath); - MessageDialog dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, file.Name + " could not be loaded.\n\nIf the file is an army file then please check your file loaders."); - dialog.Title = "Failed to open army"; + MessageDialog dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Translation.GetTranslation("OpenFailed", "File open failed. Please check log file")); + dialog.Title = Translation.GetTranslation("OpenFailedTitle", "File open failed"); dialog.Run(); dialog.Hide(); dialog.Dispose(); @@ -742,7 +860,7 @@ { bool success = false; - if (loadedArmyPath!=null) + if (loadedArmyPath != null) { success = SaveArmyToPath(WarFoundryCore.CurrentArmy, loadedArmyPath); } @@ -752,10 +870,13 @@ private bool SaveCurrentArmyAs() { - FileChooserDialog fileDialog = new FileChooserDialog("Save file as", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept); + string title = Translation.GetTranslation("saveArmyDialog", "save army"); + string cancelText = Translation.GetTranslation("bttnCancel", "cancel"); + string saveText = Translation.GetTranslation("bttnSave", "save"); + FileChooserDialog fileDialog = new FileChooserDialog(title, this, FileChooserAction.Save, cancelText, ResponseType.Cancel, saveText, ResponseType.Accept); FileFilter filter = new FileFilter(); filter.AddPattern("*.army"); - filter.Name = "WarFoundry Army files (*.army)"; + filter.Name = Translation.GetTranslation("armyFileFilter", "WarFoundry .army files"); fileDialog.AddFilter(filter); int response = fileDialog.Run(); string filePath = null; @@ -770,25 +891,36 @@ return SaveArmyToPath(WarFoundryCore.CurrentArmy, filePath); } - + private bool SaveArmyToPath(Army army, string filePath) { bool success = false; - if (filePath!=null) + if (filePath != null) { - if (WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, filePath)) + bool saveSuccess = false; + + try + { + saveSuccess = WarFoundrySaver.GetSaver().Save(WarFoundryCore.CurrentArmy, filePath); + } + catch (Exception ex) + { + logger.Error("Error while saving army file to " + filePath, ex); + } + + if (saveSuccess) { miSaveArmy.Sensitive = false; - saveArmyButton.Sensitive = false; + bttnSaveArmy.Sensitive = false; CommandStack.setCleanMark(); loadedArmyPath = filePath; success = true; } else { - MessageDialog dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Failed to save file to "+filePath); - dialog.Title = "Army save failed"; + MessageDialog dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, Translation.GetTranslation("SaveFailed", "File save failed. Please check log file")); + dialog.Title = Translation.GetTranslation("SaveFailedTitle", "File save failed"); dialog.Run(); dialog.Hide(); dialog.Dispose(); @@ -801,13 +933,20 @@ private bool CloseCurrentArmy() { - if (WarFoundryCore.CurrentArmy!=null) + if (WarFoundryCore.CurrentArmy != null) { bool canClose = false; if (CommandStack.IsDirty()) { - MessageDialog dia = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.YesNo, "The army \""+WarFoundryCore.CurrentArmy.Name+"\" has been modified.\r\nSave changes before closing army?"); + string message = Translation.GetTranslation("SaveChangesQuestion", "Save changes to army before closing?", WarFoundryCore.CurrentArmy.Name); + MessageDialog dia = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.None, message); + dia.AddButton(Translation.GetTranslation("bttnDiscard", "lose changes"), ResponseType.No); + Button button = (Button)dia.AddButton(Translation.GetTranslation("bttnCancel", "cancel"), ResponseType.Cancel); + button.Image = new Image("gtk-cancel", IconSize.Button); + button = (Button)dia.AddButton(Translation.GetTranslation("bttnSave", "save"), ResponseType.Yes); + button.Image = new Image("gtk-save", IconSize.Button); + dia.Title = Translation.GetTranslation("SaveChangesTitle", "Save changes?"); ResponseType dr = (ResponseType)dia.Run(); dia.Hide(); dia.Dispose(); @@ -818,15 +957,19 @@ //If they cancel the save as then assume they don't want to close canClose = SaveCurrentArmyOrSaveAs(); } - else if (dr == ResponseType.No) - { - //They don't care about their changes - canClose = true; - } else { - //Assume cancel or close with the X button - canClose = false; + if (dr == ResponseType.No) + { + //They don't care about their changes + canClose = true; + } + else + { + //Assume cancel or close with the X button + canClose = false; + } + } } else @@ -875,75 +1018,74 @@ newArmy.Destroy(); } - protected virtual void undoTBButtonActivated (object sender, System.EventArgs e) + protected virtual void undoTBButtonActivated(object sender, System.EventArgs e) { CommandStack.Undo(); } - protected virtual void redoTBButtonActivated (object sender, System.EventArgs e) + protected virtual void redoTBButtonActivated(object sender, System.EventArgs e) { CommandStack.Redo(); } - protected virtual void saveTBButtonActivated (object sender, System.EventArgs e) + protected virtual void saveTBButtonActivated(object sender, System.EventArgs e) { SaveCurrentArmyOrSaveAs(); } - protected virtual void openTBButtonActivated (object sender, System.EventArgs e) + protected virtual void openTBButtonActivated(object sender, System.EventArgs e) { OpenArmy(); } - protected virtual void newTBButtonActivated (object sender, System.EventArgs e) + protected virtual void newTBButtonActivated(object sender, System.EventArgs e) { CreateNewArmy(); } - protected virtual void ArmyRowActivated (object o, Gtk.RowActivatedArgs args) + protected virtual void ArmyRowActivated(object o, Gtk.RowActivatedArgs args) { object obj = TreeUtils.GetItemAtPath(treeUnits, args.Path); - if (obj is IBBoard.WarFoundry.API.Objects.Unit) + if (obj is WFObjects.Unit) { - IBBoard.WarFoundry.API.Objects.Unit unit = (IBBoard.WarFoundry.API.Objects.Unit)obj; - - UnitDisplayWidget widget; - unitToWidgetMap.TryGetValue(unit, out widget); - - if (widget!=null) - { - logger.DebugFormat("Selecting existing page for "+unit.Name); - unitsNotebook.Page = unitsNotebook.PageNum(widget); - } - else - { - widget = new UnitDisplayWidget(unit, CommandStack); - logger.Debug("Adding page for "+unit.Name); - unitToWidgetMap[unit] = widget; - widget.Destroyed+= new EventHandler(UnitWidgetDestroyed); - int pageNum = NotebookUtil.AddPageToNotebookWithCloseButton(unitsNotebook, widget, unit.Name); - logger.Debug("Page added at index "+pageNum); - unitsNotebook.ShowAll(); - unitsNotebook.Page = pageNum; - } + WFObjects.Unit unit = (WFObjects.Unit)obj; + ShowUnitWidget(unit); } } - private void UnitWidgetDestroyed(object sender, EventArgs e) + private void ShowUnitWidget(WFObjects.Unit unit) { - if (sender is UnitDisplayWidget) + UnitDisplayWidget widget; + unitToWidgetMap.TryGetValue(unit, out widget); + + if (widget != null) { - unitToWidgetMap.Remove(((UnitDisplayWidget)sender).Unit); + logger.DebugFormat("Selecting existing page for " + unit.Name); + unitsNotebook.Page = unitsNotebook.PageNum(widget); + } + else + { + widget = new UnitDisplayWidget(unit, CommandStack); + logger.Debug("Adding page for " + unit.Name); + unitToWidgetMap[unit] = widget; + int pageNum = NotebookUtil.AddPageToNotebookWithCloseButton(unitsNotebook, widget, unit.Name); + logger.Debug("Page added at index " + pageNum); + unitsNotebook.ShowAll(); + unitsNotebook.CurrentPage = pageNum; + unitsNotebook.SetTabReorderable(widget, true); } } - protected virtual void OnMiExportAsBasicHtmlActivated (object sender, System.EventArgs e) + protected virtual void OnMiExportAsBasicHtmlActivated(object sender, System.EventArgs e) { - FileChooserDialog fileDialog = new FileChooserDialog("Export army", this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Export", ResponseType.Accept); + string exportArmyTitle = Translation.GetTranslation("exportBasicHtmlDialogTitle", "export army"); + string cancelText = Translation.GetTranslation("exportBasicHtmlCancel", "cancel"); + string exportText = Translation.GetTranslation("exportBasicHtmlExport", "export"); + FileChooserDialog fileDialog = new FileChooserDialog(exportArmyTitle, this, FileChooserAction.Save, cancelText, ResponseType.Cancel, exportText, ResponseType.Accept); FileFilter filter = new FileFilter(); filter.AddPattern("*.html"); - filter.Name = "HTML pages (*.html)"; + filter.Name = Translation.GetTranslation("exportBasicHtmlHtmlFilter", "HTML pages (*.html)"); fileDialog.AddFilter(filter); int response = fileDialog.Run(); string filePath = null; @@ -964,16 +1106,16 @@ } } - protected virtual void OnTreeUnitsPopupMenu (object o, Gtk.PopupMenuArgs args) + protected virtual void OnTreeUnitsPopupMenu(object o, Gtk.PopupMenuArgs args) { object selectedItem = TreeUtils.GetSelectedItem(treeUnits); - if (selectedItem is IBBoard.WarFoundry.API.Objects.Unit) + if (selectedItem is WFObjects.Unit) { Menu menu = new Menu(); - ImageMenuItem delete = new ImageMenuItem("Remove unit"); + ImageMenuItem delete = new ImageMenuItem(Translation.GetTranslation("menuRemoveUnit", "remove unit")); delete.Image = new Gtk.Image(Stock.Delete, IconSize.Menu); - delete.Activated+= new EventHandler(OnUnitDelete); + delete.Activated += new EventHandler(OnUnitDelete); delete.Data["unit"] = selectedItem; menu.Append(delete); menu.ShowAll(); @@ -983,17 +1125,65 @@ private void OnUnitDelete(object o, EventArgs args) { - RemoveUnitCommand command = new RemoveUnitCommand((IBBoard.WarFoundry.API.Objects.Unit)((ImageMenuItem)o).Data["unit"]); + RemoveUnitCommand command = new RemoveUnitCommand((WFObjects.Unit)((ImageMenuItem)o).Data["unit"]); commandStack.Execute(command); } [GLib.ConnectBefore] - protected virtual void UnitTreeButtonPressed (object o, Gtk.ButtonPressEventArgs args) + + protected virtual void UnitTreeButtonPressed(object o, Gtk.ButtonPressEventArgs args) { + TreePath path; + treeUnits.GetPathAtPos((int)args.Event.X, (int)args.Event.Y, out path); + + if (!treeUnits.Selection.PathIsSelected(path)) + { + treeUnits.Selection.SelectPath(path); + } + if (args.Event.Type == Gdk.EventType.ButtonPress && args.Event.Button == 3) { OnTreeUnitsPopupMenu(o, null); } } + + protected virtual void NotebookPageRemoved(object o, Gtk.RemovedArgs args) + { + Widget widget = args.Widget; + + if (widget is UnitDisplayWidget) + { + unitToWidgetMap.Remove(((UnitDisplayWidget)widget).Unit); + } + } + + protected virtual void HelpAboutActivated(object sender, System.EventArgs e) + { + FrmAbout form = FrmAbout.GetForm(); + form.Run(); + form.Hide(); + } + + protected virtual void miPreferencesClicked(object sender, System.EventArgs e) + { + FrmPreferences form = new FrmPreferences(Preferences); + form.Run(); + form.Hide(); + } + + public override ICollection<Action> Actions + { + get + { + List<Action> actions = new List<Action>(); + + foreach (ActionGroup actionGroup in this.UIManager.ActionGroups) + { + actions.AddRange(actionGroup.ListActions()); + } + + return actions; + } + } } }
--- a/FrmNewArmy.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/FrmNewArmy.cs Mon Jan 17 19:43:47 2011 +0000 @@ -9,16 +9,18 @@ using IBBoard.WarFoundry.API.Objects; using IBBoard.GtkSharp; using log4net; +using IBBoard.WarFoundry.GUI.GTK.Util; +using IBBoard.GtkSharp.Translatable; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { - public partial class FrmNewArmy : Dialog, ITranslatable + public partial class FrmNewArmy : TranslatableDialog, ITranslatable { private ILog logger = LogManager.GetLogger(typeof(FrmNewArmy)); private Race race; private string armyName; private int pointsValue; - + public FrmNewArmy(GameSystem gameSystem) { this.Build(); @@ -26,6 +28,15 @@ GameSystem[] gameSystems = WarFoundryLoader.GetDefault().GetGameSystems(); ComboBoxUtils.FillCombo(systemCombo, gameSystems, delegate(GameSystem sys){return sys.Name;}); + lstRaces.Selection.Changed += new EventHandler(OnSelectionChanged); + + TreeViewColumn raceColumn = new TreeViewColumn(); + raceColumn.Title = Translation.GetTranslation("frmNewArmyRaceColumn", "race"); + CellRendererText raceCell = new CellRendererText(); + raceColumn.PackStart(raceCell, true); + lstRaces.AppendColumn(raceColumn); + raceColumn.SetCellDataFunc(raceCell, GtkWarFoundryUtil.RenderWarFoundryObjectName); + if (gameSystem != null) { ComboBoxUtils.SelectItem(systemCombo, gameSystem); @@ -35,32 +46,25 @@ ComboBoxUtils.SelectIndex(systemCombo, 0); } - lstRaces.Selection.Changed+= new EventHandler(OnSelectionChanged); - - TreeViewColumn raceColumn = new TreeViewColumn (); - raceColumn.Title = "Race"; - CellRendererText raceCell = new CellRendererText (); - raceColumn.PackStart (raceCell, true); - lstRaces.AppendColumn(raceColumn); - raceColumn.SetCellDataFunc(raceCell, new TreeCellDataFunc(RenderRaceName)); + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } - - if (gameSystem!=null) - { - SetRaces(gameSystem); - } - } - - public string Text + public override void Dispose() { - get { return Title; } - set { Title = value; } + Translation.TranslationChanged -= Retranslate; + base.Dispose(); } - - private void RenderRaceName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + + protected override void Translate() { - Race r = (Race)model.GetValue(iter, 0); - (cell as CellRendererText).Text = r.Name; + base.Translate(); + ControlTranslator.TranslateButtons(bttnCreate, bttnCancel); } protected virtual void OnSelectionChanged(object o, EventArgs e) @@ -68,51 +72,60 @@ logger.Debug("Race selection changed"); SetOkayButtonState(); } - + private void SetOkayButtonState() { - bttnCreate.Sensitive = (lstRaces.Selection.CountSelectedRows() == 1 && txtArmyName.Text!="" && sbPointsValue.Value > 0); + bttnCreate.Sensitive = (lstRaces.Selection.CountSelectedRows() == 1 && txtArmyName.Text != "" && sbPointsValue.Value > 0); } - protected virtual void OnCreateClicked (object sender, System.EventArgs e) + protected virtual void OnCreateClicked(object sender, System.EventArgs e) { TreeModel model; TreeIter iter; - lstRaces.Selection.GetSelected (out model, out iter); - race = (Race) model.GetValue(iter, 0); + lstRaces.Selection.GetSelected(out model, out iter); + race = (Race)model.GetValue(iter, 0); armyName = txtArmyName.Text; pointsValue = (int)sbPointsValue.Value; Respond(ResponseType.Ok); } - protected virtual void OnCancelClicked (object sender, System.EventArgs e) + protected virtual void OnCancelClicked(object sender, System.EventArgs e) { Respond(ResponseType.Cancel); } - protected virtual void OnTextChanged (object sender, System.EventArgs e) + protected virtual void OnTextChanged(object sender, System.EventArgs e) + { + SetOkayButtonState(); + } + + protected virtual void OnSpinChangeValue(object o, Gtk.ChangeValueArgs args) { SetOkayButtonState(); } - protected virtual void OnSpinChangeValue (object o, Gtk.ChangeValueArgs args) + protected virtual void OnSpinValueChanged(object sender, System.EventArgs e) { SetOkayButtonState(); } - protected virtual void OnSpinValueChanged (object sender, System.EventArgs e) - { - SetOkayButtonState(); - } - - protected virtual void OnSystemComboChanged (object sender, System.EventArgs e) + protected virtual void OnSystemComboChanged(object sender, System.EventArgs e) { GameSystem system = ComboBoxUtils.GetSelectedItem<GameSystem>(systemCombo); SetRaces(system); + ListStore model = (ListStore)lstRaces.Model; + + if (model.IterNChildren() == 1) + { + TreeIter iter; + model.GetIterFirst(out iter); + lstRaces.Selection.SelectIter(iter); + } + logger.Debug("System selection changed: " + (system == null ? "null" : system.Name)); SetOkayButtonState(); } - + private void SetRaces(GameSystem system) { ListStore store = new ListStore(typeof(Race)); @@ -127,18 +140,18 @@ lstRaces.Model = store; } - + public Race SelectedRace { get { return race; } } - + public string ArmyName { get { return armyName; } } - - public int ArmySize + + public int ArmySize { get { return pointsValue; } }
--- a/FrmNewUnit.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/FrmNewUnit.cs Mon Jan 17 19:43:47 2011 +0000 @@ -4,31 +4,33 @@ using System; using System.Collections.Generic; +using Gtk; +using IBBoard.GtkSharp.Translatable; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Requirements; -using Gtk; using log4net; +using IBBoard.Lang; -namespace IBBoard.WarFoundry.GTK +namespace IBBoard.WarFoundry.GUI.GTK { - public partial class FrmNewUnit : Gtk.Dialog + public partial class FrmNewUnit : TranslatableDialog { private ILog logger = LogManager.GetLogger(typeof(FrmNewUnit)); - private UnitType unitType; private Army unitArmy; - - public FrmNewUnit(Race race, Category cat, Army army) + private Category cat; + + public FrmNewUnit(Race race, Category category, Army army) { this.Build(); unitArmy = army; + cat = category; - TreeViewColumn unitTypeColumn = new TreeViewColumn (); - unitTypeColumn.Title = "Unit Type"; - CellRendererText unitTypeCell = new CellRendererText (); + TreeViewColumn unitTypeColumn = new TreeViewColumn(); + CellRendererText unitTypeCell = new CellRendererText(); unitTypeColumn.PackStart(unitTypeCell, true); lstUnitTypes.AppendColumn(unitTypeColumn); - unitTypeColumn.SetCellDataFunc (unitTypeCell, new TreeCellDataFunc(RenderUnitTypeName)); + unitTypeColumn.SetCellDataFunc(unitTypeCell, new TreeCellDataFunc(RenderUnitTypeName)); ListStore store = new ListStore(typeof(UnitType)); UnitType[] types = race.GetUnitTypes(cat); logger.DebugFormat("Listing {0} unit types in {1}", types.Length, cat.Name); @@ -40,47 +42,68 @@ } lstUnitTypes.Model = store; - lstUnitTypes.Selection.Changed+= new EventHandler(OnSelectionChanged); + lstUnitTypes.Selection.Changed += new EventHandler(OnSelectionChanged); + + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); } - + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + protected override void Translate() + { + base.Translate(); + lstUnitTypes.Columns[0].Title = Translation.GetTranslation("frmNewUnitNewUnitColumn", "unit type"); + Title = Translation.GetTranslation(Name, "Create new unit", cat.Name); + } + 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; TreeIter iter; - lstUnitTypes.Selection.GetSelected (out model, out iter); + lstUnitTypes.Selection.GetSelected(out model, out iter); UnitType toReturn = null; - if (model!=null) + if (model != null) { - toReturn = (UnitType) model.GetValue(iter, 0); + toReturn = (UnitType)model.GetValue(iter, 0); } return toReturn; } - + private void SetSelectUnitEnabledVal() { UnitType type = GetSelectedUnitType(); - if (type!=null) + if (type != null) { - buttonOk.Sensitive = true; + bttnCreate.Sensitive = true; List<FailedUnitRequirement> fails = unitArmy.CanAddUnitType(type); lblNewUnitWarning.Visible = (fails != null); @@ -92,23 +115,23 @@ } else { - buttonOk.Sensitive = false; + bttnCreate.Sensitive = false; lblNewUnitWarning.Visible = false; } } - protected virtual void OnButtonCancelActivated (object sender, System.EventArgs e) + protected virtual void OnButtonCancelActivated(object sender, System.EventArgs e) { Respond(ResponseType.Cancel); } - protected virtual void OnRowActivated (object o, Gtk.RowActivatedArgs args) + protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args) { unitType = GetSelectedUnitType(); Respond(ResponseType.Ok); } - protected virtual void OnButtonOkClicked (object sender, System.EventArgs e) + protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { unitType = GetSelectedUnitType(); Respond(ResponseType.Ok);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmPreferences.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,120 @@ +// This file (FrmPreferences.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2011 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 IBBoard.GtkSharp.Translatable; +using IBBoard.Lang; +using Gtk; +using System.Collections.Generic; +using IBBoard.GtkSharp; +using System.Globalization; +using log4net; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmPreferences : TranslatableDialog + { + private ILog logger = LogManager.GetLogger(typeof(FrmPreferences)); + private Preferences prefs; + private string initialLang; + + public FrmPreferences(Preferences preferences) + { + prefs = preferences; + initialLang = Translation.GetTranslationLanguage(); + this.Build(); + BuildPreferenceCategoryTree(); + BuildLanguageList(); + + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + protected override void Translate() + { + base.Translate(); + frameLabel.Text = Translation.GetTranslation("languagesGroup", "languages"); + TreeStore model = ((TreeStore)preferencesTree.Model); + TreeIter iter; + model.GetIterFirst(out iter); + model.SetValue(iter, 0, Translation.GetTranslation("languagePrefSection", "Language")); + } + + private void RenderPreference(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + { + object obj = model.GetValue(iter, 0); + + if (obj is string) + { + (cell as CellRendererText).Text = (string)obj; + } + } + + private void BuildPreferenceCategoryTree() + { + TreeViewColumn mainColumn = new TreeViewColumn(); + CellRendererText mainCell = new CellRendererText(); + mainColumn.PackStart(mainCell, true); + preferencesTree.AppendColumn(mainColumn); + mainColumn.SetCellDataFunc(mainCell, new TreeCellDataFunc(RenderPreference)); + TreeStore model = new TreeStore(typeof(string)); + preferencesTree.Model = model; + model.AppendValues(Translation.GetTranslation("languagePrefSection", "Language")); + } + + private void BuildLanguageList() + { + ICollection<TranslationLanguage> langs = Translation.GetLanguages(); + List<TranslationLanguage> sortedLangs = new List<TranslationLanguage>(langs); + sortedLangs.Sort(CompareLanguages); + ComboBoxUtils.FillCombo(languageList, sortedLangs, delegate(TranslationLanguage lang){return lang.Name;}); + ComboBoxUtils.SelectItem(languageList, Translation.GetTranslationSet(initialLang).Language); + } + + private int CompareLanguages(TranslationLanguage lang1, TranslationLanguage lang2) + { + CompareOptions options = CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth; + return CultureInfo.CurrentCulture.CompareInfo.Compare(lang1.Name, lang2.Name, options); + } + + protected virtual void bttnOkayClicked(object sender, System.EventArgs e) + { + prefs["language"] = Translation.GetTranslationLanguage(); + prefs.Save(); + Respond(ResponseType.Ok); + } + + protected virtual void bttnCancelClicked(object sender, System.EventArgs e) + { + Translation.LoadTranslation(initialLang); + Respond(ResponseType.Cancel); + } + + protected virtual void languageListChanged(object sender, System.EventArgs e) + { + TranslationLanguage selectedLang = ComboBoxUtils.GetSelectedItem<TranslationLanguage>(languageList); + string code = selectedLang == null ? "" : selectedLang.Code; + logger.Debug("New language: " + code); + Translation.LoadTranslation(code); + bttnOkay.Sensitive = !initialLang.Equals(code); + + } + + + + + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FrmReplaceEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,269 @@ +// This file (FrmAddEquipment.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; +using IBBoard.GtkSharp; +using IBBoard.GtkSharp.Translatable; +using IBBoard.Lang; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using IBBoard.WarFoundry.GUI.GTK.Util; +using log4net; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmReplaceEquipment : TranslatableDialog, IReplaceEquipmentUI + { + private static ILog log = LogManager.GetLogger(typeof(FrmReplaceEquipment)); + + public event SingleArgMethodInvoker<UnitEquipmentItem> UnitEquipmentItemChoiceChanged; + public event MethodInvoker UnitEquipmentAmountTypeChanged; + public event MethodInvoker UnitEquipmentAmountChanged; + + private bool isRatioLimited; + + public FrmReplaceEquipment() + { + this.Build(); + lstEquipment.Selection.Changed += OnSelectionChanged; + TreeViewColumn equipColumn = new TreeViewColumn(); + equipColumn.Title = "Equipment"; + CellRendererText equipCell = new CellRendererText(); + equipColumn.PackStart(equipCell, true); + equipColumn.SetCellDataFunc(equipCell, GtkWarFoundryUtil.RenderWarFoundryObjectName); + lstEquipment.AppendColumn(equipColumn); + + Translation.TranslationChanged += Retranslate; + Translate(); + } + + private void Retranslate() + { + Translate(); + } + + public override void Dispose() + { + Translation.TranslationChanged -= Retranslate; + base.Dispose(); + } + + public void ListenToWidgets() + { + rbEquipAll.Clicked += RadioButtonClicked; + rbEquipNumeric.Clicked += RadioButtonClicked; + rbEquipPercent.Clicked += RadioButtonClicked; + numericAmount.ValueChanged += SpinButtonValueChanged; + percentageAmount.ValueChanged += SpinButtonValueChanged; + lstEquipment.Selection.Changed += OnSelectionChanged; + } + + public void IgnoreWidgets() + { + rbEquipAll.Clicked -= RadioButtonClicked; + rbEquipNumeric.Clicked -= RadioButtonClicked; + rbEquipPercent.Clicked -= RadioButtonClicked; + numericAmount.ValueChanged -= SpinButtonValueChanged; + percentageAmount.ValueChanged -= SpinButtonValueChanged; + lstEquipment.Selection.Changed -= OnSelectionChanged; + } + + private void OnUnitEquipmentAmountChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountChanged(); + } + } + + private void OnUnitEquipmentAmountTypeChanged() + { + if (UnitEquipmentAmountChanged != null) + { + UnitEquipmentAmountTypeChanged(); + } + } + + protected void OnSelectionChanged(object o, EventArgs e) + { + if (UnitEquipmentItemChoiceChanged != null) + { + UnitEquipmentItemChoiceChanged(SelectedUnitEquipmentItem); + } + } + + public void SetUnitEquipmentItems(UnitEquipmentItem[] items) + { + ListStore store = new ListStore(typeof(UnitEquipmentItem)); + + foreach (UnitEquipmentItem equipItem in items) + { + store.AppendValues(equipItem); + } + + lstEquipment.Model = store; + } + + public void SetUnitEquipmentLimits(bool isRatioLimit, double minPercent, double maxPercent, int minNumber, int maxNumber) + { + log.DebugFormat("IsRatio? {0}. Limits: {1}->{2}, {3}%->{4}%", isRatioLimit, minNumber, maxNumber, minPercent, maxPercent); + numericAmount.SetRange(minNumber, maxNumber); + percentageAmount.SetRange(minPercent, maxPercent); + isRatioLimited = isRatioLimit; + + if (isRatioLimit) + { + if (minPercent == 100) + { + rbEquipAll.Active = true; + } + else + { + rbEquipPercent.Active = true; + } + } + else + { + rbEquipNumeric.Active = true; + } + } + + public void SetUnitEquipmentLimitsEnabled(bool isEnabled) + { + SetNumericAmountEnabledState(isEnabled); + SetPercentageAmountEnabledState(isEnabled); + } + + public bool ShowControl() + { + int result = Run(); + bool okayClicked = (result == (int)ResponseType.Ok); + this.Hide(); + return okayClicked; + } + + protected virtual void CancelButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Cancel clicked"); + Respond(ResponseType.Cancel); + } + + protected virtual void OkayButtonClicked(object sender, System.EventArgs e) + { + log.Debug("Okay clicked"); + Respond(ResponseType.Ok); + } + + public void SetOkayEnabledState(bool enabled) + { + bttnOkay.Sensitive = enabled; + } + + protected virtual void SpinButtonValueChanged(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountChanged(); + } + + protected virtual void RadioButtonClicked(object sender, System.EventArgs e) + { + OnUnitEquipmentAmountTypeChanged(); + } + + public void SetNumericAmountEnabledState(bool enabled) + { + double minPercent = GetMinPercentage(); + rbEquipNumeric.Sensitive = enabled && !(isRatioLimited && minPercent == 100); + numericAmount.Sensitive = rbEquipNumeric.Sensitive; + } + + public void SetPercentageAmountEnabledState(bool enabled) + { + if (enabled) + { + double minPercentage = GetMinPercentage(); + rbEquipPercent.Sensitive = isRatioLimited && minPercentage != 100; + percentageAmount.Sensitive = rbEquipPercent.Sensitive; + double maxPercentage = GetMaxPercentage(); + rbEquipAll.Sensitive = isRatioLimited && maxPercentage == 100; + lblEquipAll.Sensitive = rbEquipAll.Sensitive; + } + else + { + rbEquipPercent.Sensitive = false; + percentageAmount.Sensitive = false; + rbEquipAll.Sensitive = false; + lblEquipAll.Sensitive = false; + } + } + + private double GetMaxPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return max; + } + + private double GetMinPercentage() + { + double min, max; + percentageAmount.GetRange(out min, out max); + return min; + } + + public UnitEquipmentItem SelectedUnitEquipmentItem + { + get + { + return (UnitEquipmentItem)TreeUtils.GetSelectedItem(lstEquipment); + } + } + + public bool IsRatioEquipmentAmount + { + get + { + return !rbEquipNumeric.Active; + } + } + + public int EquipmentNumericAmount + { + get + { + return (int)numericAmount.Value; + } + + set + { + numericAmount.Value = value; + } + } + + public double EquipmentPercentageAmount + { + get + { + double percent; + + if (rbEquipAll.Active) + { + percent = 100; + } + else + { + percent = percentageAmount.Value; + } + + return percent; + } + + set + { + percentageAmount.Value = value; + } + } + } +} +
--- a/IBBoard.WarFoundry.GUI.GTK.csproj Sun Jan 31 20:46:06 2010 +0000 +++ b/IBBoard.WarFoundry.GUI.GTK.csproj Mon Jan 17 19:43:47 2011 +0000 @@ -9,8 +9,9 @@ <OutputType>WinExe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>IBBoard.WarFoundry.GUI.GTK</RootNamespace> - <StartupObject>IBBoard.WarFoundry.GTK.FrmMainWindow</StartupObject> + <StartupObject>IBBoard.WarFoundry.GUI.GTK.FrmMainWindow</StartupObject> <ApplicationIcon>App.ico</ApplicationIcon> + <AssemblyName>WarFoundry-GTK</AssemblyName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> @@ -20,7 +21,6 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> - <AssemblyName>WarFoundryGTK</AssemblyName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> @@ -29,7 +29,6 @@ <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> - <AssemblyName>IBBoard.WarFoundry.GUI.GTK</AssemblyName> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. @@ -46,10 +45,32 @@ <Compile Include="FrmNewUnit.cs" /> <Compile Include="Widgets\UnitDisplayWidget.cs" /> <Compile Include="gtk-gui\generated.cs" /> - <Compile Include="gtk-gui\IBBoard.WarFoundry.GTK.FrmMainWindow.cs" /> - <Compile Include="gtk-gui\IBBoard.WarFoundry.GTK.FrmNewArmy.cs" /> - <Compile Include="gtk-gui\IBBoard.WarFoundry.GTK.FrmNewUnit.cs" /> - <Compile Include="gtk-gui\IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget.cs" /> + <Compile Include="UIControl\AddEquipmentUIControl.cs" /> + <Compile Include="UIControl\Interfaces\IAddEquipmentUI.cs" /> + <Compile Include="FrmAddEquipment.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs" /> + <Compile Include="Util\GtkWarFoundryUtil.cs" /> + <Compile Include="UIControl\EditEquipmentUIControl.cs" /> + <Compile Include="UIControl\Interfaces\IEditEquipmentUI.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs" /> + <Compile Include="FrmEditEquipment.cs" /> + <Compile Include="UIControl\AbstractBaseEquipmentUIControl.cs" /> + <Compile Include="UIControl\Interfaces\IBaseEquipmentUI.cs" /> + <Compile Include="UIControl\Interfaces\ISelectableItemEquipmentUI.cs" /> + <Compile Include="UIControl\Interfaces\IReplaceEquipmentUI.cs" /> + <Compile Include="FrmReplaceEquipment.cs" /> + <Compile Include="UIControl\ReplaceEquipmentUIControl.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.cs" /> + <Compile Include="FrmAbout.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmAbout.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmMainWindow.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmNewArmy.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmNewUnit.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.cs" /> + <Compile Include="FrmAboutCredits.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits.cs" /> + <Compile Include="FrmPreferences.cs" /> + <Compile Include="gtk-gui\IBBoard.WarFoundry.GUI.GTK.FrmPreferences.cs" /> </ItemGroup> <ItemGroup> <Content Include="App.png" /> @@ -59,13 +80,16 @@ <None Include="translations\en.translation"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> - <None Include="WarFoundryGTK.exe.log4net"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> - </None> <None Include="gtk-gui\gui.stetic" /> <None Include="gtk-gui\objects.xml" /> <None Include="COPYING" /> - <None Include="WarFoundryGTKPref.xml"> + <None Include="WarFoundry-GTK.exe.log4net"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="WarFoundry-GTKPref.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="translations\fr.translation"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup> @@ -102,5 +126,11 @@ <EmbeddedResource Include="App.ico"> <LogicalName>App.ico</LogicalName> </EmbeddedResource> + <EmbeddedResource Include="App-lrg.png" /> + </ItemGroup> + <ItemGroup> + <Folder Include="UIControl\" /> + <Folder Include="UIControl\Interfaces\" /> + <Folder Include="Util\" /> </ItemGroup> </Project> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IBBoard.WarFoundry.GUI.GTK.sln Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,86 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.WarFoundry.GUI.GTK", "IBBoard.WarFoundry.GUI.GTK.csproj", "{4B435E40-7FA2-41C5-96F6-5735396D2D5F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard", "..\IBBoard\IBBoard.csproj", "{5DFD64F6-FC2B-4B4F-B92E-483BAC468105}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.WarFoundry.API", "..\IBBoard.WarFoundry.API\IBBoard.WarFoundry.API.csproj", "{951E6C7A-7FBA-4F68-9D9E-F48618BB9626}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.GtkSharp", "..\IBBoard.GtkSharp\IBBoard.GtkSharp.csproj", "{06605A63-E433-42FE-93CF-0DA6630A7DF5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.WarFoundry.Plugin.Rollcall", "..\IBBoard.WarFoundry.Plugin.Rollcall\IBBoard.WarFoundry.Plugin.Rollcall.csproj", "{182E4A7C-7CFB-4337-A9AD-AB2DCA054A53}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.Ini", "..\IBBoard.Ini\IBBoard.Ini.csproj", "{3BBDF326-7128-406C-85DF-EF049633E602}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.Ini.Tests", "..\IBBoard.Ini.Tests\IBBoard.Ini.Tests.csproj", "{47FA6D87-4A97-4019-880B-CD713B8D4C15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.WarFoundry.API.Tests", "..\IBBoard.WarFoundry.API.Tests\IBBoard.WarFoundry.API.Tests.csproj", "{B20E808D-878E-4F6D-B1E3-84A9A49905CB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.Tests", "..\IBBoard.Tests\IBBoard.Tests.csproj", "{4160F7B6-4CFA-41FC-B5D7-5C9AE06FEBA7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.NUnit", "..\IBBoard.NUnit\IBBoard.NUnit.csproj", "{C52AFD32-B869-4E14-AACE-2846AD2CC742}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IBBoard.NUnit.Tests", "..\IBBoard.NUnit.Tests\IBBoard.NUnit.Tests.csproj", "{2025A316-8377-4454-807C-3C4ED02DF4D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZLib", "..\SharpZipLib\ICSharpCode.SharpZLib.csproj", "{0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06605A63-E433-42FE-93CF-0DA6630A7DF5}.Debug|x86.ActiveCfg = Debug|Any CPU + {06605A63-E433-42FE-93CF-0DA6630A7DF5}.Debug|x86.Build.0 = Debug|Any CPU + {06605A63-E433-42FE-93CF-0DA6630A7DF5}.Release|x86.ActiveCfg = Release|Any CPU + {06605A63-E433-42FE-93CF-0DA6630A7DF5}.Release|x86.Build.0 = Release|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|x86.Build.0 = Debug|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|x86.ActiveCfg = Release|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|x86.Build.0 = Release|Any CPU + {182E4A7C-7CFB-4337-A9AD-AB2DCA054A53}.Debug|x86.ActiveCfg = Debug|Any CPU + {182E4A7C-7CFB-4337-A9AD-AB2DCA054A53}.Debug|x86.Build.0 = Debug|Any CPU + {182E4A7C-7CFB-4337-A9AD-AB2DCA054A53}.Release|x86.ActiveCfg = Release|Any CPU + {182E4A7C-7CFB-4337-A9AD-AB2DCA054A53}.Release|x86.Build.0 = Release|Any CPU + {2025A316-8377-4454-807C-3C4ED02DF4D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {2025A316-8377-4454-807C-3C4ED02DF4D5}.Debug|x86.Build.0 = Debug|Any CPU + {2025A316-8377-4454-807C-3C4ED02DF4D5}.Release|x86.ActiveCfg = Release|Any CPU + {2025A316-8377-4454-807C-3C4ED02DF4D5}.Release|x86.Build.0 = Release|Any CPU + {3BBDF326-7128-406C-85DF-EF049633E602}.Debug|x86.ActiveCfg = Debug|Any CPU + {3BBDF326-7128-406C-85DF-EF049633E602}.Debug|x86.Build.0 = Debug|Any CPU + {3BBDF326-7128-406C-85DF-EF049633E602}.Release|x86.ActiveCfg = Release|Any CPU + {3BBDF326-7128-406C-85DF-EF049633E602}.Release|x86.Build.0 = Release|Any CPU + {4160F7B6-4CFA-41FC-B5D7-5C9AE06FEBA7}.Debug|x86.ActiveCfg = Debug|Any CPU + {4160F7B6-4CFA-41FC-B5D7-5C9AE06FEBA7}.Debug|x86.Build.0 = Debug|Any CPU + {4160F7B6-4CFA-41FC-B5D7-5C9AE06FEBA7}.Release|x86.ActiveCfg = Release|Any CPU + {4160F7B6-4CFA-41FC-B5D7-5C9AE06FEBA7}.Release|x86.Build.0 = Release|Any CPU + {47FA6D87-4A97-4019-880B-CD713B8D4C15}.Debug|x86.ActiveCfg = Debug|Any CPU + {47FA6D87-4A97-4019-880B-CD713B8D4C15}.Debug|x86.Build.0 = Debug|Any CPU + {47FA6D87-4A97-4019-880B-CD713B8D4C15}.Release|x86.ActiveCfg = Release|Any CPU + {47FA6D87-4A97-4019-880B-CD713B8D4C15}.Release|x86.Build.0 = Release|Any CPU + {4B435E40-7FA2-41C5-96F6-5735396D2D5F}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B435E40-7FA2-41C5-96F6-5735396D2D5F}.Debug|x86.Build.0 = Debug|Any CPU + {4B435E40-7FA2-41C5-96F6-5735396D2D5F}.Release|x86.ActiveCfg = Release|Any CPU + {4B435E40-7FA2-41C5-96F6-5735396D2D5F}.Release|x86.Build.0 = Release|Any CPU + {5DFD64F6-FC2B-4B4F-B92E-483BAC468105}.Debug|x86.ActiveCfg = Debug|Any CPU + {5DFD64F6-FC2B-4B4F-B92E-483BAC468105}.Debug|x86.Build.0 = Debug|Any CPU + {5DFD64F6-FC2B-4B4F-B92E-483BAC468105}.Release|x86.ActiveCfg = Release|Any CPU + {5DFD64F6-FC2B-4B4F-B92E-483BAC468105}.Release|x86.Build.0 = Release|Any CPU + {951E6C7A-7FBA-4F68-9D9E-F48618BB9626}.Debug|x86.ActiveCfg = Debug|Any CPU + {951E6C7A-7FBA-4F68-9D9E-F48618BB9626}.Debug|x86.Build.0 = Debug|Any CPU + {951E6C7A-7FBA-4F68-9D9E-F48618BB9626}.Release|x86.ActiveCfg = Release|Any CPU + {951E6C7A-7FBA-4F68-9D9E-F48618BB9626}.Release|x86.Build.0 = Release|Any CPU + {B20E808D-878E-4F6D-B1E3-84A9A49905CB}.Debug|x86.ActiveCfg = Debug|Any CPU + {B20E808D-878E-4F6D-B1E3-84A9A49905CB}.Debug|x86.Build.0 = Debug|Any CPU + {B20E808D-878E-4F6D-B1E3-84A9A49905CB}.Release|x86.ActiveCfg = Release|Any CPU + {B20E808D-878E-4F6D-B1E3-84A9A49905CB}.Release|x86.Build.0 = Release|Any CPU + {C52AFD32-B869-4E14-AACE-2846AD2CC742}.Debug|x86.ActiveCfg = Debug|x86 + {C52AFD32-B869-4E14-AACE-2846AD2CC742}.Debug|x86.Build.0 = Debug|x86 + {C52AFD32-B869-4E14-AACE-2846AD2CC742}.Release|x86.ActiveCfg = Release|x86 + {C52AFD32-B869-4E14-AACE-2846AD2CC742}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = IBBoard.WarFoundry.GUI.GTK.csproj + EndGlobalSection +EndGlobal
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/AbstractBaseEquipmentUIControl.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,281 @@ +// This file (AbstractBaseEquipmentUIControl.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 IBBoard.Commands; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using IBBoard.Lang; +using IBBoard.WarFoundry.API.Util; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl +{ + public abstract class AbstractBaseEquipmentUIControl<UI_TYPE> where UI_TYPE : IBaseEquipmentUI + { + protected CommandStack commandStack; + protected Unit unit; + protected UI_TYPE ui; + protected UnitEquipmentItem equipItem; + protected double minPercentage, maxPercentage; + protected int minNumber, maxNumber; + protected bool isRatioAmount; + protected double equipmentAmount; + + public AbstractBaseEquipmentUIControl(Unit unit, CommandStack commandStack) + { + this.unit = unit; + this.commandStack = commandStack; + } + + private void SetupUI() + { + ui = CreateEquipmentUI(); + ui.SetUnitEquipmentLimitsEnabled(false); + ui.SetOkayEnabledState(false); + CompleteUISetup(); + ui.UnitEquipmentAmountChanged += HandleUnitEquipmentAmountChanged; + ui.UnitEquipmentAmountTypeChanged += HandleUnitEquipmentAmountChanged; + ui.ListenToWidgets(); + } + + /// <summary> + /// Creates the UI component that will be displayed to the user and returns it + /// </summary> + /// <returns> + /// the UI component to display to the user + /// </returns> + + protected abstract UI_TYPE CreateEquipmentUI(); + + /// <summary> + /// Completes any additional user interface setup. + /// </summary> + + protected virtual void CompleteUISetup() + { + //Do nothing + } + + protected void HandleUnitEquipmentAmountChanged() + { + SetUnitEquipmentValuesFromUI(); + } + + protected void SetUnitEquipmentLimits(UnitEquipmentItem equip) + { + ui.IgnoreWidgets(); + + if (equip != null) + { + bool equipIsRatioLimit = UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equip); + maxPercentage = GetMaxPercentageLimit(equip); + minPercentage = GetMinPercentageLimit(equip); + maxNumber = GetMaxNumericLimit(equip); + minNumber = GetMinNumericLimit(equip); + + ui.SetUnitEquipmentLimits(equipIsRatioLimit, minPercentage, maxPercentage, minNumber, maxNumber); + ui.SetUnitEquipmentLimitsEnabled(true); + ui.SetOkayEnabledState(HasNonZeroEquipmentAmount()); + SetEquipmentAmountControlEnabledStates(); + } + else + { + maxPercentage = minPercentage = 0; + maxNumber = minNumber = 0; + ui.SetUnitEquipmentLimits(false, minPercentage, maxPercentage, minNumber, maxNumber); + ui.SetUnitEquipmentLimitsEnabled(false); + ui.SetOkayEnabledState(false); + } + + ui.ListenToWidgets(); + } + + protected void SetUnitEquipmentValuesFromEquipment(UnitEquipmentItem equip) + { + isRatioAmount = UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, equip); + equipmentAmount = UnitEquipmentUtil.GetEquipmentAmount(unit, equip); + SetUnitEquipmentValues(); + SetEquipmentAmountControlEnabledStates(); + } + + /// <summary> + /// Sets the unit equipment values on the UI + /// </summary> + + protected void SetUnitEquipmentValuesFromUI() + { + isRatioAmount = ui.IsRatioEquipmentAmount; + + if (isRatioAmount) + { + equipmentAmount = ui.EquipmentPercentageAmount; + } + else + { + int equipmentIntAmount = ui.EquipmentNumericAmount; + equipmentAmount = equipmentIntAmount; + } + + SetUnitEquipmentValues(); + } + + private void SetUnitEquipmentValues() + { + ui.IgnoreWidgets(); + + if (isRatioAmount) + { + SetEquipmentAmountsFromPercentage(equipmentAmount); + } + else + { + int equipmentIntAmount = (int)equipmentAmount; + SetEquipmentAmountsFromNumber(equipmentIntAmount); + } + + ui.SetOkayEnabledState(equipmentAmount != 0); + ui.ListenToWidgets(); + } + + private void SetEquipmentAmountsFromPercentage(double equipAmount) + { + if (equipAmount > maxPercentage) + { + string percentageTooLarge = Translation.GetTranslation("equipPercentageTooLarge", "the current percentage ({0}%) was larger than the maximum for the equipment item ({1}%) - the maximum value will be used instead", equipAmount, maxPercentage); + string percentageTooLargeTitle = Translation.GetTranslation("equipPercentageTooLargeTitle", "equipment percentage too large"); + ShowMessage(percentageTooLarge, percentageTooLargeTitle); + equipAmount = maxPercentage; + } + else + { + if (equipAmount < minPercentage) + { + string percentageTooSmall = Translation.GetTranslation("equipPercentageTooSmall", "the current percentage ({0}%) was smaller than the minimum for the equipment item ({1}%) - the minimum value will be used instead", equipAmount, minPercentage); + string percentageTooSmallTitle = Translation.GetTranslation("equipPercentageTooSmallTitle", "equipment percentage too small"); + ShowMessage(percentageTooSmall, percentageTooSmallTitle); + equipAmount = minPercentage; + } + + } + ui.EquipmentNumericAmount = CalculateNumericValueFromPercentage(equipAmount); + ui.EquipmentPercentageAmount = equipAmount; + } + + private int CalculateNumericValueFromPercentage(double percent) + { + int calcedAmount = (int)CustomMath.IBBMath.Round((unit.Size * (percent / 100.0)), equipItem.RoundNumberUp); + return Math.Min(Math.Max(calcedAmount, minNumber), maxNumber); + } + + private void ShowMessage(string message, string title) + { + Gtk.MessageDialog dialog = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Warning, Gtk.ButtonsType.Ok, false, message); + dialog.Title = title; + dialog.Run(); + dialog.Hide(); + dialog.Dispose(); + } + + private void SetEquipmentAmountsFromNumber(int equipAmount) + { + if (equipAmount > maxNumber) + { + string amountTooLarge = Translation.GetTranslation("equipNumberTooLarge", "the current amount ({0}) was larger than the maximum for the equipment item ({1}) - the maximum value will be used instead", equipAmount, maxNumber); + string amountTooLargeTitle = Translation.GetTranslation("equipNumberTooLargeTitle", "equipment amount too large"); + ShowMessage(amountTooLarge, amountTooLargeTitle); + equipAmount = maxNumber; + } + else + { + if (equipAmount < minNumber) + { + string amountTooSmall = Translation.GetTranslation("equipNumberTooSmall", "the current amount ({0}) was smaller than the minimum for the equipment item ({1}) - the minimum value will be used instead", equipAmount, minNumber); + string amountTooSmallTitle = Translation.GetTranslation("equipNumberTooSmallTitle", "equipment amount too small"); + ShowMessage(amountTooSmall, amountTooSmallTitle); + equipAmount = minNumber; + } + + } + ui.EquipmentPercentageAmount = CalcualtePercentageValueFromNumber(equipAmount); + ui.EquipmentNumericAmount = equipAmount; + } + + private double CalcualtePercentageValueFromNumber(int number) + { + double calcedAmount = RoundPercentage(CustomMath.IBBMath.Percentage(number, unit.Size)); + return Math.Min(Math.Max(calcedAmount, minPercentage), maxPercentage); + } + + protected void SetEquipmentAmountControlEnabledStates() + { + ui.SetNumericAmountEnabledState(!isRatioAmount); + ui.SetPercentageAmountEnabledState(true); + } + + protected double GetMaxPercentageLimit(UnitEquipmentItem equip) + { + double maxPercent = RoundPercentage(UnitEquipmentUtil.GetMaxEquipmentPercentage(unit, equip)); + return Math.Max(0, maxPercent); + } + + protected double GetMinPercentageLimit(UnitEquipmentItem equip) + { + double minPercent = RoundPercentage(UnitEquipmentUtil.GetMinEquipmentPercentage(unit, equip)); + return Math.Max(0, minPercent); + } + + protected int GetMaxNumericLimit(UnitEquipmentItem equip) + { + int maxNumber = UnitEquipmentUtil.GetMaxEquipmentCount(unit, equip); + return Math.Max(0, maxNumber); + } + + protected int GetMinNumericLimit(UnitEquipmentItem equip) + { + int minNumber = UnitEquipmentUtil.GetMinEquipmentCount(unit, equip); + return Math.Max(0, minNumber); + } + + protected bool HasNonZeroEquipmentAmount() + { + bool nonZero; + + if (isRatioAmount) + { + nonZero = (ui.EquipmentPercentageAmount > 0); + } + else + { + nonZero = (ui.EquipmentNumericAmount > 0); + } + + return nonZero; + } + + private double RoundPercentage(double percent) + { + return Math.Round(percent, 1); + } + + public void Show() + { + SetupUI(); + bool okayed = ui.ShowControl(); + + if (okayed) + { + DoProcessing(); + } + + ui.Dispose(); + } + + /// <summary> + /// Does the processing required for the control when the "OK" button was clicked + /// </summary> + + protected abstract void DoProcessing(); + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/AddEquipmentUIControl.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,63 @@ +// This file (AddEquipmentUIControl.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 IBBoard.Commands; +using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Util; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using CustomMath = IBBoard.CustomMath; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl +{ + public class AddEquipmentUIControl : AbstractBaseEquipmentUIControl<IAddEquipmentUI> + { + public AddEquipmentUIControl(Unit unit, CommandStack commandStack) : base(unit, commandStack) + { + //Do nothing extra + } + + //TODO Make abstract + + protected override IAddEquipmentUI CreateEquipmentUI() + { + return new FrmAddEquipment(); + } + + protected override void CompleteUISetup() + { + ui.SetUnitEquipmentItems(GetEquipmentItems(unit)); + ui.UnitEquipmentItemChoiceChanged += HandleUiUnitEquipmentItemChoiceChanged; + } + + public static UnitEquipmentItem[] GetEquipmentItems(Unit unit) + { + return Arrays.Subtract(UnitEquipmentUtil.GetAllowedEquipmentItems(unit), unit.GetEquipment()); + } + + public static bool HasEquipmentToAdd(Unit unit) + { + return GetEquipmentItems(unit).Length > 0; + } + + private void HandleUiUnitEquipmentItemChoiceChanged(UnitEquipmentItem equip) + { + equipItem = equip; + SetUnitEquipmentLimits(equip); + } + + protected override void DoProcessing() + { + if (isRatioAmount) + { + commandStack.Execute(new SetUnitEquipmentRatioAmountCommand(unit, equipItem, equipmentAmount)); + } + else + { + commandStack.Execute(new SetUnitEquipmentNumericAmountCommand(unit, equipItem, (int)equipmentAmount)); + } + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/EditEquipmentUIControl.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,51 @@ +// This file (EditEquipmentUIControl.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 IBBoard.Commands; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Util; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using IBBoard.WarFoundry.API.Commands; +using CustomMath = IBBoard.CustomMath; +using IBBoard.Lang; +using IBBoard.WarFoundry.GUI.GTK; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl +{ + public class EditEquipmentUIControl : AbstractBaseEquipmentUIControl<IEditEquipmentUI> + { + public EditEquipmentUIControl(Unit unit, UnitEquipmentItem item, CommandStack commandStack) : base(unit, commandStack) + { + this.equipItem = item; + } + + //TODO Make abstract + + protected override IEditEquipmentUI CreateEquipmentUI() + { + return new FrmEditEquipment(); + } + + protected override void CompleteUISetup() + { + SetUnitEquipmentLimits(equipItem); + SetUnitEquipmentValuesFromEquipment(equipItem); + ui.SetEquipmentAmountType(UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, equipItem)); + } + + protected override void DoProcessing() + { + if (isRatioAmount) + { + commandStack.Execute(new SetUnitEquipmentRatioAmountCommand(unit, equipItem, equipmentAmount)); + } + else + { + commandStack.Execute(new SetUnitEquipmentNumericAmountCommand(unit, equipItem, (int)equipmentAmount)); + } + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/Interfaces/IAddEquipmentUI.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,16 @@ +// This file (IAddEquipmentUI.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 IBBoard.WarFoundry.API.Objects; +namespace IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces +{ + /// <summary> + /// The interface that UI components should implement to represent "Add Equipment" dialogs or system equivalents (e.g. console areas or HTML fragments) + /// </summary> + public interface IAddEquipmentUI : ISelectableItemEquipmentUI + { + //Marker interface + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/Interfaces/IBaseEquipmentUI.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,144 @@ +// This file (IBaseEquipmentUI.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; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces +{ + /// <summary> + /// The base interface that all "UI control" controlled interfaces implement. It provides common definitions for all classes + /// </summary> + public interface IBaseEquipmentUI : IDisposable + { + /// <summary> + /// Occurs when the unit equipment amount type changes (e.g. percentage to numeric) + /// </summary> + event MethodInvoker UnitEquipmentAmountTypeChanged; + + /// <summary> + /// Occurs when the unit equipment amount changes + /// </summary> + + event MethodInvoker UnitEquipmentAmountChanged; + + /// <summary> + /// Causes the UI to listen to its widgets and fire events + /// </summary> + + void ListenToWidgets(); + + /// <summary> + /// Causes the UI to ignore the widgets so that changes do not fire events + /// </summary> + + void IgnoreWidgets(); + + /// <summary> + /// Sets the limits for the currently selected equipment item + /// </summary> + /// <param name='isRatioLimit'> + /// <code>True</code> if the current limit is a ratio limit, else <code>false</code> for absolute limits + /// </param> + /// <param name='minPercent'> + /// The minimum limit as a percentage + /// </param> + /// <param name='maxPercent'> + /// The maximum limit as a percentage + /// </param> + /// <param name='minNumber'> + /// The minimum number as an absolute figure + /// </param> + /// <param name='maxNumber'> + /// The maximum number as an absolute figure + /// </param> + + void SetUnitEquipmentLimits(bool isRatioLimit, double minPercent, double maxPercent, int minNumber, int maxNumber); + + /// <summary> + /// Sets whether the unit equipment limit UI components should be enabled and able to accept input. This will + /// generally pass the values on to the <see cref="SetNumericAmountEnabledState(bool)"/> and + /// <see cref="SetPercentageAmountEnabledState(bool)"/> methods and is included for convenience + /// </summary> + /// <param name='isEnabled'> + /// <code>True</code> if the UI components should accept input, else <code>false</code> + /// </param> + + void SetUnitEquipmentLimitsEnabled(bool isEnabled); + + /// <summary> + /// Shows the control and awaits a user action (close or okay) + /// </summary> + /// <returns> + /// <code>true</code> if the control was closed with "Okay", else <code>false</code> + /// </returns> + + bool ShowControl(); + + /// <summary> + /// Gets a value indicating whether the equipment amount is a ratio or an absolute number. + /// </summary> + /// <value> + /// <c>true</c> if the selected amount is a ratio type (percentage or "all"); otherwise, <c>false</c>. + /// </value> + + bool IsRatioEquipmentAmount + { + get; + } + + /// <summary> + /// Gets and sets the numeric amount for the current equipment amount. This number is meaningless if <see cref="IsRatioEquipmentAmount"/> is <code>true</code> + /// </summary> + /// <value> + /// The absolue number of items taken. + /// </value> + + int EquipmentNumericAmount + { + get; + set; + } + + /// <summary> + /// Gets and sets the percentage amount for the current equipment amount. This number is meaningless if <see cref="IsRatioEquipmentAmount"/> is <code>false</code> + /// </summary> + /// <value> + /// The number of items taken as a percentage of the unit size. + /// </value> + + double EquipmentPercentageAmount + { + get; + set; + } + + /// <summary> + /// Sets the state of the Okay button. + /// </summary> + /// <param name='enabled'> + /// <code>true</code> to enable the button, else <code>false</code> + /// </param> + + void SetOkayEnabledState(bool enabled); + + /// <summary> + /// Sets the state of the numeric equipment amount control. + /// </summary> + /// <param name='enabled'> + /// <code>true</code> to enable the control, else <code>false</code> + /// </param> + + void SetNumericAmountEnabledState(bool enabled); + + /// <summary> + /// Sets the state of the percentage equipment amount control. + /// </summary> + /// <param name='enabled'> + /// <code>true</code> to enable the control, else <code>false</code> + /// </param> + + void SetPercentageAmountEnabledState(bool enabled); + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/Interfaces/IEditEquipmentUI.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,24 @@ +// This file (IEditEquipmentUI.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 IBBoard.WarFoundry.API.Objects; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces +{ + /// <summary> + /// The interface that UI components should implement to represent "Edit Equipment" dialogs or system equivalents (e.g. console areas or HTML fragments) + /// </summary> + public interface IEditEquipmentUI : IBaseEquipmentUI + { + /// <summary> + /// Sets the type of the equipment amount. + /// </summary> + /// <param name='isRatioLimit'> + /// <code>True</code> for ratio selection amounts, else <code>false</code> for numeric amounts + /// </param> + void SetEquipmentAmountType(bool isRatioLimit); + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/Interfaces/IReplaceEquipmentUI.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,17 @@ +// This file (IReplaceEquipmentUI.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; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces +{ + /// <summary> + /// The interface that UI components should implement to represent "Replace Equipment" dialogs or system equivalents (e.g. console areas or HTML fragments) + /// </summary> + public interface IReplaceEquipmentUI : ISelectableItemEquipmentUI + { + //Marker interface + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/Interfaces/ISelectableItemEquipmentUI.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,38 @@ +// This file (ISelectableItemEquipmentUI.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 IBBoard.WarFoundry.API.Objects; +namespace IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces +{ + /// <summary> + /// + /// </summary> + public interface ISelectableItemEquipmentUI : IBaseEquipmentUI + { + /// <summary> + /// Should be fired when unit equipment item choice changes. + /// </summary> + event SingleArgMethodInvoker<UnitEquipmentItem> UnitEquipmentItemChoiceChanged; + + /// <summary> + /// Sets the equipment items that should be displayed on the form + /// </summary> + /// <param name='items'> + /// The equipment items that should be displayed on the form + /// </param> + void SetUnitEquipmentItems(UnitEquipmentItem[] items); + + /// <summary> + /// Gets the selected equipment item. + /// </summary> + /// <value> + /// The selected equipment item. + /// </value> + UnitEquipmentItem SelectedUnitEquipmentItem + { + get; + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UIControl/ReplaceEquipmentUIControl.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,60 @@ +// This file (AddEquipmentUIControl.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 IBBoard.Commands; +using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Util; +using IBBoard.WarFoundry.GUI.GTK.UIControl.Interfaces; +using CustomMath = IBBoard.CustomMath; + +namespace IBBoard.WarFoundry.GUI.GTK.UIControl +{ + public class ReplaceEquipmentUIControl : AbstractBaseEquipmentUIControl<IReplaceEquipmentUI> + { + private UnitEquipmentItem origItem; + + public ReplaceEquipmentUIControl(Unit unit, UnitEquipmentItem equipmentItem, CommandStack commandStack) : base(unit, commandStack) + { + origItem = equipmentItem; + } + + //TODO Make abstract + + protected override IReplaceEquipmentUI CreateEquipmentUI() + { + return new FrmReplaceEquipment(); + } + + protected override void CompleteUISetup() + { + UnitType unitType = unit.UnitType; + string[] mutexGroups = origItem.MutexGroups; + UnitEquipmentItem[] mutexItems = unitType.GetEquipmentItemsByExclusionGroups(mutexGroups); + UnitEquipmentItem[] currentEquipment = unit.GetEquipment(); + UnitEquipmentItem[] allowedItems = Arrays.Subtract(mutexItems, currentEquipment); + ui.SetUnitEquipmentItems(allowedItems); + ui.UnitEquipmentItemChoiceChanged += HandleUiUnitEquipmentItemChoiceChanged; + } + + private void HandleUiUnitEquipmentItemChoiceChanged(UnitEquipmentItem equip) + { + equipItem = equip; + SetUnitEquipmentLimits(equip); + } + + protected override void DoProcessing() + { + if (isRatioAmount) + { + commandStack.Execute(new ReplaceUnitEquipmentWithRatioAmountItemCommand(unit, origItem, equipItem, equipmentAmount)); + } + else + { + commandStack.Execute(new ReplaceUnitEquipmentWithRatioAmountItemCommand(unit, origItem, equipItem, (int)equipmentAmount)); + } + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Util/GtkWarFoundryUtil.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,17 @@ +// This file (GtkWarFoundryUtil.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 IBBoard.WarFoundry.API.Objects; +using Gtk; +namespace IBBoard.WarFoundry.GUI.GTK.Util +{ + public class GtkWarFoundryUtil + { + public static void RenderWarFoundryObjectName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + { + WarFoundryObject equip = (WarFoundryObject)model.GetValue(iter, 0); + (cell as CellRendererText).Text = equip.Name; + } + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WarFoundry-GTK.exe.log4net Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" ?> +<log4net> + <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="%-5p [%d{HH:MM:ss}]: %C{1}.%M() - Line: %L - %m%n" /> + </layout> + </appender> + <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> + <file value="logs/WarFoundry.log" /> + <appendToFile value="false" /> + <rollingStyle value="Size" /> + <maxSizeRollBackups value="-1" /> + <maximumFileSize value="100MB" /> + <layout type="log4net.Layout.PatternLayout"> + <conversionPattern value="%-5p [%d{HH:MM:ss}]: %C{1}.%M() - Line: %L - %m%n" /> + </layout> + </appender> + <root> + <level value="DEBUG" /> + <appender-ref ref="ConsoleAppender" /> + <appender-ref ref="RollingLogFileAppender" /> + </root> +</log4net>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WarFoundry-GTKPref.xml Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE preferences[ + <!ELEMENT preference (CDATA|preferenceArr+)> + <!ELEMENT preferenceArr (CDATA)> + <!ATTLIST preference id ID #REQUIRED> + <!ATTLIST preference type CDATA #REQUIRED> + <!ATTLIST preferenceArr id ID #REQUIRED> +]> +<preferences> +<preference id="language" type="System.String">en</preference> +<preference id="currSystem" type="System.String"></preference> +<preference id="logLevel" type="System.String">Info</preference> +</preferences>
--- a/WarFoundryGTK.exe.log4net Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<log4net> - <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > - <layout type="log4net.Layout.PatternLayout"> - <conversionPattern value="%-5p [%d{HH:MM:ss}]: %C{1}.%M() - Line: %L - %m%n" /> - </layout> - </appender> - <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> - <file value="logs/WarFoundry.log" /> - <appendToFile value="false" /> - <rollingStyle value="Size" /> - <maxSizeRollBackups value="-1" /> - <maximumFileSize value="100MB" /> - <layout type="log4net.Layout.PatternLayout"> - <conversionPattern value="%-5p [%d{HH:MM:ss}]: %C{1}.%M() - Line: %L - %m%n" /> - </layout> - </appender> - <root> - <level value="DEBUG" /> - <appender-ref ref="ConsoleAppender" /> - <appender-ref ref="RollingLogFileAppender" /> - </root> -</log4net>
--- a/WarFoundryGTKPref.xml Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE preferences[ - <!ELEMENT preference (CDATA|preferenceArr+)> - <!ELEMENT preferenceArr (CDATA)> - <!ATTLIST preference id ID #REQUIRED> - <!ATTLIST preference type CDATA #REQUIRED> - <!ATTLIST preferenceArr id ID #REQUIRED> -]> -<preferences> -<preference id="language" type="System.String">en</preference> -<preference id="currSystem" type="System.String"></preference> -<preference id="logLevel" type="System.String">Info</preference> -</preferences>
--- a/Widgets/UnitDisplayWidget.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/Widgets/UnitDisplayWidget.cs Mon Jan 17 19:43:47 2011 +0000 @@ -5,143 +5,389 @@ using System; using Gtk; using IBBoard.Commands; +using IBBoard.GtkSharp; using IBBoard.Lang; using IBBoard.WarFoundry.API; +using IBBoard.WarFoundry.API.Commands; using IBBoard.WarFoundry.API.Objects; -using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.API.Util; +using IBBoard.WarFoundry.GUI.GTK.UIControl; +using log4net; +using WFObjects = IBBoard.WarFoundry.API.Objects; +using System.Collections.Generic; +using IBBoard.GtkSharp.Translatable; -namespace IBBoard.WarFoundry.GTK.Widgets +namespace IBBoard.WarFoundry.GUI.GTK.Widgets { [System.ComponentModel.Category("WarFoundry GTK# GUI")] [System.ComponentModel.ToolboxItem(true)] public partial class UnitDisplayWidget : Gtk.Bin - { - private IBBoard.WarFoundry.API.Objects.Unit unit; + { + private static ILog log = LogManager.GetLogger(typeof(UnitDisplayWidget)); + private WFObjects.Unit unit; private CommandStack stack; - - public UnitDisplayWidget(IBBoard.WarFoundry.API.Objects.Unit sourceUnit, CommandStack commandStack) + private Dictionary<string, NodeView> statsViews = new Dictionary<string, NodeView>(); + + public UnitDisplayWidget(WFObjects.Unit sourceUnit, CommandStack commandStack) { this.Build(); stack = commandStack; unit = sourceUnit; unitName.Text = unit.Name; unitSize.Value = unit.Size; - double max = unit.UnitType.MaxSize; + int maxSize = (unit.UnitType.MaxSize == WarFoundryCore.INFINITY ? int.MaxValue : unit.UnitType.MaxSize); + int minSize = unit.UnitType.MinSize; + unitSize.SetRange(minSize, maxSize); + unitSize.Sensitive = (maxSize != minSize); + notesView.Buffer.Text = unit.UnitType.Notes; + unit.NameChanged += UnitNameChanged; + unit.UnitSizeChanged += UnitSizeChanged; + unit.UnitEquipmentAmountChanged += HandleUnitUnitEquipmentAmountChanged; + equipmentList.Selection.Changed += HandleEquipmentListSelectionChanged; + SetAbilities(); + SetStats(); + SetWeapons(); + SetAddButtonEnabledState(); + ControlTranslator.TranslateWidget(this); + } + + private void HandleEquipmentListSelectionChanged(object sender, EventArgs e) + { + SetButtonsEnabledState(); + } + + private void SetButtonsEnabledState() + { + UnitEquipmentItem equipItem = GetSelectedEquipmentItem(); + bttnReplaceWeapon.Sensitive = (equipItem != null && equipItem.HasAlternatives()); + bttnEditWeapon.Sensitive = (UnitEquipmentUtil.CanEditEquipmentAmount(unit, equipItem)); + bttnRemoveWeapon.Sensitive = (equipItem != null && !equipItem.IsRequired); + } + + private void SetAddButtonEnabledState() + { + bttnAddWeapon.Sensitive = AddEquipmentUIControl.HasEquipmentToAdd(unit); + } + + private UnitEquipmentItem GetSelectedEquipmentItem() + { + return (UnitEquipmentItem)TreeUtils.GetSelectedItem(equipmentList); + } + + private void SetAbilities() + { + CellRendererText renderer = new CellRendererText(); + abilitiesList.AppendColumn("", renderer, new TreeCellDataFunc(RenderAbility)); - if (max == -1) + ListStore model = new ListStore(typeof(Ability)); + + foreach (Ability ability in unit.UnitType.GetRequiredAbilities()) { - max = double.MaxValue; + model.AppendValues(ability); } - unitSize.SetRange(unit.UnitType.MinSize, max); - unit.NameChanged+= new StringValChangedDelegate(UnitNameChanged); - unit.UnitSizeChanged+= new IntValChangedDelegate(UnitSizeChanged); - SetStats(); + abilitiesList.Model = model; + } + + public void RenderAbility(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + { + object o = model.GetValue(iter, 0); + + if (o is Ability) + { + Ability ability = (Ability)o; + (cell as CellRendererText).Text = ability.Name; + } + } private void SetStats() { - //GameSystem system = unit.Army.GameSystem; - //SystemStats stats = system.StandardSystemStats; - CellRendererText renderer = new CellRendererText(); - unitStats.AppendColumn(Translation.GetTranslation("UnitNameColumn", "Unit Type", null), renderer, new TreeCellDataFunc(RenderUnitName)); - - TreeCellDataFunc statFunc = new TreeCellDataFunc(RenderUnitStat); - Stat[] stats = unit.UnitStatsArray; - - int length = stats.Length; + Stat[][] stats = unit.UnitStatsArraysWithName; + string[] statsIDs = unit.UnitStatsArrayIDs; + int statsCount = stats.Length; + log.DebugFormat("Unit {0} has {1} stats arrays", unit.UnitType.Name, statsCount); - for (int i = 0; i < length; i++) + for (int i = 0; i < statsCount; i++) { - unitStats.AppendColumn(stats[i].ParentSlotName, renderer, statFunc); + NodeView statsGrid = GetStatsView(statsIDs[i]); + TreeStore model = (TreeStore)statsGrid.Model; + log.DebugFormat("Adding row to data table for {0}", statsIDs[i]); + log.DebugFormat("TreeStore supports {0} columns", model.NColumns); + model.AppendValues((object)stats[i]); + } + } + + private NodeView GetStatsView(string statsID) + { + NodeView statsView; + + if (statsViews.ContainsKey(statsID)) + { + statsView = DictionaryUtils.GetValue(statsViews, statsID); + } + else + { + statsView = CreateStatsView(statsID); + statsViews[statsID] = statsView; } - TreeStore model = new TreeStore(typeof(IBBoard.WarFoundry.API.Objects.Unit)); - model.AppendValues(unit); - unitStats.Model = model; + return statsView; } - - private void RenderUnitName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + + private NodeView CreateStatsView(string statsID) { - object o = model.GetValue(iter, 0); - - if (o is IBBoard.WarFoundry.API.Objects.Unit) + log.DebugFormat("Create NodeView for stats ID {0}", statsID); + SystemStats sysStats = unit.Race.GameSystem.GetSystemStatsForID(statsID); + StatSlot[] sysStatSlots = sysStats.StatSlots; + int statsCount = sysStatSlots.Length; + NodeView statsGrid = CreateNodeView(); + CellRendererText renderer = new CellRendererText(); + statsGrid.AppendColumn(Translation.GetTranslation("UnitNameColumn", "Unit Type", null), renderer, RenderUnitStat); + + for (int i = 0; i < statsCount; i++) { - IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o; - (cell as CellRendererText).Text = u.UnitType.Name; + StatSlot stat = sysStatSlots[i]; + string slotName = stat.Name; + statsGrid.AppendColumn(slotName, renderer, RenderUnitStat); } + + statsGrid.Model = new TreeStore(typeof(Stat[])); + return statsGrid; } - + + private NodeView CreateNodeView() + { + NodeView nodeView = new NodeView(); + statsRepeatBox.Add(nodeView); + return nodeView; + } + private void RenderUnitStat(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { object o = model.GetValue(iter, 0); - if (o is IBBoard.WarFoundry.API.Objects.Unit) + if (o is Stat[]) { - IBBoard.WarFoundry.API.Objects.Unit u = (IBBoard.WarFoundry.API.Objects.Unit)o; - (cell as CellRendererText).Text = u.GetStatValue(column.Title); + Stat[] stats = (Stat[])o; + (cell as CellRendererText).Text = stats[GetStatColumnIndex(column)].SlotValueString; } } - public IBBoard.WarFoundry.API.Objects.Unit Unit + private int GetStatColumnIndex(TreeViewColumn column) + { + int idx = -1; + TreeViewColumn[] cols = ((TreeView)column.TreeView).Columns; + int colCount = cols.Length; + + for (int i = 0; i < colCount; i++) + { + if (cols[i] == column) + { + idx = i; + break; + } + } + + return idx; + } + + private void SetWeapons() + { + CellRendererText renderer = new CellRendererText(); + equipmentList.AppendColumn("", renderer, new TreeCellDataFunc(RenderEquipmentLine)); + + ListStore model = new ListStore(typeof(UnitEquipmentItem)); + + foreach (UnitEquipmentItem item in unit.GetEquipment()) + { + model.AppendValues(item); + } + + equipmentList.Model = model; + } + + public void RenderEquipmentLine(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) + { + object o = model.GetValue(iter, 0); + + if (o is UnitEquipmentItem) + { + UnitEquipmentItem item = (UnitEquipmentItem)o; + (cell as CellRendererText).Text = GetUnitEquipmentText(item); + } + + } + + private string GetUnitEquipmentText(UnitEquipmentItem item) + { + string translation = ""; + + if (item.Cost == 0) + { + translation = Translation.GetTranslation("equipmentAmountWithZeroCost", "{0} ({1} - free)", item.Name, GetAmountString(item)); + } + else + { + translation = Translation.GetTranslation("equipmentAmountWithCost", "{0} ({1} at {2}pts each)", item.Name, GetAmountString(item), item.Cost); + } + + return translation; + } + + private string GetAmountString(UnitEquipmentItem item) + { + double amount = UnitEquipmentUtil.GetEquipmentAmount(unit, item); + string amountString = ""; + + if (UnitEquipmentUtil.GetEquipmentAmountIsRatio(unit, item)) + { + int number = UnitEquipmentUtil.GetEquipmentAmountTaken(unit, item); + + if (amount == 100) + { + amountString = Translation.GetTranslation("equipmentChoiceAmountAll", "all ({1})", amount, number); + } + else + { + amountString = Translation.GetTranslation("equipmentChoiceAmountPercentage", "{0}% ({1})", amount, number); + } + } + else + { + amountString = Translation.GetTranslation("equipmentChoiceAmountNumber", "{0}", amount); + } + + return amountString; + } + + public WFObjects.Unit Unit { get { return unit; } } - + private void UnitNameChanged(WarFoundryObject obj, string oldValue, string newValue) { unitName.Text = newValue; } - + private void UnitSizeChanged(WarFoundryObject obj, int oldValue, int newValue) { unitSize.Value = newValue; } - protected virtual void OnUnitSizeFocusOut (object o, Gtk.FocusOutEventArgs args) + private void HandleUnitUnitEquipmentAmountChanged(WarFoundryObject obj, double oldValue, double newValue) + { + if (oldValue == 0) + { + ((ListStore)equipmentList.Model).AppendValues(obj); + } + else + { + if (newValue == 0) + { + TreeIter treeIter = TreeUtils.GetItemIter(equipmentList, obj); + ((ListStore)equipmentList.Model).Remove(ref treeIter); + } + } + + SetAddButtonEnabledState(); + equipmentList.QueueDraw(); + } + + protected virtual void OnUnitSizeFocusOut(object o, Gtk.FocusOutEventArgs args) { SetNewUnitSize(); } [GLib.ConnectBefore ()] - protected virtual void OnUnitSizeKeyPress (object o, Gtk.KeyPressEventArgs args) + + protected virtual void OnUnitSizeKeyPress(object o, Gtk.KeyPressEventArgs args) { - if (args.Event.Key == Gdk.Key.Return) + if (args.Event.Key == Gdk.Key.Return || args.Event.Key == Gdk.Key.KP_Enter) { SetNewUnitSize(); } } - + private void SetNewUnitSize() { - if (unitSize.Value!=unit.Size) + if (unitSize.Value != unit.Size) { SetUnitSizeCommand cmd = new SetUnitSizeCommand(unit, (int)Math.Round(unitSize.Value)); stack.Execute(cmd); } } - protected virtual void OnUnitNameFocusOut (object o, Gtk.FocusOutEventArgs args) + protected virtual void OnUnitNameFocusOut(object o, Gtk.FocusOutEventArgs args) { SetNewUnitName(); } [GLib.ConnectBefore ()] - protected virtual void OnUnitNameKeyPress (object o, Gtk.KeyPressEventArgs args) + + protected virtual void OnUnitNameKeyPress(object o, Gtk.KeyPressEventArgs args) { - if (args.Event.Key == Gdk.Key.Return) + if (args.Event.Key == Gdk.Key.Return || args.Event.Key == Gdk.Key.KP_Enter) { SetNewUnitName(); } } - + private void SetNewUnitName() { - if (unitName.Text!=unit.Name) + if (unitName.Text != unit.Name) { SetNameCommand cmd = new SetNameCommand(unit, unitName.Text); stack.Execute(cmd); } } + + private void OnBttnAddEquipmentClicked(object sender, System.EventArgs e) + { + AddEquipment(); + } + + private void AddEquipment() + { + AddEquipmentUIControl addEquipment = new AddEquipmentUIControl(unit, stack); + addEquipment.Show(); + } + + protected virtual void HandleRemoveButtonActivated(object sender, System.EventArgs e) + { + UnitEquipmentItem item = GetSelectedEquipmentItem(); + log.Debug("Remove " + item); + + if (item != null) + { + SetUnitEquipmentNumericAmountCommand cmd = new SetUnitEquipmentNumericAmountCommand(unit, item, 0); + stack.Execute(cmd); + } + } + + protected virtual void HandleEditButtonClicked(object sender, System.EventArgs e) + { + UnitEquipmentItem item = GetSelectedEquipmentItem(); + log.Debug("Edit " + item); + + if (item != null) + { + EditEquipmentUIControl editEquipment = new EditEquipmentUIControl(unit, item, stack); + editEquipment.Show(); + } + } + + protected virtual void HandleReplaceButtonClicked(object sender, System.EventArgs e) + { + UnitEquipmentItem item = GetSelectedEquipmentItem(); + log.Debug("Replace " + item); + + if (item != null) + { + ReplaceEquipmentUIControl addEquipment = new ReplaceEquipmentUIControl(unit, item, stack); + addEquipment.Show(); + } + } } -} +} \ No newline at end of file
--- a/gtk-gui/IBBoard.WarFoundry.GTK.FrmMainWindow.cs Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +0,0 @@ -// ------------------------------------------------------------------------------ -// <autogenerated> -// This code was generated by a tool. -// -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </autogenerated> -// ------------------------------------------------------------------------------ - -namespace IBBoard.WarFoundry.GTK { - - - public partial class FrmMainWindow { - - private Gtk.UIManager UIManager; - - private Gtk.Action menuFile; - - private Gtk.Action miCreateArmy; - - private Gtk.Action miOpenArmy; - - private Gtk.Action miSaveArmy; - - private Gtk.Action miSaveArmyAs; - - private Gtk.Action miCloseArmy; - - private Gtk.Action miReloadFiles; - - private Gtk.Action miExit; - - private Gtk.Action menuEdit; - - private Gtk.Action miUndo; - - private Gtk.Action miRedo; - - private Gtk.Action menuHelp; - - private Gtk.Action miAbout; - - private Gtk.Action miDebugInformation; - - private Gtk.Action newArmyButton; - - private Gtk.Action openArmyButton; - - private Gtk.Action saveArmyButton; - - private Gtk.Action undoActionButton; - - private Gtk.Action redoActionButton; - - private Gtk.Action goDown; - - private Gtk.Action add; - - private Gtk.Action miExportArmy; - - private Gtk.Action miExportAsBasicHtml; - - private Gtk.VBox vbox1; - - private Gtk.MenuBar menubar1; - - private Gtk.Toolbar toolbar; - - private Gtk.HPaned hpaned2; - - private Gtk.TreeView treeUnits; - - private Gtk.Notebook unitsNotebook; - - private Gtk.Statusbar statusbar1; - - protected virtual void Build() { - Stetic.Gui.Initialize(this); - // Widget IBBoard.WarFoundry.GTK.FrmMainWindow - this.UIManager = new Gtk.UIManager(); - Gtk.ActionGroup w1 = new Gtk.ActionGroup("Default"); - this.menuFile = new Gtk.Action("menuFile", Mono.Unix.Catalog.GetString("File"), null, null); - this.menuFile.ShortLabel = Mono.Unix.Catalog.GetString("File"); - w1.Add(this.menuFile, null); - this.miCreateArmy = new Gtk.Action("miCreateArmy", Mono.Unix.Catalog.GetString("Create army"), null, "gtk-new"); - this.miCreateArmy.ShortLabel = Mono.Unix.Catalog.GetString("Create army"); - w1.Add(this.miCreateArmy, null); - this.miOpenArmy = new Gtk.Action("miOpenArmy", Mono.Unix.Catalog.GetString("Open army"), null, "gtk-open"); - this.miOpenArmy.ShortLabel = Mono.Unix.Catalog.GetString("Open army"); - w1.Add(this.miOpenArmy, null); - this.miSaveArmy = new Gtk.Action("miSaveArmy", Mono.Unix.Catalog.GetString("Save army"), null, "gtk-save"); - this.miSaveArmy.Sensitive = false; - this.miSaveArmy.ShortLabel = Mono.Unix.Catalog.GetString("Save army"); - w1.Add(this.miSaveArmy, null); - this.miSaveArmyAs = new Gtk.Action("miSaveArmyAs", Mono.Unix.Catalog.GetString("Save army as"), null, "gtk-save-as"); - this.miSaveArmyAs.Sensitive = false; - this.miSaveArmyAs.ShortLabel = Mono.Unix.Catalog.GetString("Save army as"); - w1.Add(this.miSaveArmyAs, null); - this.miCloseArmy = new Gtk.Action("miCloseArmy", Mono.Unix.Catalog.GetString("Close army"), null, "gtk-close"); - this.miCloseArmy.Sensitive = false; - this.miCloseArmy.ShortLabel = Mono.Unix.Catalog.GetString("Close army"); - w1.Add(this.miCloseArmy, null); - this.miReloadFiles = new Gtk.Action("miReloadFiles", Mono.Unix.Catalog.GetString("Reload files"), null, "gtk-refresh"); - this.miReloadFiles.Sensitive = false; - this.miReloadFiles.ShortLabel = Mono.Unix.Catalog.GetString("Reload files"); - w1.Add(this.miReloadFiles, null); - this.miExit = new Gtk.Action("miExit", Mono.Unix.Catalog.GetString("Exit"), null, "gtk-quit"); - this.miExit.ShortLabel = Mono.Unix.Catalog.GetString("Exit"); - w1.Add(this.miExit, null); - this.menuEdit = new Gtk.Action("menuEdit", Mono.Unix.Catalog.GetString("Edit"), null, null); - this.menuEdit.ShortLabel = Mono.Unix.Catalog.GetString("Edit"); - w1.Add(this.menuEdit, null); - this.miUndo = new Gtk.Action("miUndo", Mono.Unix.Catalog.GetString("Undo"), null, "gtk-undo"); - this.miUndo.Sensitive = false; - this.miUndo.ShortLabel = Mono.Unix.Catalog.GetString("Undo"); - w1.Add(this.miUndo, null); - this.miRedo = new Gtk.Action("miRedo", Mono.Unix.Catalog.GetString("Redo"), null, "gtk-redo"); - this.miRedo.Sensitive = false; - this.miRedo.ShortLabel = Mono.Unix.Catalog.GetString("Redo"); - w1.Add(this.miRedo, null); - this.menuHelp = new Gtk.Action("menuHelp", Mono.Unix.Catalog.GetString("Help"), null, null); - this.menuHelp.ShortLabel = Mono.Unix.Catalog.GetString("Help"); - w1.Add(this.menuHelp, null); - this.miAbout = new Gtk.Action("miAbout", Mono.Unix.Catalog.GetString("About"), null, "gtk-about"); - this.miAbout.ShortLabel = Mono.Unix.Catalog.GetString("About"); - w1.Add(this.miAbout, null); - this.miDebugInformation = new Gtk.Action("miDebugInformation", Mono.Unix.Catalog.GetString("Debug Information"), null, null); - this.miDebugInformation.ShortLabel = Mono.Unix.Catalog.GetString("Debug Information"); - w1.Add(this.miDebugInformation, null); - this.newArmyButton = new Gtk.Action("newArmyButton", null, null, "gtk-new"); - w1.Add(this.newArmyButton, null); - this.openArmyButton = new Gtk.Action("openArmyButton", null, null, "gtk-open"); - w1.Add(this.openArmyButton, null); - this.saveArmyButton = new Gtk.Action("saveArmyButton", null, null, "gtk-save"); - this.saveArmyButton.Sensitive = false; - w1.Add(this.saveArmyButton, null); - this.undoActionButton = new Gtk.Action("undoActionButton", null, null, "gtk-undo"); - this.undoActionButton.Sensitive = false; - w1.Add(this.undoActionButton, null); - this.redoActionButton = new Gtk.Action("redoActionButton", null, null, "gtk-redo"); - this.redoActionButton.Sensitive = false; - w1.Add(this.redoActionButton, null); - this.goDown = new Gtk.Action("goDown", null, null, null); - w1.Add(this.goDown, null); - this.add = new Gtk.Action("add", null, null, "gtk-add"); - w1.Add(this.add, null); - this.miExportArmy = new Gtk.Action("miExportArmy", Mono.Unix.Catalog.GetString("Export army as..."), null, "gtk-convert"); - this.miExportArmy.Sensitive = false; - this.miExportArmy.ShortLabel = Mono.Unix.Catalog.GetString("Export army"); - w1.Add(this.miExportArmy, null); - this.miExportAsBasicHtml = new Gtk.Action("miExportAsBasicHtml", Mono.Unix.Catalog.GetString("Basic HTML"), null, null); - this.miExportAsBasicHtml.ShortLabel = Mono.Unix.Catalog.GetString("Basic HTML"); - w1.Add(this.miExportAsBasicHtml, null); - this.UIManager.InsertActionGroup(w1, 0); - this.AddAccelGroup(this.UIManager.AccelGroup); - this.Name = "IBBoard.WarFoundry.GTK.FrmMainWindow"; - this.Title = Mono.Unix.Catalog.GetString("MainWindow"); - this.Icon = Gdk.Pixbuf.LoadFromResource("App.ico"); - // Container child IBBoard.WarFoundry.GTK.FrmMainWindow.Gtk.Container+ContainerChild - this.vbox1 = new Gtk.VBox(); - this.vbox1.Name = "vbox1"; - // Container child vbox1.Gtk.Box+BoxChild - this.UIManager.AddUiFromString("<ui><menubar name='menubar1'><menu name='menuFile' action='menuFile'><menuitem name='miCreateArmy' action='miCreateArmy'/><menuitem name='miOpenArmy' action='miOpenArmy'/><menuitem name='miSaveArmy' action='miSaveArmy'/><menuitem name='miSaveArmyAs' action='miSaveArmyAs'/><menu name='miExportArmy' action='miExportArmy'><menuitem name='miExportAsBasicHtml' action='miExportAsBasicHtml'/></menu><menuitem name='miCloseArmy' action='miCloseArmy'/><separator/><menuitem name='miReloadFiles' action='miReloadFiles'/><separator/><menuitem name='miExit' action='miExit'/></menu><menu name='menuEdit' action='menuEdit'><menuitem name='miUndo' action='miUndo'/><menuitem name='miRedo' action='miRedo'/></menu><menu name='menuHelp' action='menuHelp'><menuitem name='miAbout' action='miAbout'/><menuitem name='miDebugInformation' action='miDebugInformation'/></menu></menubar></ui>"); - this.menubar1 = ((Gtk.MenuBar)(this.UIManager.GetWidget("/menubar1"))); - this.menubar1.Name = "menubar1"; - this.vbox1.Add(this.menubar1); - Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox1[this.menubar1])); - w2.Position = 0; - w2.Expand = false; - w2.Fill = false; - // Container child vbox1.Gtk.Box+BoxChild - this.UIManager.AddUiFromString("<ui><toolbar name='toolbar'><toolitem name='newArmyButton' action='newArmyButton'/><toolitem name='openArmyButton' action='openArmyButton'/><toolitem name='saveArmyButton' action='saveArmyButton'/><separator/><toolitem name='undoActionButton' action='undoActionButton'/><toolitem name='redoActionButton' action='redoActionButton'/><separator/></toolbar></ui>"); - this.toolbar = ((Gtk.Toolbar)(this.UIManager.GetWidget("/toolbar"))); - this.toolbar.HeightRequest = 36; - this.toolbar.Name = "toolbar"; - this.toolbar.ShowArrow = false; - this.toolbar.ToolbarStyle = ((Gtk.ToolbarStyle)(0)); - this.toolbar.IconSize = ((Gtk.IconSize)(3)); - this.vbox1.Add(this.toolbar); - Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.toolbar])); - w3.Position = 1; - w3.Expand = false; - w3.Fill = false; - // Container child vbox1.Gtk.Box+BoxChild - this.hpaned2 = new Gtk.HPaned(); - this.hpaned2.CanFocus = true; - this.hpaned2.Name = "hpaned2"; - this.hpaned2.Position = 178; - // Container child hpaned2.Gtk.Paned+PanedChild - this.treeUnits = new Gtk.TreeView(); - this.treeUnits.CanFocus = true; - this.treeUnits.Name = "treeUnits"; - this.hpaned2.Add(this.treeUnits); - Gtk.Paned.PanedChild w4 = ((Gtk.Paned.PanedChild)(this.hpaned2[this.treeUnits])); - w4.Resize = false; - // Container child hpaned2.Gtk.Paned+PanedChild - this.unitsNotebook = new Gtk.Notebook(); - this.unitsNotebook.CanFocus = true; - this.unitsNotebook.Name = "unitsNotebook"; - this.unitsNotebook.CurrentPage = -1; - this.hpaned2.Add(this.unitsNotebook); - this.vbox1.Add(this.hpaned2); - Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox1[this.hpaned2])); - w6.Position = 2; - // Container child vbox1.Gtk.Box+BoxChild - this.statusbar1 = new Gtk.Statusbar(); - this.statusbar1.Name = "statusbar1"; - this.statusbar1.Spacing = 2; - this.vbox1.Add(this.statusbar1); - Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.vbox1[this.statusbar1])); - w7.Position = 3; - w7.Expand = false; - w7.Fill = false; - this.Add(this.vbox1); - if ((this.Child != null)) { - this.Child.ShowAll(); - } - this.DefaultWidth = 832; - this.DefaultHeight = 659; - this.Show(); - this.miCreateArmy.Activated += new System.EventHandler(this.OnCreateArmyActivated); - this.miOpenArmy.Activated += new System.EventHandler(this.OnOpenArmyActivated); - this.miSaveArmy.Activated += new System.EventHandler(this.OnSaveArmyActivated); - this.miSaveArmyAs.Activated += new System.EventHandler(this.OnSaveArmyAsActivated); - this.miCloseArmy.Activated += new System.EventHandler(this.OnCloseArmyActivated); - this.miReloadFiles.Activated += new System.EventHandler(this.OnReloadFilesActivated); - this.miExit.Activated += new System.EventHandler(this.OnExitActivated); - this.newArmyButton.Activated += new System.EventHandler(this.newTBButtonActivated); - this.openArmyButton.Activated += new System.EventHandler(this.openTBButtonActivated); - this.saveArmyButton.Activated += new System.EventHandler(this.saveTBButtonActivated); - this.undoActionButton.Activated += new System.EventHandler(this.undoTBButtonActivated); - this.redoActionButton.Activated += new System.EventHandler(this.redoTBButtonActivated); - this.miExportAsBasicHtml.Activated += new System.EventHandler(this.OnMiExportAsBasicHtmlActivated); - this.treeUnits.RowActivated += new Gtk.RowActivatedHandler(this.ArmyRowActivated); - this.treeUnits.PopupMenu += new Gtk.PopupMenuHandler(this.OnTreeUnitsPopupMenu); - this.treeUnits.ButtonPressEvent += new Gtk.ButtonPressEventHandler(this.UnitTreeButtonPressed); - } - } -}
--- a/gtk-gui/IBBoard.WarFoundry.GTK.FrmNewArmy.cs Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -// ------------------------------------------------------------------------------ -// <autogenerated> -// This code was generated by a tool. -// -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </autogenerated> -// ------------------------------------------------------------------------------ - -namespace IBBoard.WarFoundry.GTK { - - - public partial class FrmNewArmy { - - private Gtk.Table table1; - - private Gtk.ScrolledWindow GtkScrolledWindow; - - private Gtk.TreeView lstRaces; - - private Gtk.HBox hbox2; - - private Gtk.SpinButton sbPointsValue; - - private Gtk.Label label1; - - private Gtk.Label label2; - - private Gtk.Label label3; - - private Gtk.Label label4; - - private Gtk.ComboBoxEntry systemCombo; - - private Gtk.Entry txtArmyName; - - private Gtk.Button bttnCancel; - - private Gtk.Button bttnCreate; - - protected virtual void Build() { - Stetic.Gui.Initialize(this); - // Widget IBBoard.WarFoundry.GTK.FrmNewArmy - this.Events = ((Gdk.EventMask)(256)); - this.Name = "IBBoard.WarFoundry.GTK.FrmNewArmy"; - this.Title = Mono.Unix.Catalog.GetString("Create new army"); - this.Icon = Stetic.IconLoader.LoadIcon(this, "gtk-new", Gtk.IconSize.Menu, 16); - this.WindowPosition = ((Gtk.WindowPosition)(4)); - this.SkipPagerHint = true; - this.SkipTaskbarHint = true; - // Internal child IBBoard.WarFoundry.GTK.FrmNewArmy.VBox - Gtk.VBox w1 = this.VBox; - w1.CanFocus = true; - w1.Events = ((Gdk.EventMask)(256)); - w1.Name = "dialog_VBox"; - w1.BorderWidth = ((uint)(2)); - // Container child dialog_VBox.Gtk.Box+BoxChild - this.table1 = new Gtk.Table(((uint)(4)), ((uint)(2)), false); - this.table1.Name = "table1"; - this.table1.RowSpacing = ((uint)(6)); - this.table1.ColumnSpacing = ((uint)(6)); - // Container child table1.Gtk.Table+TableChild - this.GtkScrolledWindow = new Gtk.ScrolledWindow(); - this.GtkScrolledWindow.Name = "GtkScrolledWindow"; - this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1)); - // Container child GtkScrolledWindow.Gtk.Container+ContainerChild - this.lstRaces = new Gtk.TreeView(); - this.lstRaces.HeightRequest = 150; - this.lstRaces.CanFocus = true; - this.lstRaces.Name = "lstRaces"; - this.lstRaces.HeadersVisible = false; - this.lstRaces.RulesHint = true; - this.GtkScrolledWindow.Add(this.lstRaces); - this.table1.Add(this.GtkScrolledWindow); - Gtk.Table.TableChild w3 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow])); - w3.TopAttach = ((uint)(1)); - w3.BottomAttach = ((uint)(2)); - w3.LeftAttach = ((uint)(1)); - w3.RightAttach = ((uint)(2)); - w3.XOptions = ((Gtk.AttachOptions)(4)); - w3.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.hbox2 = new Gtk.HBox(); - this.hbox2.Name = "hbox2"; - // Container child hbox2.Gtk.Box+BoxChild - this.sbPointsValue = new Gtk.SpinButton(0, 2000000000, 100); - this.sbPointsValue.WidthRequest = 150; - this.sbPointsValue.CanFocus = true; - this.sbPointsValue.Name = "sbPointsValue"; - this.sbPointsValue.Adjustment.PageIncrement = 1000; - this.sbPointsValue.ClimbRate = 100; - this.sbPointsValue.Numeric = true; - this.sbPointsValue.Value = 1000; - this.hbox2.Add(this.sbPointsValue); - Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox2[this.sbPointsValue])); - w4.Position = 0; - w4.Expand = false; - w4.Fill = false; - this.table1.Add(this.hbox2); - Gtk.Table.TableChild w5 = ((Gtk.Table.TableChild)(this.table1[this.hbox2])); - w5.TopAttach = ((uint)(3)); - w5.BottomAttach = ((uint)(4)); - w5.LeftAttach = ((uint)(1)); - w5.RightAttach = ((uint)(2)); - w5.XOptions = ((Gtk.AttachOptions)(4)); - w5.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.label1 = new Gtk.Label(); - this.label1.Name = "label1"; - this.label1.LabelProp = Mono.Unix.Catalog.GetString("Race"); - this.table1.Add(this.label1); - Gtk.Table.TableChild w6 = ((Gtk.Table.TableChild)(this.table1[this.label1])); - w6.TopAttach = ((uint)(1)); - w6.BottomAttach = ((uint)(2)); - w6.XOptions = ((Gtk.AttachOptions)(4)); - w6.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.label2 = new Gtk.Label(); - this.label2.Name = "label2"; - this.label2.LabelProp = Mono.Unix.Catalog.GetString("Army name"); - this.table1.Add(this.label2); - Gtk.Table.TableChild w7 = ((Gtk.Table.TableChild)(this.table1[this.label2])); - w7.TopAttach = ((uint)(2)); - w7.BottomAttach = ((uint)(3)); - w7.XOptions = ((Gtk.AttachOptions)(4)); - w7.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.label3 = new Gtk.Label(); - this.label3.Name = "label3"; - this.label3.LabelProp = Mono.Unix.Catalog.GetString("Points value"); - this.table1.Add(this.label3); - Gtk.Table.TableChild w8 = ((Gtk.Table.TableChild)(this.table1[this.label3])); - w8.TopAttach = ((uint)(3)); - w8.BottomAttach = ((uint)(4)); - w8.XOptions = ((Gtk.AttachOptions)(4)); - w8.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.label4 = new Gtk.Label(); - this.label4.Name = "label4"; - this.label4.LabelProp = Mono.Unix.Catalog.GetString("game system"); - this.table1.Add(this.label4); - Gtk.Table.TableChild w9 = ((Gtk.Table.TableChild)(this.table1[this.label4])); - w9.XOptions = ((Gtk.AttachOptions)(4)); - w9.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.systemCombo = Gtk.ComboBoxEntry.NewText(); - this.systemCombo.Name = "systemCombo"; - this.table1.Add(this.systemCombo); - Gtk.Table.TableChild w10 = ((Gtk.Table.TableChild)(this.table1[this.systemCombo])); - w10.LeftAttach = ((uint)(1)); - w10.RightAttach = ((uint)(2)); - w10.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.txtArmyName = new Gtk.Entry(); - this.txtArmyName.CanFocus = true; - this.txtArmyName.Name = "txtArmyName"; - this.txtArmyName.IsEditable = true; - this.txtArmyName.InvisibleChar = '•'; - this.table1.Add(this.txtArmyName); - Gtk.Table.TableChild w11 = ((Gtk.Table.TableChild)(this.table1[this.txtArmyName])); - w11.TopAttach = ((uint)(2)); - w11.BottomAttach = ((uint)(3)); - w11.LeftAttach = ((uint)(1)); - w11.RightAttach = ((uint)(2)); - w11.XOptions = ((Gtk.AttachOptions)(4)); - w11.YOptions = ((Gtk.AttachOptions)(4)); - w1.Add(this.table1); - Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(w1[this.table1])); - w12.Position = 0; - w12.Expand = false; - w12.Fill = false; - w12.Padding = ((uint)(6)); - // Internal child IBBoard.WarFoundry.GTK.FrmNewArmy.ActionArea - Gtk.HButtonBox w13 = this.ActionArea; - w13.CanFocus = true; - w13.Events = ((Gdk.EventMask)(256)); - w13.Name = "WarFoundrySharp.FrmNewArmy_ActionArea"; - w13.Spacing = 6; - w13.BorderWidth = ((uint)(5)); - w13.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); - // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.bttnCancel = new Gtk.Button(); - this.bttnCancel.CanFocus = true; - this.bttnCancel.Name = "bttnCancel"; - this.bttnCancel.UseStock = true; - this.bttnCancel.UseUnderline = true; - this.bttnCancel.Label = "gtk-cancel"; - this.AddActionWidget(this.bttnCancel, -6); - Gtk.ButtonBox.ButtonBoxChild w14 = ((Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnCancel])); - w14.Expand = false; - w14.Fill = false; - // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.bttnCreate = new Gtk.Button(); - this.bttnCreate.Sensitive = false; - this.bttnCreate.CanDefault = true; - this.bttnCreate.CanFocus = true; - this.bttnCreate.Name = "bttnCreate"; - this.bttnCreate.UseUnderline = true; - // Container child bttnCreate.Gtk.Container+ContainerChild - Gtk.Alignment w15 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F); - // Container child GtkAlignment.Gtk.Container+ContainerChild - Gtk.HBox w16 = new Gtk.HBox(); - w16.Spacing = 2; - // Container child GtkHBox.Gtk.Container+ContainerChild - Gtk.Image w17 = new Gtk.Image(); - w17.Pixbuf = Stetic.IconLoader.LoadIcon(this, "gtk-ok", Gtk.IconSize.Menu, 16); - w16.Add(w17); - // Container child GtkHBox.Gtk.Container+ContainerChild - Gtk.Label w19 = new Gtk.Label(); - w19.LabelProp = Mono.Unix.Catalog.GetString("C_reate"); - w19.UseUnderline = true; - w16.Add(w19); - w15.Add(w16); - this.bttnCreate.Add(w15); - this.AddActionWidget(this.bttnCreate, -5); - Gtk.ButtonBox.ButtonBoxChild w23 = ((Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnCreate])); - w23.Position = 1; - w23.Expand = false; - w23.Fill = false; - if ((this.Child != null)) { - this.Child.ShowAll(); - } - this.DefaultWidth = 370; - this.DefaultHeight = 348; - this.Show(); - this.txtArmyName.Changed += new System.EventHandler(this.OnTextChanged); - this.systemCombo.Changed += new System.EventHandler(this.OnSystemComboChanged); - this.sbPointsValue.ChangeValue += new Gtk.ChangeValueHandler(this.OnSpinChangeValue); - this.sbPointsValue.ValueChanged += new System.EventHandler(this.OnSpinValueChanged); - this.sbPointsValue.Changed += new System.EventHandler(this.OnSpinValueChanged); - this.bttnCancel.Clicked += new System.EventHandler(this.OnCancelClicked); - this.bttnCreate.Clicked += new System.EventHandler(this.OnCreateClicked); - } - } -}
--- a/gtk-gui/IBBoard.WarFoundry.GTK.FrmNewUnit.cs Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -// ------------------------------------------------------------------------------ -// <autogenerated> -// This code was generated by a tool. -// -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </autogenerated> -// ------------------------------------------------------------------------------ - -namespace IBBoard.WarFoundry.GTK { - - - public partial class FrmNewUnit { - - private Gtk.VBox vbox2; - - private Gtk.HBox hbox1; - - private Gtk.Label label1; - - private Gtk.ScrolledWindow GtkScrolledWindow; - - private Gtk.TreeView lstUnitTypes; - - private Gtk.Label lblNewUnitWarning; - - private Gtk.Button buttonCancel; - - private Gtk.Button buttonOk; - - protected virtual void Build() { - Stetic.Gui.Initialize(this); - // Widget IBBoard.WarFoundry.GTK.FrmNewUnit - this.Name = "IBBoard.WarFoundry.GTK.FrmNewUnit"; - this.Title = Mono.Unix.Catalog.GetString("Add new unit"); - this.Icon = Stetic.IconLoader.LoadIcon(this, "gtk-new", Gtk.IconSize.Menu, 16); - this.WindowPosition = ((Gtk.WindowPosition)(4)); - this.Modal = true; - this.SkipPagerHint = true; - this.SkipTaskbarHint = true; - // Internal child IBBoard.WarFoundry.GTK.FrmNewUnit.VBox - Gtk.VBox w1 = this.VBox; - w1.Name = "dialog1_VBox"; - w1.BorderWidth = ((uint)(2)); - // Container child dialog1_VBox.Gtk.Box+BoxChild - this.vbox2 = new Gtk.VBox(); - this.vbox2.Name = "vbox2"; - this.vbox2.Spacing = 6; - // Container child vbox2.Gtk.Box+BoxChild - this.hbox1 = new Gtk.HBox(); - this.hbox1.Name = "hbox1"; - this.hbox1.Spacing = 6; - // Container child hbox1.Gtk.Box+BoxChild - this.label1 = new Gtk.Label(); - this.label1.Name = "label1"; - this.label1.LabelProp = Mono.Unix.Catalog.GetString("Unit Type:"); - this.hbox1.Add(this.label1); - Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1])); - w2.Position = 0; - w2.Expand = false; - w2.Fill = false; - // Container child hbox1.Gtk.Box+BoxChild - this.GtkScrolledWindow = new Gtk.ScrolledWindow(); - this.GtkScrolledWindow.Name = "GtkScrolledWindow"; - this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1)); - // Container child GtkScrolledWindow.Gtk.Container+ContainerChild - this.lstUnitTypes = new Gtk.TreeView(); - this.lstUnitTypes.HeightRequest = 150; - this.lstUnitTypes.CanFocus = true; - this.lstUnitTypes.Name = "lstUnitTypes"; - this.lstUnitTypes.HeadersVisible = false; - this.GtkScrolledWindow.Add(this.lstUnitTypes); - this.hbox1.Add(this.GtkScrolledWindow); - Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.GtkScrolledWindow])); - w4.Position = 1; - this.vbox2.Add(this.hbox1); - Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); - w5.Position = 0; - w5.Expand = false; - w5.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild - this.lblNewUnitWarning = new Gtk.Label(); - this.lblNewUnitWarning.Name = "lblNewUnitWarning"; - this.lblNewUnitWarning.Xalign = 0F; - this.lblNewUnitWarning.Yalign = 0F; - this.vbox2.Add(this.lblNewUnitWarning); - Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox2[this.lblNewUnitWarning])); - w6.Position = 1; - w6.Expand = false; - w6.Fill = false; - w1.Add(this.vbox2); - Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(w1[this.vbox2])); - w7.Position = 0; - w7.Expand = false; - w7.Fill = false; - // Internal child IBBoard.WarFoundry.GTK.FrmNewUnit.ActionArea - Gtk.HButtonBox w8 = this.ActionArea; - w8.Name = "dialog1_ActionArea"; - w8.Spacing = 6; - w8.BorderWidth = ((uint)(5)); - w8.LayoutStyle = ((Gtk.ButtonBoxStyle)(4)); - // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonCancel = new Gtk.Button(); - this.buttonCancel.CanDefault = true; - this.buttonCancel.CanFocus = true; - this.buttonCancel.Name = "buttonCancel"; - this.buttonCancel.UseStock = true; - this.buttonCancel.UseUnderline = true; - this.buttonCancel.Label = "gtk-cancel"; - this.AddActionWidget(this.buttonCancel, -6); - Gtk.ButtonBox.ButtonBoxChild w9 = ((Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonCancel])); - w9.Expand = false; - w9.Fill = false; - // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonOk = new Gtk.Button(); - this.buttonOk.Sensitive = false; - this.buttonOk.CanDefault = true; - this.buttonOk.CanFocus = true; - this.buttonOk.Name = "buttonOk"; - this.buttonOk.UseStock = true; - this.buttonOk.UseUnderline = true; - this.buttonOk.Label = "gtk-ok"; - this.AddActionWidget(this.buttonOk, -5); - Gtk.ButtonBox.ButtonBoxChild w10 = ((Gtk.ButtonBox.ButtonBoxChild)(w8[this.buttonOk])); - w10.Position = 1; - w10.Expand = false; - w10.Fill = false; - if ((this.Child != null)) { - this.Child.ShowAll(); - } - this.DefaultWidth = 400; - this.DefaultHeight = 318; - this.Show(); - this.lstUnitTypes.RowActivated += new Gtk.RowActivatedHandler(this.OnRowActivated); - this.buttonCancel.Activated += new System.EventHandler(this.OnButtonCancelActivated); - this.buttonOk.Clicked += new System.EventHandler(this.OnButtonOkClicked); - } - } -}
--- a/gtk-gui/IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget.cs Sun Jan 31 20:46:06 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -// ------------------------------------------------------------------------------ -// <autogenerated> -// This code was generated by a tool. -// -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </autogenerated> -// ------------------------------------------------------------------------------ - -namespace IBBoard.WarFoundry.GTK.Widgets { - - - public partial class UnitDisplayWidget { - - private Gtk.VBox vbox1; - - private Gtk.HBox hbox1; - - private Gtk.Entry unitName; - - private Gtk.SpinButton unitSize; - - private Gtk.ScrolledWindow GtkScrolledWindow; - - private Gtk.NodeView unitStats; - - private Gtk.HSeparator hseparator1; - - private Gtk.Table table1; - - private Gtk.ScrolledWindow GtkScrolledWindow1; - - private Gtk.NodeView optionalEquipment; - - private Gtk.ScrolledWindow GtkScrolledWindow2; - - private Gtk.NodeView requiredEquipment; - - private Gtk.Label optionalEquipmentLabel; - - private Gtk.Label requiredEquipmentLabel; - - private Gtk.VBox vbox2; - - private Gtk.Button bttnReplaceRequired; - - private Gtk.Button bttnEditRequired; - - private Gtk.VBox vbox3; - - private Gtk.Button bttnAddOptional; - - private Gtk.Button bttnEditOptional; - - private Gtk.Button bttnRemove; - - private Gtk.HBox hbox2; - - protected virtual void Build() { - Stetic.Gui.Initialize(this); - // Widget IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget - Stetic.BinContainer.Attach(this); - this.Name = "IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget"; - // Container child IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget.Gtk.Container+ContainerChild - this.vbox1 = new Gtk.VBox(); - this.vbox1.Name = "vbox1"; - this.vbox1.Spacing = 6; - // Container child vbox1.Gtk.Box+BoxChild - this.hbox1 = new Gtk.HBox(); - this.hbox1.Name = "hbox1"; - this.hbox1.Spacing = 6; - // Container child hbox1.Gtk.Box+BoxChild - this.unitName = new Gtk.Entry(); - this.unitName.CanFocus = true; - this.unitName.Name = "unitName"; - this.unitName.IsEditable = true; - this.unitName.InvisibleChar = '•'; - this.hbox1.Add(this.unitName); - Gtk.Box.BoxChild w1 = ((Gtk.Box.BoxChild)(this.hbox1[this.unitName])); - w1.Position = 0; - // Container child hbox1.Gtk.Box+BoxChild - this.unitSize = new Gtk.SpinButton(0, 100, 1); - this.unitSize.CanFocus = true; - this.unitSize.Name = "unitSize"; - this.unitSize.Adjustment.PageIncrement = 10; - this.unitSize.ClimbRate = 1; - this.unitSize.Numeric = true; - this.hbox1.Add(this.unitSize); - Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.unitSize])); - w2.Position = 1; - w2.Expand = false; - w2.Fill = false; - this.vbox1.Add(this.hbox1); - Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); - w3.Position = 0; - w3.Expand = false; - w3.Fill = false; - // Container child vbox1.Gtk.Box+BoxChild - this.GtkScrolledWindow = new Gtk.ScrolledWindow(); - this.GtkScrolledWindow.Name = "GtkScrolledWindow"; - this.GtkScrolledWindow.ShadowType = ((Gtk.ShadowType)(1)); - // Container child GtkScrolledWindow.Gtk.Container+ContainerChild - this.unitStats = new Gtk.NodeView(); - this.unitStats.HeightRequest = 75; - this.unitStats.CanFocus = true; - this.unitStats.Name = "unitStats"; - this.GtkScrolledWindow.Add(this.unitStats); - this.vbox1.Add(this.GtkScrolledWindow); - Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.vbox1[this.GtkScrolledWindow])); - w5.Position = 1; - // Container child vbox1.Gtk.Box+BoxChild - this.hseparator1 = new Gtk.HSeparator(); - this.hseparator1.Name = "hseparator1"; - this.vbox1.Add(this.hseparator1); - Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.vbox1[this.hseparator1])); - w6.Position = 2; - w6.Expand = false; - w6.Fill = false; - // Container child vbox1.Gtk.Box+BoxChild - this.table1 = new Gtk.Table(((uint)(2)), ((uint)(3)), false); - this.table1.Name = "table1"; - this.table1.RowSpacing = ((uint)(6)); - this.table1.ColumnSpacing = ((uint)(6)); - // Container child table1.Gtk.Table+TableChild - this.GtkScrolledWindow1 = new Gtk.ScrolledWindow(); - this.GtkScrolledWindow1.Name = "GtkScrolledWindow1"; - this.GtkScrolledWindow1.ShadowType = ((Gtk.ShadowType)(1)); - // Container child GtkScrolledWindow1.Gtk.Container+ContainerChild - this.optionalEquipment = new Gtk.NodeView(); - this.optionalEquipment.CanFocus = true; - this.optionalEquipment.Name = "optionalEquipment"; - this.GtkScrolledWindow1.Add(this.optionalEquipment); - this.table1.Add(this.GtkScrolledWindow1); - Gtk.Table.TableChild w8 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow1])); - w8.TopAttach = ((uint)(1)); - w8.BottomAttach = ((uint)(2)); - w8.LeftAttach = ((uint)(1)); - w8.RightAttach = ((uint)(2)); - w8.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.GtkScrolledWindow2 = new Gtk.ScrolledWindow(); - this.GtkScrolledWindow2.Name = "GtkScrolledWindow2"; - this.GtkScrolledWindow2.ShadowType = ((Gtk.ShadowType)(1)); - // Container child GtkScrolledWindow2.Gtk.Container+ContainerChild - this.requiredEquipment = new Gtk.NodeView(); - this.requiredEquipment.CanFocus = true; - this.requiredEquipment.Name = "requiredEquipment"; - this.GtkScrolledWindow2.Add(this.requiredEquipment); - this.table1.Add(this.GtkScrolledWindow2); - Gtk.Table.TableChild w10 = ((Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow2])); - w10.LeftAttach = ((uint)(1)); - w10.RightAttach = ((uint)(2)); - w10.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.optionalEquipmentLabel = new Gtk.Label(); - this.optionalEquipmentLabel.Name = "optionalEquipmentLabel"; - this.optionalEquipmentLabel.LabelProp = Mono.Unix.Catalog.GetString("Optional Equipment:"); - this.table1.Add(this.optionalEquipmentLabel); - Gtk.Table.TableChild w11 = ((Gtk.Table.TableChild)(this.table1[this.optionalEquipmentLabel])); - w11.TopAttach = ((uint)(1)); - w11.BottomAttach = ((uint)(2)); - w11.XOptions = ((Gtk.AttachOptions)(4)); - w11.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.requiredEquipmentLabel = new Gtk.Label(); - this.requiredEquipmentLabel.Name = "requiredEquipmentLabel"; - this.requiredEquipmentLabel.LabelProp = Mono.Unix.Catalog.GetString("Required Equipment:"); - this.table1.Add(this.requiredEquipmentLabel); - Gtk.Table.TableChild w12 = ((Gtk.Table.TableChild)(this.table1[this.requiredEquipmentLabel])); - w12.XOptions = ((Gtk.AttachOptions)(4)); - w12.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.vbox2 = new Gtk.VBox(); - this.vbox2.Name = "vbox2"; - this.vbox2.Spacing = 6; - // Container child vbox2.Gtk.Box+BoxChild - this.bttnReplaceRequired = new Gtk.Button(); - this.bttnReplaceRequired.CanFocus = true; - this.bttnReplaceRequired.Name = "bttnReplaceRequired"; - this.bttnReplaceRequired.UseUnderline = true; - this.bttnReplaceRequired.Label = Mono.Unix.Catalog.GetString("Replace"); - this.vbox2.Add(this.bttnReplaceRequired); - Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.vbox2[this.bttnReplaceRequired])); - w13.Position = 0; - w13.Expand = false; - w13.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild - this.bttnEditRequired = new Gtk.Button(); - this.bttnEditRequired.CanFocus = true; - this.bttnEditRequired.Name = "bttnEditRequired"; - this.bttnEditRequired.UseUnderline = true; - this.bttnEditRequired.Label = Mono.Unix.Catalog.GetString("Edit"); - this.vbox2.Add(this.bttnEditRequired); - Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.vbox2[this.bttnEditRequired])); - w14.Position = 1; - w14.Expand = false; - w14.Fill = false; - this.table1.Add(this.vbox2); - Gtk.Table.TableChild w15 = ((Gtk.Table.TableChild)(this.table1[this.vbox2])); - w15.LeftAttach = ((uint)(2)); - w15.RightAttach = ((uint)(3)); - w15.XOptions = ((Gtk.AttachOptions)(4)); - w15.YOptions = ((Gtk.AttachOptions)(4)); - // Container child table1.Gtk.Table+TableChild - this.vbox3 = new Gtk.VBox(); - this.vbox3.Name = "vbox3"; - this.vbox3.Spacing = 6; - // Container child vbox3.Gtk.Box+BoxChild - this.bttnAddOptional = new Gtk.Button(); - this.bttnAddOptional.CanFocus = true; - this.bttnAddOptional.Name = "bttnAddOptional"; - this.bttnAddOptional.UseUnderline = true; - this.bttnAddOptional.Label = Mono.Unix.Catalog.GetString("Add"); - this.vbox3.Add(this.bttnAddOptional); - Gtk.Box.BoxChild w16 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnAddOptional])); - w16.Position = 0; - w16.Expand = false; - w16.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild - this.bttnEditOptional = new Gtk.Button(); - this.bttnEditOptional.CanFocus = true; - this.bttnEditOptional.Name = "bttnEditOptional"; - this.bttnEditOptional.UseUnderline = true; - this.bttnEditOptional.Label = Mono.Unix.Catalog.GetString("Edit"); - this.vbox3.Add(this.bttnEditOptional); - Gtk.Box.BoxChild w17 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnEditOptional])); - w17.Position = 1; - w17.Expand = false; - w17.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild - this.bttnRemove = new Gtk.Button(); - this.bttnRemove.CanFocus = true; - this.bttnRemove.Name = "bttnRemove"; - this.bttnRemove.UseUnderline = true; - this.bttnRemove.Label = Mono.Unix.Catalog.GetString("Remove"); - this.vbox3.Add(this.bttnRemove); - Gtk.Box.BoxChild w18 = ((Gtk.Box.BoxChild)(this.vbox3[this.bttnRemove])); - w18.Position = 2; - w18.Expand = false; - w18.Fill = false; - this.table1.Add(this.vbox3); - Gtk.Table.TableChild w19 = ((Gtk.Table.TableChild)(this.table1[this.vbox3])); - w19.TopAttach = ((uint)(1)); - w19.BottomAttach = ((uint)(2)); - w19.LeftAttach = ((uint)(2)); - w19.RightAttach = ((uint)(3)); - w19.XOptions = ((Gtk.AttachOptions)(4)); - w19.YOptions = ((Gtk.AttachOptions)(4)); - this.vbox1.Add(this.table1); - Gtk.Box.BoxChild w20 = ((Gtk.Box.BoxChild)(this.vbox1[this.table1])); - w20.Position = 3; - w20.Expand = false; - w20.Fill = false; - // Container child vbox1.Gtk.Box+BoxChild - this.hbox2 = new Gtk.HBox(); - this.hbox2.Name = "hbox2"; - this.hbox2.Spacing = 6; - this.vbox1.Add(this.hbox2); - Gtk.Box.BoxChild w21 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox2])); - w21.Position = 4; - this.Add(this.vbox1); - if ((this.Child != null)) { - this.Child.ShowAll(); - } - this.Show(); - this.unitName.FocusOutEvent += new Gtk.FocusOutEventHandler(this.OnUnitNameFocusOut); - this.unitName.KeyPressEvent += new Gtk.KeyPressEventHandler(this.OnUnitNameKeyPress); - this.unitSize.FocusOutEvent += new Gtk.FocusOutEventHandler(this.OnUnitSizeFocusOut); - this.unitSize.KeyPressEvent += new Gtk.KeyPressEventHandler(this.OnUnitSizeKeyPress); - } - } -}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAbout.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,122 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAbout + { + private global::Gtk.Image logoImage; + private global::Gtk.Label label1; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblWarFoundryDesc; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblWarFoundryCopyright; + private global::Gtk.Label lblWarFoundryLink; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCredits; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnClose; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmAbout + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmAbout"; + this.Title = global::Mono.Unix.Catalog.GetString("About WF"); + this.Icon = global::Gdk.Pixbuf.LoadFromResource("App.ico"); + this.TypeHint = ((global::Gdk.WindowTypeHint)(1)); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.Resizable = false; + this.AllowGrow = false; + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAbout.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.logoImage = new global::Gtk.Image(); + this.logoImage.Name = "logoImage"; + this.logoImage.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("IBBoard.WarFoundry.GUI.GTK.App-lrg.png"); + w1.Add(this.logoImage); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.logoImage])); + w2.Position = 0; + w2.Expand = false; + w2.Fill = false; + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.label1 = new global::Gtk.Label(); + this.label1.Name = "label1"; + this.label1.LabelProp = global::Mono.Unix.Catalog.GetString("<span font_size=\"x-large\" weight=\"bold\">WarFoundry v0.1 RC 1</span>"); + this.label1.UseMarkup = true; + w1.Add(this.label1); + global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(w1[this.label1])); + w3.Position = 1; + w3.Expand = false; + w3.Fill = false; + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.lblWarFoundryDesc = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblWarFoundryDesc.Name = "lblWarFoundryDesc"; + this.lblWarFoundryDesc.LabelProp = global::Mono.Unix.Catalog.GetString("WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems."); + this.lblWarFoundryDesc.Wrap = true; + this.lblWarFoundryDesc.Justify = ((global::Gtk.Justification)(2)); + w1.Add(this.lblWarFoundryDesc); + global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryDesc])); + w4.Position = 2; + w4.Expand = false; + w4.Fill = false; + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.lblWarFoundryCopyright = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblWarFoundryCopyright.Name = "lblWarFoundryCopyright"; + this.lblWarFoundryCopyright.LabelProp = global::Mono.Unix.Catalog.GetString("© 2007-2010, IBBoard and others"); + w1.Add(this.lblWarFoundryCopyright); + global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryCopyright])); + w5.Position = 3; + w5.Expand = false; + w5.Fill = false; + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.lblWarFoundryLink = new global::Gtk.Label(); + this.lblWarFoundryLink.Name = "lblWarFoundryLink"; + this.lblWarFoundryLink.LabelProp = global::Mono.Unix.Catalog.GetString("<a href=\"http://warfoundry.co.uk\">http://warfoundry.co.uk</a>"); + this.lblWarFoundryLink.UseMarkup = true; + w1.Add(this.lblWarFoundryLink); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryLink])); + w6.Position = 4; + w6.Expand = false; + w6.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAbout.ActionArea + global::Gtk.HButtonBox w7 = this.ActionArea; + w7.Name = "dialog1_ActionArea"; + w7.Spacing = 10; + w7.BorderWidth = ((uint)(5)); + w7.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCredits = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCredits.CanFocus = true; + this.bttnCredits.Name = "bttnCredits"; + this.bttnCredits.UseStock = true; + this.bttnCredits.UseUnderline = true; + this.bttnCredits.Label = "gtk-about"; + w7.Add(this.bttnCredits); + global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.bttnCredits])); + w8.Expand = false; + w8.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnClose = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnClose.CanDefault = true; + this.bttnClose.CanFocus = true; + this.bttnClose.Name = "bttnClose"; + this.bttnClose.UseStock = true; + this.bttnClose.UseUnderline = true; + this.bttnClose.Label = "gtk-close"; + this.AddActionWidget(this.bttnClose, -7); + global::Gtk.ButtonBox.ButtonBoxChild w9 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.bttnClose])); + w9.Position = 1; + w9.Expand = false; + w9.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 330; + this.DefaultHeight = 300; + this.bttnClose.HasDefault = true; + this.Show(); + this.bttnCredits.Clicked += new global::System.EventHandler(this.BttnCreditsClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,152 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAboutCredits + { + private global::Gtk.Table table1; + private global::Gtk.Label label1; + private global::Gtk.Label label2; + private global::Gtk.Label label3; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblDevelopers; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblTestersCommon; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblTestersGtk; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnClose; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits"; + this.Icon = global::Gdk.Pixbuf.LoadFromResource("App.ico"); + this.TypeHint = ((global::Gdk.WindowTypeHint)(1)); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(3)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.label1 = new global::Gtk.Label(); + this.label1.Name = "label1"; + this.label1.Xpad = 3; + this.label1.Ypad = 3; + this.label1.Xalign = 0F; + this.label1.Yalign = 0F; + this.label1.LabelProp = "IBBoard (Main developer and project lead)"; + this.table1.Add(this.label1); + global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); + w2.LeftAttach = ((uint)(1)); + w2.RightAttach = ((uint)(2)); + w2.XOptions = ((global::Gtk.AttachOptions)(4)); + w2.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.label2 = new global::Gtk.Label(); + this.label2.Name = "label2"; + this.label2.Xpad = 3; + this.label2.Ypad = 3; + this.label2.Xalign = 0F; + this.label2.Yalign = 0F; + this.label2.LabelProp = global::Mono.Unix.Catalog.GetString("HeWhoWatches"); + this.table1.Add(this.label2); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.label2])); + w3.TopAttach = ((uint)(1)); + w3.BottomAttach = ((uint)(2)); + w3.LeftAttach = ((uint)(1)); + w3.RightAttach = ((uint)(2)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.label3 = new global::Gtk.Label(); + this.label3.Name = "label3"; + this.label3.Xpad = 3; + this.label3.Ypad = 3; + this.label3.Xalign = 0F; + this.label3.Yalign = 0F; + this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Snowblizz,\r\nFrostlee,\r\nLord_Archaon,\r\nFurrie,\r\nclutch110,\r\nMollo,\r\nHeWhoWatches"); + this.table1.Add(this.label3); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.label3])); + w4.TopAttach = ((uint)(2)); + w4.BottomAttach = ((uint)(3)); + w4.LeftAttach = ((uint)(1)); + w4.RightAttach = ((uint)(2)); + w4.XOptions = ((global::Gtk.AttachOptions)(4)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblDevelopers = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblDevelopers.Name = "lblDevelopers"; + this.lblDevelopers.Xpad = 3; + this.lblDevelopers.Ypad = 3; + this.lblDevelopers.Xalign = 0F; + this.lblDevelopers.Yalign = 0F; + this.lblDevelopers.LabelProp = global::Mono.Unix.Catalog.GetString("developers:"); + this.table1.Add(this.lblDevelopers); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.lblDevelopers])); + w5.XOptions = ((global::Gtk.AttachOptions)(4)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblTestersCommon = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblTestersCommon.Name = "lblTestersCommon"; + this.lblTestersCommon.Xpad = 3; + this.lblTestersCommon.Ypad = 3; + this.lblTestersCommon.Xalign = 0F; + this.lblTestersCommon.Yalign = 0F; + this.lblTestersCommon.LabelProp = global::Mono.Unix.Catalog.GetString("testers (common):"); + this.table1.Add(this.lblTestersCommon); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.lblTestersCommon])); + w6.TopAttach = ((uint)(2)); + w6.BottomAttach = ((uint)(3)); + w6.XOptions = ((global::Gtk.AttachOptions)(4)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblTestersGtk = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblTestersGtk.Name = "lblTestersGtk"; + this.lblTestersGtk.Xpad = 3; + this.lblTestersGtk.Ypad = 3; + this.lblTestersGtk.Xalign = 0F; + this.lblTestersGtk.Yalign = 0F; + this.lblTestersGtk.LabelProp = global::Mono.Unix.Catalog.GetString("testers (GTK UI):"); + this.table1.Add(this.lblTestersGtk); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.lblTestersGtk])); + w7.TopAttach = ((uint)(1)); + w7.BottomAttach = ((uint)(2)); + w7.XOptions = ((global::Gtk.AttachOptions)(4)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); + w1.Add(this.table1); + global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); + w8.Position = 0; + w8.Expand = false; + w8.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits.ActionArea + global::Gtk.HButtonBox w9 = this.ActionArea; + w9.Name = "dialog1_ActionArea"; + w9.Spacing = 10; + w9.BorderWidth = ((uint)(5)); + w9.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnClose = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnClose.CanDefault = true; + this.bttnClose.CanFocus = true; + this.bttnClose.Name = "bttnClose"; + this.bttnClose.UseStock = true; + this.bttnClose.UseUnderline = true; + this.bttnClose.Label = "gtk-close"; + this.AddActionWidget(this.bttnClose, -7); + global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w9[this.bttnClose])); + w10.Expand = false; + w10.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 376; + this.DefaultHeight = 250; + this.Show(); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,237 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmAddEquipment + { + private global::Gtk.Table table1; + private global::Gtk.ScrolledWindow GtkScrolledWindow; + private global::Gtk.TreeView lstEquipment; + private global::Gtk.HBox hbox2; + private global::Gtk.Table table2; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAll; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblPercent; + private global::Gtk.SpinButton numericAmount; + private global::Gtk.SpinButton percentageAmount; + private global::Gtk.RadioButton rbEquipAll; + private global::Gtk.RadioButton rbEquipNumeric; + private global::Gtk.RadioButton rbEquipPercent; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblAmount; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblItem; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnOkay; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment"; + this.Title = global::Mono.Unix.Catalog.GetString("Add equipment"); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.Modal = true; + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(2)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow.Name = "GtkScrolledWindow"; + this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow.Gtk.Container+ContainerChild + this.lstEquipment = new global::Gtk.TreeView(); + this.lstEquipment.CanFocus = true; + this.lstEquipment.Name = "lstEquipment"; + this.lstEquipment.HeadersVisible = false; + this.GtkScrolledWindow.Add(this.lstEquipment); + this.table1.Add(this.GtkScrolledWindow); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow])); + w3.LeftAttach = ((uint)(1)); + w3.RightAttach = ((uint)(2)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.hbox2 = new global::Gtk.HBox(); + this.hbox2.Name = "hbox2"; + this.hbox2.Spacing = 6; + // Container child hbox2.Gtk.Box+BoxChild + this.table2 = new global::Gtk.Table(((uint)(3)), ((uint)(3)), false); + this.table2.Name = "table2"; + this.table2.RowSpacing = ((uint)(6)); + this.table2.ColumnSpacing = ((uint)(6)); + // Container child table2.Gtk.Table+TableChild + this.lblEquipAll = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblEquipAll.Name = "lblEquipAll"; + this.lblEquipAll.LabelProp = global::Mono.Unix.Catalog.GetString("equip all"); + this.table2.Add(this.lblEquipAll); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table2[this.lblEquipAll])); + w4.TopAttach = ((uint)(2)); + w4.BottomAttach = ((uint)(3)); + w4.LeftAttach = ((uint)(1)); + w4.RightAttach = ((uint)(2)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.lblPercent = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblPercent.Name = "lblPercent"; + this.lblPercent.LabelProp = global::Mono.Unix.Catalog.GetString("%"); + this.table2.Add(this.lblPercent); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table2[this.lblPercent])); + w5.TopAttach = ((uint)(1)); + w5.BottomAttach = ((uint)(2)); + w5.LeftAttach = ((uint)(2)); + w5.RightAttach = ((uint)(3)); + w5.XOptions = ((global::Gtk.AttachOptions)(4)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.numericAmount = new global::Gtk.SpinButton(0, 100, 1); + this.numericAmount.CanFocus = true; + this.numericAmount.Name = "numericAmount"; + this.numericAmount.Adjustment.PageIncrement = 10; + this.numericAmount.ClimbRate = 1; + this.numericAmount.Numeric = true; + this.table2.Add(this.numericAmount); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table2[this.numericAmount])); + w6.LeftAttach = ((uint)(1)); + w6.RightAttach = ((uint)(2)); + w6.XOptions = ((global::Gtk.AttachOptions)(0)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.percentageAmount = new global::Gtk.SpinButton(0, 100, 1); + this.percentageAmount.CanFocus = true; + this.percentageAmount.Name = "percentageAmount"; + this.percentageAmount.Adjustment.PageIncrement = 10; + this.percentageAmount.ClimbRate = 1; + this.percentageAmount.Digits = ((uint)(1)); + this.percentageAmount.Numeric = true; + this.table2.Add(this.percentageAmount); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2[this.percentageAmount])); + w7.TopAttach = ((uint)(1)); + w7.BottomAttach = ((uint)(2)); + w7.LeftAttach = ((uint)(1)); + w7.RightAttach = ((uint)(2)); + w7.XOptions = ((global::Gtk.AttachOptions)(0)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipAll = new global::Gtk.RadioButton(""); + this.rbEquipAll.CanFocus = true; + this.rbEquipAll.Name = "rbEquipAll"; + this.rbEquipAll.Active = true; + this.rbEquipAll.DrawIndicator = true; + this.rbEquipAll.UseUnderline = true; + this.rbEquipAll.Group = new global::GLib.SList(global::System.IntPtr.Zero); + this.table2.Add(this.rbEquipAll); + global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipAll])); + w8.TopAttach = ((uint)(2)); + w8.BottomAttach = ((uint)(3)); + w8.XOptions = ((global::Gtk.AttachOptions)(4)); + w8.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipNumeric = new global::Gtk.RadioButton(""); + this.rbEquipNumeric.CanFocus = true; + this.rbEquipNumeric.Name = "rbEquipNumeric"; + this.rbEquipNumeric.DrawIndicator = true; + this.rbEquipNumeric.UseUnderline = true; + this.rbEquipNumeric.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipNumeric); + global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipNumeric])); + w9.XOptions = ((global::Gtk.AttachOptions)(4)); + w9.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipPercent = new global::Gtk.RadioButton(""); + this.rbEquipPercent.CanFocus = true; + this.rbEquipPercent.Name = "rbEquipPercent"; + this.rbEquipPercent.DrawIndicator = true; + this.rbEquipPercent.UseUnderline = true; + this.rbEquipPercent.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipPercent); + global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipPercent])); + w10.TopAttach = ((uint)(1)); + w10.BottomAttach = ((uint)(2)); + w10.XOptions = ((global::Gtk.AttachOptions)(4)); + w10.YOptions = ((global::Gtk.AttachOptions)(4)); + this.hbox2.Add(this.table2); + global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.table2])); + w11.Position = 0; + w11.Expand = false; + w11.Fill = false; + this.table1.Add(this.hbox2); + global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); + w12.TopAttach = ((uint)(1)); + w12.BottomAttach = ((uint)(2)); + w12.LeftAttach = ((uint)(1)); + w12.RightAttach = ((uint)(2)); + w12.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblAmount = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.LabelProp = global::Mono.Unix.Catalog.GetString("amount:"); + this.table1.Add(this.lblAmount); + global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1[this.lblAmount])); + w13.TopAttach = ((uint)(1)); + w13.BottomAttach = ((uint)(2)); + w13.XOptions = ((global::Gtk.AttachOptions)(4)); + w13.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblItem = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblItem.Name = "lblItem"; + this.lblItem.LabelProp = global::Mono.Unix.Catalog.GetString("equipment"); + this.table1.Add(this.lblItem); + global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.lblItem])); + w14.XOptions = ((global::Gtk.AttachOptions)(4)); + w14.YOptions = ((global::Gtk.AttachOptions)(4)); + w1.Add(this.table1); + global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); + w15.Position = 0; + w15.Expand = false; + w15.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.ActionArea + global::Gtk.HButtonBox w16 = this.ActionArea; + w16.Name = "dialog1_ActionArea"; + w16.Spacing = 10; + w16.BorderWidth = ((uint)(5)); + w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanDefault = true; + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16[this.bttnCancel])); + w17.Expand = false; + w17.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnOkay = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnOkay.CanDefault = true; + this.bttnOkay.CanFocus = true; + this.bttnOkay.Name = "bttnOkay"; + this.bttnOkay.UseStock = true; + this.bttnOkay.UseUnderline = true; + this.bttnOkay.Label = "gtk-ok"; + this.AddActionWidget(this.bttnOkay, -5); + global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16[this.bttnOkay])); + w18.Position = 1; + w18.Expand = false; + w18.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 400; + this.DefaultHeight = 300; + this.Show(); + this.rbEquipNumeric.Clicked += new global::System.EventHandler(this.RadioButtonClicked); + this.percentageAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.numericAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.bttnCancel.Clicked += new global::System.EventHandler(this.CancelButtonClicked); + this.bttnOkay.Clicked += new global::System.EventHandler(this.OkayButtonClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,208 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmEditEquipment + { + private global::Gtk.Table table1; + private global::Gtk.HBox hbox2; + private global::Gtk.Table table2; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAll; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblPercent; + private global::Gtk.SpinButton numericAmount; + private global::Gtk.SpinButton percentageAmount; + private global::Gtk.RadioButton rbEquipAll; + private global::Gtk.RadioButton rbEquipNumeric; + private global::Gtk.RadioButton rbEquipPercent; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblAmount; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnOkay; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment"; + this.Title = global::Mono.Unix.Catalog.GetString("Edit equipment"); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.Modal = true; + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.hbox2 = new global::Gtk.HBox(); + this.hbox2.Name = "hbox2"; + this.hbox2.Spacing = 6; + // Container child hbox2.Gtk.Box+BoxChild + this.table2 = new global::Gtk.Table(((uint)(3)), ((uint)(3)), false); + this.table2.Name = "table2"; + this.table2.RowSpacing = ((uint)(6)); + this.table2.ColumnSpacing = ((uint)(6)); + // Container child table2.Gtk.Table+TableChild + this.lblEquipAll = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblEquipAll.Name = "lblEquipAll"; + this.lblEquipAll.LabelProp = global::Mono.Unix.Catalog.GetString("equip all"); + this.table2.Add(this.lblEquipAll); + global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table2[this.lblEquipAll])); + w2.TopAttach = ((uint)(2)); + w2.BottomAttach = ((uint)(3)); + w2.LeftAttach = ((uint)(1)); + w2.RightAttach = ((uint)(2)); + w2.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.lblPercent = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblPercent.Name = "lblPercent"; + this.lblPercent.LabelProp = global::Mono.Unix.Catalog.GetString("%"); + this.table2.Add(this.lblPercent); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table2[this.lblPercent])); + w3.TopAttach = ((uint)(1)); + w3.BottomAttach = ((uint)(2)); + w3.LeftAttach = ((uint)(2)); + w3.RightAttach = ((uint)(3)); + w3.XOptions = ((global::Gtk.AttachOptions)(4)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.numericAmount = new global::Gtk.SpinButton(0, 100, 1); + this.numericAmount.CanFocus = true; + this.numericAmount.Name = "numericAmount"; + this.numericAmount.Adjustment.PageIncrement = 10; + this.numericAmount.ClimbRate = 1; + this.numericAmount.Numeric = true; + this.table2.Add(this.numericAmount); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table2[this.numericAmount])); + w4.LeftAttach = ((uint)(1)); + w4.RightAttach = ((uint)(2)); + w4.XOptions = ((global::Gtk.AttachOptions)(0)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.percentageAmount = new global::Gtk.SpinButton(0, 100, 1); + this.percentageAmount.CanFocus = true; + this.percentageAmount.Name = "percentageAmount"; + this.percentageAmount.Adjustment.PageIncrement = 10; + this.percentageAmount.ClimbRate = 1; + this.percentageAmount.Digits = ((uint)(1)); + this.percentageAmount.Numeric = true; + this.table2.Add(this.percentageAmount); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table2[this.percentageAmount])); + w5.TopAttach = ((uint)(1)); + w5.BottomAttach = ((uint)(2)); + w5.LeftAttach = ((uint)(1)); + w5.RightAttach = ((uint)(2)); + w5.XOptions = ((global::Gtk.AttachOptions)(0)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipAll = new global::Gtk.RadioButton(""); + this.rbEquipAll.CanFocus = true; + this.rbEquipAll.Name = "rbEquipAll"; + this.rbEquipAll.DrawIndicator = true; + this.rbEquipAll.UseUnderline = true; + this.rbEquipAll.Group = new global::GLib.SList(global::System.IntPtr.Zero); + this.table2.Add(this.rbEquipAll); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipAll])); + w6.TopAttach = ((uint)(2)); + w6.BottomAttach = ((uint)(3)); + w6.XOptions = ((global::Gtk.AttachOptions)(4)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipNumeric = new global::Gtk.RadioButton(""); + this.rbEquipNumeric.CanFocus = true; + this.rbEquipNumeric.Name = "rbEquipNumeric"; + this.rbEquipNumeric.DrawIndicator = true; + this.rbEquipNumeric.UseUnderline = true; + this.rbEquipNumeric.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipNumeric); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipNumeric])); + w7.XOptions = ((global::Gtk.AttachOptions)(4)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipPercent = new global::Gtk.RadioButton(""); + this.rbEquipPercent.CanFocus = true; + this.rbEquipPercent.Name = "rbEquipPercent"; + this.rbEquipPercent.DrawIndicator = true; + this.rbEquipPercent.UseUnderline = true; + this.rbEquipPercent.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipPercent); + global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipPercent])); + w8.TopAttach = ((uint)(1)); + w8.BottomAttach = ((uint)(2)); + w8.XOptions = ((global::Gtk.AttachOptions)(4)); + w8.YOptions = ((global::Gtk.AttachOptions)(4)); + this.hbox2.Add(this.table2); + global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.table2])); + w9.Position = 0; + w9.Expand = false; + w9.Fill = false; + this.table1.Add(this.hbox2); + global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); + w10.LeftAttach = ((uint)(1)); + w10.RightAttach = ((uint)(2)); + w10.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblAmount = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.LabelProp = global::Mono.Unix.Catalog.GetString("amount:"); + this.lblAmount.Justify = ((global::Gtk.Justification)(1)); + this.table1.Add(this.lblAmount); + global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1[this.lblAmount])); + w11.YOptions = ((global::Gtk.AttachOptions)(4)); + w1.Add(this.table1); + global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); + w12.Position = 0; + w12.Expand = false; + w12.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.ActionArea + global::Gtk.HButtonBox w13 = this.ActionArea; + w13.Name = "dialog1_ActionArea"; + w13.Spacing = 10; + w13.BorderWidth = ((uint)(5)); + w13.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanDefault = true; + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnCancel])); + w14.Expand = false; + w14.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnOkay = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnOkay.CanDefault = true; + this.bttnOkay.CanFocus = true; + this.bttnOkay.Name = "bttnOkay"; + this.bttnOkay.UseStock = true; + this.bttnOkay.UseUnderline = true; + this.bttnOkay.Label = "gtk-ok"; + this.AddActionWidget(this.bttnOkay, -5); + global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnOkay])); + w15.Position = 1; + w15.Expand = false; + w15.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 280; + this.DefaultHeight = 175; + this.Show(); + this.rbEquipPercent.Clicked += new global::System.EventHandler(this.RadioButtonClicked); + this.rbEquipNumeric.Clicked += new global::System.EventHandler(this.RadioButtonClicked); + this.rbEquipAll.Clicked += new global::System.EventHandler(this.RadioButtonClicked); + this.percentageAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.numericAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.bttnCancel.Clicked += new global::System.EventHandler(this.CancelButtonClicked); + this.bttnOkay.Clicked += new global::System.EventHandler(this.OkayButtonClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmMainWindow.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,220 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmMainWindow + { + private global::Gtk.UIManager UIManager; + private global::Gtk.Action menuFile; + private global::Gtk.Action miNewArmy; + private global::Gtk.Action miOpenArmy; + private global::Gtk.Action miSaveArmy; + private global::Gtk.Action miSaveArmyAs; + private global::Gtk.Action miCloseArmy; + private global::Gtk.Action miReloadFiles; + private global::Gtk.Action miExit; + private global::Gtk.Action menuEdit; + private global::Gtk.Action miUndo; + private global::Gtk.Action miRedo; + private global::Gtk.Action menuHelp; + private global::Gtk.Action miAbout; + private global::Gtk.Action miDebugInformation; + private global::Gtk.Action bttnNewArmy; + private global::Gtk.Action bttnOpenArmy; + private global::Gtk.Action bttnSaveArmy; + private global::Gtk.Action bttnUndo; + private global::Gtk.Action bttnRedo; + private global::Gtk.Action goDown; + private global::Gtk.Action add; + private global::Gtk.Action miExportArmyAs; + private global::Gtk.Action miExportArmyAsBasicHTML; + private global::Gtk.Action miPreferences; + private global::Gtk.VBox vbox1; + private global::Gtk.MenuBar menubar1; + private global::Gtk.Toolbar toolbar; + private global::Gtk.HPaned hpaned2; + private global::Gtk.TreeView treeUnits; + private global::Gtk.Notebook unitsNotebook; + private global::Gtk.Statusbar statusbar1; + private global::Gtk.Label lblTotalPoints; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmMainWindow + this.UIManager = new global::Gtk.UIManager(); + global::Gtk.ActionGroup w1 = new global::Gtk.ActionGroup("Default"); + this.menuFile = new global::Gtk.Action("menuFile", global::Mono.Unix.Catalog.GetString("File"), null, null); + this.menuFile.ShortLabel = global::Mono.Unix.Catalog.GetString("File"); + w1.Add(this.menuFile, null); + this.miNewArmy = new global::Gtk.Action("miNewArmy", global::Mono.Unix.Catalog.GetString("Create army"), null, "gtk-new"); + this.miNewArmy.ShortLabel = global::Mono.Unix.Catalog.GetString("Create army"); + w1.Add(this.miNewArmy, null); + this.miOpenArmy = new global::Gtk.Action("miOpenArmy", global::Mono.Unix.Catalog.GetString("Open army"), null, "gtk-open"); + this.miOpenArmy.ShortLabel = global::Mono.Unix.Catalog.GetString("Open army"); + w1.Add(this.miOpenArmy, null); + this.miSaveArmy = new global::Gtk.Action("miSaveArmy", global::Mono.Unix.Catalog.GetString("Save army"), null, "gtk-save"); + this.miSaveArmy.Sensitive = false; + this.miSaveArmy.ShortLabel = global::Mono.Unix.Catalog.GetString("Save army"); + w1.Add(this.miSaveArmy, null); + this.miSaveArmyAs = new global::Gtk.Action("miSaveArmyAs", global::Mono.Unix.Catalog.GetString("Save army as"), null, "gtk-save-as"); + this.miSaveArmyAs.Sensitive = false; + this.miSaveArmyAs.ShortLabel = global::Mono.Unix.Catalog.GetString("Save army as"); + w1.Add(this.miSaveArmyAs, null); + this.miCloseArmy = new global::Gtk.Action("miCloseArmy", global::Mono.Unix.Catalog.GetString("Close army"), null, "gtk-close"); + this.miCloseArmy.Sensitive = false; + this.miCloseArmy.ShortLabel = global::Mono.Unix.Catalog.GetString("Close army"); + w1.Add(this.miCloseArmy, null); + this.miReloadFiles = new global::Gtk.Action("miReloadFiles", global::Mono.Unix.Catalog.GetString("Reload files"), null, "gtk-refresh"); + this.miReloadFiles.ShortLabel = global::Mono.Unix.Catalog.GetString("Reload files"); + w1.Add(this.miReloadFiles, null); + this.miExit = new global::Gtk.Action("miExit", global::Mono.Unix.Catalog.GetString("Exit"), null, "gtk-quit"); + this.miExit.ShortLabel = global::Mono.Unix.Catalog.GetString("Exit"); + w1.Add(this.miExit, null); + this.menuEdit = new global::Gtk.Action("menuEdit", global::Mono.Unix.Catalog.GetString("Edit"), null, null); + this.menuEdit.ShortLabel = global::Mono.Unix.Catalog.GetString("Edit"); + w1.Add(this.menuEdit, null); + this.miUndo = new global::Gtk.Action("miUndo", global::Mono.Unix.Catalog.GetString("Undo"), null, "gtk-undo"); + this.miUndo.Sensitive = false; + this.miUndo.ShortLabel = global::Mono.Unix.Catalog.GetString("Undo"); + w1.Add(this.miUndo, null); + this.miRedo = new global::Gtk.Action("miRedo", global::Mono.Unix.Catalog.GetString("Redo"), null, "gtk-redo"); + this.miRedo.Sensitive = false; + this.miRedo.ShortLabel = global::Mono.Unix.Catalog.GetString("Redo"); + w1.Add(this.miRedo, null); + this.menuHelp = new global::Gtk.Action("menuHelp", global::Mono.Unix.Catalog.GetString("Help"), null, null); + this.menuHelp.ShortLabel = global::Mono.Unix.Catalog.GetString("Help"); + w1.Add(this.menuHelp, null); + this.miAbout = new global::Gtk.Action("miAbout", global::Mono.Unix.Catalog.GetString("About"), null, "gtk-about"); + this.miAbout.ShortLabel = global::Mono.Unix.Catalog.GetString("About"); + w1.Add(this.miAbout, null); + this.miDebugInformation = new global::Gtk.Action("miDebugInformation", global::Mono.Unix.Catalog.GetString("Debug Information"), null, null); + this.miDebugInformation.ShortLabel = global::Mono.Unix.Catalog.GetString("Debug Information"); + w1.Add(this.miDebugInformation, null); + this.bttnNewArmy = new global::Gtk.Action("bttnNewArmy", null, null, "gtk-new"); + w1.Add(this.bttnNewArmy, null); + this.bttnOpenArmy = new global::Gtk.Action("bttnOpenArmy", null, null, "gtk-open"); + w1.Add(this.bttnOpenArmy, null); + this.bttnSaveArmy = new global::Gtk.Action("bttnSaveArmy", null, null, "gtk-save"); + this.bttnSaveArmy.Sensitive = false; + w1.Add(this.bttnSaveArmy, null); + this.bttnUndo = new global::Gtk.Action("bttnUndo", null, null, "gtk-undo"); + this.bttnUndo.Sensitive = false; + w1.Add(this.bttnUndo, null); + this.bttnRedo = new global::Gtk.Action("bttnRedo", null, null, "gtk-redo"); + this.bttnRedo.Sensitive = false; + w1.Add(this.bttnRedo, null); + this.goDown = new global::Gtk.Action("goDown", null, null, null); + w1.Add(this.goDown, null); + this.add = new global::Gtk.Action("add", null, null, "gtk-add"); + w1.Add(this.add, null); + this.miExportArmyAs = new global::Gtk.Action("miExportArmyAs", global::Mono.Unix.Catalog.GetString("Export army as..."), null, "gtk-convert"); + this.miExportArmyAs.Sensitive = false; + this.miExportArmyAs.ShortLabel = global::Mono.Unix.Catalog.GetString("Export army as..."); + w1.Add(this.miExportArmyAs, null); + this.miExportArmyAsBasicHTML = new global::Gtk.Action("miExportArmyAsBasicHTML", global::Mono.Unix.Catalog.GetString("Basic HTML"), null, null); + this.miExportArmyAsBasicHTML.ShortLabel = global::Mono.Unix.Catalog.GetString("Basic HTML"); + w1.Add(this.miExportArmyAsBasicHTML, null); + this.miPreferences = new global::Gtk.Action("miPreferences", global::Mono.Unix.Catalog.GetString("preferences"), null, "gtk-preferences"); + this.miPreferences.ShortLabel = global::Mono.Unix.Catalog.GetString("preferences"); + w1.Add(this.miPreferences, null); + this.UIManager.InsertActionGroup(w1, 0); + this.AddAccelGroup(this.UIManager.AccelGroup); + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmMainWindow"; + this.Title = global::Mono.Unix.Catalog.GetString("MainWindow"); + this.Icon = global::Gdk.Pixbuf.LoadFromResource("App.ico"); + // Container child IBBoard.WarFoundry.GUI.GTK.FrmMainWindow.Gtk.Container+ContainerChild + this.vbox1 = new global::Gtk.VBox(); + this.vbox1.Name = "vbox1"; + // Container child vbox1.Gtk.Box+BoxChild + this.UIManager.AddUiFromString("<ui><menubar name='menubar1'><menu name='menuFile' action='menuFile'><menuitem name='miNewArmy' action='miNewArmy'/><menuitem name='miOpenArmy' action='miOpenArmy'/><menuitem name='miSaveArmy' action='miSaveArmy'/><menuitem name='miSaveArmyAs' action='miSaveArmyAs'/><menu name='miExportArmyAs' action='miExportArmyAs'><menuitem name='miExportArmyAsBasicHTML' action='miExportArmyAsBasicHTML'/></menu><menuitem name='miCloseArmy' action='miCloseArmy'/><separator/><menuitem name='miReloadFiles' action='miReloadFiles'/><separator/><menuitem name='miExit' action='miExit'/></menu><menu name='menuEdit' action='menuEdit'><menuitem name='miUndo' action='miUndo'/><menuitem name='miRedo' action='miRedo'/><separator/><menuitem name='miPreferences' action='miPreferences'/></menu><menu name='menuHelp' action='menuHelp'><menuitem name='miAbout' action='miAbout'/></menu></menubar></ui>"); + this.menubar1 = ((global::Gtk.MenuBar)(this.UIManager.GetWidget("/menubar1"))); + this.menubar1.Name = "menubar1"; + this.vbox1.Add(this.menubar1); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.menubar1])); + w2.Position = 0; + w2.Expand = false; + w2.Fill = false; + // Container child vbox1.Gtk.Box+BoxChild + this.UIManager.AddUiFromString("<ui><toolbar name='toolbar'><toolitem name='bttnNewArmy' action='bttnNewArmy'/><toolitem name='bttnOpenArmy' action='bttnOpenArmy'/><toolitem name='bttnSaveArmy' action='bttnSaveArmy'/><separator/><toolitem name='bttnUndo' action='bttnUndo'/><toolitem name='bttnRedo' action='bttnRedo'/><separator/></toolbar></ui>"); + this.toolbar = ((global::Gtk.Toolbar)(this.UIManager.GetWidget("/toolbar"))); + this.toolbar.HeightRequest = 36; + this.toolbar.Name = "toolbar"; + this.toolbar.ShowArrow = false; + this.toolbar.ToolbarStyle = ((global::Gtk.ToolbarStyle)(0)); + this.toolbar.IconSize = ((global::Gtk.IconSize)(3)); + this.vbox1.Add(this.toolbar); + global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.toolbar])); + w3.Position = 1; + w3.Expand = false; + w3.Fill = false; + // Container child vbox1.Gtk.Box+BoxChild + this.hpaned2 = new global::Gtk.HPaned(); + this.hpaned2.CanFocus = true; + this.hpaned2.Name = "hpaned2"; + this.hpaned2.Position = 178; + // Container child hpaned2.Gtk.Paned+PanedChild + this.treeUnits = new global::Gtk.TreeView(); + this.treeUnits.CanFocus = true; + this.treeUnits.Name = "treeUnits"; + this.hpaned2.Add(this.treeUnits); + global::Gtk.Paned.PanedChild w4 = ((global::Gtk.Paned.PanedChild)(this.hpaned2[this.treeUnits])); + w4.Resize = false; + // Container child hpaned2.Gtk.Paned+PanedChild + this.unitsNotebook = new global::Gtk.Notebook(); + this.unitsNotebook.CanFocus = true; + this.unitsNotebook.Name = "unitsNotebook"; + this.unitsNotebook.CurrentPage = -1; + this.unitsNotebook.Scrollable = true; + this.hpaned2.Add(this.unitsNotebook); + this.vbox1.Add(this.hpaned2); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hpaned2])); + w6.Position = 2; + // Container child vbox1.Gtk.Box+BoxChild + this.statusbar1 = new global::Gtk.Statusbar(); + this.statusbar1.Name = "statusbar1"; + this.statusbar1.Spacing = 2; + // Container child statusbar1.Gtk.Box+BoxChild + this.lblTotalPoints = new global::Gtk.Label(); + this.lblTotalPoints.Name = "lblTotalPoints"; + this.statusbar1.Add(this.lblTotalPoints); + global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.statusbar1[this.lblTotalPoints])); + w7.Position = 2; + w7.Expand = false; + w7.Fill = false; + this.vbox1.Add(this.statusbar1); + global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.statusbar1])); + w8.Position = 3; + w8.Expand = false; + w8.Fill = false; + this.Add(this.vbox1); + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 832; + this.DefaultHeight = 659; + this.hpaned2.Hide(); + this.Show(); + this.miNewArmy.Activated += new global::System.EventHandler(this.OnCreateArmyActivated); + this.miOpenArmy.Activated += new global::System.EventHandler(this.OnOpenArmyActivated); + this.miSaveArmy.Activated += new global::System.EventHandler(this.OnSaveArmyActivated); + this.miSaveArmyAs.Activated += new global::System.EventHandler(this.OnSaveArmyAsActivated); + this.miCloseArmy.Activated += new global::System.EventHandler(this.OnCloseArmyActivated); + this.miReloadFiles.Activated += new global::System.EventHandler(this.OnReloadFilesActivated); + this.miExit.Activated += new global::System.EventHandler(this.OnExitActivated); + this.miAbout.Activated += new global::System.EventHandler(this.HelpAboutActivated); + this.bttnNewArmy.Activated += new global::System.EventHandler(this.newTBButtonActivated); + this.bttnOpenArmy.Activated += new global::System.EventHandler(this.openTBButtonActivated); + this.bttnSaveArmy.Activated += new global::System.EventHandler(this.saveTBButtonActivated); + this.bttnUndo.Activated += new global::System.EventHandler(this.undoTBButtonActivated); + this.bttnRedo.Activated += new global::System.EventHandler(this.redoTBButtonActivated); + this.miExportArmyAsBasicHTML.Activated += new global::System.EventHandler(this.OnMiExportAsBasicHtmlActivated); + this.miPreferences.Activated += new global::System.EventHandler(this.miPreferencesClicked); + this.treeUnits.RowActivated += new global::Gtk.RowActivatedHandler(this.ArmyRowActivated); + this.treeUnits.PopupMenu += new global::Gtk.PopupMenuHandler(this.OnTreeUnitsPopupMenu); + this.treeUnits.ButtonPressEvent += new global::Gtk.ButtonPressEventHandler(this.UnitTreeButtonPressed); + this.unitsNotebook.Removed += new global::Gtk.RemovedHandler(this.NotebookPageRemoved); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmNewArmy.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,203 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmNewArmy + { + private global::Gtk.Table table1; + private global::Gtk.ScrolledWindow GtkScrolledWindow; + private global::Gtk.TreeView lstRaces; + private global::Gtk.HBox hbox2; + private global::Gtk.SpinButton sbPointsValue; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblArmyName; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblArmySize; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblGameSystem; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblRaceList; + private global::Gtk.ComboBoxEntry systemCombo; + private global::Gtk.Entry txtArmyName; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCreate; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmNewArmy + this.Events = ((global::Gdk.EventMask)(256)); + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmNewArmy"; + this.Title = global::Mono.Unix.Catalog.GetString("Create new army"); + this.Icon = global::Stetic.IconLoader.LoadIcon(this, "gtk-new", global::Gtk.IconSize.Menu); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmNewArmy.VBox + global::Gtk.VBox w1 = this.VBox; + w1.CanFocus = true; + w1.Events = ((global::Gdk.EventMask)(256)); + w1.Name = "dialog_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog_VBox.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(4)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow.Name = "GtkScrolledWindow"; + this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow.Gtk.Container+ContainerChild + this.lstRaces = new global::Gtk.TreeView(); + this.lstRaces.HeightRequest = 150; + this.lstRaces.CanFocus = true; + this.lstRaces.Name = "lstRaces"; + this.lstRaces.HeadersVisible = false; + this.lstRaces.RulesHint = true; + this.GtkScrolledWindow.Add(this.lstRaces); + this.table1.Add(this.GtkScrolledWindow); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow])); + w3.TopAttach = ((uint)(1)); + w3.BottomAttach = ((uint)(2)); + w3.LeftAttach = ((uint)(1)); + w3.RightAttach = ((uint)(2)); + w3.XOptions = ((global::Gtk.AttachOptions)(4)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.hbox2 = new global::Gtk.HBox(); + this.hbox2.Name = "hbox2"; + // Container child hbox2.Gtk.Box+BoxChild + this.sbPointsValue = new global::Gtk.SpinButton(0, 2000000000, 100); + this.sbPointsValue.WidthRequest = 150; + this.sbPointsValue.CanFocus = true; + this.sbPointsValue.Name = "sbPointsValue"; + this.sbPointsValue.Adjustment.PageIncrement = 1000; + this.sbPointsValue.ClimbRate = 100; + this.sbPointsValue.Numeric = true; + this.sbPointsValue.Value = 1000; + this.hbox2.Add(this.sbPointsValue); + global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.sbPointsValue])); + w4.Position = 0; + w4.Expand = false; + w4.Fill = false; + this.table1.Add(this.hbox2); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); + w5.TopAttach = ((uint)(3)); + w5.BottomAttach = ((uint)(4)); + w5.LeftAttach = ((uint)(1)); + w5.RightAttach = ((uint)(2)); + w5.XOptions = ((global::Gtk.AttachOptions)(4)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblArmyName = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblArmyName.Name = "lblArmyName"; + this.lblArmyName.LabelProp = global::Mono.Unix.Catalog.GetString("army name"); + this.table1.Add(this.lblArmyName); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.lblArmyName])); + w6.TopAttach = ((uint)(2)); + w6.BottomAttach = ((uint)(3)); + w6.XOptions = ((global::Gtk.AttachOptions)(4)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblArmySize = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblArmySize.Name = "lblArmySize"; + this.lblArmySize.LabelProp = global::Mono.Unix.Catalog.GetString("points value"); + this.table1.Add(this.lblArmySize); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.lblArmySize])); + w7.TopAttach = ((uint)(3)); + w7.BottomAttach = ((uint)(4)); + w7.XOptions = ((global::Gtk.AttachOptions)(4)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblGameSystem = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblGameSystem.Name = "lblGameSystem"; + this.lblGameSystem.LabelProp = global::Mono.Unix.Catalog.GetString("game system"); + this.table1.Add(this.lblGameSystem); + global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1[this.lblGameSystem])); + w8.XOptions = ((global::Gtk.AttachOptions)(4)); + w8.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblRaceList = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblRaceList.Name = "lblRaceList"; + this.lblRaceList.LabelProp = global::Mono.Unix.Catalog.GetString("race"); + this.table1.Add(this.lblRaceList); + global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1[this.lblRaceList])); + w9.TopAttach = ((uint)(1)); + w9.BottomAttach = ((uint)(2)); + w9.XOptions = ((global::Gtk.AttachOptions)(4)); + w9.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.systemCombo = global::Gtk.ComboBoxEntry.NewText(); + this.systemCombo.Name = "systemCombo"; + this.table1.Add(this.systemCombo); + global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1[this.systemCombo])); + w10.LeftAttach = ((uint)(1)); + w10.RightAttach = ((uint)(2)); + w10.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.txtArmyName = new global::Gtk.Entry(); + this.txtArmyName.CanFocus = true; + this.txtArmyName.Name = "txtArmyName"; + this.txtArmyName.IsEditable = true; + this.txtArmyName.InvisibleChar = '•'; + this.table1.Add(this.txtArmyName); + global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1[this.txtArmyName])); + w11.TopAttach = ((uint)(2)); + w11.BottomAttach = ((uint)(3)); + w11.LeftAttach = ((uint)(1)); + w11.RightAttach = ((uint)(2)); + w11.XOptions = ((global::Gtk.AttachOptions)(4)); + w11.YOptions = ((global::Gtk.AttachOptions)(4)); + w1.Add(this.table1); + global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); + w12.Position = 0; + w12.Expand = false; + w12.Fill = false; + w12.Padding = ((uint)(6)); + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmNewArmy.ActionArea + global::Gtk.HButtonBox w13 = this.ActionArea; + w13.CanFocus = true; + w13.Events = ((global::Gdk.EventMask)(256)); + w13.Name = "WarFoundrySharp.FrmNewArmy_ActionArea"; + w13.Spacing = 6; + w13.BorderWidth = ((uint)(5)); + w13.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnCancel])); + w14.Expand = false; + w14.Fill = false; + // Container child WarFoundrySharp.FrmNewArmy_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCreate = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCreate.Sensitive = false; + this.bttnCreate.CanDefault = true; + this.bttnCreate.CanFocus = true; + this.bttnCreate.Name = "bttnCreate"; + this.bttnCreate.UseStock = true; + this.bttnCreate.UseUnderline = true; + this.bttnCreate.Label = "gtk-ok"; + this.AddActionWidget(this.bttnCreate, -5); + global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13[this.bttnCreate])); + w15.Position = 1; + w15.Expand = false; + w15.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 370; + this.DefaultHeight = 348; + this.Show(); + this.txtArmyName.Changed += new global::System.EventHandler(this.OnTextChanged); + this.systemCombo.Changed += new global::System.EventHandler(this.OnSystemComboChanged); + this.sbPointsValue.ChangeValue += new global::Gtk.ChangeValueHandler(this.OnSpinChangeValue); + this.sbPointsValue.ValueChanged += new global::System.EventHandler(this.OnSpinValueChanged); + this.sbPointsValue.Changed += new global::System.EventHandler(this.OnSpinValueChanged); + this.bttnCancel.Clicked += new global::System.EventHandler(this.OnCancelClicked); + this.bttnCreate.Clicked += new global::System.EventHandler(this.OnCreateClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmNewUnit.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,122 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmNewUnit + { + private global::Gtk.VBox vbox2; + private global::Gtk.HBox hbox1; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblUnitList; + private global::Gtk.ScrolledWindow GtkScrolledWindow; + private global::Gtk.TreeView lstUnitTypes; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblNewUnitWarning; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCreate; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmNewUnit + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmNewUnit"; + this.Title = global::Mono.Unix.Catalog.GetString("Add new unit"); + this.Icon = global::Stetic.IconLoader.LoadIcon(this, "gtk-new", global::Gtk.IconSize.Menu); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.Modal = true; + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmNewUnit.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.vbox2 = new global::Gtk.VBox(); + this.vbox2.Name = "vbox2"; + this.vbox2.Spacing = 6; + // Container child vbox2.Gtk.Box+BoxChild + this.hbox1 = new global::Gtk.HBox(); + this.hbox1.Name = "hbox1"; + this.hbox1.Spacing = 6; + // Container child hbox1.Gtk.Box+BoxChild + this.lblUnitList = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblUnitList.Name = "lblUnitList"; + this.lblUnitList.LabelProp = global::Mono.Unix.Catalog.GetString("unit type"); + this.hbox1.Add(this.lblUnitList); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.lblUnitList])); + w2.Position = 0; + w2.Expand = false; + w2.Fill = false; + // Container child hbox1.Gtk.Box+BoxChild + this.GtkScrolledWindow = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow.Name = "GtkScrolledWindow"; + this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow.Gtk.Container+ContainerChild + this.lstUnitTypes = new global::Gtk.TreeView(); + this.lstUnitTypes.HeightRequest = 150; + this.lstUnitTypes.CanFocus = true; + this.lstUnitTypes.Name = "lstUnitTypes"; + this.lstUnitTypes.HeadersVisible = false; + this.GtkScrolledWindow.Add(this.lstUnitTypes); + this.hbox1.Add(this.GtkScrolledWindow); + global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.GtkScrolledWindow])); + w4.Position = 1; + this.vbox2.Add(this.hbox1); + global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox1])); + w5.Position = 0; + w5.Expand = false; + w5.Fill = false; + // Container child vbox2.Gtk.Box+BoxChild + this.lblNewUnitWarning = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblNewUnitWarning.Name = "lblNewUnitWarning"; + this.vbox2.Add(this.lblNewUnitWarning); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.lblNewUnitWarning])); + w6.Position = 1; + w6.Expand = false; + w6.Fill = false; + w1.Add(this.vbox2); + global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(w1[this.vbox2])); + w7.Position = 0; + w7.Expand = false; + w7.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmNewUnit.ActionArea + global::Gtk.HButtonBox w8 = this.ActionArea; + w8.Name = "dialog1_ActionArea"; + w8.Spacing = 6; + w8.BorderWidth = ((uint)(5)); + w8.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w9 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w8[this.bttnCancel])); + w9.Expand = false; + w9.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCreate = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCreate.CanFocus = true; + this.bttnCreate.Name = "bttnCreate"; + this.bttnCreate.UseStock = true; + this.bttnCreate.UseUnderline = true; + this.bttnCreate.Label = "gtk-ok"; + this.AddActionWidget(this.bttnCreate, -5); + global::Gtk.ButtonBox.ButtonBoxChild w10 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w8[this.bttnCreate])); + w10.Position = 1; + w10.Expand = false; + w10.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 403; + this.DefaultHeight = 259; + this.lblNewUnitWarning.Hide(); + this.Show(); + this.lstUnitTypes.RowActivated += new global::Gtk.RowActivatedHandler(this.OnRowActivated); + this.bttnCancel.Clicked += new global::System.EventHandler(this.OnButtonCancelActivated); + this.bttnCreate.Clicked += new global::System.EventHandler(this.OnButtonOkClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmPreferences.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,135 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmPreferences + { + private global::Gtk.HPaned hpaned1; + private global::Gtk.ScrolledWindow GtkScrolledWindow; + private global::Gtk.TreeView preferencesTree; + private global::Gtk.Frame prefsFrame; + private global::Gtk.Alignment GtkAlignment2; + private global::Gtk.Table table1; + private global::Gtk.ComboBox languageList; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblLanguage; + private global::Gtk.Label frameLabel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnOkay; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmPreferences + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmPreferences"; + this.TypeHint = ((global::Gdk.WindowTypeHint)(1)); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmPreferences.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.hpaned1 = new global::Gtk.HPaned(); + this.hpaned1.CanFocus = true; + this.hpaned1.Name = "hpaned1"; + this.hpaned1.Position = 164; + // Container child hpaned1.Gtk.Paned+PanedChild + this.GtkScrolledWindow = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow.Name = "GtkScrolledWindow"; + this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow.Gtk.Container+ContainerChild + this.preferencesTree = new global::Gtk.TreeView(); + this.preferencesTree.CanFocus = true; + this.preferencesTree.Name = "preferencesTree"; + this.preferencesTree.HeadersVisible = false; + this.GtkScrolledWindow.Add(this.preferencesTree); + this.hpaned1.Add(this.GtkScrolledWindow); + global::Gtk.Paned.PanedChild w3 = ((global::Gtk.Paned.PanedChild)(this.hpaned1[this.GtkScrolledWindow])); + w3.Resize = false; + // Container child hpaned1.Gtk.Paned+PanedChild + this.prefsFrame = new global::Gtk.Frame(); + this.prefsFrame.Name = "prefsFrame"; + this.prefsFrame.ShadowType = ((global::Gtk.ShadowType)(1)); + this.prefsFrame.BorderWidth = ((uint)(2)); + // Container child prefsFrame.Gtk.Container+ContainerChild + this.GtkAlignment2 = new global::Gtk.Alignment(0F, 0F, 1F, 1F); + this.GtkAlignment2.Name = "GtkAlignment2"; + this.GtkAlignment2.LeftPadding = ((uint)(12)); + // Container child GtkAlignment2.Gtk.Container+ContainerChild + this.table1 = new global::Gtk.Table(((uint)(3)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.languageList = global::Gtk.ComboBox.NewText(); + this.languageList.Name = "languageList"; + this.table1.Add(this.languageList); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.languageList])); + w4.LeftAttach = ((uint)(1)); + w4.RightAttach = ((uint)(2)); + w4.XOptions = ((global::Gtk.AttachOptions)(4)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblLanguage = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblLanguage.Name = "lblLanguage"; + this.lblLanguage.LabelProp = global::Mono.Unix.Catalog.GetString("language:"); + this.table1.Add(this.lblLanguage); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.lblLanguage])); + w5.XOptions = ((global::Gtk.AttachOptions)(4)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + this.GtkAlignment2.Add(this.table1); + this.prefsFrame.Add(this.GtkAlignment2); + this.frameLabel = new global::Gtk.Label(); + this.frameLabel.Name = "frameLabel"; + this.frameLabel.LabelProp = global::Mono.Unix.Catalog.GetString("<b>language</b>"); + this.frameLabel.UseMarkup = true; + this.prefsFrame.LabelWidget = this.frameLabel; + this.hpaned1.Add(this.prefsFrame); + w1.Add(this.hpaned1); + global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(w1[this.hpaned1])); + w9.Position = 0; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmPreferences.ActionArea + global::Gtk.HButtonBox w10 = this.ActionArea; + w10.Name = "dialog1_ActionArea"; + w10.Spacing = 10; + w10.BorderWidth = ((uint)(5)); + w10.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanDefault = true; + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w11 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w10[this.bttnCancel])); + w11.Expand = false; + w11.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnOkay = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnOkay.CanDefault = true; + this.bttnOkay.CanFocus = true; + this.bttnOkay.Name = "bttnOkay"; + this.bttnOkay.UseStock = true; + this.bttnOkay.UseUnderline = true; + this.bttnOkay.Label = "gtk-ok"; + this.AddActionWidget(this.bttnOkay, -5); + global::Gtk.ButtonBox.ButtonBoxChild w12 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w10[this.bttnOkay])); + w12.Position = 1; + w12.Expand = false; + w12.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 400; + this.DefaultHeight = 300; + this.Show(); + this.languageList.Changed += new global::System.EventHandler(this.languageListChanged); + this.bttnCancel.Clicked += new global::System.EventHandler(this.bttnCancelClicked); + this.bttnOkay.Clicked += new global::System.EventHandler(this.bttnOkayClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,236 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK +{ + public partial class FrmReplaceEquipment + { + private global::Gtk.Table table1; + private global::Gtk.ScrolledWindow GtkScrolledWindow; + private global::Gtk.TreeView lstEquipment; + private global::Gtk.HBox hbox2; + private global::Gtk.Table table2; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAll; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblPercent; + private global::Gtk.SpinButton numericAmount; + private global::Gtk.SpinButton percentageAmount; + private global::Gtk.RadioButton rbEquipAll; + private global::Gtk.RadioButton rbEquipNumeric; + private global::Gtk.RadioButton rbEquipPercent; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblAmount; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblItem; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnOkay; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment + this.Name = "IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment"; + this.Title = global::Mono.Unix.Catalog.GetString("Add equipment"); + this.WindowPosition = ((global::Gtk.WindowPosition)(4)); + this.Modal = true; + this.SkipPagerHint = true; + this.SkipTaskbarHint = true; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.VBox + global::Gtk.VBox w1 = this.VBox; + w1.Name = "dialog1_VBox"; + w1.BorderWidth = ((uint)(2)); + // Container child dialog1_VBox.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(2)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow.Name = "GtkScrolledWindow"; + this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow.Gtk.Container+ContainerChild + this.lstEquipment = new global::Gtk.TreeView(); + this.lstEquipment.CanFocus = true; + this.lstEquipment.Name = "lstEquipment"; + this.lstEquipment.HeadersVisible = false; + this.GtkScrolledWindow.Add(this.lstEquipment); + this.table1.Add(this.GtkScrolledWindow); + global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow])); + w3.LeftAttach = ((uint)(1)); + w3.RightAttach = ((uint)(2)); + w3.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.hbox2 = new global::Gtk.HBox(); + this.hbox2.Name = "hbox2"; + this.hbox2.Spacing = 6; + // Container child hbox2.Gtk.Box+BoxChild + this.table2 = new global::Gtk.Table(((uint)(3)), ((uint)(3)), false); + this.table2.Name = "table2"; + this.table2.RowSpacing = ((uint)(6)); + this.table2.ColumnSpacing = ((uint)(6)); + // Container child table2.Gtk.Table+TableChild + this.lblEquipAll = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblEquipAll.Name = "lblEquipAll"; + this.lblEquipAll.LabelProp = global::Mono.Unix.Catalog.GetString("equip all"); + this.table2.Add(this.lblEquipAll); + global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table2[this.lblEquipAll])); + w4.TopAttach = ((uint)(2)); + w4.BottomAttach = ((uint)(3)); + w4.LeftAttach = ((uint)(1)); + w4.RightAttach = ((uint)(2)); + w4.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.lblPercent = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblPercent.Name = "lblPercent"; + this.lblPercent.LabelProp = global::Mono.Unix.Catalog.GetString("%"); + this.table2.Add(this.lblPercent); + global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table2[this.lblPercent])); + w5.TopAttach = ((uint)(1)); + w5.BottomAttach = ((uint)(2)); + w5.LeftAttach = ((uint)(2)); + w5.RightAttach = ((uint)(3)); + w5.XOptions = ((global::Gtk.AttachOptions)(4)); + w5.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.numericAmount = new global::Gtk.SpinButton(0, 100, 1); + this.numericAmount.CanFocus = true; + this.numericAmount.Name = "numericAmount"; + this.numericAmount.Adjustment.PageIncrement = 10; + this.numericAmount.ClimbRate = 1; + this.numericAmount.Numeric = true; + this.table2.Add(this.numericAmount); + global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table2[this.numericAmount])); + w6.LeftAttach = ((uint)(1)); + w6.RightAttach = ((uint)(2)); + w6.XOptions = ((global::Gtk.AttachOptions)(0)); + w6.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.percentageAmount = new global::Gtk.SpinButton(0, 100, 1); + this.percentageAmount.CanFocus = true; + this.percentageAmount.Name = "percentageAmount"; + this.percentageAmount.Adjustment.PageIncrement = 10; + this.percentageAmount.ClimbRate = 1; + this.percentageAmount.Digits = ((uint)(1)); + this.percentageAmount.Numeric = true; + this.table2.Add(this.percentageAmount); + global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2[this.percentageAmount])); + w7.TopAttach = ((uint)(1)); + w7.BottomAttach = ((uint)(2)); + w7.LeftAttach = ((uint)(1)); + w7.RightAttach = ((uint)(2)); + w7.XOptions = ((global::Gtk.AttachOptions)(0)); + w7.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipAll = new global::Gtk.RadioButton(""); + this.rbEquipAll.CanFocus = true; + this.rbEquipAll.Name = "rbEquipAll"; + this.rbEquipAll.DrawIndicator = true; + this.rbEquipAll.UseUnderline = true; + this.rbEquipAll.Group = new global::GLib.SList(global::System.IntPtr.Zero); + this.table2.Add(this.rbEquipAll); + global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipAll])); + w8.TopAttach = ((uint)(2)); + w8.BottomAttach = ((uint)(3)); + w8.XOptions = ((global::Gtk.AttachOptions)(4)); + w8.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipNumeric = new global::Gtk.RadioButton(""); + this.rbEquipNumeric.CanFocus = true; + this.rbEquipNumeric.Name = "rbEquipNumeric"; + this.rbEquipNumeric.DrawIndicator = true; + this.rbEquipNumeric.UseUnderline = true; + this.rbEquipNumeric.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipNumeric); + global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipNumeric])); + w9.XOptions = ((global::Gtk.AttachOptions)(4)); + w9.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table2.Gtk.Table+TableChild + this.rbEquipPercent = new global::Gtk.RadioButton(""); + this.rbEquipPercent.CanFocus = true; + this.rbEquipPercent.Name = "rbEquipPercent"; + this.rbEquipPercent.DrawIndicator = true; + this.rbEquipPercent.UseUnderline = true; + this.rbEquipPercent.Group = this.rbEquipAll.Group; + this.table2.Add(this.rbEquipPercent); + global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table2[this.rbEquipPercent])); + w10.TopAttach = ((uint)(1)); + w10.BottomAttach = ((uint)(2)); + w10.XOptions = ((global::Gtk.AttachOptions)(4)); + w10.YOptions = ((global::Gtk.AttachOptions)(4)); + this.hbox2.Add(this.table2); + global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.table2])); + w11.Position = 0; + w11.Expand = false; + w11.Fill = false; + this.table1.Add(this.hbox2); + global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.hbox2])); + w12.TopAttach = ((uint)(1)); + w12.BottomAttach = ((uint)(2)); + w12.LeftAttach = ((uint)(1)); + w12.RightAttach = ((uint)(2)); + w12.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblAmount = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.LabelProp = global::Mono.Unix.Catalog.GetString("amount:"); + this.table1.Add(this.lblAmount); + global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1[this.lblAmount])); + w13.TopAttach = ((uint)(1)); + w13.BottomAttach = ((uint)(2)); + w13.XOptions = ((global::Gtk.AttachOptions)(4)); + w13.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblItem = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblItem.Name = "lblItem"; + this.lblItem.LabelProp = global::Mono.Unix.Catalog.GetString("equipment"); + this.table1.Add(this.lblItem); + global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.lblItem])); + w14.XOptions = ((global::Gtk.AttachOptions)(4)); + w14.YOptions = ((global::Gtk.AttachOptions)(4)); + w1.Add(this.table1); + global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1[this.table1])); + w15.Position = 0; + w15.Expand = false; + w15.Fill = false; + // Internal child IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.ActionArea + global::Gtk.HButtonBox w16 = this.ActionArea; + w16.Name = "dialog1_ActionArea"; + w16.Spacing = 10; + w16.BorderWidth = ((uint)(5)); + w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnCancel.CanDefault = true; + this.bttnCancel.CanFocus = true; + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.UseStock = true; + this.bttnCancel.UseUnderline = true; + this.bttnCancel.Label = "gtk-cancel"; + this.AddActionWidget(this.bttnCancel, -6); + global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16[this.bttnCancel])); + w17.Expand = false; + w17.Fill = false; + // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild + this.bttnOkay = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnOkay.CanDefault = true; + this.bttnOkay.CanFocus = true; + this.bttnOkay.Name = "bttnOkay"; + this.bttnOkay.UseStock = true; + this.bttnOkay.UseUnderline = true; + this.bttnOkay.Label = "gtk-ok"; + this.AddActionWidget(this.bttnOkay, -5); + global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16[this.bttnOkay])); + w18.Position = 1; + w18.Expand = false; + w18.Fill = false; + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.DefaultWidth = 400; + this.DefaultHeight = 300; + this.Show(); + this.rbEquipNumeric.Clicked += new global::System.EventHandler(this.RadioButtonClicked); + this.percentageAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.numericAmount.ValueChanged += new global::System.EventHandler(this.SpinButtonValueChanged); + this.bttnCancel.Clicked += new global::System.EventHandler(this.CancelButtonClicked); + this.bttnOkay.Clicked += new global::System.EventHandler(this.OkayButtonClicked); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.cs Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,262 @@ + +// This file has been generated by the GUI designer. Do not modify. +namespace IBBoard.WarFoundry.GUI.GTK.Widgets +{ + public partial class UnitDisplayWidget + { + private global::Gtk.VBox vbox1; + private global::Gtk.HBox hbox1; + private global::Gtk.Entry unitName; + private global::Gtk.SpinButton unitSize; + private global::Gtk.ScrolledWindow statsScrollPanel; + private global::Gtk.VBox statsRepeatBox; + private global::Gtk.HSeparator hseparator1; + private global::Gtk.HBox hbox2; + private global::Gtk.Table table1; + private global::Gtk.ScrolledWindow GtkScrolledWindow2; + private global::Gtk.NodeView equipmentList; + private global::Gtk.ScrolledWindow GtkScrolledWindow3; + private global::Gtk.TextView notesView; + private global::Gtk.ScrolledWindow GtkScrolledWindow4; + private global::Gtk.NodeView abilitiesList; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblAbilities; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquip; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblNotes; + private global::Gtk.VBox vbox3; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnAddWeapon; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnEditWeapon; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnReplaceWeapon; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnRemoveWeapon; + + protected virtual void Build() + { + global::Stetic.Gui.Initialize(this); + // Widget IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget + global::Stetic.BinContainer.Attach(this); + this.Name = "IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget"; + // Container child IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.Gtk.Container+ContainerChild + this.vbox1 = new global::Gtk.VBox(); + this.vbox1.Name = "vbox1"; + this.vbox1.Spacing = 6; + // Container child vbox1.Gtk.Box+BoxChild + this.hbox1 = new global::Gtk.HBox(); + this.hbox1.Name = "hbox1"; + this.hbox1.Spacing = 6; + // Container child hbox1.Gtk.Box+BoxChild + this.unitName = new global::Gtk.Entry(); + this.unitName.CanFocus = true; + this.unitName.Name = "unitName"; + this.unitName.IsEditable = true; + this.unitName.InvisibleChar = '•'; + this.hbox1.Add(this.unitName); + global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.unitName])); + w1.Position = 0; + // Container child hbox1.Gtk.Box+BoxChild + this.unitSize = new global::Gtk.SpinButton(0, 100, 1); + this.unitSize.CanFocus = true; + this.unitSize.Name = "unitSize"; + this.unitSize.Adjustment.PageIncrement = 10; + this.unitSize.ClimbRate = 1; + this.unitSize.Numeric = true; + this.hbox1.Add(this.unitSize); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.unitSize])); + w2.Position = 1; + w2.Expand = false; + w2.Fill = false; + this.vbox1.Add(this.hbox1); + global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); + w3.Position = 0; + w3.Expand = false; + w3.Fill = false; + // Container child vbox1.Gtk.Box+BoxChild + this.statsScrollPanel = new global::Gtk.ScrolledWindow(); + this.statsScrollPanel.CanFocus = true; + this.statsScrollPanel.Name = "statsScrollPanel"; + this.statsScrollPanel.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child statsScrollPanel.Gtk.Container+ContainerChild + global::Gtk.Viewport w4 = new global::Gtk.Viewport(); + w4.ShadowType = ((global::Gtk.ShadowType)(0)); + // Container child GtkViewport.Gtk.Container+ContainerChild + this.statsRepeatBox = new global::Gtk.VBox(); + this.statsRepeatBox.Name = "statsRepeatBox"; + this.statsRepeatBox.Spacing = 6; + w4.Add(this.statsRepeatBox); + this.statsScrollPanel.Add(w4); + this.vbox1.Add(this.statsScrollPanel); + global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.statsScrollPanel])); + w7.Position = 1; + // Container child vbox1.Gtk.Box+BoxChild + this.hseparator1 = new global::Gtk.HSeparator(); + this.hseparator1.Name = "hseparator1"; + this.vbox1.Add(this.hseparator1); + global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hseparator1])); + w8.Position = 2; + w8.Expand = false; + w8.Fill = false; + // Container child vbox1.Gtk.Box+BoxChild + this.hbox2 = new global::Gtk.HBox(); + this.hbox2.Name = "hbox2"; + this.hbox2.Spacing = 6; + // Container child hbox2.Gtk.Box+BoxChild + this.table1 = new global::Gtk.Table(((uint)(3)), ((uint)(2)), false); + this.table1.Name = "table1"; + this.table1.RowSpacing = ((uint)(6)); + this.table1.ColumnSpacing = ((uint)(6)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow2 = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow2.Name = "GtkScrolledWindow2"; + this.GtkScrolledWindow2.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow2.Gtk.Container+ContainerChild + this.equipmentList = new global::Gtk.NodeView(); + this.equipmentList.CanFocus = true; + this.equipmentList.Name = "equipmentList"; + this.equipmentList.HeadersVisible = false; + this.GtkScrolledWindow2.Add(this.equipmentList); + this.table1.Add(this.GtkScrolledWindow2); + global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow2])); + w10.LeftAttach = ((uint)(1)); + w10.RightAttach = ((uint)(2)); + w10.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow3 = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow3.Name = "GtkScrolledWindow3"; + this.GtkScrolledWindow3.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow3.Gtk.Container+ContainerChild + this.notesView = new global::Gtk.TextView(); + this.notesView.CanFocus = true; + this.notesView.Name = "notesView"; + this.notesView.Editable = false; + this.GtkScrolledWindow3.Add(this.notesView); + this.table1.Add(this.GtkScrolledWindow3); + global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow3])); + w12.TopAttach = ((uint)(2)); + w12.BottomAttach = ((uint)(3)); + w12.LeftAttach = ((uint)(1)); + w12.RightAttach = ((uint)(2)); + w12.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.GtkScrolledWindow4 = new global::Gtk.ScrolledWindow(); + this.GtkScrolledWindow4.Name = "GtkScrolledWindow4"; + this.GtkScrolledWindow4.ShadowType = ((global::Gtk.ShadowType)(1)); + // Container child GtkScrolledWindow4.Gtk.Container+ContainerChild + this.abilitiesList = new global::Gtk.NodeView(); + this.abilitiesList.CanFocus = true; + this.abilitiesList.Name = "abilitiesList"; + this.abilitiesList.HeadersVisible = false; + this.GtkScrolledWindow4.Add(this.abilitiesList); + this.table1.Add(this.GtkScrolledWindow4); + global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.GtkScrolledWindow4])); + w14.TopAttach = ((uint)(1)); + w14.BottomAttach = ((uint)(2)); + w14.LeftAttach = ((uint)(1)); + w14.RightAttach = ((uint)(2)); + w14.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblAbilities = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblAbilities.Name = "lblAbilities"; + this.lblAbilities.LabelProp = global::Mono.Unix.Catalog.GetString("abilities:"); + this.table1.Add(this.lblAbilities); + global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.lblAbilities])); + w15.TopAttach = ((uint)(1)); + w15.BottomAttach = ((uint)(2)); + w15.XOptions = ((global::Gtk.AttachOptions)(4)); + w15.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblEquip = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblEquip.Name = "lblEquip"; + this.lblEquip.LabelProp = global::Mono.Unix.Catalog.GetString("equipment:"); + this.table1.Add(this.lblEquip); + global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.lblEquip])); + w16.XOptions = ((global::Gtk.AttachOptions)(4)); + w16.YOptions = ((global::Gtk.AttachOptions)(4)); + // Container child table1.Gtk.Table+TableChild + this.lblNotes = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblNotes.Name = "lblNotes"; + this.lblNotes.LabelProp = global::Mono.Unix.Catalog.GetString("notes:"); + this.table1.Add(this.lblNotes); + global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.lblNotes])); + w17.TopAttach = ((uint)(2)); + w17.BottomAttach = ((uint)(3)); + w17.XOptions = ((global::Gtk.AttachOptions)(4)); + w17.YOptions = ((global::Gtk.AttachOptions)(4)); + this.hbox2.Add(this.table1); + global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.table1])); + w18.Position = 0; + // Container child hbox2.Gtk.Box+BoxChild + this.vbox3 = new global::Gtk.VBox(); + this.vbox3.Name = "vbox3"; + this.vbox3.Spacing = 6; + // Container child vbox3.Gtk.Box+BoxChild + this.bttnAddWeapon = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnAddWeapon.CanFocus = true; + this.bttnAddWeapon.Name = "bttnAddWeapon"; + this.bttnAddWeapon.UseUnderline = true; + this.bttnAddWeapon.Label = global::Mono.Unix.Catalog.GetString("add"); + this.vbox3.Add(this.bttnAddWeapon); + global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.bttnAddWeapon])); + w19.Position = 0; + w19.Expand = false; + w19.Fill = false; + // Container child vbox3.Gtk.Box+BoxChild + this.bttnEditWeapon = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnEditWeapon.Sensitive = false; + this.bttnEditWeapon.CanFocus = true; + this.bttnEditWeapon.Name = "bttnEditWeapon"; + this.bttnEditWeapon.UseUnderline = true; + this.bttnEditWeapon.Label = global::Mono.Unix.Catalog.GetString("edit"); + this.vbox3.Add(this.bttnEditWeapon); + global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.bttnEditWeapon])); + w20.Position = 1; + w20.Expand = false; + w20.Fill = false; + // Container child vbox3.Gtk.Box+BoxChild + this.bttnReplaceWeapon = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnReplaceWeapon.Sensitive = false; + this.bttnReplaceWeapon.CanFocus = true; + this.bttnReplaceWeapon.Name = "bttnReplaceWeapon"; + this.bttnReplaceWeapon.UseUnderline = true; + this.bttnReplaceWeapon.Label = global::Mono.Unix.Catalog.GetString("replace"); + this.vbox3.Add(this.bttnReplaceWeapon); + global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.bttnReplaceWeapon])); + w21.Position = 2; + w21.Expand = false; + w21.Fill = false; + // Container child vbox3.Gtk.Box+BoxChild + this.bttnRemoveWeapon = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnRemoveWeapon.Sensitive = false; + this.bttnRemoveWeapon.CanFocus = true; + this.bttnRemoveWeapon.Name = "bttnRemoveWeapon"; + this.bttnRemoveWeapon.UseUnderline = true; + this.bttnRemoveWeapon.Label = global::Mono.Unix.Catalog.GetString("remove"); + this.vbox3.Add(this.bttnRemoveWeapon); + global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.bttnRemoveWeapon])); + w22.Position = 3; + w22.Expand = false; + w22.Fill = false; + this.hbox2.Add(this.vbox3); + global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.vbox3])); + w23.Position = 1; + w23.Expand = false; + w23.Fill = false; + this.vbox1.Add(this.hbox2); + global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox2])); + w24.Position = 3; + w24.Expand = false; + w24.Fill = false; + this.Add(this.vbox1); + if ((this.Child != null)) + { + this.Child.ShowAll(); + } + this.Show(); + this.unitName.FocusOutEvent += new global::Gtk.FocusOutEventHandler(this.OnUnitNameFocusOut); + this.unitName.KeyPressEvent += new global::Gtk.KeyPressEventHandler(this.OnUnitNameKeyPress); + this.unitSize.FocusOutEvent += new global::Gtk.FocusOutEventHandler(this.OnUnitSizeFocusOut); + this.unitSize.KeyPressEvent += new global::Gtk.KeyPressEventHandler(this.OnUnitSizeKeyPress); + this.bttnAddWeapon.Clicked += new global::System.EventHandler(this.OnBttnAddEquipmentClicked); + this.bttnEditWeapon.Clicked += new global::System.EventHandler(this.HandleEditButtonClicked); + this.bttnReplaceWeapon.Clicked += new global::System.EventHandler(this.HandleReplaceButtonClicked); + this.bttnRemoveWeapon.Clicked += new global::System.EventHandler(this.HandleRemoveButtonActivated); + } + } +}
--- a/gtk-gui/generated.cs Sun Jan 31 20:46:06 2010 +0000 +++ b/gtk-gui/generated.cs Mon Jan 17 19:43:47 2011 +0000 @@ -1,115 +1,129 @@ -// ------------------------------------------------------------------------------ -// <autogenerated> -// This code was generated by a tool. -// -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </autogenerated> -// ------------------------------------------------------------------------------ + +// This file has been generated by the GUI designer. Do not modify. +namespace Stetic +{ + internal class Gui + { + private static bool initialized; + + internal static void Initialize(Gtk.Widget iconRenderer) + { + if ((Stetic.Gui.initialized == false)) + { + Stetic.Gui.initialized = true; + } + } + } + + internal class IconLoader + { + public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size) + { + Gdk.Pixbuf res = widget.RenderIcon(name, size, null); + if ((res != null)) + { + return res; + } + else + { + int sz; + int sy; + global::Gtk.Icon.SizeLookup(size, out sz, out sy); + try + { + return Gtk.IconTheme.Default.LoadIcon(name, sz, 0); + } + catch (System.Exception) + { + if ((name != "gtk-missing-image")) + { + return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size); + } + else + { + Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz); + Gdk.GC gc = new Gdk.GC(pmap); + gc.RgbFgColor = new Gdk.Color(255, 255, 255); + pmap.DrawRectangle(gc, true, 0, 0, sz, sz); + gc.RgbFgColor = new Gdk.Color(0, 0, 0); + pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1)); + gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); + gc.RgbFgColor = new Gdk.Color(255, 0, 0); + pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); + pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); + return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); + } + } + } + } + } + + internal class BinContainer + { + private Gtk.Widget child; + private Gtk.UIManager uimanager; -namespace Stetic { - - - internal class Gui { - - private static bool initialized; - - internal static void Initialize(Gtk.Widget iconRenderer) { - if ((Stetic.Gui.initialized == false)) { - Stetic.Gui.initialized = true; - } - } - } - - internal class IconLoader { - - public static Gdk.Pixbuf LoadIcon(Gtk.Widget widget, string name, Gtk.IconSize size, int sz) { - Gdk.Pixbuf res = widget.RenderIcon(name, size, null); - if ((res != null)) { - return res; - } - else { - try { - return Gtk.IconTheme.Default.LoadIcon(name, sz, 0); - } - catch (System.Exception ) { - if ((name != "gtk-missing-image")) { - return Stetic.IconLoader.LoadIcon(widget, "gtk-missing-image", size, sz); - } - else { - Gdk.Pixmap pmap = new Gdk.Pixmap(Gdk.Screen.Default.RootWindow, sz, sz); - Gdk.GC gc = new Gdk.GC(pmap); - gc.RgbFgColor = new Gdk.Color(255, 255, 255); - pmap.DrawRectangle(gc, true, 0, 0, sz, sz); - gc.RgbFgColor = new Gdk.Color(0, 0, 0); - pmap.DrawRectangle(gc, false, 0, 0, (sz - 1), (sz - 1)); - gc.SetLineAttributes(3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); - gc.RgbFgColor = new Gdk.Color(255, 0, 0); - pmap.DrawLine(gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); - pmap.DrawLine(gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); - return Gdk.Pixbuf.FromDrawable(pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); - } - } - } - } - } - - internal class BinContainer { - - private Gtk.Widget child; - - private Gtk.UIManager uimanager; - - public static BinContainer Attach(Gtk.Bin bin) { - BinContainer bc = new BinContainer(); - bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested); - bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated); - bin.Added += new Gtk.AddedHandler(bc.OnAdded); - return bc; - } - - private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) { - if ((this.child != null)) { - args.Requisition = this.child.SizeRequest(); - } - } - - private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) { - if ((this.child != null)) { - this.child.Allocation = args.Allocation; - } - } - - private void OnAdded(object sender, Gtk.AddedArgs args) { - this.child = args.Widget; - } - - public void SetUiManager(Gtk.UIManager uim) { - this.uimanager = uim; - this.child.Realized += new System.EventHandler(this.OnRealized); - } - - private void OnRealized(object sender, System.EventArgs args) { - if ((this.uimanager != null)) { - Gtk.Widget w; - w = this.child.Toplevel; - if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) { - ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup); - this.uimanager = null; - } - } - } - } - - internal class ActionGroups { - - public static Gtk.ActionGroup GetActionGroup(System.Type type) { - return Stetic.ActionGroups.GetActionGroup(type.FullName); - } - - public static Gtk.ActionGroup GetActionGroup(string name) { - return null; - } - } + public static BinContainer Attach(Gtk.Bin bin) + { + BinContainer bc = new BinContainer(); + bin.SizeRequested += new Gtk.SizeRequestedHandler(bc.OnSizeRequested); + bin.SizeAllocated += new Gtk.SizeAllocatedHandler(bc.OnSizeAllocated); + bin.Added += new Gtk.AddedHandler(bc.OnAdded); + return bc; + } + + private void OnSizeRequested(object sender, Gtk.SizeRequestedArgs args) + { + if ((this.child != null)) + { + args.Requisition = this.child.SizeRequest(); + } + } + + private void OnSizeAllocated(object sender, Gtk.SizeAllocatedArgs args) + { + if ((this.child != null)) + { + this.child.Allocation = args.Allocation; + } + } + + private void OnAdded(object sender, Gtk.AddedArgs args) + { + this.child = args.Widget; + } + + public void SetUiManager(Gtk.UIManager uim) + { + this.uimanager = uim; + this.child.Realized += new System.EventHandler(this.OnRealized); + } + + private void OnRealized(object sender, System.EventArgs args) + { + if ((this.uimanager != null)) + { + Gtk.Widget w; + w = this.child.Toplevel; + if (((w != null) && typeof(Gtk.Window).IsInstanceOfType(w))) + { + ((Gtk.Window)(w)).AddAccelGroup(this.uimanager.AccelGroup); + this.uimanager = null; + } + } + } + } + + internal class ActionGroups + { + public static Gtk.ActionGroup GetActionGroup(System.Type type) + { + return Stetic.ActionGroups.GetActionGroup(type.FullName); + } + + public static Gtk.ActionGroup GetActionGroup(string name) + { + return null; + } + } }
--- a/gtk-gui/gui.stetic Sun Jan 31 20:46:06 2010 +0000 +++ b/gtk-gui/gui.stetic Mon Jan 17 19:43:47 2011 +0000 @@ -5,17 +5,17 @@ <target-gtk-version>2.12</target-gtk-version> </configuration> <import> - <widget-library name="../../IBBoard.GtkSharp/bin/Debug/IBBoard.GtkSharp.dll" /> - <widget-library name="../bin/Debug/WarFoundryGTK.exe" internal="true" /> + <widget-library name="../../IBBoard.GtkSharp/bin/Release/IBBoard.GtkSharp.dll" /> + <widget-library name="../bin/Release/WarFoundry-GTK.exe" internal="true" /> </import> - <widget class="Gtk.Window" id="IBBoard.WarFoundry.GTK.FrmMainWindow" design-size="832 659"> + <widget class="Gtk.Window" id="IBBoard.WarFoundry.GUI.GTK.FrmMainWindow" design-size="832 659"> <action-group name="Default"> <action id="menuFile"> <property name="Type">Action</property> <property name="Label" translatable="yes">File</property> <property name="ShortLabel" translatable="yes">File</property> </action> - <action id="miCreateArmy"> + <action id="miNewArmy"> <property name="Type">Action</property> <property name="Label" translatable="yes">Create army</property> <property name="ShortLabel" translatable="yes">Create army</property> @@ -56,7 +56,6 @@ <action id="miReloadFiles"> <property name="Type">Action</property> <property name="Label" translatable="yes">Reload files</property> - <property name="Sensitive">False</property> <property name="ShortLabel" translatable="yes">Reload files</property> <property name="StockId">gtk-refresh</property> <signal name="Activated" handler="OnReloadFilesActivated" /> @@ -97,39 +96,40 @@ <property name="Label" translatable="yes">About</property> <property name="ShortLabel" translatable="yes">About</property> <property name="StockId">gtk-about</property> + <signal name="Activated" handler="HelpAboutActivated" /> </action> <action id="miDebugInformation"> <property name="Type">Action</property> <property name="Label" translatable="yes">Debug Information</property> <property name="ShortLabel" translatable="yes">Debug Information</property> </action> - <action id="newArmyButton"> + <action id="bttnNewArmy"> <property name="Type">Action</property> <property name="Label" translatable="yes" /> <property name="StockId">gtk-new</property> <signal name="Activated" handler="newTBButtonActivated" /> </action> - <action id="openArmyButton"> + <action id="bttnOpenArmy"> <property name="Type">Action</property> <property name="Label" translatable="yes" /> <property name="StockId">gtk-open</property> <signal name="Activated" handler="openTBButtonActivated" /> </action> - <action id="saveArmyButton"> + <action id="bttnSaveArmy"> <property name="Type">Action</property> <property name="Label" translatable="yes" /> <property name="Sensitive">False</property> <property name="StockId">gtk-save</property> <signal name="Activated" handler="saveTBButtonActivated" /> </action> - <action id="undoActionButton"> + <action id="bttnUndo"> <property name="Type">Action</property> <property name="Label" translatable="yes" /> <property name="Sensitive">False</property> <property name="StockId">gtk-undo</property> <signal name="Activated" handler="undoTBButtonActivated" /> </action> - <action id="redoActionButton"> + <action id="bttnRedo"> <property name="Type">Action</property> <property name="Label" translatable="yes" /> <property name="Sensitive">False</property> @@ -145,19 +145,26 @@ <property name="Label" translatable="yes" /> <property name="StockId">gtk-add</property> </action> - <action id="miExportArmy"> + <action id="miExportArmyAs"> <property name="Type">Action</property> <property name="Label" translatable="yes">Export army as...</property> <property name="Sensitive">False</property> - <property name="ShortLabel" translatable="yes">Export army</property> + <property name="ShortLabel" translatable="yes">Export army as...</property> <property name="StockId">gtk-convert</property> </action> - <action id="miExportAsBasicHtml"> + <action id="miExportArmyAsBasicHTML"> <property name="Type">Action</property> <property name="Label" translatable="yes">Basic HTML</property> <property name="ShortLabel" translatable="yes">Basic HTML</property> <signal name="Activated" handler="OnMiExportAsBasicHtmlActivated" /> </action> + <action id="miPreferences"> + <property name="Type">Action</property> + <property name="Label" translatable="yes">preferences</property> + <property name="ShortLabel" translatable="yes">preferences</property> + <property name="StockId">gtk-preferences</property> + <signal name="Activated" handler="miPreferencesClicked" /> + </action> </action-group> <property name="MemberName" /> <property name="Title" translatable="yes">MainWindow</property> @@ -170,12 +177,12 @@ <property name="MemberName" /> <node name="menubar1" type="Menubar"> <node type="Menu" action="menuFile"> - <node type="Menuitem" action="miCreateArmy" /> + <node type="Menuitem" action="miNewArmy" /> <node type="Menuitem" action="miOpenArmy" /> <node type="Menuitem" action="miSaveArmy" /> <node type="Menuitem" action="miSaveArmyAs" /> - <node type="Menu" action="miExportArmy"> - <node type="Menuitem" action="miExportAsBasicHtml" /> + <node type="Menu" action="miExportArmyAs"> + <node type="Menuitem" action="miExportArmyAsBasicHTML" /> </node> <node type="Menuitem" action="miCloseArmy" /> <node type="Separator" /> @@ -186,10 +193,11 @@ <node type="Menu" action="menuEdit"> <node type="Menuitem" action="miUndo" /> <node type="Menuitem" action="miRedo" /> + <node type="Separator" /> + <node type="Menuitem" action="miPreferences" /> </node> <node type="Menu" action="menuHelp"> <node type="Menuitem" action="miAbout" /> - <node type="Menuitem" action="miDebugInformation" /> </node> </node> </widget> @@ -208,12 +216,12 @@ <property name="ButtonStyle">Icons</property> <property name="IconSize">LargeToolbar</property> <node name="toolbar" type="Toolbar"> - <node type="Toolitem" action="newArmyButton" /> - <node type="Toolitem" action="openArmyButton" /> - <node type="Toolitem" action="saveArmyButton" /> + <node type="Toolitem" action="bttnNewArmy" /> + <node type="Toolitem" action="bttnOpenArmy" /> + <node type="Toolitem" action="bttnSaveArmy" /> <node type="Separator" /> - <node type="Toolitem" action="undoActionButton" /> - <node type="Toolitem" action="redoActionButton" /> + <node type="Toolitem" action="bttnUndo" /> + <node type="Toolitem" action="bttnRedo" /> <node type="Separator" /> </node> </widget> @@ -227,6 +235,7 @@ <child> <widget class="Gtk.HPaned" id="hpaned2"> <property name="MemberName" /> + <property name="Visible">False</property> <property name="CanFocus">True</property> <property name="Position">178</property> <child> @@ -246,6 +255,8 @@ <property name="MemberName" /> <property name="CanFocus">True</property> <property name="CurrentPage">-1</property> + <property name="Scrollable">True</property> + <signal name="Removed" handler="NotebookPageRemoved" /> </widget> </child> </widget> @@ -262,7 +273,15 @@ <placeholder /> </child> <child> - <placeholder /> + <widget class="Gtk.Label" id="lblTotalPoints"> + <property name="MemberName" /> + </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> </child> </widget> <packing> @@ -275,7 +294,7 @@ </widget> </child> </widget> - <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GTK.FrmNewArmy" design-size="370 348"> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmNewArmy" design-size="370 348"> <property name="MemberName" /> <property name="Events">ButtonPressMask</property> <property name="Title" translatable="yes">Create new army</property> @@ -375,28 +394,9 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="label1"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblArmyName"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Race</property> - </widget> - <packing> - <property name="TopAttach">1</property> - <property name="BottomAttach">2</property> - <property name="AutoSize">True</property> - <property name="XOptions">Fill</property> - <property name="YOptions">Fill</property> - <property name="XExpand">False</property> - <property name="XFill">True</property> - <property name="XShrink">False</property> - <property name="YExpand">False</property> - <property name="YFill">True</property> - <property name="YShrink">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Label" id="label2"> - <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Army name</property> + <property name="LabelProp" translatable="yes">army name</property> </widget> <packing> <property name="TopAttach">2</property> @@ -413,9 +413,9 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="label3"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblArmySize"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Points value</property> + <property name="LabelProp" translatable="yes">points value</property> </widget> <packing> <property name="TopAttach">3</property> @@ -432,7 +432,7 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="label4"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblGameSystem"> <property name="MemberName" /> <property name="LabelProp" translatable="yes">game system</property> </widget> @@ -449,6 +449,25 @@ </packing> </child> <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblRaceList"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">race</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> <widget class="Gtk.ComboBoxEntry" id="systemCombo"> <property name="MemberName" /> <property name="IsTextCombo">True</property> @@ -513,7 +532,7 @@ <property name="Size">2</property> <property name="LayoutStyle">End</property> <child> - <widget class="Gtk.Button" id="bttnCancel"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> <property name="MemberName" /> <property name="CanFocus">True</property> <property name="UseStock">True</property> @@ -529,17 +548,17 @@ </packing> </child> <child> - <widget class="Gtk.Button" id="bttnCreate"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCreate"> <property name="MemberName" /> <property name="Sensitive">False</property> <property name="CanDefault">True</property> <property name="CanFocus">True</property> - <property name="Type">TextAndIcon</property> - <property name="Icon">stock:gtk-ok Menu</property> - <property name="Label" translatable="yes">C_reate</property> - <property name="UseUnderline">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-ok</property> <property name="ResponseId">-5</property> <signal name="Clicked" handler="OnCreateClicked" /> + <property name="label">gtk-ok</property> </widget> <packing> <property name="Position">1</property> @@ -550,7 +569,7 @@ </widget> </child> </widget> - <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GTK.FrmNewUnit" design-size="400 318"> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmNewUnit" design-size="403 259"> <property name="MemberName" /> <property name="Title" translatable="yes">Add new unit</property> <property name="Icon">stock:gtk-new Menu</property> @@ -573,9 +592,9 @@ <property name="MemberName" /> <property name="Spacing">6</property> <child> - <widget class="Gtk.Label" id="label1"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblUnitList"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Unit Type:</property> + <property name="LabelProp" translatable="yes">unit type</property> </widget> <packing> <property name="Position">0</property> @@ -613,10 +632,9 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="lblNewUnitWarning"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblNewUnitWarning"> <property name="MemberName" /> - <property name="Xalign">0</property> - <property name="Yalign">0</property> + <property name="Visible">False</property> </widget> <packing> <property name="Position">1</property> @@ -643,15 +661,14 @@ <property name="Size">2</property> <property name="LayoutStyle">End</property> <child> - <widget class="Gtk.Button" id="buttonCancel"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> <property name="MemberName" /> - <property name="CanDefault">True</property> <property name="CanFocus">True</property> <property name="UseStock">True</property> <property name="Type">StockItem</property> <property name="StockId">gtk-cancel</property> <property name="ResponseId">-6</property> - <signal name="Activated" handler="OnButtonCancelActivated" /> + <signal name="Clicked" handler="OnButtonCancelActivated" /> <property name="label">gtk-cancel</property> </widget> <packing> @@ -660,10 +677,8 @@ </packing> </child> <child> - <widget class="Gtk.Button" id="buttonOk"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCreate"> <property name="MemberName" /> - <property name="Sensitive">False</property> - <property name="CanDefault">True</property> <property name="CanFocus">True</property> <property name="UseStock">True</property> <property name="Type">StockItem</property> @@ -681,7 +696,7 @@ </widget> </child> </widget> - <widget class="Gtk.Bin" id="IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget" design-size="649 422"> + <widget class="Gtk.Bin" id="IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget" design-size="649 458"> <property name="MemberName" /> <child> <widget class="Gtk.VBox" id="vbox1"> @@ -733,15 +748,23 @@ </packing> </child> <child> - <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow"> + <widget class="Gtk.ScrolledWindow" id="statsScrollPanel"> <property name="MemberName" /> + <property name="CanFocus">True</property> <property name="ShadowType">In</property> <child> - <widget class="Gtk.NodeView" id="unitStats"> + <widget class="Gtk.Viewport" id="GtkViewport"> <property name="MemberName" /> - <property name="HeightRequest">75</property> - <property name="CanFocus">True</property> - <property name="ShowScrollbars">True</property> + <property name="ShadowType">None</property> + <child> + <widget class="Gtk.VBox" id="statsRepeatBox"> + <property name="MemberName" /> + <property name="Spacing">6</property> + <child> + <placeholder /> + </child> + </widget> + </child> </widget> </child> </widget> @@ -762,25 +785,498 @@ </packing> </child> <child> + <widget class="Gtk.HBox" id="hbox2"> + <property name="MemberName" /> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Table" id="table1"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">2</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2"> + <property name="MemberName" /> + <property name="ShadowType">In</property> + <child> + <widget class="Gtk.NodeView" id="equipmentList"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShowScrollbars">True</property> + <property name="HeadersVisible">False</property> + </widget> + </child> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow3"> + <property name="MemberName" /> + <property name="ShadowType">In</property> + <child> + <widget class="Gtk.TextView" id="notesView"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShowScrollbars">True</property> + <property name="Editable">False</property> + <property name="Text" translatable="yes" /> + </widget> + </child> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow4"> + <property name="MemberName" /> + <property name="ShadowType">In</property> + <child> + <widget class="Gtk.NodeView" id="abilitiesList"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShowScrollbars">True</property> + <property name="HeadersVisible">False</property> + </widget> + </child> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblAbilities"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">abilities:</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblEquip"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">equipment:</property> + </widget> + <packing> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblNotes"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">notes:</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + </packing> + </child> + <child> + <widget class="Gtk.VBox" id="vbox3"> + <property name="MemberName" /> + <property name="Spacing">6</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnAddWeapon"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">add</property> + <property name="UseUnderline">True</property> + <signal name="Clicked" handler="OnBttnAddEquipmentClicked" /> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnEditWeapon"> + <property name="MemberName" /> + <property name="Sensitive">False</property> + <property name="CanFocus">True</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">edit</property> + <property name="UseUnderline">True</property> + <signal name="Clicked" handler="HandleEditButtonClicked" /> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnReplaceWeapon"> + <property name="MemberName" /> + <property name="Sensitive">False</property> + <property name="CanFocus">True</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">replace</property> + <property name="UseUnderline">True</property> + <signal name="Clicked" handler="HandleReplaceButtonClicked" /> + </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnRemoveWeapon"> + <property name="MemberName" /> + <property name="Sensitive">False</property> + <property name="CanFocus">True</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">remove</property> + <property name="UseUnderline">True</property> + <signal name="Clicked" handler="HandleRemoveButtonActivated" /> + </widget> + <packing> + <property name="Position">3</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">3</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment" design-size="400 300"> + <property name="MemberName" /> + <property name="Title" translatable="yes">Add equipment</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="Modal">True</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">2</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> <widget class="Gtk.Table" id="table1"> <property name="MemberName" /> <property name="NRows">2</property> - <property name="NColumns">3</property> + <property name="NColumns">2</property> <property name="RowSpacing">6</property> <property name="ColumnSpacing">6</property> <child> - <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow1"> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow"> <property name="MemberName" /> <property name="ShadowType">In</property> <child> - <widget class="Gtk.NodeView" id="optionalEquipment"> + <widget class="Gtk.TreeView" id="lstEquipment"> <property name="MemberName" /> <property name="CanFocus">True</property> <property name="ShowScrollbars">True</property> + <property name="HeadersVisible">False</property> </widget> </child> </widget> <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.HBox" id="hbox2"> + <property name="MemberName" /> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Table" id="table2"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">3</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblEquipAll"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">equip all</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblPercent"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">%</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">2</property> + <property name="RightAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="numericAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="percentageAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Digits">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipAll"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="Active">True</property> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipNumeric"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Clicked" handler="RadioButtonClicked" /> + </widget> + <packing> + <property name="AutoSize">False</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipPercent"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <placeholder /> + </child> + </widget> + <packing> <property name="TopAttach">1</property> <property name="BottomAttach">2</property> <property name="LeftAttach">1</property> @@ -796,14 +1292,426 @@ </packing> </child> <child> - <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow2"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblAmount"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">amount:</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblItem"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">equipment</property> + </widget> + <packing> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">2</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-cancel</property> + <property name="ResponseId">-6</property> + <signal name="Clicked" handler="CancelButtonClicked" /> + <property name="label">gtk-cancel</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnOkay"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-ok</property> + <property name="ResponseId">-5</property> + <signal name="Clicked" handler="OkayButtonClicked" /> + <property name="label">gtk-ok</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment" design-size="280 175"> + <property name="MemberName" /> + <property name="Title" translatable="yes">Edit equipment</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="Modal">True</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">2</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.Table" id="table1"> + <property name="MemberName" /> + <property name="NColumns">2</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <widget class="Gtk.HBox" id="hbox2"> + <property name="MemberName" /> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Table" id="table2"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">3</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblEquipAll"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">equip all</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblPercent"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">%</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">2</property> + <property name="RightAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="numericAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="percentageAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Digits">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipAll"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Clicked" handler="RadioButtonClicked" /> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipNumeric"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Clicked" handler="RadioButtonClicked" /> + </widget> + <packing> + <property name="AutoSize">False</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipPercent"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Clicked" handler="RadioButtonClicked" /> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <placeholder /> + </child> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblAmount"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">amount:</property> + <property name="Justify">Right</property> + </widget> + <packing> + <property name="AutoSize">False</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">2</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-cancel</property> + <property name="ResponseId">-6</property> + <signal name="Clicked" handler="CancelButtonClicked" /> + <property name="label">gtk-cancel</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnOkay"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-ok</property> + <property name="ResponseId">-5</property> + <signal name="Clicked" handler="OkayButtonClicked" /> + <property name="label">gtk-ok</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment" design-size="400 300"> + <property name="MemberName" /> + <property name="Title" translatable="yes">Add equipment</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="Modal">True</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">2</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.Table" id="table1"> + <property name="MemberName" /> + <property name="NRows">2</property> + <property name="NColumns">2</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow"> <property name="MemberName" /> <property name="ShadowType">In</property> <child> - <widget class="Gtk.NodeView" id="requiredEquipment"> + <widget class="Gtk.TreeView" id="lstEquipment"> <property name="MemberName" /> <property name="CanFocus">True</property> <property name="ShowScrollbars">True</property> + <property name="HeadersVisible">False</property> </widget> </child> </widget> @@ -821,9 +1729,218 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="optionalEquipmentLabel"> + <widget class="Gtk.HBox" id="hbox2"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Optional Equipment:</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Table" id="table2"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">3</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblEquipAll"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">equip all</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblPercent"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">%</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">2</property> + <property name="RightAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="numericAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.SpinButton" id="percentageAmount"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Upper">100</property> + <property name="PageIncrement">10</property> + <property name="StepIncrement">1</property> + <property name="ClimbRate">1</property> + <property name="Digits">1</property> + <property name="Numeric">True</property> + <signal name="ValueChanged" handler="SpinButtonValueChanged" /> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="XOptions">0</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">False</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipAll"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipNumeric"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Clicked" handler="RadioButtonClicked" /> + </widget> + <packing> + <property name="AutoSize">False</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="rbEquipPercent"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes" /> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <placeholder /> + </child> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblAmount"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">amount:</property> </widget> <packing> <property name="TopAttach">1</property> @@ -840,9 +1957,309 @@ </packing> </child> <child> - <widget class="Gtk.Label" id="requiredEquipmentLabel"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblItem"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Required Equipment:</property> + <property name="LabelProp" translatable="yes">equipment</property> + </widget> + <packing> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">2</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-cancel</property> + <property name="ResponseId">-6</property> + <signal name="Clicked" handler="CancelButtonClicked" /> + <property name="label">gtk-cancel</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnOkay"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-ok</property> + <property name="ResponseId">-5</property> + <signal name="Clicked" handler="OkayButtonClicked" /> + <property name="label">gtk-ok</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmAbout" design-size="330 300"> + <property name="MemberName" /> + <property name="Title" translatable="yes">About WF</property> + <property name="Icon">resource:App.ico</property> + <property name="TypeHint">Dialog</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="Resizable">False</property> + <property name="AllowGrow">False</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">2</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.Image" id="logoImage"> + <property name="MemberName" /> + <property name="Pixbuf">resource:IBBoard.WarFoundry.GUI.GTK.App-lrg.png</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Label" id="label1"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes"><span font_size="x-large" weight="bold">WarFoundry v0.1 RC 1</span></property> + <property name="UseMarkup">True</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblWarFoundryDesc"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems.</property> + <property name="Wrap">True</property> + <property name="Justify">Center</property> + </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblWarFoundryCopyright"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">© 2007-2010, IBBoard and others</property> + </widget> + <packing> + <property name="Position">3</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Label" id="lblWarFoundryLink"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes"><a href="http://warfoundry.co.uk">http://warfoundry.co.uk</a></property> + <property name="UseMarkup">True</property> + </widget> + <packing> + <property name="Position">4</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">2</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCredits"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-about</property> + <property name="ResponseId">-1</property> + <signal name="Clicked" handler="BttnCreditsClicked" /> + <property name="label">gtk-about</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnClose"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="HasDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-close</property> + <property name="ResponseId">-7</property> + <property name="label">gtk-close</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits" design-size="376 250"> + <property name="MemberName" /> + <property name="Icon">resource:App.ico</property> + <property name="TypeHint">Dialog</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">1</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.Table" id="table1"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">2</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <widget class="Gtk.Label" id="label1"> + <property name="MemberName" /> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp">IBBoard (Main developer and project lead)</property> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Label" id="label2"> + <property name="MemberName" /> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp" translatable="yes">HeWhoWatches</property> + </widget> + <packing> + <property name="TopAttach">1</property> + <property name="BottomAttach">2</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">False</property> + <property name="YOptions">Fill</property> + <property name="XExpand">True</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Label" id="label3"> + <property name="MemberName" /> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp" translatable="yes">Snowblizz, +Frostlee, +Lord_Archaon, +Furrie, +clutch110, +Mollo, +HeWhoWatches</property> + </widget> + <packing> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblDevelopers"> + <property name="MemberName" /> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp" translatable="yes">developers:</property> </widget> <packing> <property name="AutoSize">True</property> @@ -857,46 +2274,17 @@ </packing> </child> <child> - <widget class="Gtk.VBox" id="vbox2"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblTestersCommon"> <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <widget class="Gtk.Button" id="bttnReplaceRequired"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Replace</property> - <property name="UseUnderline">True</property> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Button" id="bttnEditRequired"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Edit</property> - <property name="UseUnderline">True</property> - </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <placeholder /> - </child> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp" translatable="yes">testers (common):</property> </widget> <packing> - <property name="LeftAttach">2</property> - <property name="RightAttach">3</property> + <property name="TopAttach">2</property> + <property name="BottomAttach">3</property> <property name="AutoSize">True</property> <property name="XOptions">Fill</property> <property name="YOptions">Fill</property> @@ -909,60 +2297,17 @@ </packing> </child> <child> - <widget class="Gtk.VBox" id="vbox3"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblTestersGtk"> <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <widget class="Gtk.Button" id="bttnAddOptional"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Add</property> - <property name="UseUnderline">True</property> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Button" id="bttnEditOptional"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Edit</property> - <property name="UseUnderline">True</property> - </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Button" id="bttnRemove"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Remove</property> - <property name="UseUnderline">True</property> - </widget> - <packing> - <property name="Position">2</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> + <property name="Xpad">3</property> + <property name="Ypad">3</property> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LabelProp" translatable="yes">testers (GTK UI):</property> </widget> <packing> <property name="TopAttach">1</property> <property name="BottomAttach">2</property> - <property name="LeftAttach">2</property> - <property name="RightAttach">3</property> <property name="AutoSize">True</property> <property name="XOptions">Fill</property> <property name="YOptions">Fill</property> @@ -976,29 +2321,206 @@ </child> </widget> <packing> - <property name="Position">3</property> + <property name="Position">0</property> <property name="AutoSize">True</property> <property name="Expand">False</property> <property name="Fill">False</property> </packing> </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">1</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnClose"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-close</property> + <property name="ResponseId">-7</property> + <property name="label">gtk-close</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + </widget> + </child> + </widget> + <widget class="Gtk.Dialog" id="IBBoard.WarFoundry.GUI.GTK.FrmPreferences" design-size="400 300"> + <property name="MemberName" /> + <property name="TypeHint">Dialog</property> + <property name="WindowPosition">CenterOnParent</property> + <property name="SkipPagerHint">True</property> + <property name="SkipTaskbarHint">True</property> + <property name="Buttons">2</property> + <property name="HelpButton">False</property> + <child internal-child="VBox"> + <widget class="Gtk.VBox" id="dialog1_VBox"> + <property name="MemberName" /> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.HPaned" id="hpaned1"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Position">164</property> + <child> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow"> + <property name="MemberName" /> + <property name="ShadowType">In</property> + <child> + <widget class="Gtk.TreeView" id="preferencesTree"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShowScrollbars">True</property> + <property name="HeadersVisible">False</property> + </widget> + </child> + </widget> + <packing> + <property name="Resize">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Frame" id="prefsFrame"> + <property name="MemberName" /> + <property name="ShadowType">In</property> + <property name="BorderWidth">2</property> + <child> + <widget class="Gtk.Alignment" id="GtkAlignment2"> + <property name="MemberName" /> + <property name="Xalign">0</property> + <property name="Yalign">0</property> + <property name="LeftPadding">12</property> + <child> + <widget class="Gtk.Table" id="table1"> + <property name="MemberName" /> + <property name="NRows">3</property> + <property name="NColumns">2</property> + <property name="RowSpacing">6</property> + <property name="ColumnSpacing">6</property> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <placeholder /> + </child> + <child> + <widget class="Gtk.ComboBox" id="languageList"> + <property name="MemberName" /> + <property name="IsTextCombo">True</property> + <property name="Items" translatable="yes" /> + <signal name="Changed" handler="languageListChanged" /> + </widget> + <packing> + <property name="LeftAttach">1</property> + <property name="RightAttach">2</property> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableLabel" id="lblLanguage"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">language:</property> + </widget> + <packing> + <property name="AutoSize">True</property> + <property name="XOptions">Fill</property> + <property name="YOptions">Fill</property> + <property name="XExpand">False</property> + <property name="XFill">True</property> + <property name="XShrink">False</property> + <property name="YExpand">False</property> + <property name="YFill">True</property> + <property name="YShrink">False</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="Gtk.Label" id="frameLabel"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes"><b>language</b></property> + <property name="UseMarkup">True</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + </child> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + </packing> + </child> + </widget> + </child> + <child internal-child="ActionArea"> + <widget class="Gtk.HButtonBox" id="dialog1_ActionArea"> + <property name="MemberName" /> + <property name="Spacing">10</property> + <property name="BorderWidth">5</property> + <property name="Size">2</property> + <property name="LayoutStyle">End</property> + <child> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnCancel"> + <property name="MemberName" /> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-cancel</property> + <property name="ResponseId">-6</property> + <signal name="Clicked" handler="bttnCancelClicked" /> + <property name="label">gtk-cancel</property> + </widget> + <packing> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> <child> - <widget class="Gtk.HBox" id="hbox2"> + <widget class="IBBoard.GtkSharp.Translatable.TranslatableButton" id="bttnOkay"> <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <placeholder /> - </child> - <child> - <placeholder /> - </child> - <child> - <placeholder /> - </child> + <property name="CanDefault">True</property> + <property name="CanFocus">True</property> + <property name="UseStock">True</property> + <property name="Type">StockItem</property> + <property name="StockId">gtk-ok</property> + <property name="ResponseId">-5</property> + <signal name="Clicked" handler="bttnOkayClicked" /> + <property name="label">gtk-ok</property> </widget> <packing> - <property name="Position">4</property> - <property name="AutoSize">True</property> + <property name="Position">1</property> + <property name="Expand">False</property> + <property name="Fill">False</property> </packing> </child> </widget>
--- a/gtk-gui/objects.xml Sun Jan 31 20:46:06 2010 +0000 +++ b/gtk-gui/objects.xml Mon Jan 17 19:43:47 2011 +0000 @@ -1,5 +1,5 @@ <objects attr-sync="on"> - <object type="IBBoard.WarFoundry.GTK.Widgets.UnitDisplayWidget" palette-category="WarFoundry GTK# GUI" allow-children="false" base-type="Gtk.Bin"> + <object type="IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget" palette-category="WarFoundry GTK# GUI" allow-children="false" base-type="Gtk.Bin"> <itemgroups /> <signals /> </object>
--- a/translations/en.translation Sun Jan 31 20:46:06 2010 +0000 +++ b/translations/en.translation Mon Jan 17 19:43:47 2011 +0000 @@ -1,40 +1,142 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<translations xmlns="http://ibboard.co.uk/translation" -xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -lang="en"> -<translation id="menuFile">File</translation> -<translation id="menuEdit">Edit</translation> -<translation id="menuHelp">Help</translation> -<translation id="miNewArmy">Create army</translation> -<translation id="miOpenArmy">Open army</translation> -<translation id="miExit">Exit</translation> -<translation id="miAbout">About</translation> -<translation id="miSaveArmy">Save army</translation> -<translation id="miSaveArmyAs">Save army as...</translation> -<translation id="miCloseArmy">Close army</translation> -<translation id="miChangeSystem">Change game system</translation> -<translation id="miUndo">Undo</translation> -<translation id="miRedo">Redo</translation> +<?xml version="1.0" encoding="utf-8"?> +<translations xmlns="http://ibboard.co.uk/translation" lang="en"> +<!-- Common --> +<translation id="bttnCancel">Cancel</translation> +<translation id="bttnOkay">OK</translation> +<translation id="bttnClose">Close</translation> +<translation id="bttnCreate">Create</translation> +<!-- Main Window --> +<translation id="statusPanelPoints">{0} pts / {1} pts</translation> +<!-- Main Window / Menus --> +<translation id="menuFile">_File</translation> +<translation id="menuEdit">_Edit</translation> +<translation id="menuHelp">_Help</translation> +<!-- Main Window / Menus / File Menu --> +<translation id="miNewArmy">Create _new army</translation> +<translation id="miOpenArmy">_Open army</translation> +<translation id="miSaveArmy">_Save army</translation> +<translation id="miSaveArmyAs">Save _army as...</translation> +<translation id="miExportArmyAs">_Export army as...</translation> +<translation id="miExportArmyAsBasicHTML">Basic HTML</translation> +<translation id="miCloseArmy">_Close army</translation> +<translation id="miReloadFiles">_Reload files</translation> +<translation id="miExit">_Quit</translation> +<!-- Main Window / Menus / Edit Menu --> +<translation id="miUndo">_Undo</translation> +<translation id="miRedo">_Redo</translation> +<translation id="miPreferences">_Preferences</translation> +<!-- Main Window / Menus / Help Menu --> +<translation id="miAbout">_About</translation> +<!-- Main Window / Toolbar buttons --> +<translation id="bttnNewArmy">Create new army</translation> +<translation id="bttnOpenArmy">Open army</translation> +<translation id="bttnSaveArmy">Save army</translation> +<translation id="bttnUndo">Undo</translation> +<translation id="bttnRedo">Redo</translation> +<translation id="bttnCreateFromCat">Add unit from {0}</translation> +<!-- Main Window / Army Tree --> +<translation id="armyCategoryColumnTitle">Army Categories</translation> +<translation id="menuRemoveUnit">Remove Unit</translation> +<!-- Main Window / Dialogs --> <translation id="armyFileFilter">WarFoundry Army Files (*.army)</translation> -<translation id="bttnSelectRace">Create army</translation> -<translation id="bttnCancel">Cancel</translation> -<translation id="bttnSelectUnit">Create unit</translation> -<translation id="lblUnitList">Unit types:</translation> +<!-- Main Window / Dialogs / Open --> +<translation id="openArmyDialog">Open army</translation> +<translation id="bttnOpen">Open</translation> +<translation id="OpenFailed">WarFoundry could not open the specified file. Please check the log for more information.</translation> +<translation id="OpenFailedTitle">File load failed</translation> +<!-- Main Window / Dialogs / Save --> +<translation id="saveArmyDialog">Save army</translation> +<translation id="bttnSave">Save</translation> +<translation id="SaveFailed">WarFoundry was unable to save the file. Please check the log for more details</translation> +<translation id="SaveFailedTitle">File save failed</translation> +<!-- Main Window / Dialogs / Save changes --> +<translation id="SaveChangesQuestion">The army "{0}" has been modified. +Save changes before closing army?</translation> +<translation id="SaveChangesTitle">Unsaved changes</translation> +<translation id="bttnDiscard">Close without saving</translation> +<!-- UnitDisplayForm --> +<translation id="bttnAddWeapon">Add</translation> +<translation id="bttnEditWeapon">Edit</translation> +<translation id="bttnRemoveWeapon">Remove</translation> +<translation id="bttnReplaceWeapon">Replace</translation> +<translation id="lblEquip">Equipment:</translation> +<translation id="lblAbilities">Abilities:</translation> +<translation id="lblNotes">Notes:</translation> +<!-- New Army form --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmNewArmy">Create Army</translation> +<translation id="lblGameSystem">Game systems:</translation> <translation id="lblRaceList">Races:</translation> <translation id="lblArmyName">Army name:</translation> -<translation id="bttnSelectSystem">Select system</translation> -<translation id="lblSystemList">Game systems:</translation> -<translation id="FrmSelectSystem">Game system selection</translation> -<translation id="ArmyTree">Army tree</translation> -<translation id="FrmNewArmy">Create new army</translation> -<translation id="saveArmyDialog">Save army</translation> <translation id="lblArmySize">Army size:</translation> +<translation id="frmNewArmyRaceColumn">Race</translation> +<!-- New Unit form --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmNewUnit">Add New {0} Choice</translation> +<translation id="frmNewUnitNewUnitColumn">Unit Type</translation> +<translation id="lblUnitList">Unit Type:</translation> +<!-- Equipment Dialogs (Common) --> +<translation id="equipPercentageTooLarge">The current percentage ({0}%) was larger than the maximum for the equipment item ({1}%). The maximum value will be used instead.</translation> +<translation id="equipPercentageTooLargeTitle">Equipment percentage too large</translation> +<translation id="equipPercentageTooSmall">The current percentage ({0}%) was smaller than the minimum for the equipment item ({1}%). The minimum value will be used instead.</translation> +<translation id="equipPercentageTooSmallTitle">Equipment percentage too small</translation> +<translation id="equipNumberTooLarge">The current amount ({0}) was larger than the maximum for the equipment item ({1}). The maximum value will be used instead.</translation> +<translation id="equipNumberTooLargeTitle">Equipment amount too large</translation> +<translation id="equipNumberTooSmall">The current amount ({0}) was smaller than the minimum for the equipment item ({1}). The minimum value will be used instead.</translation> +<translation id="equipNumberTooSmallTitle">Equipment amount too small</translation> +<translation id="lblEquipAll">Equip All</translation> +<translation id="lblPercent">%</translation> +<translation id="lblAmount">Amount:</translation> +<translation id="lblItem">Equipment:</translation> +<!-- Equipment Dialogs / Add --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment">Add Equipment</translation> +<translation id="frmAddEquipmentColumnTitle">Equipment</translation> +<!-- Equipment Dialogs / Edit --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment">Edit Equipment</translation> +<translation id="frmEditEquipmentColumnTitle">Equipment</translation> +<!-- Equipment Dialogs / Replace --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment">Replace Equipment</translation> +<!-- Preferences --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmPreferences">Preferences</translation> +<translation id="languagePrefSection">Language</translation> +<translation id="lblLanguage">Language:</translation> +<translation id="languagesGroup">Language</translation> +<!-- About dialog --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmAbout">About WarFoundry</translation> +<translation id="lblWarFoundryCopyright">© 2007-2010, IBBoard and others</translation> +<translation id="lblWarFoundryDesc">WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems.</translation> +<translation id="bttnCredits">Credits</translation> +<!-- About dialog / credits --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits">Credits</translation> +<translation id="lblDevelopers">Developers:</translation> +<translation id="lblTestersCommon">Testers (General WarFoundry):</translation> +<translation id="lblTestersGtk">Testers (GTK UI):</translation> +<!-- Export / HTML --> +<translation id="exportBasicHtmlDialogTitle">Export army</translation> +<translation id="exportBasicHtmlCancel">Cancel</translation> +<translation id="exportBasicHtmlExport">Export</translation> +<translation id="exportBasicHtmlHtmlFilter">HTML pages (*.html)</translation> +<translation id="armyHtmlOutputBodyHeader">{0} - {1}pts</translation> +<translation id="armyHtmlOutputTableHeaderUnitName">Name</translation> +<translation id="armyHtmlOutputTableHeaderUnitNotes">Notes</translation> +<translation id="armyHtmlOutputTableHeaderUnitPoints">Points</translation> +<translation id="armyHtmlExportEquipAmountAll">all ({1})</translation> +<translation id="armyHtmlExportEquipAmountPercentage">{0}% ({1})</translation> +<translation id="armyHtmlExportEquipAmountNumber">{0}</translation> +<translation id="armyHtmlExportEquipAmountRatio">{0} for {1}</translation> +<!-- API --> <translation id="defaultUnitName">Unit of {0} {1}</translation> -<translation id="bttnNewArmy">Create army</translation> -<translation id="bttnOpenArmy">Open army</translation> -<translation id="bttnSaveArmy">Save army</translation> -<translation id="statusPanelPoints">{0} pts / {1} pts</translation> -<translation id="miReloadFiles">Reload files</translation> -<translation id="miDebugWindow">Debug information</translation> -<translation id="FrmNewUnit">Add New {0} Choice</translation> +<translation id="setEquipmentAmountCommandDescription">Set {0} amount for {1} to {2}</translation> +<translation id="setEquipmentAmountCommandUndoDescription">Set {0} amount for {1} to {2}</translation> +<translation id="replaceUnitEquipmentCommandDescription">Replace {0} with {1} for {2}</translation> +<translation id="replaceUnitEquipmentCommandUndoDescription">Replace {0} with {1} for {2}</translation> +<translation id="createAndAddUnitCommandDescription">Add unit of {0}</translation> +<translation id="createAndAddUnitCommandUndoDescription">Remove unit of {0}</translation> +<translation id="removeUnitCommandDescription">Remove {0}</translation> +<translation id="removeUnitCommandUndoDescription">Re-add {0}</translation> +<translation id="setUnitNameCommandDescription">Rename "{0}" to "{1}"</translation> +<translation id="setUnitNameCommandUndoDescription">Rename "{0}" to "{1}"</translation> +<translation id="setUnitSizeCommandDescription">Set size of {0} to {1}</translation> +<translation id="setUnitSizeCommandUndoDescription">Set size of {0} to {1}</translation> +<translation id="equipmentAmountAll">all ({1})</translation> +<translation id="equipmentAmountPercentage">{0}% ({1})</translation> +<translation id="equipmentAmountNumber">{0}</translation> </translations> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/translations/fr.translation Mon Jan 17 19:43:47 2011 +0000 @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8"?> +<translations xmlns="http://ibboard.co.uk/translation" lang="fr"> + <!-- This sample translation is based on the original French translation for the WinForms interface, plus additional translations made using Google Translate by IBBoard --> + <translation id="menuFile">_Fichier</translation> + <translation id="menuEdit">_Édition</translation> + <translation id="menuHelp">_Aide</translation> + <translation id="miNewArmy">_Créer une armée</translation> + <translation id="miOpenArmy">_Ouvrir une armée</translation> + <translation id="miSaveArmy">_Enregistrer une armée</translation> + <translation id="miSaveArmyAs">Enregistrer une armée sous…</translation> + <translation id="miExportArmyAs">_Exporter une armée</translation> + <translation id="miExportArmyAsBasicHTML">HTML Basic</translation> + <translation id="miCloseArmy">_Fermer une armée</translation> + <translation id="miReloadFiles">_Recharger les fichiers</translation> + <translation id="miExit">_Sortir</translation> + <translation id="miUndo">_Annuler</translation> + <translation id="miRedo">_Rétablir</translation> + <translation id="miAbout">_À propos</translation> + <translation id="bttnOkay">OK</translation> + <translation id="bttnCancel">Annuler</translation> + <translation id="bttnNewArmy">Créer une armée</translation> + <translation id="bttnOpenArmy">Ouvrir une armée</translation> + <translation id="bttnSaveArmy">Sauvegarder une armée</translation> + <translation id="bttnUndo">Annuler</translation> + <translation id="bttnRedo">Rétablir</translation> + <translation id="ArmyTree">Arborescence de l'armée</translation> + <translation id="miDeleteUnit">_Supprimer une unité</translation> + <translation id="miEditUnit">_Éditer une unité</translation> + <translation id="openArmyDialog">Ouvrir une armée</translation> + <translation id="saveArmyDialog">Sauvegarder une armée</translation> + <translation id="armyFileFilter">WarFoundry Army Files (*.army)</translation> + <translation id="statusPanelPoints">{0} pts / {1} pts</translation> + <translation id="statusPanelPointsToolTip">Nombre de point d'armée actuel</translation> + <translation id="defaultUnitName">Unité de {0} {1}</translation> + <translation id="IBBoard.WarFoundry.GUI.GTK.FrmNewArmy">Créer une nouvelle armée</translation> + <translation id="lblGameSystem">Système de jeux :</translation> + <translation id="lblRaceList">Races :</translation> + <translation id="lblArmyName">Nom de l'armée :</translation> + <translation id="lblArmySize">Taille de l'armée :</translation> + <translation id="bttnSelectRace">Créer une armée</translation> + <translation id="IBBoard.WarFoundry.GUI.GTK.FrmNewUnit">Ajouter un nouveau choix {0}</translation> + <translation id="lblUnitList">Types d'unité :</translation> + <translation id="bttnSelectUnit">Créer une unité</translation> + <translation id="IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment">Nouvelle équipement pour unité</translation> + <translation id="lblAmount">Quantité :</translation> + <translation id="lblItem">Équipement :</translation> + <translation id="lblEquipAll">Tout équiper</translation> + <translation id="equipPercentageTooLarge">Le pourcentage actuel ({0}%) est trop important par rapport au maximum d'équipement accordé ({1}%). La valeur maximum sera utilisée à la place.</translation> + <translation id="equipPercentageTooLargeTitle">Le pourcentage d'équipement est trop important</translation> + <translation id="equipPercentageTooSmall">Le pourcentage actuel ({0}%) est trop faible par rapport au minimum d'équipement demandé ({1}%). La valeur minimum sera utilisée à la place.</translation> + <translation id="equipPercentageTooSmallTitle">Pourcentage d'équipement trop petit</translation> + <translation id="equipNumberTooLarge">La valeur en point ({0}) est trop importante par rapport au maximum d'équipement accordé ({1}). La valeur maximum sera utilisée à la place.</translation> + <translation id="equipNumberTooLargeTitle">Pourcentage d'équipement trop petit</translation> + <translation id="equipNumberTooSmall">La valeur en point ({0}) est trop faible par rapport au minimum d'équipement demandé ({1}). La valeur minimum sera utilisée à la place.</translation> + <translation id="equipNumberTooSmallTitle">Nombre de point d'équipement trop faible</translation> + <translation id="IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment">Édition équipement pour unité</translation> + <translation id="IBBoard.WarFoundry.GUI.GTK.FrmAbout">À propos de WarFoundry</translation> + <translation id="lblVersion">Version : {0}</translation> + <translation id="lblDevelopers">Développeurs :</translation> + <translation id="lblThanks">Remerciement :</translation> + <translation id="FrmUnit">{0}</translation> + <translation id="lblUnitSize">Taille d'unité :</translation> + <translation id="lblEquip">Équipement :</translation> + <translation id="bttnAddWeapon">Ajouter</translation> + <translation id="lblAbilities">Capacités :</translation> + <translation id="lblNotes">Notes :</translation> + <translation id="bttnRemoveWeapon">Supprimer</translation> + <translation id="bttnReplaceWeapon">Remplacer</translation> + <translation id="bttnEditWeapon">Éditer</translation> + <translation id="equipmentAmountWithCost">{0} ({1} à {2} pts chacun)</translation> + <translation id="equipmentAmountWithZeroCost">{0} ({1} gratuit)</translation> + <translation id="equipmentChoiceAmountAll">pour ({1})</translation> + <translation id="equipmentChoiceAmountPercentage">pour {0}% ({1})</translation> + <translation id="equipmentChoiceAmountNumber">{0}</translation> + <translation id="InvalidRaceFileBoxTitle">Fichier de race invalide</translation> + <translation id="InvalidArmyFileBoxTitle">Fichier d'armée invalide</translation> + <translation id="SaveChangesQuestion">L'armée "{0}" a été modifiée. Sauvegarder les changements avant de fermer ?</translation> + <translation id="SaveChangesTitle">Changements non-sauvegardés</translation> + <translation id="SaveFailed">WarFoundry ne peut pas sauvegarder le fichier. Veillez vérifier le log pour plus d'informations</translation> + <translation id="SaveFailedTitle">Échec de la sauvegarde du fichier</translation> + <translation id="armyHtmlOutputBodyHeader">{0} - {1} pts</translation> + <translation id="armyHtmlOutputTableHeaderUnitName">Nom</translation> + <translation id="armyHtmlOutputTableHeaderUnitNotes">Notes</translation> + <translation id="armyHtmlOutputTableHeaderUnitPoints">Points</translation> + <translation id="armyHtmlExportEquipAmountAll">tout ({1})</translation> + <translation id="armyHtmlExportEquipAmountPercentage">{0}% ({1})</translation> + <translation id="armyHtmlExportEquipAmountNumber">{0}</translation> + <translation id="armyHtmlExportEquipAmountRatio">{0} pour {1}</translation> + <translation id="equipmentAmountAll">tout ({1})</translation> + <translation id="equipmentAmountPercentage">{0}% ({1})</translation> + <translation id="equipmentAmountNumber">{0}</translation> + <translation id="setEquipmentAmountCommandDescription">Fixer {0} la quantité {1} par {2}</translation> + <translation id="setEquipmentAmountCommandUndoDescription">Fixer {0} la quantité {1} par {2}</translation> + <translation id="replaceUnitEquipmentCommandDescription">Remplacer {0} de {1} par {2}</translation> + <translation id="replaceUnitEquipmentCommandUndoDescription">Remplacer {0} de {1} par {2}</translation> + <translation id="createAndAddUnitCommandDescription">Ajouter une unité de {0}</translation> + <translation id="createAndAddUnitCommandUndoDescription">Supprimer une unité de {0}</translation> + <translation id="removeUnitCommandDescription">Supprimer {0}</translation> + <translation id="removeUnitCommandUndoDescription">Rajouter {0}</translation> + <translation id="setUnitNameCommandDescription">Renommer "{0}" par "{1}"</translation> + <translation id="setUnitNameCommandUndoDescription">Renommer "{0}" par "{1}"</translation> + <translation id="setUnitSizeCommandDescription">Changer la taille de {0} par {1}</translation> + <translation id="setUnitSizeCommandUndoDescription">Changer la taille {0} par {1}</translation> + <translation id="requirementAND">{0}; et {1}</translation> + <translation id="requirementOR">{0}; ou {1}</translation> + <translation id="requirementUnitExcludes">{0} peut être sélectionné si aucun des objets suivants ne sont selectionnés : {1}</translation> + <translation id="requirementUnitMaxNumber">{1} peut être sélectionné {0} fois</translation> + <translation id="requirementUnitMinNumber">{1} doit être sélectionné au moins {0} fois</translation> + <translation id="requirementUnitTypeAtLeastSingle">{1} {0}</translation> + <translation id="requirementUnitTypeAtLeastJoiner">{0}, {1}</translation> + <translation id="requirementUnitTypeAtLeast">{0} peut être sélectionné seulement si l'objet suivant est sélectionné : {1}</translation> +<!-- TODO: Check and correct or translate the following additions --> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmPreferences">Préférences</translation> +<translation id="languagePrefSection">Langue</translation> +<translation id="lblLanguage">Langue:</translation> +<translation id="languagesGroup">Langue</translation> +<translation id="miPreferences">_Préférences</translation> +<translation id="bttnCredits">Crédits</translation> +<translation id="lblWarFoundryCopyright">© 2007-2011, IBBoard et d'autres</translation> +<translation id="lblWarFoundryDesc">WarFoundry est un outil open-source de création de l'armée qui vous permet de créer des listes pour les systèmes de jeu multiples.</translation> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmAboutCredits">Crédits</translation> +<translation id="lblTestersCommon">Testeurs (WarFoundry général):</translation> +<translation id="lblTestersGtk">Testeurs (interface utilisateur):</translation> +<translation id="bttnClose">Fermer</translation> +<translation id="armyCategoryColumnTitle">Catégories de l'armée</translation> +<translation id="IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment">Remplacer l'équipement pour unité</translation> +<translation id="bttnCreate">Créer</translation> +<translation id="frmAddEquipmentColumnTitle">Équipement</translation> +<translation id="lblPercent">%</translation> +<translation id="bttnOpen">_Ouvrir</translation> +<translation id="OpenFailed">WarFoundry ne peut pas ouvrir le fichier. Veillez vérifier le log pour plus d'informations</translation> +<translation id="OpenFailedTitle">Échec de la ouvrir du fichier</translation> +<translation id="bttnSave">Sauvegarder</translation> +<translation id="exportBasicHtmlDialogTitle">Export army</translation> +<translation id="exportBasicHtmlCancel">Cancel</translation> +<translation id="exportBasicHtmlExport">Export</translation> +<translation id="exportBasicHtmlHtmlFilter">HTML pages (*.html)</translation> +</translations>