make recent n64 plugin UI logic I added be more clever

This commit is contained in:
adelikat 2014-05-14 22:04:47 +00:00
parent bec12f248a
commit bf2ba0841a
3 changed files with 32 additions and 13 deletions

View File

@ -439,6 +439,7 @@
<Compile Include="DisplayManager\RenderTargetFrugalizer.cs" />
<Compile Include="DisplayManager\SwappableDisplaySurfaceSet.cs" />
<Compile Include="DisplayManager\TextureFrugalizer.cs" />
<Compile Include="Extensions\ControlExtensions.cs" />
<Compile Include="GlobalWin.cs" />
<Compile Include="Input\GamePad.cs" Condition=" '$(OS)' == 'Windows_NT' " />
<Compile Include="Input\GamePad360.cs" />

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BizHawk.Common;
namespace BizHawk.Client.EmuHawk.ControlExtensions
{
public static class ControlExtensions
{
public static void PopulateFromEnum<T>(this ComboBox box, object enumVal)
where T : struct, IConvertible
{
if (!typeof(T).IsEnum)
{
throw new ArgumentException("T must be an enumerated type");
}
box.Items.Clear();
box.Items.AddRange(
EnumHelper.GetDescriptions<T>()
.ToArray());
box.SelectedItem = EnumHelper.GetDescription(enumVal);
}
}
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using BizHawk.Client.EmuHawk.ControlExtensions;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Nintendo.N64;
using BizHawk.Common;
@ -308,19 +309,8 @@ namespace BizHawk.Client.EmuHawk
{
var s = GetS();
CoreTypeDropdown.Items.Clear();
CoreTypeDropdown.Items.AddRange(
EnumHelper.GetDescriptions<N64SyncSettings.CORETYPE>()
.ToArray());
CoreTypeDropdown.SelectedItem = EnumHelper.GetDescription(s.CoreType);
RspTypeDropdown.Items.Clear();
RspTypeDropdown.Items.AddRange(
EnumHelper.GetDescriptions<N64SyncSettings.RSPTYPE>()
.ToArray());
RspTypeDropdown.SelectedItem = EnumHelper.GetDescription(s.RspType);
CoreTypeDropdown.PopulateFromEnum<N64SyncSettings.CORETYPE>(s.CoreType);
RspTypeDropdown.PopulateFromEnum<N64SyncSettings.RSPTYPE>(s.RspType);
//Load Variables
//Global