diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.Designer.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.Designer.cs index 64c0f8d5da..53f3881377 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.Designer.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.Designer.cs @@ -107,6 +107,9 @@ namespace BizHawk.Client.EmuHawk this.OriginalMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.WatchesOnScreenMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.WatchListView = new InputRoll(); + this.DoubleClickActionSubMenu = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); + this.DoubleClickToEditMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); + this.DoubleClickToPokeMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx(); this.ListViewContextMenu.SuspendLayout(); this.statusStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout(); @@ -600,7 +603,8 @@ namespace BizHawk.Client.EmuHawk // this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DefinePreviousValueSubMenu, - this.WatchesOnScreenMenuItem}); + this.WatchesOnScreenMenuItem, + this.DoubleClickActionSubMenu}); this.OptionsSubMenu.Text = "&Settings"; this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.SettingsSubMenu_DropDownOpened); // @@ -659,6 +663,24 @@ namespace BizHawk.Client.EmuHawk this.WatchListView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.WatchListView_KeyDown); this.WatchListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.WatchListView_MouseDoubleClick); // + // DoubleClickActionSubMenu + // + this.DoubleClickActionSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.DoubleClickToEditMenuItem, + this.DoubleClickToPokeMenuItem}); + this.DoubleClickActionSubMenu.Text = "On Double-Clicking a Watch"; + this.DoubleClickActionSubMenu.DropDownOpening += new System.EventHandler(this.DoubleClickActionSubMenu_DropDownOpening); + // + // DoubleClickToEditMenuItem + // + this.DoubleClickToEditMenuItem.Text = "Edit Watch"; + this.DoubleClickToEditMenuItem.Click += new System.EventHandler(this.DoubleClickToEditMenuItem_Click); + // + // DoubleClickToPokeMenuItem + // + this.DoubleClickToPokeMenuItem.Text = "Poke Address"; + this.DoubleClickToPokeMenuItem.Click += new System.EventHandler(this.DoubleClickToPokeMenuItem_Click); + // // RamWatch // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -765,5 +787,8 @@ namespace BizHawk.Client.EmuHawk private BizHawk.WinForms.Controls.ToolStripMenuItemEx MoveBottomMenuItem; private BizHawk.WinForms.Controls.ToolStripMenuItemEx MoveTopContextMenuItem; private BizHawk.WinForms.Controls.ToolStripMenuItemEx MoveBottomContextMenuItem; + private ToolStripMenuItemEx DoubleClickActionSubMenu; + private ToolStripMenuItemEx DoubleClickToEditMenuItem; + private ToolStripMenuItemEx DoubleClickToPokeMenuItem; } } diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index d2f6370e9c..3f39a3e7b8 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -179,6 +179,8 @@ namespace BizHawk.Client.EmuHawk } public List Columns { get; set; } + + public bool DoubleClickToPoke { get; set; } = true; } private IEnumerable SelectedIndices => WatchListView.SelectedRows; @@ -433,6 +435,21 @@ namespace BizHawk.Client.EmuHawk GeneralUpdate(); } + /// + /// Open Edit or Poke window for selected watch depending on user setting + /// + private void OpenWatch() + { + if (Settings.DoubleClickToPoke) + { + PokeAddress(); + } + else + { + EditWatch(); + } + } + private void EditWatch(bool duplicate = false) { var indexes = SelectedIndices.ToList(); @@ -835,6 +852,11 @@ namespace BizHawk.Client.EmuHawk } private void PokeAddressMenuItem_Click(object sender, EventArgs e) + { + PokeAddress(); + } + + private void PokeAddress() { if (SelectedWatches.Any()) { @@ -1036,6 +1058,22 @@ namespace BizHawk.Client.EmuHawk } } + private void DoubleClickActionSubMenu_DropDownOpening(object sender, EventArgs e) + { + DoubleClickToEditMenuItem.Checked = !Settings.DoubleClickToPoke; + DoubleClickToPokeMenuItem.Checked = Settings.DoubleClickToPoke; + } + + private void DoubleClickToEditMenuItem_Click(object sender, EventArgs e) + { + Settings.DoubleClickToPoke = false; + } + + private void DoubleClickToPokeMenuItem_Click(object sender, EventArgs e) + { + Settings.DoubleClickToPoke = true; + } + [RestoreDefaults] private void RestoreDefaultsMenuItem() { @@ -1204,7 +1242,7 @@ namespace BizHawk.Client.EmuHawk } else if (e.IsPressed(Keys.Enter)) { - EditWatch(); + OpenWatch(); } } @@ -1217,7 +1255,7 @@ namespace BizHawk.Client.EmuHawk private void WatchListView_MouseDoubleClick(object sender, MouseEventArgs e) { - EditWatch(); + OpenWatch(); } private void WatchListView_ColumnClick(object sender, InputRoll.ColumnClickEventArgs e)