Minor refactor to debug menu
This commit is contained in:
parent
5a913ac2a4
commit
c490d8baa2
|
@ -36,11 +36,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private sealed class DebugVSystemMenuItem : ToolStripMenuItemEx
|
private sealed class DebugVSystemMenuItem : ToolStripMenuItemEx
|
||||||
{
|
{
|
||||||
public readonly IReadOnlyCollection<string> ExtraSysIDs;
|
public readonly IReadOnlyCollection<string> SysIDs;
|
||||||
|
|
||||||
public DebugVSystemMenuItem(string labelText, IReadOnlyCollection<string>? extraSysIDs = null)
|
public DebugVSystemMenuItem(string labelText, params string[] extraSysIDs)
|
||||||
{
|
{
|
||||||
ExtraSysIDs = extraSysIDs ?? Array.Empty<string>();
|
SysIDs = new[] { labelText }.Concat(extraSysIDs).ToHashSet();
|
||||||
Text = labelText;
|
Text = labelText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Text = "Firmware",
|
Text = "Firmware",
|
||||||
},
|
},
|
||||||
new ToolStripSeparatorEx(),
|
new ToolStripSeparatorEx(),
|
||||||
new DebugVSystemMenuItem("GB")
|
new DebugVSystemMenuItem(VSystemID.Raw.GB, VSystemID.Raw.GBC)
|
||||||
{
|
{
|
||||||
DropDownItems =
|
DropDownItems =
|
||||||
{
|
{
|
||||||
|
@ -199,7 +199,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new DebugVSystemMenuItem("GBA")
|
new DebugVSystemMenuItem(VSystemID.Raw.GBA)
|
||||||
{
|
{
|
||||||
DropDownItems =
|
DropDownItems =
|
||||||
{
|
{
|
||||||
|
@ -211,7 +211,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
new DebugVSystemMenuItem("N64")
|
new DebugVSystemMenuItem(VSystemID.Raw.N64)
|
||||||
{
|
{
|
||||||
DropDownItems =
|
DropDownItems =
|
||||||
{
|
{
|
||||||
|
@ -228,7 +228,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
var coreName = Emulator.Attributes().CoreName;
|
var coreName = Emulator.Attributes().CoreName;
|
||||||
foreach (var item in ((ToolStripMenuItemEx) ddoSender).DropDownItems.OfType<DebugVSystemMenuItem>())
|
foreach (var item in ((ToolStripMenuItemEx) ddoSender).DropDownItems.OfType<DebugVSystemMenuItem>())
|
||||||
{
|
{
|
||||||
var groupEnabled = item.Text == sysID || item.ExtraSysIDs.Contains(sysID);
|
var groupEnabled = item.SysIDs.Contains(sysID);
|
||||||
foreach (var child in item.DropDownItems.Cast<DebugVSystemChildItem>().Where(static child => child.RequiresLoadedRom)) // RequiresLoadedRom == false => leave Enabled as default true
|
foreach (var child in item.DropDownItems.Cast<DebugVSystemChildItem>().Where(static child => child.RequiresLoadedRom)) // RequiresLoadedRom == false => leave Enabled as default true
|
||||||
{
|
{
|
||||||
child.Enabled = groupEnabled && (child.RequiresCore is null || child.RequiresCore == coreName);
|
child.Enabled = groupEnabled && (child.RequiresCore is null || child.RequiresCore == coreName);
|
||||||
|
|
Loading…
Reference in New Issue