using System; using System.Windows.Forms; using BizHawk.Emulation.Cores.Nintendo.SNES; using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { public partial class SNESOptions : Form { private SNESOptions() { InitializeComponent(); } private bool _suppressDoubleSize; private bool _userDoubleSizeOption; public static void DoSettingsDialog(IWin32Window owner) { var s = ((LibsnesCore)Global.Emulator).GetSettings(); var ss = ((LibsnesCore)Global.Emulator).GetSyncSettings(); var dlg = new SNESOptions { AlwaysDoubleSize = s.AlwaysDoubleSize, CropSGBFrame = s.CropSGBFrame, ShowObj1 = s.ShowOBJ_0, ShowObj2 = s.ShowOBJ_1, ShowObj3 = s.ShowOBJ_2, ShowObj4 = s.ShowOBJ_3, ShowBg1 = s.ShowBG1_0, ShowBg2 = s.ShowBG2_0, ShowBg3 = s.ShowBG3_0, ShowBg4 = s.ShowBG4_0 }; var result = dlg.ShowDialog(owner); if (result == DialogResult.OK) { s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; s.CropSGBFrame = dlg.CropSGBFrame; s.ShowOBJ_0 = dlg.ShowObj1; s.ShowOBJ_1 = dlg.ShowObj2; s.ShowOBJ_2 = dlg.ShowObj3; s.ShowOBJ_3 = dlg.ShowObj4; s.ShowBG1_0 = s.ShowBG1_1 = dlg.ShowBg1; s.ShowBG2_0 = s.ShowBG2_1 = dlg.ShowBg2; s.ShowBG3_0 = s.ShowBG3_1 = dlg.ShowBg3; s.ShowBG4_0 = s.ShowBG4_1 = dlg.ShowBg4; GlobalWin.MainForm.PutCoreSettings(s); GlobalWin.MainForm.PutCoreSyncSettings(ss); } } private bool AlwaysDoubleSize { get { return _userDoubleSizeOption; } set { _userDoubleSizeOption = value; RefreshDoubleSizeOption(); } } private bool CropSGBFrame { get { return cbCropSGBFrame.Checked; } set { cbCropSGBFrame.Checked = value; } } private bool ShowObj1 { get { return Obj1Checkbox.Checked; } set { Obj1Checkbox.Checked = value; } } private bool ShowObj2 { get { return Obj2Checkbox.Checked; } set { Obj2Checkbox.Checked = value; } } private bool ShowObj3 { get { return Obj3Checkbox.Checked; } set { Obj3Checkbox.Checked = value; } } private bool ShowObj4 { get { return Obj4Checkbox.Checked; } set { Obj4Checkbox.Checked = value; } } private bool ShowBg1 { get { return Bg1Checkbox.Checked; } set { Bg1Checkbox.Checked = value; } } private bool ShowBg2 { get { return Bg2Checkbox.Checked; } set { Bg2Checkbox.Checked = value; } } private bool ShowBg3 { get { return Bg3Checkbox.Checked; } set { Bg3Checkbox.Checked = value; } } private bool ShowBg4 { get { return Bg4Checkbox.Checked; } set { Bg4Checkbox.Checked = value; } } private void RefreshDoubleSizeOption() { _suppressDoubleSize = true; cbDoubleSize.Checked = !cbDoubleSize.Enabled || _userDoubleSizeOption; _suppressDoubleSize = false; } private void CbDoubleSize_CheckedChanged(object sender, EventArgs e) { if (_suppressDoubleSize) { return; } _userDoubleSizeOption = cbDoubleSize.Checked; } private void BtnOk_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; Close(); } private void BtnCancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } } }