Add option to split RAM Watch entries (resolves #1024)
squashed PR #3032
This commit is contained in:
parent
2348e2885d
commit
eb80784d79
|
@ -638,5 +638,8 @@ namespace BizHawk.Client.Common
|
||||||
_ => WatchDisplayType.Separator
|
_ => WatchDisplayType.Separator
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsSplittable => Size is WatchSize.Word or WatchSize.DWord
|
||||||
|
&& Type is WatchDisplayType.Hex or WatchDisplayType.Binary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This enum specify the size of a <see cref="Watch"/>
|
/// This enum specify the size of a <see cref="Watch"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum WatchSize
|
public enum WatchSize : int
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// One byte (8 bits)
|
/// One byte (8 bits)
|
||||||
|
|
|
@ -167,6 +167,7 @@ namespace BizHawk.Client.EmuHawk.Properties
|
||||||
internal static readonly Bitmap Shark = ReadEmbeddedBitmap("Shark");
|
internal static readonly Bitmap Shark = ReadEmbeddedBitmap("Shark");
|
||||||
internal static readonly Icon SmsIcon = ReadEmbeddedIcon("sms-icon");
|
internal static readonly Icon SmsIcon = ReadEmbeddedIcon("sms-icon");
|
||||||
internal static readonly Bitmap Snes9X = ReadEmbeddedBitmap("snes9x");
|
internal static readonly Bitmap Snes9X = ReadEmbeddedBitmap("snes9x");
|
||||||
|
internal static readonly Bitmap Split = ReadEmbeddedBitmap("Split");
|
||||||
internal static readonly Bitmap Square = ReadEmbeddedBitmap("Square");
|
internal static readonly Bitmap Square = ReadEmbeddedBitmap("Square");
|
||||||
internal static readonly Bitmap SSE = ReadEmbeddedBitmap("SSE");
|
internal static readonly Bitmap SSE = ReadEmbeddedBitmap("SSE");
|
||||||
internal static readonly Bitmap SSW = ReadEmbeddedBitmap("SSW");
|
internal static readonly Bitmap SSW = ReadEmbeddedBitmap("SSW");
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 405 B |
|
@ -37,6 +37,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.EditContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.EditContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.RemoveContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.RemoveContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.DuplicateContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.DuplicateContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
|
this.SplitContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.PokeContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.PokeContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.FreezeContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.FreezeContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.UnfreezeAllContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.UnfreezeAllContextMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
|
@ -63,6 +64,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.cutToolStripButton = new System.Windows.Forms.ToolStripButton();
|
this.cutToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
this.clearChangeCountsToolStripButton = new System.Windows.Forms.ToolStripButton();
|
this.clearChangeCountsToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
this.duplicateWatchToolStripButton = new System.Windows.Forms.ToolStripButton();
|
this.duplicateWatchToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.SplitWatchToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
this.PokeAddressToolBarItem = new System.Windows.Forms.ToolStripButton();
|
this.PokeAddressToolBarItem = new System.Windows.Forms.ToolStripButton();
|
||||||
this.FreezeAddressToolBarItem = new System.Windows.Forms.ToolStripButton();
|
this.FreezeAddressToolBarItem = new System.Windows.Forms.ToolStripButton();
|
||||||
this.seperatorToolStripButton = new System.Windows.Forms.ToolStripButton();
|
this.seperatorToolStripButton = new System.Windows.Forms.ToolStripButton();
|
||||||
|
@ -87,6 +89,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.EditWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.EditWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.RemoveWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.RemoveWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.DuplicateWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.DuplicateWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
|
this.SplitWatchMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.PokeAddressMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.PokeAddressMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.FreezeAddressMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.FreezeAddressMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
this.InsertSeparatorMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
this.InsertSeparatorMenuItem = new BizHawk.WinForms.Controls.ToolStripMenuItemEx();
|
||||||
|
@ -123,6 +126,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.EditContextMenuItem,
|
this.EditContextMenuItem,
|
||||||
this.RemoveContextMenuItem,
|
this.RemoveContextMenuItem,
|
||||||
this.DuplicateContextMenuItem,
|
this.DuplicateContextMenuItem,
|
||||||
|
this.SplitContextMenuItem,
|
||||||
this.PokeContextMenuItem,
|
this.PokeContextMenuItem,
|
||||||
this.FreezeContextMenuItem,
|
this.FreezeContextMenuItem,
|
||||||
this.UnfreezeAllContextMenuItem,
|
this.UnfreezeAllContextMenuItem,
|
||||||
|
@ -163,6 +167,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.DuplicateContextMenuItem.Text = "&Duplicate";
|
this.DuplicateContextMenuItem.Text = "&Duplicate";
|
||||||
this.DuplicateContextMenuItem.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
this.DuplicateContextMenuItem.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// SplitContextMenuItem
|
||||||
|
//
|
||||||
|
this.SplitContextMenuItem.ShortcutKeyDisplayString = "Ctrl+L";
|
||||||
|
this.SplitContextMenuItem.Text = "Sp&lit";
|
||||||
|
this.SplitContextMenuItem.Click += new System.EventHandler(this.SplitWatchMenuItem_Click);
|
||||||
|
//
|
||||||
// PokeContextMenuItem
|
// PokeContextMenuItem
|
||||||
//
|
//
|
||||||
this.PokeContextMenuItem.ShortcutKeyDisplayString = "Ctrl+P";
|
this.PokeContextMenuItem.ShortcutKeyDisplayString = "Ctrl+P";
|
||||||
|
@ -264,6 +274,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.cutToolStripButton,
|
this.cutToolStripButton,
|
||||||
this.clearChangeCountsToolStripButton,
|
this.clearChangeCountsToolStripButton,
|
||||||
this.duplicateWatchToolStripButton,
|
this.duplicateWatchToolStripButton,
|
||||||
|
this.SplitWatchToolStripButton,
|
||||||
this.PokeAddressToolBarItem,
|
this.PokeAddressToolBarItem,
|
||||||
this.FreezeAddressToolBarItem,
|
this.FreezeAddressToolBarItem,
|
||||||
this.seperatorToolStripButton,
|
this.seperatorToolStripButton,
|
||||||
|
@ -351,6 +362,15 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.duplicateWatchToolStripButton.Text = "Duplicate Watch";
|
this.duplicateWatchToolStripButton.Text = "Duplicate Watch";
|
||||||
this.duplicateWatchToolStripButton.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
this.duplicateWatchToolStripButton.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// SplitWatchToolStripButton
|
||||||
|
//
|
||||||
|
this.SplitWatchToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.SplitWatchToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||||
|
this.SplitWatchToolStripButton.Name = "SplitWatchToolStripButton";
|
||||||
|
this.SplitWatchToolStripButton.Size = new System.Drawing.Size(23, 22);
|
||||||
|
this.SplitWatchToolStripButton.Text = "Split Watch";
|
||||||
|
this.SplitWatchToolStripButton.Click += new System.EventHandler(this.SplitWatchMenuItem_Click);
|
||||||
|
//
|
||||||
// PokeAddressToolBarItem
|
// PokeAddressToolBarItem
|
||||||
//
|
//
|
||||||
this.PokeAddressToolBarItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
this.PokeAddressToolBarItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
@ -468,6 +488,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.EditWatchMenuItem,
|
this.EditWatchMenuItem,
|
||||||
this.RemoveWatchMenuItem,
|
this.RemoveWatchMenuItem,
|
||||||
this.DuplicateWatchMenuItem,
|
this.DuplicateWatchMenuItem,
|
||||||
|
this.SplitWatchMenuItem,
|
||||||
this.PokeAddressMenuItem,
|
this.PokeAddressMenuItem,
|
||||||
this.FreezeAddressMenuItem,
|
this.FreezeAddressMenuItem,
|
||||||
this.InsertSeparatorMenuItem,
|
this.InsertSeparatorMenuItem,
|
||||||
|
@ -512,6 +533,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.DuplicateWatchMenuItem.Text = "&Duplicate Watch";
|
this.DuplicateWatchMenuItem.Text = "&Duplicate Watch";
|
||||||
this.DuplicateWatchMenuItem.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
this.DuplicateWatchMenuItem.Click += new System.EventHandler(this.DuplicateWatchMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// SplitWatchMenuItem
|
||||||
|
//
|
||||||
|
this.SplitWatchMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L)));
|
||||||
|
this.SplitWatchMenuItem.Text = "Sp&lit Watch";
|
||||||
|
this.SplitWatchMenuItem.Click += new System.EventHandler(this.SplitWatchMenuItem_Click);
|
||||||
|
//
|
||||||
// PokeAddressMenuItem
|
// PokeAddressMenuItem
|
||||||
//
|
//
|
||||||
this.PokeAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P)));
|
this.PokeAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P)));
|
||||||
|
@ -678,6 +705,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx EditWatchMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx EditWatchMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx RemoveWatchMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx RemoveWatchMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx DuplicateWatchMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx DuplicateWatchMenuItem;
|
||||||
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx SplitWatchMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx PokeAddressMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx PokeAddressMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx FreezeAddressMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx FreezeAddressMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx InsertSeparatorMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx InsertSeparatorMenuItem;
|
||||||
|
@ -701,6 +729,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private System.Windows.Forms.ToolStripButton cutToolStripButton;
|
private System.Windows.Forms.ToolStripButton cutToolStripButton;
|
||||||
private System.Windows.Forms.ToolStripButton clearChangeCountsToolStripButton;
|
private System.Windows.Forms.ToolStripButton clearChangeCountsToolStripButton;
|
||||||
private System.Windows.Forms.ToolStripButton duplicateWatchToolStripButton;
|
private System.Windows.Forms.ToolStripButton duplicateWatchToolStripButton;
|
||||||
|
private System.Windows.Forms.ToolStripButton SplitWatchToolStripButton;
|
||||||
private System.Windows.Forms.ToolStripButton PokeAddressToolBarItem;
|
private System.Windows.Forms.ToolStripButton PokeAddressToolBarItem;
|
||||||
private System.Windows.Forms.ToolStripButton FreezeAddressToolBarItem;
|
private System.Windows.Forms.ToolStripButton FreezeAddressToolBarItem;
|
||||||
private System.Windows.Forms.ToolStripButton seperatorToolStripButton;
|
private System.Windows.Forms.ToolStripButton seperatorToolStripButton;
|
||||||
|
@ -714,6 +743,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx EditContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx EditContextMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx RemoveContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx RemoveContextMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx DuplicateContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx DuplicateContextMenuItem;
|
||||||
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx SplitContextMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx PokeContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx PokeContextMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx FreezeContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx FreezeContextMenuItem;
|
||||||
private BizHawk.WinForms.Controls.ToolStripMenuItemEx UnfreezeAllContextMenuItem;
|
private BizHawk.WinForms.Controls.ToolStripMenuItemEx UnfreezeAllContextMenuItem;
|
||||||
|
|
|
@ -40,6 +40,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
EditContextMenuItem.Image = Resources.Cut;
|
EditContextMenuItem.Image = Resources.Cut;
|
||||||
RemoveContextMenuItem.Image = Resources.Delete;
|
RemoveContextMenuItem.Image = Resources.Delete;
|
||||||
DuplicateContextMenuItem.Image = Resources.Duplicate;
|
DuplicateContextMenuItem.Image = Resources.Duplicate;
|
||||||
|
SplitContextMenuItem.Image = Resources.Split;
|
||||||
PokeContextMenuItem.Image = Resources.Poke;
|
PokeContextMenuItem.Image = Resources.Poke;
|
||||||
FreezeContextMenuItem.Image = Resources.Freeze;
|
FreezeContextMenuItem.Image = Resources.Freeze;
|
||||||
UnfreezeAllContextMenuItem.Image = Resources.Unfreeze;
|
UnfreezeAllContextMenuItem.Image = Resources.Unfreeze;
|
||||||
|
@ -57,6 +58,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
cutToolStripButton.Image = Resources.Delete;
|
cutToolStripButton.Image = Resources.Delete;
|
||||||
clearChangeCountsToolStripButton.Image = Resources.Placeholder;
|
clearChangeCountsToolStripButton.Image = Resources.Placeholder;
|
||||||
duplicateWatchToolStripButton.Image = Resources.Duplicate;
|
duplicateWatchToolStripButton.Image = Resources.Duplicate;
|
||||||
|
SplitWatchToolStripButton.Image = Resources.Split;
|
||||||
PokeAddressToolBarItem.Image = Resources.Poke;
|
PokeAddressToolBarItem.Image = Resources.Poke;
|
||||||
FreezeAddressToolBarItem.Image = Resources.Freeze;
|
FreezeAddressToolBarItem.Image = Resources.Freeze;
|
||||||
seperatorToolStripButton.Image = Resources.InsertSeparator;
|
seperatorToolStripButton.Image = Resources.InsertSeparator;
|
||||||
|
@ -70,6 +72,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
EditWatchMenuItem.Image = Resources.Cut;
|
EditWatchMenuItem.Image = Resources.Cut;
|
||||||
RemoveWatchMenuItem.Image = Resources.Delete;
|
RemoveWatchMenuItem.Image = Resources.Delete;
|
||||||
DuplicateWatchMenuItem.Image = Resources.Duplicate;
|
DuplicateWatchMenuItem.Image = Resources.Duplicate;
|
||||||
|
SplitWatchMenuItem.Image = Resources.Split;
|
||||||
PokeAddressMenuItem.Image = Resources.Poke;
|
PokeAddressMenuItem.Image = Resources.Poke;
|
||||||
FreezeAddressMenuItem.Image = Resources.Freeze;
|
FreezeAddressMenuItem.Image = Resources.Freeze;
|
||||||
InsertSeparatorMenuItem.Image = Resources.InsertSeparator;
|
InsertSeparatorMenuItem.Image = Resources.InsertSeparator;
|
||||||
|
@ -695,6 +698,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
EditWatchMenuItem.Enabled =
|
EditWatchMenuItem.Enabled =
|
||||||
DuplicateWatchMenuItem.Enabled =
|
DuplicateWatchMenuItem.Enabled =
|
||||||
|
SplitWatchMenuItem.Enabled =
|
||||||
RemoveWatchMenuItem.Enabled =
|
RemoveWatchMenuItem.Enabled =
|
||||||
MoveUpMenuItem.Enabled =
|
MoveUpMenuItem.Enabled =
|
||||||
MoveDownMenuItem.Enabled =
|
MoveDownMenuItem.Enabled =
|
||||||
|
@ -702,6 +706,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
MoveBottomMenuItem.Enabled =
|
MoveBottomMenuItem.Enabled =
|
||||||
SelectedIndices.Any();
|
SelectedIndices.Any();
|
||||||
|
|
||||||
|
SplitWatchMenuItem.Enabled = MaySplitAllSelected;
|
||||||
|
|
||||||
PokeAddressMenuItem.Enabled =
|
PokeAddressMenuItem.Enabled =
|
||||||
FreezeAddressMenuItem.Enabled =
|
FreezeAddressMenuItem.Enabled =
|
||||||
SelectedIndices.Any() &&
|
SelectedIndices.Any() &&
|
||||||
|
@ -770,6 +776,38 @@ namespace BizHawk.Client.EmuHawk
|
||||||
EditWatch(duplicate: true);
|
EditWatch(duplicate: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static (Watch A, Watch B) SplitWatch(Watch ab)
|
||||||
|
{
|
||||||
|
var newSize = ab.Size switch
|
||||||
|
{
|
||||||
|
WatchSize.DWord => WatchSize.Word,
|
||||||
|
WatchSize.Word => WatchSize.Byte,
|
||||||
|
_ => throw new Exception()
|
||||||
|
};
|
||||||
|
var a = Watch.GenerateWatch(ab.Domain, ab.Address, newSize, ab.Type, ab.BigEndian, ab.Notes);
|
||||||
|
var b = Watch.GenerateWatch(ab.Domain, ab.Address + (int) newSize, newSize, ab.Type, ab.BigEndian, ab.Notes);
|
||||||
|
return ab.BigEndian ? (a, b) : (b, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SplitWatchAt(int index)
|
||||||
|
{
|
||||||
|
var ab = _watches[index];
|
||||||
|
if (!ab.IsSplittable) return;
|
||||||
|
var (a, b) = SplitWatch(ab);
|
||||||
|
_watches[index] = a;
|
||||||
|
_watches.Insert(index + 1, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SplitWatchMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var indices = SelectedIndices.ToList();
|
||||||
|
for (var indexIndex = indices.Count - 1; indexIndex >= 0; indexIndex--) SplitWatchAt(indices[indexIndex]);
|
||||||
|
Changes();
|
||||||
|
UpdateWatchCount();
|
||||||
|
WatchListView.RowCount = _watches.Count;
|
||||||
|
GeneralUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
private void PokeAddressMenuItem_Click(object sender, EventArgs e)
|
private void PokeAddressMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedWatches.Any())
|
if (SelectedWatches.Any())
|
||||||
|
@ -1034,6 +1072,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool MaySplitAllSelected => SelectedIndices.Any() && SelectedWatches.All(static w => w.IsSplittable);
|
||||||
|
|
||||||
private void ListViewContextMenu_Opening(object sender, CancelEventArgs e)
|
private void ListViewContextMenu_Opening(object sender, CancelEventArgs e)
|
||||||
{
|
{
|
||||||
var indexes = WatchListView.SelectedRows.ToList();
|
var indexes = WatchListView.SelectedRows.ToList();
|
||||||
|
@ -1041,6 +1081,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
EditContextMenuItem.Visible =
|
EditContextMenuItem.Visible =
|
||||||
RemoveContextMenuItem.Visible =
|
RemoveContextMenuItem.Visible =
|
||||||
DuplicateContextMenuItem.Visible =
|
DuplicateContextMenuItem.Visible =
|
||||||
|
SplitContextMenuItem.Visible =
|
||||||
PokeContextMenuItem.Visible =
|
PokeContextMenuItem.Visible =
|
||||||
FreezeContextMenuItem.Visible =
|
FreezeContextMenuItem.Visible =
|
||||||
Separator4.Visible =
|
Separator4.Visible =
|
||||||
|
@ -1062,6 +1103,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Debuggable.MemoryCallbacksAvailable() &&
|
Debuggable.MemoryCallbacksAvailable() &&
|
||||||
SelectedWatches.All(w => w.Domain.Name == (MemoryDomains != null ? MemoryDomains.SystemBus.Name : ""));
|
SelectedWatches.All(w => w.Domain.Name == (MemoryDomains != null ? MemoryDomains.SystemBus.Name : ""));
|
||||||
|
|
||||||
|
SplitContextMenuItem.Enabled = MaySplitAllSelected;
|
||||||
|
|
||||||
PokeContextMenuItem.Enabled =
|
PokeContextMenuItem.Enabled =
|
||||||
FreezeContextMenuItem.Visible =
|
FreezeContextMenuItem.Visible =
|
||||||
SelectedIndices.Any()
|
SelectedIndices.Any()
|
||||||
|
|
Loading…
Reference in New Issue