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