diff --git a/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.Designer.cs b/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.Designer.cs index 714006140d..53b63184be 100644 --- a/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.Designer.cs @@ -37,7 +37,7 @@ // this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.Location = new System.Drawing.Point(212, 227); + this.CancelBtn.Location = new System.Drawing.Point(294, 227); this.CancelBtn.Name = "CancelBtn"; this.CancelBtn.Size = new System.Drawing.Size(60, 23); this.CancelBtn.TabIndex = 5; @@ -48,7 +48,7 @@ // OkBtn // this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.OkBtn.Location = new System.Drawing.Point(146, 227); + this.OkBtn.Location = new System.Drawing.Point(228, 227); this.OkBtn.Name = "OkBtn"; this.OkBtn.Size = new System.Drawing.Size(60, 23); this.OkBtn.TabIndex = 4; @@ -62,11 +62,12 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.CancelBtn; - this.ClientSize = new System.Drawing.Size(284, 262); + this.ClientSize = new System.Drawing.Size(366, 262); this.Controls.Add(this.CancelBtn); this.Controls.Add(this.OkBtn); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "PSXControllerConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Controller Settings"; this.Load += new System.EventHandler(this.PSXControllerConfig_Load); this.ResumeLayout(false); diff --git a/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs b/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs index 26f668d5b4..9fa2a81b9f 100644 --- a/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs +++ b/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs @@ -7,10 +7,11 @@ using System.Linq; using System.Text; using System.Windows.Forms; +using BizHawk.Common; using BizHawk.Emulation.Cores.Sony.PSX; using BizHawk.Client.Common; -using BizHawk.Common; - +using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Common.ReflectionExtensions; namespace BizHawk.Client.EmuHawk { @@ -29,15 +30,28 @@ namespace BizHawk.Client.EmuHawk Controls.Add(new Label { Text = "Controller " + (i + 1), - Location = new Point(15, 15 + (i * 25)) + Location = new Point(15, 19 + (i * 25)), + Width = 85 }); Controls.Add(new CheckBox { Text = "Connected", Name = "Controller" + i, - Location = new Point(135, 15 + (i * 25)), - Checked = psxSettings.Controllers[i].IsConnected + Location = new Point(105, 15 + (i * 25)), + Checked = psxSettings.Controllers[i].IsConnected, + Width = 90 }); + + var dropdown = new ComboBox + { + Name = "Controller" + i, + DropDownStyle = ComboBoxStyle.DropDownList, + Location = new Point(200, 15 + (i * 25)) + }; + + dropdown.PopulateFromEnum(psxSettings.Controllers[i].Type); + + Controls.Add(dropdown); } } @@ -54,6 +68,17 @@ namespace BizHawk.Client.EmuHawk var index = int.Parse(c.Name.Replace("Controller", "")); psxSettings.Controllers[index].IsConnected = c.Checked; }); + + Controls + .OfType() + .OrderBy(c => c.Name) + .ToList() + .ForEach(c => + { + var index = int.Parse(c.Name.Replace("Controller", "")); + psxSettings.Controllers[index].Type = c.SelectedItem.ToString().GetEnumFromDescription(); + }); + GlobalWin.MainForm.PutCoreSyncSettings(psxSettings); DialogResult = DialogResult.OK; Close();