mirror of
https://github.com/libretro/Mesen.git
synced 2025-02-22 01:20:55 +00:00
Debugger: Fixed memory type dropdowns not updating when changing game
This commit is contained in:
parent
37c633da14
commit
bf731afc3c
@ -26,22 +26,39 @@ namespace Mesen.GUI.Debugger.Controls
|
||||
|
||||
bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
|
||||
if(!designMode) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.InternalRam));
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.PrgRom) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.PrgRom));
|
||||
}
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.WorkRam) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.WorkRam));
|
||||
}
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.SaveRam) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.SaveRam));
|
||||
}
|
||||
|
||||
cboMemoryType.SelectedIndex = 0;
|
||||
InitMemoryTypeDropdown();
|
||||
cboSort.SelectedIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void InitMemoryTypeDropdown()
|
||||
{
|
||||
cboMemoryType.SelectedIndexChanged -= cboMemoryType_SelectedIndexChanged;
|
||||
|
||||
AddressType originalValue = cboMemoryType.GetEnumValue<AddressType>();
|
||||
|
||||
cboMemoryType.BeginUpdate();
|
||||
cboMemoryType.Items.Clear();
|
||||
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.InternalRam));
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.PrgRom) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.PrgRom));
|
||||
}
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.WorkRam) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.WorkRam));
|
||||
}
|
||||
if(InteropEmu.DebugGetMemorySize(DebugMemoryType.SaveRam) > 0) {
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(AddressType.SaveRam));
|
||||
}
|
||||
|
||||
cboMemoryType.SelectedIndex = 0;
|
||||
cboMemoryType.SetEnumValue(originalValue);
|
||||
cboMemoryType.SelectedIndexChanged += cboMemoryType_SelectedIndexChanged;
|
||||
cboMemoryType.EndUpdate();
|
||||
|
||||
UpdateMemoryType();
|
||||
}
|
||||
|
||||
public Font BaseFont { get { return ctrlScrollableTextbox.BaseFont; } set { ctrlScrollableTextbox.BaseFont = value; } }
|
||||
public int TextZoom { get { return ctrlScrollableTextbox.TextZoom; } set { ctrlScrollableTextbox.TextZoom = value; } }
|
||||
|
||||
@ -124,6 +141,11 @@ namespace Mesen.GUI.Debugger.Controls
|
||||
}
|
||||
|
||||
private void cboMemoryType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateMemoryType();
|
||||
}
|
||||
|
||||
private void UpdateMemoryType()
|
||||
{
|
||||
_memoryType = cboMemoryType.GetEnumValue<AddressType>();
|
||||
RefreshData();
|
||||
|
1
GUI.NET/Debugger/frmMemoryViewer.Designer.cs
generated
1
GUI.NET/Debugger/frmMemoryViewer.Designer.cs
generated
@ -161,7 +161,6 @@
|
||||
this.cboMemoryType.Name = "cboMemoryType";
|
||||
this.cboMemoryType.Size = new System.Drawing.Size(121, 21);
|
||||
this.cboMemoryType.TabIndex = 1;
|
||||
this.cboMemoryType.SelectedIndexChanged += new System.EventHandler(this.cboMemoryType_SelectedIndexChanged);
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
|
@ -123,6 +123,13 @@ namespace Mesen.GUI.Debugger
|
||||
|
||||
private void InitMemoryTypeDropdown()
|
||||
{
|
||||
cboMemoryType.SelectedIndexChanged -= this.cboMemoryType_SelectedIndexChanged;
|
||||
|
||||
DebugMemoryType originalValue = cboMemoryType.GetEnumValue<DebugMemoryType>();
|
||||
|
||||
cboMemoryType.BeginUpdate();
|
||||
cboMemoryType.Items.Clear();
|
||||
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(DebugMemoryType.CpuMemory));
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(DebugMemoryType.PpuMemory));
|
||||
cboMemoryType.Items.Add("-");
|
||||
@ -153,7 +160,12 @@ namespace Mesen.GUI.Debugger
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(DebugMemoryType.SpriteMemory));
|
||||
cboMemoryType.Items.Add(ResourceHelper.GetEnumText(DebugMemoryType.SecondarySpriteMemory));
|
||||
|
||||
this.cboMemoryType.SelectedIndex = 0;
|
||||
cboMemoryType.SelectedIndex = 0;
|
||||
cboMemoryType.SetEnumValue(originalValue);
|
||||
cboMemoryType.SelectedIndexChanged += this.cboMemoryType_SelectedIndexChanged;
|
||||
|
||||
cboMemoryType.EndUpdate();
|
||||
UpdateMemoryType();
|
||||
}
|
||||
|
||||
private void UpdateFlags()
|
||||
@ -199,6 +211,10 @@ namespace Mesen.GUI.Debugger
|
||||
|
||||
case InteropEmu.ConsoleNotificationType.GameReset:
|
||||
case InteropEmu.ConsoleNotificationType.GameLoaded:
|
||||
this.BeginInvoke((Action)(() => {
|
||||
this.InitMemoryTypeDropdown();
|
||||
ctrlMemoryAccessCounters.InitMemoryTypeDropdown();
|
||||
}));
|
||||
this.UpdateFlags();
|
||||
break;
|
||||
|
||||
@ -228,6 +244,11 @@ namespace Mesen.GUI.Debugger
|
||||
}
|
||||
|
||||
private void cboMemoryType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
UpdateMemoryType();
|
||||
}
|
||||
|
||||
private void UpdateMemoryType()
|
||||
{
|
||||
this._memoryType = this.cboMemoryType.GetEnumValue<DebugMemoryType>();
|
||||
this.UpdateImportButton();
|
||||
|
@ -160,6 +160,10 @@ namespace Mesen.GUI.Forms
|
||||
|
||||
public static T GetEnumValue<T>(this ComboBox cbo)
|
||||
{
|
||||
if(cbo.SelectedItem == null) {
|
||||
return default(T);
|
||||
}
|
||||
|
||||
foreach(Enum value in Enum.GetValues(typeof(T))) {
|
||||
if(ResourceHelper.GetEnumText(value) == cbo.SelectedItem.ToString()) {
|
||||
return (T)(object)value;
|
||||
|
Loading…
x
Reference in New Issue
Block a user