# HG changeset patch # User IBBoard # Date 1314647633 -3600 # Node ID 4ada3252d1ea7c3c9707b29c9f8d8a69e19b779e # Parent 5233147ca7e42be740ac2ef41578be5758ae9bd6 Re #101: Make army names and sizes modifiable after creation * Fix up translations * Correct enabling of menu item * Add translation text * Update army names in tree and app title when edited diff -r 5233147ca7e4 -r 4ada3252d1ea FrmArmyTree.cs --- a/FrmArmyTree.cs Mon Aug 29 20:06:54 2011 +0100 +++ b/FrmArmyTree.cs Mon Aug 29 20:53:53 2011 +0100 @@ -54,7 +54,10 @@ ArmyNameChangedMethod = new StringValChangedDelegate(UpdateArmyName); TreeNameChangedMethod = new StringValChangedDelegate(FrmArmyTree_TreeNameChanged); nodes = new Dictionary(); - this.Name = "ArmyTree"; + this.Name = "ArmyTree"; + miDeleteUnit.Name = "miDeleteUnit"; + miEditUnit.Name = "miEditUnit"; + miEditArmy.Name = "miEditArmy"; WarFoundryCore.ArmyChanged+= new ArmyChangedDelegate(FrmArmyTree_ArmyChanged); TranslateForm(); Translation.TranslationChanged += new MethodInvoker(TranslateForm); @@ -73,6 +76,7 @@ { ControlTranslator.TranslateComponent(mi); } + foreach (TreeNode node in nodes.Values) { node.Text = CreateNodeName((ICostedWarFoundryObject)node.Tag); @@ -291,6 +295,7 @@ { if (oldArmy != null) { + oldArmy.NameChanged -= ArmyNameChangedMethod; oldArmy.UnitAdded -= UnitAddedMethod; oldArmy.UnitRemoved -= UnitRemovedMethod; oldArmy.PointsValueChanged -= NodePointsValueChanged; @@ -298,6 +303,7 @@ if (newArmy != null) { + newArmy.NameChanged += ArmyNameChangedMethod; newArmy.UnitAdded += UnitAddedMethod; newArmy.UnitRemoved += UnitRemovedMethod; newArmy.PointsValueChanged += NodePointsValueChanged; @@ -444,13 +450,7 @@ { if (obj is Army) { - Army army = (Army)obj; - TreeNode node = treeView.Nodes[0]; - - if (node!=null) - { - node.Text = army.Name; - } + SetNodeName((Army)obj); } } diff -r 5233147ca7e4 -r 4ada3252d1ea FrmEditArmy.cs --- a/FrmEditArmy.cs Mon Aug 29 20:06:54 2011 +0100 +++ b/FrmEditArmy.cs Mon Aug 29 20:53:53 2011 +0100 @@ -8,10 +8,12 @@ using IBBoard.Commands; using IBBoard.WarFoundry.API.Commands; using IBBoard.WarFoundry.API.Objects; +using IBBoard.Windows.Forms; +using IBBoard.Windows.Forms.I18N; namespace IBBoard.WarFoundry.GUI.WinForms { - public partial class FrmEditArmy : Form + public partial class FrmEditArmy : IBBForm { private Army army; private CommandStack stack; @@ -23,6 +25,7 @@ InitializeComponent(); txtArmyName.Text = army.Name; armySize.Value = army.MaxPoints; + ControlTranslator.TranslateControl(this); } private void bttnOkay_Click(object sender, EventArgs e) diff -r 5233147ca7e4 -r 4ada3252d1ea FrmMain.cs --- a/FrmMain.cs Mon Aug 29 20:06:54 2011 +0100 +++ b/FrmMain.cs Mon Aug 29 20:53:53 2011 +0100 @@ -49,7 +49,9 @@ public ObjectAddDelegate UnitAddedMethod; public ObjectRemoveDelegate UnitRemovedMethod; + public StringValChangedDelegate ArmyNameChangedMethod; public DoubleValChangedDelegate PointsValueChangedMethod; + public IntValChangedDelegate MaxPointsValueChangedMethod; private FrmArmyTree armyTree; private string loadedFilePath; @@ -148,7 +150,9 @@ WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(FrmMain_ArmyChanged); UnitAddedMethod = new ObjectAddDelegate(FrmMain_UnitAddedMethod); UnitRemovedMethod = new ObjectRemoveDelegate(FrmMain_UnitRemovedMethod); + ArmyNameChangedMethod = new StringValChangedDelegate(FrmMain_ArmyNameChangedMethod); PointsValueChangedMethod = new DoubleValChangedDelegate(FrmMain_PointsValueChangedMethod); + MaxPointsValueChangedMethod = new IntValChangedDelegate(FrmMain_MaxPointsValueChangedMethod); sbErrorPanel.Color = Color.Red; SetPointsPanelToolTipText(); @@ -578,6 +582,7 @@ // // miEditArmy // + this.miEditArmy.Enabled = false; this.miEditArmy.Name = "miEditArmy"; this.miEditArmy.Size = new System.Drawing.Size(152, 22); this.miEditArmy.Text = "&edit army"; @@ -913,7 +918,7 @@ loadedFilePath = null; miSaveArmy.Enabled = false; bttnSaveArmy.Enabled = false; - miEditArmy.Enabled = (CurrentArmy == null); + miEditArmy.Enabled = (CurrentArmy != null); //TODO: Subscribe to an "army changed" event here SetPointsPanelText(); SetAppTitle(); @@ -944,7 +949,9 @@ { oldArmy.UnitAdded -= UnitAddedMethod; oldArmy.UnitRemoved -= UnitRemovedMethod; + oldArmy.NameChanged -= ArmyNameChangedMethod; oldArmy.PointsValueChanged -= PointsValueChangedMethod; + oldArmy.MaxPointsValueChanged -= MaxPointsValueChangedMethod; } } @@ -966,7 +973,9 @@ { newArmy.UnitAdded += UnitAddedMethod; newArmy.UnitRemoved += UnitRemovedMethod; + newArmy.NameChanged += ArmyNameChangedMethod; newArmy.PointsValueChanged += PointsValueChangedMethod; + newArmy.MaxPointsValueChanged += MaxPointsValueChangedMethod; } } @@ -1297,6 +1306,11 @@ OpenArmy(); } + private void FrmMain_ArmyNameChangedMethod(WarFoundryObject obj, string oldString, string newString) + { + SetAppTitle(); + } + private void FrmMain_PointsValueChangedMethod(WarFoundryObject obj, double oldVal, double newVal) { if (obj is Army) @@ -1305,6 +1319,14 @@ } } + private void FrmMain_MaxPointsValueChangedMethod(WarFoundryObject obj, int oldVal, int newVal) + { + if (obj is Army) + { + SetPointsPanelText(); + } + } + private void SetPointsPanelText() { if (CurrentArmy==null) diff -r 5233147ca7e4 -r 4ada3252d1ea translations/en.translation --- a/translations/en.translation Mon Aug 29 20:06:54 2011 +0100 +++ b/translations/en.translation Mon Aug 29 20:53:53 2011 +0100 @@ -15,6 +15,7 @@ E&xit &Undo &Redo + &Edit army &Preferences &About OK @@ -45,6 +46,7 @@ Create army WarFoundry couldn't find any game system data. Please check the logs for errors and ensure you have some game system data files in the "data" folder. + Edit Army Add New {0} Choice Unit types: Create unit