# HG changeset patch # User IBBoard # Date 1283595939 0 # Node ID 77448375d2f994e3e7799887718a11e9017987a0 # Parent e3fe48c4d7943dbbcabcb30b71c441f7f1034c4f Re #60: Add UI to add/remove/edit weapons in GTK * Add titles and make dialogs not appear on task list * Capture ratio amounts in Control object's local variable, otherwise we get 0s * Set initial values when editing equipment * Only enable the Edit button when we can edit diff -r e3fe48c4d794 -r 77448375d2f9 UIControl/AddEquipmentUIControl.cs --- a/UIControl/AddEquipmentUIControl.cs Thu Sep 02 20:12:21 2010 +0000 +++ b/UIControl/AddEquipmentUIControl.cs Sat Sep 04 10:25:39 2010 +0000 @@ -49,7 +49,7 @@ if (isRatioAmount) { - double equipmentAmount = ui.EquipmentPercentageAmount; + equipmentAmount = ui.EquipmentPercentageAmount; SetEquipmentAmountsFromPercentage(equipmentAmount); } else diff -r e3fe48c4d794 -r 77448375d2f9 UIControl/EditEquipmentUIControl.cs --- a/UIControl/EditEquipmentUIControl.cs Thu Sep 02 20:12:21 2010 +0000 +++ b/UIControl/EditEquipmentUIControl.cs Sat Sep 04 10:25:39 2010 +0000 @@ -44,10 +44,17 @@ ui.SetUnitEquipmentLimits(isRatioAmount, minPercentage, maxPercentage, minNumber, maxNumber); ui.SetUnitEquipmentLimitsEnabled(true); - ui.SetOkayEnabledState(HasNonZeroEquipmentAmount()); + ui.SetOkayEnabledState(false); SetEquipmentAmountControlEnabledStates(); - //TODO: Set initial values + if (UnitEquipmentUtil.IsEquipmentRatioLimited(unit, equipItem)) + { + SetEquipmentAmountsFromPercentage(UnitEquipmentUtil.GetEquipmentAmount(unit, equipItem)); + } + else + { + SetEquipmentAmountsFromNumber((int)UnitEquipmentUtil.GetEquipmentAmount(unit, equipItem)); + } ui.UnitEquipmentAmountChanged += HandleUnitEquipmentAmountChanged; ui.UnitEquipmentAmountTypeChanged += HandleUnitEquipmentAmountChanged; @@ -55,12 +62,12 @@ private void HandleUnitEquipmentAmountChanged() { - ui.SetOkayEnabledState(equipItem != null && HasNonZeroEquipmentAmount()); + ui.SetOkayEnabledState(HasNonZeroEquipmentAmount()); isRatioAmount = ui.IsRatioEquipmentAmount; if (isRatioAmount) { - double equipmentAmount = ui.EquipmentPercentageAmount; + equipmentAmount = ui.EquipmentPercentageAmount; SetEquipmentAmountsFromPercentage(equipmentAmount); } else diff -r e3fe48c4d794 -r 77448375d2f9 Widgets/UnitDisplayWidget.cs --- a/Widgets/UnitDisplayWidget.cs Thu Sep 02 20:12:21 2010 +0000 +++ b/Widgets/UnitDisplayWidget.cs Sat Sep 04 10:25:39 2010 +0000 @@ -54,7 +54,7 @@ { UnitEquipmentItem equipItem = GetSelectedEquipmentItem(); bttnReplaceEquipment.Sensitive = (equipItem != null && equipItem.HasAlternatives()); - bttnEditEquipment.Sensitive = (equipItem != null); + bttnEditEquipment.Sensitive = (UnitEquipmentUtil.CanEditEquipmentAmount(unit, equipItem)); bttnRemoveEquipment.Sensitive = (equipItem != null && !equipItem.IsRequired); } private UnitEquipmentItem GetSelectedEquipmentItem() diff -r e3fe48c4d794 -r 77448375d2f9 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs Thu Sep 02 20:12:21 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs Sat Sep 04 10:25:39 2010 +0000 @@ -41,7 +41,11 @@ 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"; diff -r e3fe48c4d794 -r 77448375d2f9 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs Thu Sep 02 20:12:21 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs Sat Sep 04 10:25:39 2010 +0000 @@ -35,7 +35,11 @@ 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"; @@ -157,9 +161,9 @@ this.lblEquipAmount = new global::Gtk.Label(); this.lblEquipAmount.Name = "lblEquipAmount"; this.lblEquipAmount.LabelProp = global::Mono.Unix.Catalog.GetString("amount:"); + this.lblEquipAmount.Justify = ((global::Gtk.Justification)(1)); this.table1.Add(this.lblEquipAmount); global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1[this.lblEquipAmount])); - 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])); diff -r e3fe48c4d794 -r 77448375d2f9 gtk-gui/gui.stetic --- a/gtk-gui/gui.stetic Thu Sep 02 20:12:21 2010 +0000 +++ b/gtk-gui/gui.stetic Sat Sep 04 10:25:39 2010 +0000 @@ -968,7 +968,11 @@ + Add equipment CenterOnParent + True + True + True 2 False @@ -1124,6 +1128,7 @@ True + True True True True @@ -1310,7 +1315,11 @@ + Edit equipment CenterOnParent + True + True + True 2 False @@ -1534,12 +1543,12 @@ amount: + Right - True - Fill + False Fill - False + True True False False