diff --git a/BizHawk.MultiClient/config/FirmwaresConfig.cs b/BizHawk.MultiClient/config/FirmwaresConfig.cs index a8f4e3c99a..a564733569 100644 --- a/BizHawk.MultiClient/config/FirmwaresConfig.cs +++ b/BizHawk.MultiClient/config/FirmwaresConfig.cs @@ -26,7 +26,7 @@ namespace BizHawk.MultiClient public partial class FirmwaresConfig : Form { //friendlier names than the system Ids - static readonly Dictionary systemGroupNames = new Dictionary() + public static readonly Dictionary SystemGroupNames = new Dictionary() { { "NES", "NES" }, { "SNES", "SNES" }, @@ -40,7 +40,7 @@ namespace BizHawk.MultiClient { "C64", "C64" }, }; - + public string TargetSystem = null; private const int idUnsure = 0; private const int idMissing = 1; @@ -82,7 +82,7 @@ namespace BizHawk.MultiClient } //makes sure that the specified SystemId is selected in the list (and that all the firmwares for it are visible) - public void WarpToSystemId(string sysid) + private void WarpToSystemId(string sysid) { bool selectedFirst = false; foreach (ListViewItem lvi in lvFirmwares.Items) @@ -123,7 +123,7 @@ namespace BizHawk.MultiClient //build the groups in the listview as we go: if (!groups.ContainsKey(fr.systemId)) { - lvFirmwares.Groups.Add(fr.systemId, systemGroupNames[fr.systemId]); + lvFirmwares.Groups.Add(fr.systemId, SystemGroupNames[fr.systemId]); var lvg = lvFirmwares.Groups[lvFirmwares.Groups.Count - 1]; groups[fr.systemId] = lvg; } @@ -135,6 +135,11 @@ namespace BizHawk.MultiClient lvFirmwares.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent); lvFirmwares.AutoResizeColumn(3, ColumnHeaderAutoResizeStyle.ColumnContent); + if (TargetSystem != null) + { + WarpToSystemId(TargetSystem); + } + DoScan(); } diff --git a/BizHawk.MultiClient/config/NewPathConfig.Designer.cs b/BizHawk.MultiClient/config/NewPathConfig.Designer.cs index ce02b809c2..9f357e47b4 100644 --- a/BizHawk.MultiClient/config/NewPathConfig.Designer.cs +++ b/BizHawk.MultiClient/config/NewPathConfig.Designer.cs @@ -43,7 +43,7 @@ // OK // this.OK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.OK.Location = new System.Drawing.Point(450, 387); + this.OK.Location = new System.Drawing.Point(450, 411); this.OK.Name = "OK"; this.OK.Size = new System.Drawing.Size(75, 23); this.OK.TabIndex = 0; @@ -55,7 +55,7 @@ // this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Location = new System.Drawing.Point(531, 387); + this.Cancel.Location = new System.Drawing.Point(531, 411); this.Cancel.Name = "Cancel"; this.Cancel.Size = new System.Drawing.Size(75, 23); this.Cancel.TabIndex = 1; @@ -72,13 +72,13 @@ this.PathTabControl.Multiline = true; this.PathTabControl.Name = "PathTabControl"; this.PathTabControl.SelectedIndex = 0; - this.PathTabControl.Size = new System.Drawing.Size(594, 297); + this.PathTabControl.Size = new System.Drawing.Size(594, 321); this.PathTabControl.TabIndex = 2; // // SaveBtn // this.SaveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.SaveBtn.Location = new System.Drawing.Point(12, 387); + this.SaveBtn.Location = new System.Drawing.Point(12, 411); this.SaveBtn.Name = "SaveBtn"; this.SaveBtn.Size = new System.Drawing.Size(75, 23); this.SaveBtn.TabIndex = 3; @@ -154,7 +154,7 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.Cancel; - this.ClientSize = new System.Drawing.Size(618, 422); + this.ClientSize = new System.Drawing.Size(618, 446); this.Controls.Add(this.label1); this.Controls.Add(this.button1); this.Controls.Add(this.RecentForROMs); diff --git a/BizHawk.MultiClient/config/NewPathConfig.cs b/BizHawk.MultiClient/config/NewPathConfig.cs index c7e5a5c972..50e70eed88 100644 --- a/BizHawk.MultiClient/config/NewPathConfig.cs +++ b/BizHawk.MultiClient/config/NewPathConfig.cs @@ -98,15 +98,14 @@ namespace BizHawk.MultiClient systems.Remove(global); systems.Insert(0, global); - //TODO: fix anchoring - foreach (string tab in systems) + foreach (string systemId in systems) { TabPage t = new TabPage() { - Text = tab, - Name = tab, + Text = systemId, + Name = systemId, }; - List paths = Global.Config.PathEntries.Where(x => x.System == tab).OrderBy(x => x.Ordinal).ThenBy(x => x.Type).ToList(); + List paths = Global.Config.PathEntries.Where(x => x.System == systemId).OrderBy(x => x.Ordinal).ThenBy(x => x.Type).ToList(); int _x = 6; int _y = 14; @@ -114,6 +113,7 @@ namespace BizHawk.MultiClient int padding = 5; int button_width = 26; int widget_offset = 85; + int row_height = 30; foreach (var path in paths) { @@ -154,7 +154,34 @@ namespace BizHawk.MultiClient t.Controls.Add(btn); t.Controls.Add(box); - _y += 30; + _y += row_height; + } + + string sys = systemId; + if (systemId == "PCE") //Hack + { + sys = "PCECD"; + } + + bool hasFirmwares = FirmwaresConfig.SystemGroupNames.Any(x => x.Key == sys); + + if (hasFirmwares) + { + Button firmwareButton = new Button() + { + Name = sys, + Text = "&Firmware", + Location = new Point(_x, _y), + Width = 75, + }; + firmwareButton.Click += new System.EventHandler(delegate + { + FirmwaresConfig f = new FirmwaresConfig(); + f.TargetSystem = sys; + f.ShowDialog(); + }); + + t.Controls.Add(firmwareButton); } PathTabControl.TabPages.Add(t);