diff --git a/BizHawk.Emulation/Database/FirmwareDatabase.cs b/BizHawk.Emulation/Database/FirmwareDatabase.cs
index 82ef8a84a6..25379a67ea 100644
--- a/BizHawk.Emulation/Database/FirmwareDatabase.cs
+++ b/BizHawk.Emulation/Database/FirmwareDatabase.cs
@@ -33,7 +33,6 @@ namespace BizHawk
FirmwareAndOption("300C20DF6731A33952DED8C436F7F186D25D3492", "GBA", "Bios", "gbabios.rom", "Bios");
//FirmwareAndOption("24F67BDEA115A2C847C8813A262502EE1607B7DF", "NDS", "Bios_Arm7", "biosnds7.rom", "ARM7 Bios");
//FirmwareAndOption("BFAAC75F101C135E32E2AAF541DE6B1BE4C8C62D", "NDS", "Bios_Arm9", "biosnds9.rom", "ARM9 Bios");
- FirmwareAndOption("EF66DAD3E7B2B6A86F326765E7DFD7D1A308AD8F", "TI83", "Rom", "ti83_1.rom", "TI-83 Rom");
FirmwareAndOption("5A65B922B562CB1F57DAB51B73151283F0E20C7A", "INTV", "EROM", "erom.bin", "Executive Rom");
FirmwareAndOption("F9608BB4AD1CFE3640D02844C7AD8E0BCD974917", "INTV", "GROM", "grom.bin", "Graphics Rom");
FirmwareAndOption("1D503E56DF85A62FEE696E7618DC5B4E781DF1BB", "C64", "Kernal", "c64-kernal.bin", "Kernal Rom");
@@ -61,6 +60,18 @@ namespace BizHawk
Option("SAT", "E", ss_100a_ue);
Option("SAT", "E", ss_100_j);
Option("SAT", "E", ss_101_j);
+
+ var ti83_1unk = File("EF66DAD3E7B2B6A86F326765E7DFD7D1A308AD8F", "ti83_1.rom", "TI-83 Rom v1.??");
+ var ti83_102 = File("oops:4EDF419CAA9FB0542B4FED8BCD8B54C2", "ti83_102.rom", "TI-83 Rom v1.02");
+ var ti83_103 = File("oops:28308683219BC1242B3A423F05061E69 ", "ti83_103.rom", "TI-83 Rom v1.03");
+ var ti83_104 = File("oops:02D48EAAD98A74619E2F68DE23AC212F ", "ti83_104.rom", "TI-83 Rom v1.04");
+ var ti83_107 = File("oops:D4448D09BBFDE687C04F9E3310E023AB ", "ti83_107.rom", "TI-83 Rom v1.07");
+ Firmware("TI83", "Rom", "TI-83 Rom");
+ Option("TI83", "Rom", ti83_1unk);
+ Option("TI83", "Rom", ti83_102);
+ Option("TI83", "Rom", ti83_103);
+ Option("TI83", "Rom", ti83_104);
+ Option("TI83", "Rom", ti83_107);
}
//adds a defined firmware ID to the database
diff --git a/BizHawk.MultiClient/BizHawk.MultiClient.csproj b/BizHawk.MultiClient/BizHawk.MultiClient.csproj
index 10ba7df166..8855839b56 100644
--- a/BizHawk.MultiClient/BizHawk.MultiClient.csproj
+++ b/BizHawk.MultiClient/BizHawk.MultiClient.csproj
@@ -229,6 +229,12 @@
FirmwaresConfig.cs
+
+ Form
+
+
+ FirmwaresConfigInfo.cs
+
Form
@@ -807,6 +813,9 @@
FirmwaresConfig.cs
+
+ FirmwaresConfigInfo.cs
+
GifAnimator.cs
diff --git a/BizHawk.MultiClient/CustomControls/Util.cs b/BizHawk.MultiClient/CustomControls/Util.cs
index 5ecd9dac91..d3a7f8acf0 100644
--- a/BizHawk.MultiClient/CustomControls/Util.cs
+++ b/BizHawk.MultiClient/CustomControls/Util.cs
@@ -65,6 +65,9 @@ namespace BizHawk
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, IntPtr wParam, ref HDITEM lParam);
+ ///
+ /// Dumps the contents of the ListView into a tab separated list of lines
+ ///
public static string CopyItemsAsText(this ListView listViewControl)
{
ListView.SelectedIndexCollection indexes = listViewControl.SelectedIndices;
diff --git a/BizHawk.MultiClient/config/FirmwaresConfig.Designer.cs b/BizHawk.MultiClient/config/FirmwaresConfig.Designer.cs
index 6613caeea8..46fd2fe017 100644
--- a/BizHawk.MultiClient/config/FirmwaresConfig.Designer.cs
+++ b/BizHawk.MultiClient/config/FirmwaresConfig.Designer.cs
@@ -34,26 +34,28 @@
this.lvFirmwares = new System.Windows.Forms.ListView();
this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.lvFirmwaresContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.tsmiSetCustomization = new System.Windows.Forms.ToolStripMenuItem();
+ this.tsmiClearCustomization = new System.Windows.Forms.ToolStripMenuItem();
+ this.tsmiInfo = new System.Windows.Forms.ToolStripMenuItem();
this.panel1 = new System.Windows.Forms.Panel();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.toolStrip1 = new ToolStripEx();
this.tbbGroup = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.tbbScan = new System.Windows.Forms.ToolStripButton();
this.tbbOrganize = new System.Windows.Forms.ToolStripButton();
- this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
- this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
- this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.lvFirmwaresContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.tsmiClearCustomization = new System.Windows.Forms.ToolStripMenuItem();
- this.tsmiSetCustomization = new System.Windows.Forms.ToolStripMenuItem();
- this.panel1.SuspendLayout();
- this.toolStrip1.SuspendLayout();
- this.tableLayoutPanel1.SuspendLayout();
+ this.tsmiCopy = new System.Windows.Forms.ToolStripMenuItem();
this.lvFirmwaresContextMenuStrip.SuspendLayout();
+ this.panel1.SuspendLayout();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.toolStrip1.SuspendLayout();
this.SuspendLayout();
//
// imageList1
@@ -96,11 +98,62 @@
//
this.columnHeader1.Text = "System";
//
+ // columnHeader6
+ //
+ this.columnHeader6.Text = "Id";
+ //
// columnHeader4
//
this.columnHeader4.Text = "Description";
this.columnHeader4.Width = 165;
//
+ // columnHeader2
+ //
+ this.columnHeader2.Text = "Resolved With";
+ this.columnHeader2.Width = 116;
+ //
+ // columnHeader3
+ //
+ this.columnHeader3.Text = "Location";
+ this.columnHeader3.Width = 252;
+ //
+ // columnHeader7
+ //
+ this.columnHeader7.Text = "Hash";
+ this.columnHeader7.Width = 340;
+ //
+ // lvFirmwaresContextMenuStrip
+ //
+ this.lvFirmwaresContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.tsmiSetCustomization,
+ this.tsmiClearCustomization,
+ this.tsmiInfo,
+ this.tsmiCopy});
+ this.lvFirmwaresContextMenuStrip.Name = "lvFirmwaresContextMenuStrip";
+ this.lvFirmwaresContextMenuStrip.Size = new System.Drawing.Size(170, 114);
+ this.lvFirmwaresContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.lvFirmwaresContextMenuStrip_Opening);
+ //
+ // tsmiSetCustomization
+ //
+ this.tsmiSetCustomization.Name = "tsmiSetCustomization";
+ this.tsmiSetCustomization.Size = new System.Drawing.Size(169, 22);
+ this.tsmiSetCustomization.Text = "&Set Customization";
+ this.tsmiSetCustomization.Click += new System.EventHandler(this.tsmiClearCustomization_Click);
+ //
+ // tsmiClearCustomization
+ //
+ this.tsmiClearCustomization.Name = "tsmiClearCustomization";
+ this.tsmiClearCustomization.Size = new System.Drawing.Size(169, 22);
+ this.tsmiClearCustomization.Text = "C&lear Customization";
+ this.tsmiClearCustomization.Click += new System.EventHandler(this.tsmiClearCustomization_Click);
+ //
+ // tsmiInfo
+ //
+ this.tsmiInfo.Name = "tsmiInfo";
+ this.tsmiInfo.Size = new System.Drawing.Size(169, 22);
+ this.tsmiInfo.Text = "&Info";
+ this.tsmiInfo.Click += new System.EventHandler(this.tsmiInfo_Click);
+ //
// panel1
//
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
@@ -112,8 +165,24 @@
this.panel1.Size = new System.Drawing.Size(773, 472);
this.panel1.TabIndex = 24;
//
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.ColumnCount = 2;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
+ this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 2;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(779, 478);
+ this.tableLayoutPanel1.TabIndex = 25;
+ //
// toolStrip1
//
+ this.toolStrip1.ClickThrough = true;
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tbbGroup,
this.toolStripSeparator2,
@@ -163,61 +232,12 @@
this.tbbOrganize.Text = "Organize";
this.tbbOrganize.Click += new System.EventHandler(this.tbbOrganize_Click);
//
- // tableLayoutPanel1
+ // tsmiCopy
//
- this.tableLayoutPanel1.ColumnCount = 2;
- this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
- this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
- this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
- this.tableLayoutPanel1.Name = "tableLayoutPanel1";
- this.tableLayoutPanel1.RowCount = 2;
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
- this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
- this.tableLayoutPanel1.Size = new System.Drawing.Size(779, 478);
- this.tableLayoutPanel1.TabIndex = 25;
- //
- // columnHeader6
- //
- this.columnHeader6.Text = "Id";
- //
- // columnHeader2
- //
- this.columnHeader2.Text = "Resolved With";
- this.columnHeader2.Width = 116;
- //
- // columnHeader7
- //
- this.columnHeader7.Text = "Hash";
- this.columnHeader7.Width = 340;
- //
- // columnHeader3
- //
- this.columnHeader3.Text = "Location";
- this.columnHeader3.Width = 252;
- //
- // lvFirmwaresContextMenuStrip
- //
- this.lvFirmwaresContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.tsmiSetCustomization,
- this.tsmiClearCustomization});
- this.lvFirmwaresContextMenuStrip.Name = "lvFirmwaresContextMenuStrip";
- this.lvFirmwaresContextMenuStrip.Size = new System.Drawing.Size(170, 48);
- //
- // tsmiClearCustomization
- //
- this.tsmiClearCustomization.Name = "tsmiClearCustomization";
- this.tsmiClearCustomization.Size = new System.Drawing.Size(169, 22);
- this.tsmiClearCustomization.Text = "&Clear Customization";
- this.tsmiClearCustomization.Click += new System.EventHandler(this.tsmiClearCustomization_Click);
- //
- // tsmiSetCustomization
- //
- this.tsmiSetCustomization.Name = "tsmiSetCustomization";
- this.tsmiSetCustomization.Size = new System.Drawing.Size(169, 22);
- this.tsmiSetCustomization.Text = "&Set Customization";
- this.tsmiSetCustomization.Click += new System.EventHandler(this.tsmiSetCustomization_Click);
+ this.tsmiCopy.Name = "tsmiCopy";
+ this.tsmiCopy.Size = new System.Drawing.Size(169, 22);
+ this.tsmiCopy.Text = "&Copy";
+ this.tsmiCopy.Click += new System.EventHandler(this.tsmiCopy_Click);
//
// FirmwaresConfig
//
@@ -230,12 +250,12 @@
this.Text = "Firmwares";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FirmwaresConfig_FormClosed);
this.Load += new System.EventHandler(this.FirmwaresConfig_Load);
+ this.lvFirmwaresContextMenuStrip.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
+ this.tableLayoutPanel1.ResumeLayout(false);
this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout();
- this.tableLayoutPanel1.ResumeLayout(false);
- this.lvFirmwaresContextMenuStrip.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -262,5 +282,7 @@
private System.Windows.Forms.ContextMenuStrip lvFirmwaresContextMenuStrip;
private System.Windows.Forms.ToolStripMenuItem tsmiSetCustomization;
private System.Windows.Forms.ToolStripMenuItem tsmiClearCustomization;
+ private System.Windows.Forms.ToolStripMenuItem tsmiInfo;
+ private System.Windows.Forms.ToolStripMenuItem tsmiCopy;
}
}
\ No newline at end of file
diff --git a/BizHawk.MultiClient/config/FirmwaresConfig.cs b/BizHawk.MultiClient/config/FirmwaresConfig.cs
index bdd18ef39a..98757b424f 100644
--- a/BizHawk.MultiClient/config/FirmwaresConfig.cs
+++ b/BizHawk.MultiClient/config/FirmwaresConfig.cs
@@ -281,11 +281,16 @@ namespace BizHawk.MultiClient
{
if (e.KeyCode == Keys.C && e.Control && !e.Alt && !e.Shift)
{
- var str = lvFirmwares.CopyItemsAsText();
- if (str.Length > 0) Clipboard.SetDataObject(str);
+ PerformListCopy();
}
}
+ void PerformListCopy()
+ {
+ var str = lvFirmwares.CopyItemsAsText();
+ if (str.Length > 0) Clipboard.SetDataObject(str);
+ }
+
private void lvFirmwares_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right && lvFirmwares.GetItemAt(e.X, e.Y) != null)
@@ -304,7 +309,7 @@ namespace BizHawk.MultiClient
//remember the location we selected this firmware from, maybe there are others
currSelectorDir = Path.GetDirectoryName(ofd.FileName);
- //for each selected item, set the user choice (hey, thats the expected semantic
+ //for each selected item, set the user choice (even though multiple selection for this operation is no longer allowed)
foreach (ListViewItem lvi in lvFirmwares.SelectedItems)
{
var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord;
@@ -328,5 +333,52 @@ namespace BizHawk.MultiClient
DoScan();
}
+ private void tsmiInfo_Click(object sender, EventArgs e)
+ {
+ var lvi = lvFirmwares.SelectedItems[0];
+ var fr = lvi.Tag as FirmwareDatabase.FirmwareRecord;
+
+ //get all options for this firmware (in order)
+ var options =
+ from fo in FirmwareDatabase.FirmwareOptions
+ where fo.systemId == fr.systemId && fo.firmwareId == fr.firmwareId
+ select fo;
+
+ FirmwaresConfigInfo fciDialog = new FirmwaresConfigInfo();
+ fciDialog.lblFirmware.Text = string.Format("{0} : {1} ({2})", fr.systemId, fr.firmwareId, fr.descr);
+ foreach (var o in options)
+ {
+ ListViewItem olvi = new ListViewItem();
+ olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
+ olvi.SubItems.Add(new ListViewItem.ListViewSubItem());
+ var ff = FirmwareDatabase.FirmwareFilesByHash[o.hash];
+ olvi.SubItems[0].Text = o.hash;
+ olvi.SubItems[0].Font = fixedFont;
+ olvi.SubItems[1].Text = ff.recommendedName;
+ olvi.SubItems[1].Font = this.Font; //why doesnt this work?
+ olvi.SubItems[2].Text = ff.descr;
+ olvi.SubItems[2].Font = this.Font; //why doesnt this work?
+ fciDialog.lvOptions.Items.Add(olvi);
+ }
+
+ fciDialog.lvOptions.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent);
+ fciDialog.lvOptions.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent);
+ fciDialog.lvOptions.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent);
+
+ fciDialog.ShowDialog();
+ }
+
+ private void lvFirmwaresContextMenuStrip_Opening(object sender, CancelEventArgs e)
+ {
+ //hide menu items that arent appropriate for multi-select
+ tsmiSetCustomization.Visible = lvFirmwares.SelectedItems.Count == 1;
+ tsmiInfo.Visible = lvFirmwares.SelectedItems.Count == 1;
+ }
+
+ private void tsmiCopy_Click(object sender, EventArgs e)
+ {
+ PerformListCopy();
+ }
+
} //class FirmwaresConfig
}
diff --git a/BizHawk.MultiClient/config/FirmwaresConfig.resx b/BizHawk.MultiClient/config/FirmwaresConfig.resx
index cb8e4f87cc..55a8eccb82 100644
--- a/BizHawk.MultiClient/config/FirmwaresConfig.resx
+++ b/BizHawk.MultiClient/config/FirmwaresConfig.resx
@@ -126,6 +126,9 @@
122, 17
+
+ 221, 17
+
@@ -172,7 +175,4 @@
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
-
- 221, 17
-
\ No newline at end of file
diff --git a/BizHawk.MultiClient/config/FirmwaresConfigInfo.Designer.cs b/BizHawk.MultiClient/config/FirmwaresConfigInfo.Designer.cs
new file mode 100644
index 0000000000..e65bff5dbe
--- /dev/null
+++ b/BizHawk.MultiClient/config/FirmwaresConfigInfo.Designer.cs
@@ -0,0 +1,201 @@
+namespace BizHawk.MultiClient
+{
+ partial class FirmwaresConfigInfo
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.lvOptions = new System.Windows.Forms.ListView();
+ this.colHash = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.colStandardFilename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.colDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.btnClose = new System.Windows.Forms.Button();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.label2 = new System.Windows.Forms.Label();
+ this.lblFirmware = new System.Windows.Forms.Label();
+ this.lvmiOptionsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+ this.tsmiOptionsCopy = new System.Windows.Forms.ToolStripMenuItem();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.flowLayoutPanel1.SuspendLayout();
+ this.lvmiOptionsContextMenuStrip.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // lvOptions
+ //
+ this.lvOptions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.colHash,
+ this.colStandardFilename,
+ this.colDescription});
+ this.lvOptions.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lvOptions.FullRowSelect = true;
+ this.lvOptions.GridLines = true;
+ this.lvOptions.Location = new System.Drawing.Point(3, 29);
+ this.lvOptions.Name = "lvOptions";
+ this.lvOptions.Size = new System.Drawing.Size(648, 402);
+ this.lvOptions.TabIndex = 0;
+ this.lvOptions.UseCompatibleStateImageBehavior = false;
+ this.lvOptions.View = System.Windows.Forms.View.Details;
+ this.lvOptions.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvOptions_KeyDown);
+ this.lvOptions.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lvOptions_MouseClick);
+ //
+ // colHash
+ //
+ this.colHash.Text = "Hash";
+ this.colHash.Width = 251;
+ //
+ // colStandardFilename
+ //
+ this.colStandardFilename.Text = "Standard Filename";
+ this.colStandardFilename.Width = 175;
+ //
+ // colDescription
+ //
+ this.colDescription.Text = "Description";
+ this.colDescription.Width = 214;
+ //
+ // tableLayoutPanel1
+ //
+ this.tableLayoutPanel1.ColumnCount = 1;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.Controls.Add(this.label1, 0, 1);
+ this.tableLayoutPanel1.Controls.Add(this.lvOptions, 0, 2);
+ this.tableLayoutPanel1.Controls.Add(this.btnClose, 0, 3);
+ this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 0);
+ this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 4;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(654, 469);
+ this.tableLayoutPanel1.TabIndex = 1;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(3, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(122, 13);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "Options for this firmware:";
+ //
+ // btnClose
+ //
+ this.btnClose.Anchor = System.Windows.Forms.AnchorStyles.Right;
+ this.btnClose.AutoSize = true;
+ this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnClose.Location = new System.Drawing.Point(595, 440);
+ this.btnClose.Margin = new System.Windows.Forms.Padding(6);
+ this.btnClose.Name = "btnClose";
+ this.btnClose.Size = new System.Drawing.Size(53, 23);
+ this.btnClose.TabIndex = 2;
+ this.btnClose.Text = "Close";
+ this.btnClose.UseVisualStyleBackColor = true;
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.AutoSize = true;
+ this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.flowLayoutPanel1.Controls.Add(this.label2);
+ this.flowLayoutPanel1.Controls.Add(this.lblFirmware);
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(99, 13);
+ this.flowLayoutPanel1.TabIndex = 3;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(3, 0);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(52, 13);
+ this.label2.TabIndex = 0;
+ this.label2.Text = "Firmware:";
+ //
+ // lblFirmware
+ //
+ this.lblFirmware.AutoSize = true;
+ this.lblFirmware.Location = new System.Drawing.Point(61, 0);
+ this.lblFirmware.Name = "lblFirmware";
+ this.lblFirmware.Size = new System.Drawing.Size(35, 13);
+ this.lblFirmware.TabIndex = 1;
+ this.lblFirmware.Text = "label3";
+ //
+ // lvmiOptionsContextMenuStrip
+ //
+ this.lvmiOptionsContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.tsmiOptionsCopy});
+ this.lvmiOptionsContextMenuStrip.Name = "lvmiOptionsContextMenuStrip";
+ this.lvmiOptionsContextMenuStrip.Size = new System.Drawing.Size(100, 26);
+ //
+ // tsmiOptionsCopy
+ //
+ this.tsmiOptionsCopy.Name = "tsmiOptionsCopy";
+ this.tsmiOptionsCopy.Size = new System.Drawing.Size(152, 22);
+ this.tsmiOptionsCopy.Text = "&Copy";
+ this.tsmiOptionsCopy.Click += new System.EventHandler(this.tsmiOptionsCopy_Click);
+ //
+ // FirmwaresConfigInfo
+ //
+ this.AcceptButton = this.btnClose;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.btnClose;
+ this.ClientSize = new System.Drawing.Size(654, 469);
+ this.Controls.Add(this.tableLayoutPanel1);
+ this.Name = "FirmwaresConfigInfo";
+ this.Text = "Firmware Info";
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.tableLayoutPanel1.PerformLayout();
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.flowLayoutPanel1.PerformLayout();
+ this.lvmiOptionsContextMenuStrip.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ColumnHeader colHash;
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Button btnClose;
+ private System.Windows.Forms.ColumnHeader colStandardFilename;
+ private System.Windows.Forms.ColumnHeader colDescription;
+ public System.Windows.Forms.ListView lvOptions;
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private System.Windows.Forms.Label label2;
+ public System.Windows.Forms.Label lblFirmware;
+ private System.Windows.Forms.ContextMenuStrip lvmiOptionsContextMenuStrip;
+ private System.Windows.Forms.ToolStripMenuItem tsmiOptionsCopy;
+ }
+}
\ No newline at end of file
diff --git a/BizHawk.MultiClient/config/FirmwaresConfigInfo.cs b/BizHawk.MultiClient/config/FirmwaresConfigInfo.cs
new file mode 100644
index 0000000000..b0a5abf213
--- /dev/null
+++ b/BizHawk.MultiClient/config/FirmwaresConfigInfo.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+//todo - display details on the current resolution status
+//todo - check(mark) the one thats selected
+//todo - turn top info into textboxes i guess, labels suck
+
+namespace BizHawk.MultiClient
+{
+ public partial class FirmwaresConfigInfo : Form
+ {
+ public FirmwaresConfigInfo()
+ {
+ InitializeComponent();
+ }
+
+ private void lvOptions_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.C && e.Control && !e.Alt && !e.Shift)
+ {
+ PerformListCopy();
+ }
+ }
+
+ void PerformListCopy()
+ {
+ var str = lvOptions.CopyItemsAsText();
+ if (str.Length > 0) Clipboard.SetDataObject(str);
+ }
+
+ private void tsmiOptionsCopy_Click(object sender, EventArgs e)
+ {
+ PerformListCopy();
+ }
+
+ private void lvOptions_MouseClick(object sender, MouseEventArgs e)
+ {
+ if (e.Button == System.Windows.Forms.MouseButtons.Right && lvOptions.GetItemAt(e.X, e.Y) != null)
+ lvmiOptionsContextMenuStrip.Show(lvOptions, e.Location);
+ }
+ }
+}
diff --git a/BizHawk.MultiClient/config/FirmwaresConfigInfo.resx b/BizHawk.MultiClient/config/FirmwaresConfigInfo.resx
new file mode 100644
index 0000000000..1a712589cd
--- /dev/null
+++ b/BizHawk.MultiClient/config/FirmwaresConfigInfo.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file