From ddb6adf5935aaee28b6c97e052b12d843e43cc13 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 7 Sep 2013 20:00:17 +0000 Subject: [PATCH] Progress on new watch editor --- .../tools/Watch/NewRamWatch.Designer.cs | 4 +- .../tools/Watch/NewRamWatch.cs | 33 +- .../tools/Watch/RamWatchNewWatch.Designer.cs | 3 +- BizHawk.MultiClient/tools/Watch/Watch.cs | 6 + .../tools/Watch/WatchEditor.Designer.cs | 159 +--------- .../tools/Watch/WatchEditor.cs | 287 +++++------------- 6 files changed, 122 insertions(+), 370 deletions(-) diff --git a/BizHawk.MultiClient/tools/Watch/NewRamWatch.Designer.cs b/BizHawk.MultiClient/tools/Watch/NewRamWatch.Designer.cs index 14709e4d5b..a4ec7d89a8 100644 --- a/BizHawk.MultiClient/tools/Watch/NewRamWatch.Designer.cs +++ b/BizHawk.MultiClient/tools/Watch/NewRamWatch.Designer.cs @@ -193,13 +193,13 @@ // NewWatchStripButton1 // this.NewWatchStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.NewWatchStripButton1.Enabled = false; this.NewWatchStripButton1.Image = global::BizHawk.MultiClient.Properties.Resources.FindHS; this.NewWatchStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; this.NewWatchStripButton1.Name = "NewWatchStripButton1"; this.NewWatchStripButton1.Size = new System.Drawing.Size(23, 22); this.NewWatchStripButton1.Text = "New Watch"; this.NewWatchStripButton1.ToolTipText = "New Watch"; + this.NewWatchStripButton1.Click += new System.EventHandler(this.newWatchToolStripMenuItem_Click); // // EditWatchToolStripButton1 // @@ -445,12 +445,12 @@ // // newWatchToolStripMenuItem // - this.newWatchToolStripMenuItem.Enabled = false; this.newWatchToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.FindHS; this.newWatchToolStripMenuItem.Name = "newWatchToolStripMenuItem"; this.newWatchToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W))); this.newWatchToolStripMenuItem.Size = new System.Drawing.Size(224, 22); this.newWatchToolStripMenuItem.Text = "&New Watch"; + this.newWatchToolStripMenuItem.Click += new System.EventHandler(this.newWatchToolStripMenuItem_Click); // // editWatchToolStripMenuItem // diff --git a/BizHawk.MultiClient/tools/Watch/NewRamWatch.cs b/BizHawk.MultiClient/tools/Watch/NewRamWatch.cs index e0c9b714ba..6f3a7e09d6 100644 --- a/BizHawk.MultiClient/tools/Watch/NewRamWatch.cs +++ b/BizHawk.MultiClient/tools/Watch/NewRamWatch.cs @@ -167,8 +167,7 @@ namespace BizHawk.MultiClient private void UpdateWatchCount() { - int count = Watches.WatchCount; - WatchCountLabel.Text = count.ToString() + (count == 1 ? " watch" : " watches"); + WatchCountLabel.Text = Watches.WatchCount.ToString() + (Watches.WatchCount == 1 ? " watch" : " watches"); } private void SetPlatformAndMemoryDomainLabel() @@ -214,6 +213,7 @@ namespace BizHawk.MultiClient } DisplayWatches(); + UpdateWatchCount(); Watches.Changes = false; } } @@ -347,6 +347,30 @@ namespace BizHawk.MultiClient DisplayWatches(); } + private Point GetPromptPoint() + { + return PointToScreen(new Point(WatchListView.Location.X, WatchListView.Location.Y)); + } + + private void AddNewWatch() + { + WatchEditor we = new WatchEditor() + { + InitialLocation = GetPromptPoint() + }; + we.SetWatch(Watches.Domain); + Global.Sound.StopSound(); + we.ShowDialog(); + Global.Sound.StartSound(); + + if (we.DialogResult == DialogResult.OK) + { + Watches.Add(we.Watches[0]); + UpdateWatchCount(); + DisplayWatches(); + } + } + #region Winform Events private void NewRamWatch_Load(object sender, EventArgs e) @@ -470,6 +494,11 @@ namespace BizHawk.MultiClient memoryDomainsToolStripMenuItem.DropDownItems.AddRange(ToolHelpers.GenerateMemoryDomainMenuItems(SetMemoryDomain, Watches.Domain.Name)); } + private void newWatchToolStripMenuItem_Click(object sender, EventArgs e) + { + AddNewWatch(); + } + private void removeWatchToolStripMenuItem_Click(object sender, EventArgs e) { ListView.SelectedIndexCollection indexes = WatchListView.SelectedIndices; diff --git a/BizHawk.MultiClient/tools/Watch/RamWatchNewWatch.Designer.cs b/BizHawk.MultiClient/tools/Watch/RamWatchNewWatch.Designer.cs index 0b77ea40b0..08064bc187 100644 --- a/BizHawk.MultiClient/tools/Watch/RamWatchNewWatch.Designer.cs +++ b/BizHawk.MultiClient/tools/Watch/RamWatchNewWatch.Designer.cs @@ -31,7 +31,7 @@ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RamWatchNewWatch)); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.AddressBox = new HexTextBox(); + this.AddressBox = new BizHawk.HexTextBox(); this.NotesBox = new System.Windows.Forms.TextBox(); this.DataTypeGroupBox = new System.Windows.Forms.GroupBox(); this.HexRadio = new System.Windows.Forms.RadioButton(); @@ -245,6 +245,7 @@ // // DomainComboBox // + this.DomainComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.DomainComboBox.FormattingEnabled = true; this.DomainComboBox.Location = new System.Drawing.Point(12, 230); this.DomainComboBox.Name = "DomainComboBox"; diff --git a/BizHawk.MultiClient/tools/Watch/Watch.cs b/BizHawk.MultiClient/tools/Watch/Watch.cs index 430814eb43..87c122e756 100644 --- a/BizHawk.MultiClient/tools/Watch/Watch.cs +++ b/BizHawk.MultiClient/tools/Watch/Watch.cs @@ -693,6 +693,12 @@ namespace BizHawk.MultiClient Changes = true; } + public void AddRange(IList watches) + { + _watchList.AddRange(watches); + Changes = true; + } + public void Remove(Watch watch) { _watchList.Remove(watch); diff --git a/BizHawk.MultiClient/tools/Watch/WatchEditor.Designer.cs b/BizHawk.MultiClient/tools/Watch/WatchEditor.Designer.cs index 427b302496..8d93d0447a 100644 --- a/BizHawk.MultiClient/tools/Watch/WatchEditor.Designer.cs +++ b/BizHawk.MultiClient/tools/Watch/WatchEditor.Designer.cs @@ -32,24 +32,10 @@ this.label2 = new System.Windows.Forms.Label(); this.AddressBox = new BizHawk.HexTextBox(); this.NotesBox = new System.Windows.Forms.TextBox(); - this.DataTypeGroupBox = new System.Windows.Forms.GroupBox(); - this.HexRadio = new System.Windows.Forms.RadioButton(); - this.UnsignedRadio = new System.Windows.Forms.RadioButton(); - this.SignedRadio = new System.Windows.Forms.RadioButton(); - this.DataSizeBox = new System.Windows.Forms.GroupBox(); - this.Byte4Radio = new System.Windows.Forms.RadioButton(); - this.Byte2Radio = new System.Windows.Forms.RadioButton(); - this.Byte1Radio = new System.Windows.Forms.RadioButton(); - this.EndianBox = new System.Windows.Forms.GroupBox(); - this.LittleEndianRadio = new System.Windows.Forms.RadioButton(); - this.BigEndianRadio = new System.Windows.Forms.RadioButton(); this.OK = new System.Windows.Forms.Button(); this.Cancel = new System.Windows.Forms.Button(); this.label6 = new System.Windows.Forms.Label(); this.DomainComboBox = new System.Windows.Forms.ComboBox(); - this.DataTypeGroupBox.SuspendLayout(); - this.DataSizeBox.SuspendLayout(); - this.EndianBox.SuspendLayout(); this.SuspendLayout(); // // label1 @@ -79,7 +65,6 @@ this.AddressBox.Size = new System.Drawing.Size(100, 20); this.AddressBox.TabIndex = 2; this.AddressBox.Text = "00000000"; - this.AddressBox.Leave += new System.EventHandler(this.AddressBox_Leave); // // NotesBox // @@ -89,127 +74,6 @@ this.NotesBox.Size = new System.Drawing.Size(100, 20); this.NotesBox.TabIndex = 3; // - // DataTypeGroupBox - // - this.DataTypeGroupBox.Controls.Add(this.HexRadio); - this.DataTypeGroupBox.Controls.Add(this.UnsignedRadio); - this.DataTypeGroupBox.Controls.Add(this.SignedRadio); - this.DataTypeGroupBox.Location = new System.Drawing.Point(12, 67); - this.DataTypeGroupBox.Name = "DataTypeGroupBox"; - this.DataTypeGroupBox.Size = new System.Drawing.Size(95, 79); - this.DataTypeGroupBox.TabIndex = 4; - this.DataTypeGroupBox.TabStop = false; - this.DataTypeGroupBox.Text = "Data Type"; - // - // HexRadio - // - this.HexRadio.AutoSize = true; - this.HexRadio.Location = new System.Drawing.Point(4, 51); - this.HexRadio.Name = "HexRadio"; - this.HexRadio.Size = new System.Drawing.Size(86, 17); - this.HexRadio.TabIndex = 2; - this.HexRadio.Text = "Hexadecimal"; - this.HexRadio.UseVisualStyleBackColor = true; - // - // UnsignedRadio - // - this.UnsignedRadio.AutoSize = true; - this.UnsignedRadio.Checked = true; - this.UnsignedRadio.Location = new System.Drawing.Point(4, 34); - this.UnsignedRadio.Name = "UnsignedRadio"; - this.UnsignedRadio.Size = new System.Drawing.Size(70, 17); - this.UnsignedRadio.TabIndex = 1; - this.UnsignedRadio.TabStop = true; - this.UnsignedRadio.Text = "Unsigned"; - this.UnsignedRadio.UseVisualStyleBackColor = true; - // - // SignedRadio - // - this.SignedRadio.AutoSize = true; - this.SignedRadio.Location = new System.Drawing.Point(4, 17); - this.SignedRadio.Name = "SignedRadio"; - this.SignedRadio.Size = new System.Drawing.Size(58, 17); - this.SignedRadio.TabIndex = 0; - this.SignedRadio.Text = "Signed"; - this.SignedRadio.UseVisualStyleBackColor = true; - // - // DataSizeBox - // - this.DataSizeBox.Controls.Add(this.Byte4Radio); - this.DataSizeBox.Controls.Add(this.Byte2Radio); - this.DataSizeBox.Controls.Add(this.Byte1Radio); - this.DataSizeBox.Location = new System.Drawing.Point(115, 67); - this.DataSizeBox.Name = "DataSizeBox"; - this.DataSizeBox.Size = new System.Drawing.Size(83, 79); - this.DataSizeBox.TabIndex = 5; - this.DataSizeBox.TabStop = false; - this.DataSizeBox.Text = "Data Size:"; - // - // Byte4Radio - // - this.Byte4Radio.AutoSize = true; - this.Byte4Radio.Location = new System.Drawing.Point(5, 51); - this.Byte4Radio.Name = "Byte4Radio"; - this.Byte4Radio.Size = new System.Drawing.Size(60, 17); - this.Byte4Radio.TabIndex = 2; - this.Byte4Radio.Text = "4 Bytes"; - this.Byte4Radio.UseVisualStyleBackColor = true; - // - // Byte2Radio - // - this.Byte2Radio.AutoSize = true; - this.Byte2Radio.Location = new System.Drawing.Point(5, 34); - this.Byte2Radio.Name = "Byte2Radio"; - this.Byte2Radio.Size = new System.Drawing.Size(60, 17); - this.Byte2Radio.TabIndex = 1; - this.Byte2Radio.Text = "2 Bytes"; - this.Byte2Radio.UseVisualStyleBackColor = true; - // - // Byte1Radio - // - this.Byte1Radio.AutoSize = true; - this.Byte1Radio.Checked = true; - this.Byte1Radio.Location = new System.Drawing.Point(5, 17); - this.Byte1Radio.Name = "Byte1Radio"; - this.Byte1Radio.Size = new System.Drawing.Size(55, 17); - this.Byte1Radio.TabIndex = 0; - this.Byte1Radio.TabStop = true; - this.Byte1Radio.Text = "1 Byte"; - this.Byte1Radio.UseVisualStyleBackColor = true; - // - // EndianBox - // - this.EndianBox.Controls.Add(this.LittleEndianRadio); - this.EndianBox.Controls.Add(this.BigEndianRadio); - this.EndianBox.Location = new System.Drawing.Point(12, 152); - this.EndianBox.Name = "EndianBox"; - this.EndianBox.Size = new System.Drawing.Size(117, 55); - this.EndianBox.TabIndex = 6; - this.EndianBox.TabStop = false; - this.EndianBox.Text = "Endian"; - // - // LittleEndianRadio - // - this.LittleEndianRadio.AutoSize = true; - this.LittleEndianRadio.Location = new System.Drawing.Point(4, 35); - this.LittleEndianRadio.Name = "LittleEndianRadio"; - this.LittleEndianRadio.Size = new System.Drawing.Size(83, 17); - this.LittleEndianRadio.TabIndex = 1; - this.LittleEndianRadio.Text = "Little Endian"; - this.LittleEndianRadio.UseVisualStyleBackColor = true; - // - // BigEndianRadio - // - this.BigEndianRadio.AutoSize = true; - this.BigEndianRadio.Checked = true; - this.BigEndianRadio.Location = new System.Drawing.Point(4, 18); - this.BigEndianRadio.Name = "BigEndianRadio"; - this.BigEndianRadio.Size = new System.Drawing.Size(76, 17); - this.BigEndianRadio.TabIndex = 0; - this.BigEndianRadio.TabStop = true; - this.BigEndianRadio.Text = "Big Endian"; - this.BigEndianRadio.UseVisualStyleBackColor = true; - // // OK // this.OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); @@ -244,6 +108,7 @@ // // DomainComboBox // + this.DomainComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.DomainComboBox.FormattingEnabled = true; this.DomainComboBox.Location = new System.Drawing.Point(12, 230); this.DomainComboBox.Name = "DomainComboBox"; @@ -262,9 +127,6 @@ this.Controls.Add(this.DomainComboBox); this.Controls.Add(this.Cancel); this.Controls.Add(this.OK); - this.Controls.Add(this.EndianBox); - this.Controls.Add(this.DataSizeBox); - this.Controls.Add(this.DataTypeGroupBox); this.Controls.Add(this.NotesBox); this.Controls.Add(this.AddressBox); this.Controls.Add(this.label2); @@ -275,12 +137,6 @@ this.Name = "WatchEditor"; this.Text = "New Watch"; this.Load += new System.EventHandler(this.RamWatchNewWatch_Load); - this.DataTypeGroupBox.ResumeLayout(false); - this.DataTypeGroupBox.PerformLayout(); - this.DataSizeBox.ResumeLayout(false); - this.DataSizeBox.PerformLayout(); - this.EndianBox.ResumeLayout(false); - this.EndianBox.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -291,18 +147,7 @@ private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private HexTextBox AddressBox; - private System.Windows.Forms.TextBox NotesBox; - private System.Windows.Forms.GroupBox DataTypeGroupBox; - private System.Windows.Forms.RadioButton SignedRadio; - private System.Windows.Forms.RadioButton UnsignedRadio; - private System.Windows.Forms.RadioButton HexRadio; - private System.Windows.Forms.GroupBox DataSizeBox; - private System.Windows.Forms.RadioButton Byte1Radio; - private System.Windows.Forms.RadioButton Byte2Radio; - private System.Windows.Forms.RadioButton Byte4Radio; - private System.Windows.Forms.GroupBox EndianBox; - private System.Windows.Forms.RadioButton BigEndianRadio; - private System.Windows.Forms.RadioButton LittleEndianRadio; + private System.Windows.Forms.TextBox NotesBox; private System.Windows.Forms.Button OK; private System.Windows.Forms.Button Cancel; private System.Windows.Forms.Label label6; diff --git a/BizHawk.MultiClient/tools/Watch/WatchEditor.cs b/BizHawk.MultiClient/tools/Watch/WatchEditor.cs index daa7e84a7f..9734e583ac 100644 --- a/BizHawk.MultiClient/tools/Watch/WatchEditor.cs +++ b/BizHawk.MultiClient/tools/Watch/WatchEditor.cs @@ -1,246 +1,117 @@ using System; +using System.Collections.Generic; using System.Drawing; -using System.Windows.Forms; using System.Globalization; +using System.Linq; +using System.Windows.Forms; namespace BizHawk.MultiClient { public partial class WatchEditor : Form { - public Watch_Legacy Watch = new Watch_Legacy(); - public bool SelectionWasMade = false; - public Point location = new Point(); + public enum Mode { New, Duplicate, Edit }; + + private List _watchList = new List(); + private Mode _mode = Mode.New; + private bool _loading = true; + private string _addressFormatStr = "{0:X2}"; - private bool DoNotResetAddress; + public Mode EditorMode { get { return _mode; } } + public List Watches { get { return _watchList; } } + public Point InitialLocation = new Point(0, 0); public WatchEditor() { InitializeComponent(); } - public void SetWatch(Watch_Legacy watch, string message = "New Watch") + private void RamWatchNewWatch_Load(object sender, EventArgs e) { - DoNotResetAddress = true; //Hack for the drop down event changing when initializing the drop down - Watch = new Watch_Legacy(watch); - Text = message; + if (InitialLocation.X > 0 || InitialLocation.Y > 0) + { + Location = InitialLocation; + } + _loading = false; + SetAddressBoxProperties(); + } - NotesBox.Text = watch.Notes; - setTypeRadio(); - setSignedRadio(); - setEndianBox(); - setDomainSelection(); - setAddressBox(); + public void SetWatch(MemoryDomain domain = null, List watches = null, Mode mode = Mode.New) + { + if (watches != null) + { + _watchList.AddRange(watches); + } + SetTitle(); + DoMemoryDomainDropdown(domain ?? Global.Emulator.MainMemory); + } + + private void SetTitle() + { + switch(_mode) + { + default: + case WatchEditor.Mode.New: + Text = "New Watch"; + break; + case WatchEditor.Mode.Edit: + Text = "Edit Watch" + (_watchList.Count > 1 ? "es" : ""); + break; + case WatchEditor.Mode.Duplicate: + Text = "Duplicate Watch"; + break; + } + } + + private void DoMemoryDomainDropdown(MemoryDomain startDomain) + { + DomainComboBox.Items.Clear(); + if (Global.Emulator.MemoryDomains.Count > 0) + { + foreach (MemoryDomain domain in Global.Emulator.MemoryDomains) + { + var result = DomainComboBox.Items.Add(domain.ToString()); + if (domain.Name == startDomain.Name) + { + DomainComboBox.SelectedIndex = result; + } + } + } + } + + private void SetAddressBoxProperties() + { + if (!_loading) + { + var domain = Global.Emulator.MemoryDomains.FirstOrDefault(d => d.Name == DomainComboBox.SelectedItem.ToString()); + if (domain != null) + { + AddressBox.MaxLength = IntHelpers.GetNumDigits(domain.Size - 1); + _addressFormatStr = "{0:X" + AddressBox.MaxLength.ToString() + "}"; + AddressBox.Text = String.Format(_addressFormatStr, 0); + } + } } #region Events - private void RamWatchNewWatch_Load(object sender, EventArgs e) - { - if (location.X > 0 && location.Y > 0) - { - Location = location; - } - - populateMemoryDomainComboBox(); - DoNotResetAddress = false; - } - private void Cancel_Click(object sender, EventArgs e) { - SelectionWasMade = false; + DialogResult = DialogResult.Cancel; Close(); } private void OK_Click(object sender, EventArgs e) { - //Put user settings in the watch file - SelectionWasMade = true; - if (InputValidate.IsValidHexNumber(AddressBox.Text)) - { - Watch.Address = int.Parse(AddressBox.Text, NumberStyles.HexNumber); - } - else - { - MessageBox.Show("Not a valid address (enter a valid Hex number)", "Invalid Address", MessageBoxButtons.OK, MessageBoxIcon.Error); - AddressBox.Focus(); - AddressBox.SelectAll(); + DialogResult = DialogResult.OK; - return; - } - - if (SignedRadio.Checked) - { - Watch.Signed = Watch_Legacy.DISPTYPE.SIGNED; - } - else if (UnsignedRadio.Checked) - { - Watch.Signed = Watch_Legacy.DISPTYPE.UNSIGNED; - } - else if (HexRadio.Checked) - { - Watch.Signed = Watch_Legacy.DISPTYPE.HEX; - } - - if (Byte1Radio.Checked) - { - Watch.Type = Watch_Legacy.TYPE.BYTE; - } - else if (Byte2Radio.Checked) - { - Watch.Type = Watch_Legacy.TYPE.WORD; - } - else if (Byte4Radio.Checked) - { - Watch.Type = Watch_Legacy.TYPE.DWORD; - } - - if (BigEndianRadio.Checked) - { - Watch.BigEndian = true; - } - else if (LittleEndianRadio.Checked) - { - Watch.BigEndian = false; - } - - Watch.Domain = Global.Emulator.MemoryDomains[DomainComboBox.SelectedIndex]; - Watch.Notes = NotesBox.Text; + //TODO Close(); } - private void AddressBox_Leave(object sender, EventArgs e) - { - AddressBox.Text = AddressBox.Text.Replace(" ", ""); - if (!InputValidate.IsValidHexNumber(AddressBox.Text)) - { - AddressBox.Focus(); - AddressBox.SelectAll(); - ToolTip t = new ToolTip(); - t.Show("Must be a valid hexadecimal vaue", AddressBox, 5000); - } - else - { - try - { - Watch.Address = int.Parse(AddressBox.Text, NumberStyles.HexNumber); - AddressBox.Text = String.Format("{0:X" + getNumDigits(Watch.Domain.Size - 1) + "}", Watch.Address); - } - catch - { - //Do nothing - } - } - } - private void DomainComboBox_SelectedIndexChanged(object sender, EventArgs e) { - if (!DoNotResetAddress) - { - Watch.Domain = Global.Emulator.MemoryDomains[DomainComboBox.SelectedIndex]; - Watch.Address = 0; - Watch.Value = 0; - setAddressBox(); - AddressBox.MaxLength = getNumDigits(Watch.Domain.Size); - } - } - - #endregion - - #region Helpers - - private void setTypeRadio() - { - switch (Watch.Type) - { - case Watch_Legacy.TYPE.BYTE: - Byte1Radio.Checked = true; - break; - case Watch_Legacy.TYPE.WORD: - Byte2Radio.Checked = true; - break; - case Watch_Legacy.TYPE.DWORD: - Byte4Radio.Checked = true; - break; - default: - break; - } - } - - private void setEndianBox() - { - if (Watch.BigEndian == true) - { - BigEndianRadio.Checked = true; - } - else - { - LittleEndianRadio.Checked = true; - } - } - - private void setDomainSelection() - { - //Counts should always be the same, but just in case, let's check - int max; - if (Global.Emulator.MemoryDomains.Count < DomainComboBox.Items.Count) - { - max = Global.Emulator.MemoryDomains.Count; - } - else - { - max = DomainComboBox.Items.Count; - } - - for (int i = 0; i < max; i++) - { - if (Watch.Domain.ToString() == DomainComboBox.Items[i].ToString()) - { - DomainComboBox.SelectedIndex = i; - } - } - } - - private void populateMemoryDomainComboBox() - { - DomainComboBox.Items.Clear(); - if (Global.Emulator.MemoryDomains.Count > 0) - { - foreach (MemoryDomain t in Global.Emulator.MemoryDomains) - { - DomainComboBox.Items.Add(t.ToString()); - } - } - setDomainSelection(); - } - - private void setAddressBox() - { - AddressBox.Text = String.Format("{0:X" + getNumDigits(Watch.Domain.Size - 1) + "}", Watch.Address); - } - - private void setSignedRadio() - { - switch (Watch.Signed) - { - case Watch_Legacy.DISPTYPE.SIGNED: - SignedRadio.Checked = true; - break; - case Watch_Legacy.DISPTYPE.UNSIGNED: - UnsignedRadio.Checked = true; - break; - case Watch_Legacy.DISPTYPE.HEX: - HexRadio.Checked = true; - break; - } - } - - private int getNumDigits(Int32 i) - { - if (i < 0x10000) return 4; - if (i < 0x1000000) return 6; - if (i < 0x10000000) return 7; - else return 8; + SetAddressBoxProperties(); } #endregion