From 61e5721c53cb623bf4949421057111f1e46d03f0 Mon Sep 17 00:00:00 2001 From: offspring131313 Date: Thu, 19 May 2011 00:39:42 +0000 Subject: [PATCH] Added config feature for saving column order for ram watch --- BizHawk.MultiClient/Config.cs | 5 + .../tools/RamWatch.Designer.cs | 97 +++++------ BizHawk.MultiClient/tools/RamWatch.cs | 156 ++++++++++++++---- BizHawk.MultiClient/tools/RamWatch.resx | 112 ++++++------- 4 files changed, 235 insertions(+), 135 deletions(-) diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 4f08b21c58..9a3cdc3fef 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -141,6 +141,11 @@ public int RamWatchPrevWidth = -1; public int RamWatchChangeWidth = -1; public int RamWatchNotesWidth = -1; + public int RamWatchAddressIndex = 0; + public int RamWatchValueIndex = 1; + public int RamWatchPrevIndex = 2; + public int RamWatchChangeIndex = 3; + public int RamWatchNotesIndex = 4; // RamSearch Settings public bool AutoLoadRamSearch = false; diff --git a/BizHawk.MultiClient/tools/RamWatch.Designer.cs b/BizHawk.MultiClient/tools/RamWatch.Designer.cs index 270ef1af14..96f8918578 100644 --- a/BizHawk.MultiClient/tools/RamWatch.Designer.cs +++ b/BizHawk.MultiClient/tools/RamWatch.Designer.cs @@ -133,7 +133,7 @@ this.toolStripSeparator1, this.exitToolStripMenuItem}); this.filesToolStripMenuItem.Name = "filesToolStripMenuItem"; - this.filesToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.filesToolStripMenuItem.Size = new System.Drawing.Size(42, 20); this.filesToolStripMenuItem.Text = "&Files"; this.filesToolStripMenuItem.DropDownOpened += new System.EventHandler(this.filesToolStripMenuItem_DropDownOpened); // @@ -141,7 +141,7 @@ // this.newListToolStripMenuItem.Name = "newListToolStripMenuItem"; this.newListToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.newListToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.newListToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.newListToolStripMenuItem.Text = "&New List"; this.newListToolStripMenuItem.Click += new System.EventHandler(this.newListToolStripMenuItem_Click); // @@ -149,7 +149,7 @@ // this.openToolStripMenuItem.Name = "openToolStripMenuItem"; this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.openToolStripMenuItem.Text = "&Open..."; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // @@ -157,7 +157,7 @@ // this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.saveToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.saveToolStripMenuItem.Text = "&Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // @@ -166,14 +166,14 @@ this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; this.saveAsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.saveAsToolStripMenuItem.Text = "Save &As..."; this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); // // appendFileToolStripMenuItem // this.appendFileToolStripMenuItem.Name = "appendFileToolStripMenuItem"; - this.appendFileToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.appendFileToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.appendFileToolStripMenuItem.Text = "A&ppend File..."; this.appendFileToolStripMenuItem.Click += new System.EventHandler(this.appendFileToolStripMenuItem_Click); // @@ -185,43 +185,43 @@ this.clearToolStripMenuItem, this.autoLoadToolStripMenuItem}); this.recentToolStripMenuItem.Name = "recentToolStripMenuItem"; - this.recentToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.recentToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.recentToolStripMenuItem.Text = "Recent"; this.recentToolStripMenuItem.DropDownOpened += new System.EventHandler(this.recentToolStripMenuItem_DropDownOpened); // // noneToolStripMenuItem // this.noneToolStripMenuItem.Name = "noneToolStripMenuItem"; - this.noneToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.noneToolStripMenuItem.Size = new System.Drawing.Size(131, 22); this.noneToolStripMenuItem.Text = "None"; // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(132, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(128, 6); // // clearToolStripMenuItem // this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.clearToolStripMenuItem.Size = new System.Drawing.Size(131, 22); this.clearToolStripMenuItem.Text = "Clear"; // // autoLoadToolStripMenuItem // this.autoLoadToolStripMenuItem.Name = "autoLoadToolStripMenuItem"; - this.autoLoadToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.autoLoadToolStripMenuItem.Size = new System.Drawing.Size(131, 22); this.autoLoadToolStripMenuItem.Text = "Auto-Load"; // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(201, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6); // // exitToolStripMenuItem // this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.exitToolStripMenuItem.Size = new System.Drawing.Size(204, 22); + this.exitToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.exitToolStripMenuItem.Text = "&Close"; this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); // @@ -242,27 +242,27 @@ this.moveUpToolStripMenuItem, this.moveDownToolStripMenuItem}); this.watchesToolStripMenuItem.Name = "watchesToolStripMenuItem"; - this.watchesToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + this.watchesToolStripMenuItem.Size = new System.Drawing.Size(64, 20); this.watchesToolStripMenuItem.Text = "&Watches"; this.watchesToolStripMenuItem.DropDownOpened += new System.EventHandler(this.watchesToolStripMenuItem_DropDownOpened); // // memoryDomainsToolStripMenuItem // this.memoryDomainsToolStripMenuItem.Name = "memoryDomainsToolStripMenuItem"; - this.memoryDomainsToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.memoryDomainsToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.memoryDomainsToolStripMenuItem.Text = "Memory Domains"; this.memoryDomainsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.memoryDomainsToolStripMenuItem_DropDownOpened); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(219, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(221, 6); // // newWatchToolStripMenuItem // this.newWatchToolStripMenuItem.Name = "newWatchToolStripMenuItem"; this.newWatchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); - this.newWatchToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.newWatchToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.newWatchToolStripMenuItem.Text = "&New Watch"; this.newWatchToolStripMenuItem.Click += new System.EventHandler(this.newWatchToolStripMenuItem_Click); // @@ -270,7 +270,7 @@ // this.editWatchToolStripMenuItem.Name = "editWatchToolStripMenuItem"; this.editWatchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.editWatchToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.editWatchToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.editWatchToolStripMenuItem.Text = "&Edit Watch"; this.editWatchToolStripMenuItem.Click += new System.EventHandler(this.editWatchToolStripMenuItem_Click); // @@ -278,7 +278,7 @@ // this.removeWatchToolStripMenuItem.Name = "removeWatchToolStripMenuItem"; this.removeWatchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R))); - this.removeWatchToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.removeWatchToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.removeWatchToolStripMenuItem.Text = "&Remove Watch"; this.removeWatchToolStripMenuItem.Click += new System.EventHandler(this.removeWatchToolStripMenuItem_Click); // @@ -286,7 +286,7 @@ // this.duplicateWatchToolStripMenuItem.Name = "duplicateWatchToolStripMenuItem"; this.duplicateWatchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D))); - this.duplicateWatchToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.duplicateWatchToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.duplicateWatchToolStripMenuItem.Text = "&Duplicate Watch"; this.duplicateWatchToolStripMenuItem.Click += new System.EventHandler(this.duplicateWatchToolStripMenuItem_Click); // @@ -294,7 +294,7 @@ // this.pokeAddressToolStripMenuItem.Name = "pokeAddressToolStripMenuItem"; this.pokeAddressToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P))); - this.pokeAddressToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.pokeAddressToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.pokeAddressToolStripMenuItem.Text = "Poke Address"; this.pokeAddressToolStripMenuItem.Click += new System.EventHandler(this.pokeAddressToolStripMenuItem_Click); // @@ -302,7 +302,7 @@ // this.freezeAddressToolStripMenuItem.Name = "freezeAddressToolStripMenuItem"; this.freezeAddressToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F))); - this.freezeAddressToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.freezeAddressToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.freezeAddressToolStripMenuItem.Text = "Freeze Address"; this.freezeAddressToolStripMenuItem.Click += new System.EventHandler(this.freezeAddressToolStripMenuItem_Click); // @@ -310,7 +310,7 @@ // this.insertSeparatorToolStripMenuItem.Name = "insertSeparatorToolStripMenuItem"; this.insertSeparatorToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I))); - this.insertSeparatorToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.insertSeparatorToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.insertSeparatorToolStripMenuItem.Text = "Insert Separator"; this.insertSeparatorToolStripMenuItem.Click += new System.EventHandler(this.insertSeparatorToolStripMenuItem_Click); // @@ -318,20 +318,20 @@ // this.clearChangeCountsToolStripMenuItem.Name = "clearChangeCountsToolStripMenuItem"; this.clearChangeCountsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.C))); - this.clearChangeCountsToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.clearChangeCountsToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.clearChangeCountsToolStripMenuItem.Text = "&Clear Change Counts"; this.clearChangeCountsToolStripMenuItem.Click += new System.EventHandler(this.clearChangeCountsToolStripMenuItem_Click); // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(219, 6); + this.toolStripSeparator3.Size = new System.Drawing.Size(221, 6); // // moveUpToolStripMenuItem // this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; this.moveUpToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up))); - this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.moveUpToolStripMenuItem.Text = "Move &Up"; this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); // @@ -339,7 +339,7 @@ // this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; this.moveDownToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down))); - this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(222, 22); + this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.moveDownToolStripMenuItem.Text = "Move &Down"; this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); // @@ -352,7 +352,7 @@ this.toolStripSeparator7, this.restoreWindowSizeToolStripMenuItem}); this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); this.optionsToolStripMenuItem.Text = "&Options"; this.optionsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.optionsToolStripMenuItem_DropDownOpened); // @@ -361,33 +361,33 @@ this.showChangeCountsToolStripMenuItem.Checked = true; this.showChangeCountsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.showChangeCountsToolStripMenuItem.Name = "showChangeCountsToolStripMenuItem"; - this.showChangeCountsToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.showChangeCountsToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.showChangeCountsToolStripMenuItem.Text = "Change Counts"; this.showChangeCountsToolStripMenuItem.Click += new System.EventHandler(this.showChangeCountsToolStripMenuItem_Click); // // showPreviousValueToolStripMenuItem // this.showPreviousValueToolStripMenuItem.Name = "showPreviousValueToolStripMenuItem"; - this.showPreviousValueToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.showPreviousValueToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.showPreviousValueToolStripMenuItem.Text = "Previous Value"; this.showPreviousValueToolStripMenuItem.Click += new System.EventHandler(this.showPreviousValueToolStripMenuItem_Click); // // prevValueShowsChangeAmountToolStripMenuItem // this.prevValueShowsChangeAmountToolStripMenuItem.Name = "prevValueShowsChangeAmountToolStripMenuItem"; - this.prevValueShowsChangeAmountToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.prevValueShowsChangeAmountToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.prevValueShowsChangeAmountToolStripMenuItem.Text = "Prev Value as change"; this.prevValueShowsChangeAmountToolStripMenuItem.Click += new System.EventHandler(this.prevValueShowsChangeAmountToolStripMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(188, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(185, 6); // // restoreWindowSizeToolStripMenuItem // this.restoreWindowSizeToolStripMenuItem.Name = "restoreWindowSizeToolStripMenuItem"; - this.restoreWindowSizeToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.restoreWindowSizeToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.restoreWindowSizeToolStripMenuItem.Text = "Restore Window Size"; this.restoreWindowSizeToolStripMenuItem.Click += new System.EventHandler(this.restoreWindowSizeToolStripMenuItem_Click); // @@ -417,6 +417,7 @@ this.WatchListView.UseCompatibleStateImageBehavior = false; this.WatchListView.View = System.Windows.Forms.View.Details; this.WatchListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.WatchListView_MouseDoubleClick); + this.WatchListView.ColumnReordered += new System.Windows.Forms.ColumnReorderedEventHandler(this.ColumnReorder); this.WatchListView.AfterLabelEdit += new System.Windows.Forms.LabelEditEventHandler(this.WatchListView_AfterLabelEdit); // // Address @@ -464,100 +465,100 @@ this.showPreviousValueToolStripMenuItem1, this.prevValueAsChangeAmountToolStripMenuItem}); this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(228, 280); + this.contextMenuStrip1.Size = new System.Drawing.Size(231, 280); this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); // // editToolStripMenuItem // this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - this.editToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.editToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.editToolStripMenuItem.Text = "&Edit"; this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); // // removeToolStripMenuItem // this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.removeToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.removeToolStripMenuItem.Text = "&Remove"; this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); // // duplicateToolStripMenuItem // this.duplicateToolStripMenuItem.Name = "duplicateToolStripMenuItem"; - this.duplicateToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.duplicateToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.duplicateToolStripMenuItem.Text = "&Duplicate"; this.duplicateToolStripMenuItem.Click += new System.EventHandler(this.duplicateToolStripMenuItem_Click); // // pokeToolStripMenuItem // this.pokeToolStripMenuItem.Name = "pokeToolStripMenuItem"; - this.pokeToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.pokeToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.pokeToolStripMenuItem.Text = "&Poke"; this.pokeToolStripMenuItem.Click += new System.EventHandler(this.pokeToolStripMenuItem_Click); // // freezeToolStripMenuItem // this.freezeToolStripMenuItem.Name = "freezeToolStripMenuItem"; - this.freezeToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.freezeToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.freezeToolStripMenuItem.Text = "&Freeze"; this.freezeToolStripMenuItem.Click += new System.EventHandler(this.freezeToolStripMenuItem_Click); // // viewInHexEditorToolStripMenuItem // this.viewInHexEditorToolStripMenuItem.Name = "viewInHexEditorToolStripMenuItem"; - this.viewInHexEditorToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.viewInHexEditorToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.viewInHexEditorToolStripMenuItem.Text = "View in Hex Editor"; this.viewInHexEditorToolStripMenuItem.Click += new System.EventHandler(this.viewInHexEditorToolStripMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(224, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(227, 6); // // insertSeperatorToolStripMenuItem // this.insertSeperatorToolStripMenuItem.Name = "insertSeperatorToolStripMenuItem"; - this.insertSeperatorToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.insertSeperatorToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.insertSeperatorToolStripMenuItem.Text = "&Insert Separator"; this.insertSeperatorToolStripMenuItem.Click += new System.EventHandler(this.insertSeperatorToolStripMenuItem_Click); // // moveUpToolStripMenuItem1 // this.moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1"; - this.moveUpToolStripMenuItem1.Size = new System.Drawing.Size(227, 22); + this.moveUpToolStripMenuItem1.Size = new System.Drawing.Size(230, 22); this.moveUpToolStripMenuItem1.Text = "Move &Up"; this.moveUpToolStripMenuItem1.Click += new System.EventHandler(this.moveUpToolStripMenuItem1_Click); // // moveDownToolStripMenuItem1 // this.moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1"; - this.moveDownToolStripMenuItem1.Size = new System.Drawing.Size(227, 22); + this.moveDownToolStripMenuItem1.Size = new System.Drawing.Size(230, 22); this.moveDownToolStripMenuItem1.Text = "Move &Down"; this.moveDownToolStripMenuItem1.Click += new System.EventHandler(this.moveDownToolStripMenuItem1_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(224, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(227, 6); // // showChangeCountsToolStripMenuItem1 // this.showChangeCountsToolStripMenuItem1.Name = "showChangeCountsToolStripMenuItem1"; - this.showChangeCountsToolStripMenuItem1.Size = new System.Drawing.Size(227, 22); + this.showChangeCountsToolStripMenuItem1.Size = new System.Drawing.Size(230, 22); this.showChangeCountsToolStripMenuItem1.Text = "Show Change Counts"; this.showChangeCountsToolStripMenuItem1.Click += new System.EventHandler(this.showChangeCountsToolStripMenuItem_Click); // // showPreviousValueToolStripMenuItem1 // this.showPreviousValueToolStripMenuItem1.Name = "showPreviousValueToolStripMenuItem1"; - this.showPreviousValueToolStripMenuItem1.Size = new System.Drawing.Size(227, 22); + this.showPreviousValueToolStripMenuItem1.Size = new System.Drawing.Size(230, 22); this.showPreviousValueToolStripMenuItem1.Text = "Show Previous Value"; this.showPreviousValueToolStripMenuItem1.Click += new System.EventHandler(this.showPreviousValueToolStripMenuItem_Click); // // prevValueAsChangeAmountToolStripMenuItem // this.prevValueAsChangeAmountToolStripMenuItem.Name = "prevValueAsChangeAmountToolStripMenuItem"; - this.prevValueAsChangeAmountToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.prevValueAsChangeAmountToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.prevValueAsChangeAmountToolStripMenuItem.Text = "Prev Value as change amount"; this.prevValueAsChangeAmountToolStripMenuItem.Click += new System.EventHandler(this.prevValueShowsChangeAmountToolStripMenuItem_Click); // diff --git a/BizHawk.MultiClient/tools/RamWatch.cs b/BizHawk.MultiClient/tools/RamWatch.cs index 23178a4256..6ecac03ab5 100644 --- a/BizHawk.MultiClient/tools/RamWatch.cs +++ b/BizHawk.MultiClient/tools/RamWatch.cs @@ -76,13 +76,48 @@ namespace BizHawk.MultiClient private void LoadConfigSettings() { + List columnHeaders = new List(); + int i = 0; + for (i = 0; i < WatchListView.Columns.Count; i++) + columnHeaders.Add(WatchListView.Columns[i]); + + WatchListView.Columns.Clear(); + + i = 0; + do + { + string column = ""; + if (Global.Config.RamWatchAddressIndex == i) + column = "Address"; + else if (Global.Config.RamWatchValueIndex == i) + column = "Value"; + else if (Global.Config.RamWatchPrevIndex == i) + column = "Prev"; + else if (Global.Config.RamWatchChangeIndex == i) + column = "Changes"; + else if (Global.Config.RamWatchNotesIndex == i) + column = "Notes"; + + for (int k = 0; k < columnHeaders.Count(); k++) + { + if (columnHeaders[k].Text == column) + { + WatchListView.Columns.Add(columnHeaders[k]); + columnHeaders.Remove(columnHeaders[k]); + break; + } + } + i++; + } while (columnHeaders.Count() > 0); + defaultWidth = Size.Width; //Save these first so that the user can restore to its original size defaultHeight = Size.Height; - defaultAddressWidth = WatchListView.Columns[0].Width; - defaultValueWidth = WatchListView.Columns[1].Width; - defaultPrevWidth = WatchListView.Columns[2].Width; - defaultChangeWidth = WatchListView.Columns[3].Width; - NotesWidth = WatchListView.Columns[4].Width; + defaultAddressWidth = WatchListView.Columns[Global.Config.RamWatchAddressIndex].Width; + defaultValueWidth = WatchListView.Columns[Global.Config.RamWatchValueIndex].Width; + defaultPrevWidth = WatchListView.Columns[Global.Config.RamWatchPrevIndex].Width; + defaultChangeWidth = WatchListView.Columns[Global.Config.RamWatchChangeIndex].Width; + NotesWidth = WatchListView.Columns[Global.Config.RamWatchNotesIndex].Width; + if (Global.Config.RamWatchSaveWindowPosition && Global.Config.RamWatchWndx >= 0 && Global.Config.RamWatchWndy >= 0) Location = new Point(Global.Config.RamWatchWndx, Global.Config.RamWatchWndy); @@ -94,24 +129,26 @@ namespace BizHawk.MultiClient SetPrevColumn(Global.Config.RamWatchShowPrevColumn); SetChangesColumn(Global.Config.RamWatchShowChangeColumn); if (Global.Config.RamWatchAddressWidth > 0) - WatchListView.Columns[0].Width = Global.Config.RamWatchAddressWidth; + WatchListView.Columns[Global.Config.RamWatchAddressIndex].Width = Global.Config.RamWatchAddressWidth; if (Global.Config.RamWatchValueWidth > 0) - WatchListView.Columns[1].Width = Global.Config.RamWatchValueWidth; + WatchListView.Columns[Global.Config.RamWatchValueIndex].Width = Global.Config.RamWatchValueWidth; if (Global.Config.RamWatchPrevWidth > 0) - WatchListView.Columns[2].Width = Global.Config.RamWatchPrevWidth; + WatchListView.Columns[Global.Config.RamWatchPrevIndex].Width = Global.Config.RamWatchPrevWidth; if (Global.Config.RamWatchChangeWidth > 0) - WatchListView.Columns[3].Width = Global.Config.RamWatchChangeWidth; + WatchListView.Columns[Global.Config.RamWatchChangeIndex].Width = Global.Config.RamWatchChangeWidth; if (Global.Config.RamWatchNotesWidth > 0) - WatchListView.Columns[4].Width = Global.Config.RamWatchNotesWidth; + WatchListView.Columns[Global.Config.RamWatchNotesIndex].Width = Global.Config.RamWatchNotesWidth; + + } public void SaveConfigSettings() { - Global.Config.RamWatchAddressWidth = WatchListView.Columns[0].Width; - Global.Config.RamWatchValueWidth = WatchListView.Columns[1].Width; - Global.Config.RamWatchPrevWidth = WatchListView.Columns[2].Width; - Global.Config.RamWatchChangeWidth = WatchListView.Columns[3].Width; - Global.Config.RamWatchNotesWidth = WatchListView.Columns[4].Width; + Global.Config.RamWatchAddressWidth = WatchListView.Columns[Global.Config.RamWatchAddressIndex].Width; + Global.Config.RamWatchValueWidth = WatchListView.Columns[Global.Config.RamWatchValueIndex].Width; + Global.Config.RamWatchPrevWidth = WatchListView.Columns[Global.Config.RamWatchPrevIndex].Width; + Global.Config.RamWatchChangeWidth = WatchListView.Columns[Global.Config.RamWatchChangeIndex].Width; + Global.Config.RamWatchNotesWidth = WatchListView.Columns[Global.Config.RamWatchNotesIndex].Width; Global.Config.RamWatchWndx = this.Location.X; Global.Config.RamWatchWndy = this.Location.Y; @@ -804,18 +841,50 @@ namespace BizHawk.MultiClient private void restoreWindowSizeToolStripMenuItem_Click(object sender, EventArgs e) { this.Size = new System.Drawing.Size(defaultWidth, defaultHeight); + List columnHeaders = new List(); + int i = 0; + for (i = 0; i < WatchListView.Columns.Count; i++) + columnHeaders.Add(WatchListView.Columns[i]); - WatchListView.Columns[0].Width = Global.Config.RamWatchAddressWidth; - WatchListView.Columns[1].Width = Global.Config.RamWatchValueWidth; - if (showPreviousValueToolStripMenuItem.Checked) - WatchListView.Columns[2].Width = Global.Config.RamWatchPrevWidth; - else - WatchListView.Columns[2].Width = 0; - if (showChangeCountsToolStripMenuItem.Checked) - WatchListView.Columns[3].Width = Global.Config.RamWatchChangeWidth; - else - WatchListView.Columns[3].Width = 0; - WatchListView.Columns[4].Width = Global.Config.RamWatchNotesWidth; + WatchListView.Columns.Clear(); + Global.Config.RamWatchAddressIndex = 0; + Global.Config.RamWatchValueIndex = 1; + Global.Config.RamWatchPrevIndex = 2; + Global.Config.RamWatchChangeIndex = 3; + Global.Config.RamWatchNotesIndex = 4; + i = 0; + do + { + string column = ""; + if (Global.Config.RamWatchAddressIndex == i) + column = "Address"; + else if (Global.Config.RamWatchValueIndex == i) + column = "Value"; + else if (Global.Config.RamWatchPrevIndex == i) + column = "Prev"; + else if (Global.Config.RamWatchChangeIndex == i) + column = "Changes"; + else if (Global.Config.RamWatchNotesIndex == i) + column = "Notes"; + + for (int k = 0; k < columnHeaders.Count(); k++) + { + if (columnHeaders[k].Text == column) + { + WatchListView.Columns.Add(columnHeaders[k]); + columnHeaders.Remove(columnHeaders[k]); + break; + } + } + i++; + } while (columnHeaders.Count() > 0); + showPreviousValueToolStripMenuItem.Checked = false; + showChangeCountsToolStripMenuItem.Checked = true; + WatchListView.Columns[0].Width = defaultAddressWidth; + WatchListView.Columns[1].Width = defaultValueWidth; + WatchListView.Columns[2].Width = 0; + WatchListView.Columns[3].Width = defaultChangeWidth; + WatchListView.Columns[4].Width = NotesWidth; } private void newToolStripButton_Click(object sender, EventArgs e) @@ -1072,9 +1141,9 @@ namespace BizHawk.MultiClient Global.Config.RamWatchShowChangeColumn = show; showChangeCountsToolStripMenuItem.Checked = show; if (show) - WatchListView.Columns[3].Width = 54; + WatchListView.Columns[Global.Config.RamWatchChangeIndex].Width = 54; else - WatchListView.Columns[3].Width = 0; + WatchListView.Columns[Global.Config.RamWatchChangeIndex].Width = 0; } private void SetPrevColumn(bool show) @@ -1082,9 +1151,9 @@ namespace BizHawk.MultiClient Global.Config.RamWatchShowPrevColumn = show; showPreviousValueToolStripMenuItem.Checked = show; if (show) - WatchListView.Columns[2].Width = 59; + WatchListView.Columns[Global.Config.RamWatchPrevIndex].Width = 59; else - WatchListView.Columns[2].Width = 0; + WatchListView.Columns[Global.Config.RamWatchPrevIndex].Width = 0; } private void showPreviousValueToolStripMenuItem_Click(object sender, EventArgs e) @@ -1280,5 +1349,32 @@ namespace BizHawk.MultiClient { CheckDomainMenuItems(); } + + private void ColumnReorder(object sender, ColumnReorderedEventArgs e) + { + ColumnHeader header = e.Header; + + if (Global.Config.RamWatchAddressIndex >= e.NewDisplayIndex && Global.Config.RamWatchAddressIndex < e.OldDisplayIndex) + Global.Config.RamWatchAddressIndex++; + if (Global.Config.RamWatchValueIndex >= e.NewDisplayIndex && Global.Config.RamWatchValueIndex < e.OldDisplayIndex) + Global.Config.RamWatchValueIndex++; + if (Global.Config.RamWatchPrevIndex >= e.NewDisplayIndex && Global.Config.RamWatchPrevIndex < e.OldDisplayIndex) + Global.Config.RamWatchPrevIndex++; + if (Global.Config.RamWatchChangeIndex >= e.NewDisplayIndex && Global.Config.RamWatchChangeIndex < e.OldDisplayIndex) + Global.Config.RamWatchChangeIndex++; + if (Global.Config.RamWatchNotesIndex >= e.NewDisplayIndex && Global.Config.RamWatchNotesIndex < e.OldDisplayIndex) + Global.Config.RamWatchNotesIndex++; + + if(header.Text == "Address") + Global.Config.RamWatchAddressIndex = e.NewDisplayIndex; + else if (header.Text == "Value") + Global.Config.RamWatchValueIndex = e.NewDisplayIndex; + else if (header.Text == "Prev") + Global.Config.RamWatchPrevIndex = e.NewDisplayIndex; + else if (header.Text == "ChangeCounts") + Global.Config.RamWatchChangeIndex = e.NewDisplayIndex; + else if (header.Text == "Notes") + Global.Config.RamWatchNotesIndex = e.NewDisplayIndex; + } } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/RamWatch.resx b/BizHawk.MultiClient/tools/RamWatch.resx index ed25621344..d21d1a3053 100644 --- a/BizHawk.MultiClient/tools/RamWatch.resx +++ b/BizHawk.MultiClient/tools/RamWatch.resx @@ -130,88 +130,86 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAQ9JREFUOE+t09lq - wkAUBmBfyr5DfY32jaReSOmFCyKCgkKLFrVUBZeKiEbshqRuaNw1xiXmLxMJBJ0Zc+GBw9zMfDPnHMZm - u1ZE35s4zXCqjmC8Al+sgHLjD9y7yGFWPIbecOO45yORtMAEHnxxJHL1IyKI9JeEXqtMwOl50Q8bSS0l - 8PzBBPbqAQQxICrgjeapgKZpkJUdBmNZB+y3d/QSnsIZKrDdqZjMFYj9OR9wB1NngHrQsJC36EkrfIkT - PuDyJ84AZbOHNF2j1Z2h9i3xAVKfOUjjZssN2oMFmq0xSkLfOmBu3E97iurnENlKxzpgbpzwO0Kh1kOy - KFoDjHmzVuYYjRmTDZfyWh9Yd/4B2Mz2w1z7EGUAAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEPSURBVDhPrdPZasJAFAZgX8q+Q32N9o2kXkjphQsigoJC + ixa1VAWXiohG7IakbmjcNcYl5i8TCQSdGXPhgcPczHwz5xzGZrtWRN+bOM1wqo5gvAJfrIBy4w/cu8hh + VjyG3nDjuOcjkbTABB58cSRy9SMiiPSXhF6rTMDpedEPG0ktJfD8wQT26gEEMSAq4I3mqYCmaZCVHQZj + WQfst3f0Ep7CGSqw3amYzBWI/TkfcAdTZ4B60LCQt+hJK3yJEz7g8ifOAGWzhzRdo9WdofYt8QFSnzlI + 42bLDdqDBZqtMUpC3zpgbtxPe4rq5xDZSsc6YG6c8DtCodZDsihaA4x5s1bmGI0Zkw2X8lofWHf+AdjM + 9sNc+xBlAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlpJREFUOE+tk21I - k1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxoU9Pp5ubUlS5rU9f8rCyjsA+pUCRC - TR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2n+Mij+XLRLLYULdF2pxlEVIDcw0p - AsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpavwatjPebqCzOprPt8YKQgzFagqL0 - BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4VWm5WM/rVPNN5SjDTLQebZEHNA1wr - UvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkGtcyZptSYzvC7XByx3zQoqCnTMvlG - CX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6iuSO8CIfmECYa/bE/8ON1iRipJNh5 - F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHozymgfYRy5E1CgTWKgXcZ1i5qWp0KS - rjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01GfzA1LFvQkQ6sQ9/khxhoCGHnox1Dt - NvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp - 59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRnraf7Xz/xf/rJ/kvxb84I3U1y+9/W - AAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPlZNdSNNRGMb/F110ZZEVhVBgeeHNICiiuggp + olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdPKMgr7kApFItTUkWZqVhSVYmao5Nev/xyoQ4k88Nyc + 8z6/93nP4QjCfy6lwc4ltZVso4P/tMyXRcmMHqZ0EeY6jZQVInzuf0e1Tb9Ina3P/tkpLD6XkNg8BJe5 + u93C+HDVrP4M2ZkcMOOw5tLZ9nxJyJE4HSExBoKkBQhVpTrGhso9zNPfiph0JlB+U01ZcRbmwnRMeWlc + 08opUCV6QissGsZ+WOY6z4hmuuXglC6pRYBbJSp+fzXNxnaZ66o1s3rkyKHWruJuWRYOcwZ2kxKr8TI3 + DCkU6+QYNUnuNGWmLEY+5uOK3degoKZcx3SfEvozPfVB3OtNhi4ZvI2nrTIc23U9gtmYwa8eNXzScq8i + l6bHWnfRwhHeREJzGFONgYw/CeB9qQSZNNR9FyUGBT87lfQ3plJj1zLTq4COGDegLVo0HmeqKZjx+gOM + PNzDYPU2lLF+4jhyN6BIl8pgexK3bRpaXopJuhJEwGloiWDmVSgTLw4xWreXoZrtfK/wp/nKak4E+s6/ + hDFHTkd9GndsOdCTBq1i3NdHmWgIYvRpAMO1OxlwSPhi2YpT641CuoWzsSfnAfnZiVRZ1Tjvx9GsF+bU + pF1BvWolD9JXUZmyDnOiD1cvbCZiYXfXCPrMi+gVZ8hOiiL53DHORwdzKnw/hw/uYt9uCTskfvj7+rBp + 41rWr/Fig7fX8j/Tsn/fcgx/ARfG3ml6M3rzAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAixJREFUOE+tk91L - k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz - V7TEoabYRDD49ju/6Pm1Mi+iH5zLz+c855zvo1L9j/fsaRRUvvZltHmX8Ni9gMaGCO47ZlBb8wn22yHc - KJ9CackECgteIy93FBfOB6H0JrC3B6ipXsVGb2V1Dca0XhxOe8JLEXhbF7mgsuLLX3mCIwsr2G1+DrVa - huWQRwjcj+a5oLTk87qCn/D78CLiTD4UXJ7GAXOTEDjrZ7ngku3dH4Jf4ZHJCLZJXlhzxpGa4hSCurth - LsjOGo0R/A4PBsPYrHdDlgMwmRxCUF31kQvkMwFFsB7c4/+ATYkNOHL0BZKSaoXgZuU0urvATgkcP/kK - lmMDfNu0MJqZPps6/4D7cNDSCUmyC8HVskl0+MAyADS5vrG7f0X59Tm+VFoYzZyZEVTg5NR2GAwVQnCl - cByeZuChc40FJwpjek5MmU/YkH6uiHdOTmHwfg/0+jIhsOWNMRiouhPlnUnAQoI4rYSht7MYm5qDnHsN - e41tHNbucUGnKxICiqXjHpTPJgHBZ/Nv4U1oHqGZJVwstiNe72JwI+J3PYA2MV8IMjOG2dzLfOatBg+2 - 7JDQ0tEPX9cguvv8GHg5hH0mC9S6eiQweLumDhqNVQgo06dP9fN4UsIoJHRnOhVtmxZGM1NXKoJ3JmTH - Cv71r/4OTrQ4xWMwWlcAAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIsSURBVDhPrZPdS5NxFMf3L3TfTdBFtzU1hmuxGjzlHMqq + YVgRvT2RL+XSZZqoWJlGLV8gW+HSScvpJJxU+AamSI2hTCVLM1e0xKGm2EQw+PY7v+j5tTIvoh+cy8/n + POec76NS/Y/37GkUVL72ZbR5l/DYvYDGhgjuO2ZQW/MJ9tsh3CifQmnJBAoLXiMvdxQXzgeh9Cawtweo + qV7FRm9ldQ3GtF4cTnvCSxF4Wxe5oLLiy195giMLK9htfg61WoblkEcI3I/muaC05PO6gp/w+/Ai4kw+ + FFyexgFzkxA462e54JLt3R+CX+GRyQi2SV5Yc8aRmuIUgrq7YS7IzhqNEfwODwbD2Kx3Q5YDMJkcQlBd + 9ZEL5DMBRbAe3OP/gE2JDThy9AWSkmqF4GblNLq7wE4JHD/5CpZjA3zbtDCamT6bOv+A+3DQ0glJsgvB + 1bJJdPjAMgA0ub6xu39F+fU5vlRaGM2cmRFU4OTUdhgMFUJwpXAcnmbgoXONBScKY3pOTJlP2JB+roh3 + Tk5h8H4P9PoyIbDljTEYqLoT5Z1JwEKCOK2EobezGJuag5x7DXuNbRzW7nFBpysSAoql4x6UzyYBwWfz + b+FNaB6hmSVcLLYjXu9icCPidz2ANjFfCDIzhtncy3zmrQYPtuyQ0NLRD1/XILr7/Bh4OYR9JgvUunok + MHi7pg4ajVUIKNOnT/XzeFLCKCR0ZzoVbZsWRjNTVyqCdyZkxwr+9a/+Dk60OMVjMFpXAAAAAElFTkSu + QmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYdJREFUOE+t001L - QlEQBuB+TdCmRVEJRRIWtRAUlKsQhFmkpZQtIiWyAlMwP5KkXS0shLqGFkgoFqWQmaRR2qIvU7FMwWhd - 8JZXkFx0uVGzOcNh5jkDw6mr+++4SN7B6fbju/uQecYm6a25+/Hdl2IJptWNmmJyL4DwWZwZUJbtayT8 - RxGqIV8oQaaaRfrxkTmw4z2G+WuKbC6PYDgOkUSJp6ccc+AgdI4luwPbHh/UCxb0S0aZN5fHTmefMTVv - wfDEHIiBMegMpt8BZUShNoGQTIKQGxA8TTIHMoUPGF1vEOvTWHTcgqeJQahNwLqVQiRRpIdS+XcM2l4h - 1t2DI3WAP7oGoSYE3kwSPQofljcqm/kxjK4SCH0OXSMetItsUC26wZuOVptYhI0eEOuz1YI2gZnKBdpr - 6iR9V2jkKOkBQpeiCryhFFr4eioft16iU7qNho4h1Dc00QOqlRuwpSSa+UawuZXdByIZsPoUaOmWwrUf - owcOozlwZeto7ZXDuXvCfHV/+dGfqqrf44qgu28AAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGHSURBVDhPrdNNS0JREAbgfk3QpkVRCUUSFrUQFJSrEIRZ + pKWULSIlsgJTMD+SpF0tLIS6hhZIKBalkJmkUdqiL1OxTMFoXfCWV5BcdLlRsznDYeY5A8Opq/vvuEje + wen247v7kHnGJumtufvx3ZdiCabVjZpici+A8FmcGVCW7Wsk/EcRqiFfKEGmmkX68ZE5sOM9hvlrimwu + j2A4DpFEiaenHHPgIHSOJbsD2x4f1AsW9EtGmTeXx05nnzE1b8HwxByIgTHoDKbfAWVEoTaBkEyCkBsQ + PE0yBzKFDxhdbxDr01h03IKniUGoTcC6lUIkUaSHUvl3DNpeIdbdgyN1gD+6BqEmBN5MEj0KH5Y3Kpv5 + MYyuEgh9Dl0jHrSLbFAtusGbjlabWISNHhDrs9WCNoGZygXaa+okfVdo5CjpAUKXogq8oRRa+HoqH7de + olO6jYaOIdQ3NNEDqpUbsKUkmvlGsLmV3QciGbD6FGjplsK1H6MHDqM5cGXraO2Vw7l7wnx1f/nRn6qq + 3+OKoLtvAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI + ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9 + HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN + rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K + TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx + oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8 + 7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI + xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX + LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd + KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAeJJREFUOE+lk9FP - klEYxv1TSsecde0f0FpZrTbbal7URVvZuuJCr7pq2WzLNWy0iSHNwtIB9qG0ltLSYRJpBomUgZPMGSyU - 8SmJIOiv7zssCdrAzXd77s77e5/nnPdUVR20HBPfUCWNB4QsI176HB8IL/9iX2y1ubTMwx6utz0nuLhc - GWIfCxT153Z26ep/g9Md4FJLZ2WIZdQnAM4QSJ/BH5Z5aH6NNCljm0hgdSV4MppAPxQXCq5kil31OTx7 - DjLbOeSNNJFYUgBKq31glfpmN76F9QLEZHOJc73ubXQjMreln7Q+DdP/du0/QIsxhmNK5mjTMJ/m43mI - Qcmr5t5MZVlNpFiKrPM1vIbpVVQAOqSckF+ZekUX5UjTS+ouDFLb+CwPUPNupbN7k7WmEDcMX3hgXSpy - IP/OsrCyhXtuA6M0g+bc4wJATqaZ/x7DF4zg8f9g/OMibb355701kERriHL5fojzd2aFjNI0mjPdBUD9 - 6auUqlU/KwBZJV4skWUuvMmYV8b+Ls6jQQ81DfryO3KtfUoA/p3810G37T3VJ3TlARdvukhldjANeemx - z2B8MS0mq80GyySHj98rD2jQOpXbtgrVNprRnO2h5lQX1Sc7leYODh27W3nN9/WZDnroDx0A5wwhdtmt - AAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHiSURBVDhPpZPRT5JRGMb9U0rHnHXtH9BaWa0222pe1EVb + 2briQq+6atlsyzVstIkhzcLSAfahtJbS0mESaQaJlIGTzBkslPEpiSDor+87LAnawM13e+7O+3uf55z3 + VFUdtBwT31AljQeELCNe+hwfCC//Yl9stbm0zMMerrc9J7i4XBliHwsU9ed2dunqf4PTHeBSS2dliGXU + JwDOEEifwR+WeWh+jTQpY5tIYHUleDKaQD8UFwquZIpd9Tk8ew4y2znkjTSRWFIASqt9YJX6Zje+hfUC + xGRziXO97m10IzK3pZ+0Pg3T/3btP0CLMYZjSuZo0zCf5uN5iEHJq+beTGVZTaRYiqzzNbyG6VVUADqk + nJBfmXpFF+VI00vqLgxS2/gsD1DzbqWze5O1phA3DF94YF0qciD/zrKwsoV7bgOjNIPm3OMCQE6mmf8e + wxeM4PH/YPzjIm29+ee9NZBEa4hy+X6I83dmhYzSNJoz3QVA/emrlKpVPysAWSVeLJFlLrzJmFfG/i7O + o0EPNQ368jtyrX1KAP6d/NdBt+091Sd05QEXb7pIZXYwDXnpsc9gfDEtJqvNBsskh4/fKw9o0DqV27YK + 1Taa0ZztoeZUF9UnO5XmDg4du1t5zff1mQ566A8dAOcMIXbZrQAAAABJRU5ErkJggg==