diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index f207588c27..8cc9a9c45d 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -497,6 +497,12 @@ True Resources.resx + + Form + + + RomStatusPicker.cs + Form @@ -1052,6 +1058,9 @@ Designer Resources.Designer.cs + + RomStatusPicker.cs + BatchRun.cs diff --git a/BizHawk.Client.EmuHawk/LogWindow.cs b/BizHawk.Client.EmuHawk/LogWindow.cs index 8e2dfdfc95..67093d5034 100644 --- a/BizHawk.Client.EmuHawk/LogWindow.cs +++ b/BizHawk.Client.EmuHawk/LogWindow.cs @@ -142,12 +142,17 @@ namespace BizHawk.Client.EmuHawk private void AddToGameDbBtn_Click(object sender, EventArgs e) { - var entryObj = (CompactGameInfo)ReflectionUtil.InvokeMethod(Global.Emulator, "GenerateGameDbEntry", null); - var userDb = Path.Combine(PathManager.GetExeDirectoryAbsolute(), "gamedb", "gamedb_user.txt"); - Global.Game.Status = entryObj.Status = RomStatus.GoodDump; //TODO: let user decide - Database.SaveDatabaseEntry(userDb, entryObj); - GlobalWin.MainForm.UpdateDumpIcon(); - HideShowGameDbButton(); + var picker = new RomStatusPicker(); + var result = picker.ShowDialog(); + if (result == DialogResult.OK) + { + var entryObj = (CompactGameInfo)ReflectionUtil.InvokeMethod(Global.Emulator, "GenerateGameDbEntry", null); + var userDb = Path.Combine(PathManager.GetExeDirectoryAbsolute(), "gamedb", "gamedb_user.txt"); + Global.Game.Status = entryObj.Status = picker.PickedStatus; + Database.SaveDatabaseEntry(userDb, entryObj); + GlobalWin.MainForm.UpdateDumpIcon(); + HideShowGameDbButton(); + } } } } diff --git a/BizHawk.Client.EmuHawk/RomStatusPicker.Designer.cs b/BizHawk.Client.EmuHawk/RomStatusPicker.Designer.cs new file mode 100644 index 0000000000..391540fe65 --- /dev/null +++ b/BizHawk.Client.EmuHawk/RomStatusPicker.Designer.cs @@ -0,0 +1,321 @@ +namespace BizHawk.Client.EmuHawk +{ + partial class RomStatusPicker + { + /// + /// 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.CancelBtn = new System.Windows.Forms.Button(); + this.OkBtn = new System.Windows.Forms.Button(); + this.GoodRadio = new System.Windows.Forms.RadioButton(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.HomebrewRadio = new System.Windows.Forms.RadioButton(); + this.label3 = new System.Windows.Forms.Label(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.HackRadio = new System.Windows.Forms.RadioButton(); + this.label4 = new System.Windows.Forms.Label(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.TranslationRadio = new System.Windows.Forms.RadioButton(); + this.label5 = new System.Windows.Forms.Label(); + this.pictureBox5 = new System.Windows.Forms.PictureBox(); + this.BadRadio = new System.Windows.Forms.RadioButton(); + this.label6 = new System.Windows.Forms.Label(); + this.pictureBox6 = new System.Windows.Forms.PictureBox(); + this.OverdumpRadio = new System.Windows.Forms.RadioButton(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).BeginInit(); + this.SuspendLayout(); + // + // CancelBtn + // + 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(91, 168); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(60, 23); + this.CancelBtn.TabIndex = 0; + this.CancelBtn.Text = "&Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // 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(25, 168); + this.OkBtn.Name = "OkBtn"; + this.OkBtn.Size = new System.Drawing.Size(60, 23); + this.OkBtn.TabIndex = 1; + this.OkBtn.Text = "&Ok"; + this.OkBtn.UseVisualStyleBackColor = true; + this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); + // + // GoodRadio + // + this.GoodRadio.AutoSize = true; + this.GoodRadio.Checked = true; + this.GoodRadio.Location = new System.Drawing.Point(12, 12); + this.GoodRadio.Name = "GoodRadio"; + this.GoodRadio.Size = new System.Drawing.Size(14, 13); + this.GoodRadio.TabIndex = 2; + this.GoodRadio.TabStop = true; + this.GoodRadio.UseVisualStyleBackColor = true; + // + // pictureBox1 + // + this.pictureBox1.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GreenCheck; + this.pictureBox1.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.GreenCheck; + this.pictureBox1.Location = new System.Drawing.Point(29, 10); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(16, 16); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(48, 12); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(64, 13); + this.label1.TabIndex = 4; + this.label1.Text = "Good Dump"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(48, 37); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Homebrew"; + // + // pictureBox2 + // + this.pictureBox2.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HomeBrew; + this.pictureBox2.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.HomeBrew; + this.pictureBox2.Location = new System.Drawing.Point(29, 35); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(16, 16); + this.pictureBox2.TabIndex = 6; + this.pictureBox2.TabStop = false; + // + // HomebrewRadio + // + this.HomebrewRadio.AutoSize = true; + this.HomebrewRadio.Location = new System.Drawing.Point(12, 37); + this.HomebrewRadio.Name = "HomebrewRadio"; + this.HomebrewRadio.Size = new System.Drawing.Size(14, 13); + this.HomebrewRadio.TabIndex = 5; + this.HomebrewRadio.UseVisualStyleBackColor = true; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(48, 62); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(33, 13); + this.label3.TabIndex = 10; + this.label3.Text = "Hack"; + // + // pictureBox3 + // + this.pictureBox3.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Hack; + this.pictureBox3.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.Hack; + this.pictureBox3.Location = new System.Drawing.Point(29, 60); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(16, 16); + this.pictureBox3.TabIndex = 9; + this.pictureBox3.TabStop = false; + // + // HackRadio + // + this.HackRadio.AutoSize = true; + this.HackRadio.Location = new System.Drawing.Point(12, 62); + this.HackRadio.Name = "HackRadio"; + this.HackRadio.Size = new System.Drawing.Size(14, 13); + this.HackRadio.TabIndex = 8; + this.HackRadio.UseVisualStyleBackColor = true; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(48, 87); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(85, 13); + this.label4.TabIndex = 13; + this.label4.Text = "Translated ROM"; + // + // pictureBox4 + // + this.pictureBox4.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Translation; + this.pictureBox4.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.Translation; + this.pictureBox4.Location = new System.Drawing.Point(29, 85); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new System.Drawing.Size(16, 16); + this.pictureBox4.TabIndex = 12; + this.pictureBox4.TabStop = false; + // + // TranslationRadio + // + this.TranslationRadio.AutoSize = true; + this.TranslationRadio.Location = new System.Drawing.Point(12, 87); + this.TranslationRadio.Name = "TranslationRadio"; + this.TranslationRadio.Size = new System.Drawing.Size(14, 13); + this.TranslationRadio.TabIndex = 11; + this.TranslationRadio.UseVisualStyleBackColor = true; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(48, 112); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(57, 13); + this.label5.TabIndex = 16; + this.label5.Text = "Bad Dump"; + // + // pictureBox5 + // + this.pictureBox5.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ExclamationRed; + this.pictureBox5.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.ExclamationRed; + this.pictureBox5.Location = new System.Drawing.Point(29, 110); + this.pictureBox5.Name = "pictureBox5"; + this.pictureBox5.Size = new System.Drawing.Size(16, 16); + this.pictureBox5.TabIndex = 15; + this.pictureBox5.TabStop = false; + // + // BadRadio + // + this.BadRadio.AutoSize = true; + this.BadRadio.Location = new System.Drawing.Point(12, 112); + this.BadRadio.Name = "BadRadio"; + this.BadRadio.Size = new System.Drawing.Size(14, 13); + this.BadRadio.TabIndex = 14; + this.BadRadio.UseVisualStyleBackColor = true; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(48, 137); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(61, 13); + this.label6.TabIndex = 19; + this.label6.Text = "Over Dump"; + // + // pictureBox6 + // + this.pictureBox6.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ExclamationRed; + this.pictureBox6.InitialImage = global::BizHawk.Client.EmuHawk.Properties.Resources.ExclamationRed; + this.pictureBox6.Location = new System.Drawing.Point(29, 135); + this.pictureBox6.Name = "pictureBox6"; + this.pictureBox6.Size = new System.Drawing.Size(16, 16); + this.pictureBox6.TabIndex = 18; + this.pictureBox6.TabStop = false; + // + // OverdumpRadio + // + this.OverdumpRadio.AutoSize = true; + this.OverdumpRadio.Location = new System.Drawing.Point(12, 137); + this.OverdumpRadio.Name = "OverdumpRadio"; + this.OverdumpRadio.Size = new System.Drawing.Size(14, 13); + this.OverdumpRadio.TabIndex = 17; + this.OverdumpRadio.UseVisualStyleBackColor = true; + // + // RomStatusPicker + // + this.AcceptButton = this.OkBtn; + 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(163, 203); + this.Controls.Add(this.label6); + this.Controls.Add(this.pictureBox6); + this.Controls.Add(this.OverdumpRadio); + this.Controls.Add(this.label5); + this.Controls.Add(this.pictureBox5); + this.Controls.Add(this.BadRadio); + this.Controls.Add(this.label4); + this.Controls.Add(this.pictureBox4); + this.Controls.Add(this.TranslationRadio); + this.Controls.Add(this.label3); + this.Controls.Add(this.pictureBox3); + this.Controls.Add(this.HackRadio); + this.Controls.Add(this.label2); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.HomebrewRadio); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.GoodRadio); + this.Controls.Add(this.OkBtn); + this.Controls.Add(this.CancelBtn); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "RomStatusPicker"; + this.ShowIcon = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Pick a status"; + this.Load += new System.EventHandler(this.RomStatusPicker_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button CancelBtn; + private System.Windows.Forms.Button OkBtn; + private System.Windows.Forms.RadioButton GoodRadio; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.RadioButton HomebrewRadio; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.PictureBox pictureBox3; + private System.Windows.Forms.RadioButton HackRadio; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.PictureBox pictureBox4; + private System.Windows.Forms.RadioButton TranslationRadio; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.PictureBox pictureBox5; + private System.Windows.Forms.RadioButton BadRadio; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.PictureBox pictureBox6; + private System.Windows.Forms.RadioButton OverdumpRadio; + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/RomStatusPicker.cs b/BizHawk.Client.EmuHawk/RomStatusPicker.cs new file mode 100644 index 0000000000..019345b99b --- /dev/null +++ b/BizHawk.Client.EmuHawk/RomStatusPicker.cs @@ -0,0 +1,61 @@ +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; +using BizHawk.Emulation.Common; + +namespace BizHawk.Client.EmuHawk +{ + public partial class RomStatusPicker : Form + { + public RomStatusPicker() + { + InitializeComponent(); + PickedStatus = RomStatus.Unknown; + } + + public RomStatus PickedStatus { get; private set; } + + private void RomStatusPicker_Load(object sender, EventArgs e) + { + GoodRadio.Select(); + } + + private void OkBtn_Click(object sender, EventArgs e) + { + if (GoodRadio.Checked) + { + PickedStatus = RomStatus.GoodDump; + } + else if (HomebrewRadio.Checked) + { + PickedStatus = RomStatus.Homebrew; + } + else if (HackRadio.Checked) + { + PickedStatus = RomStatus.Hack; + } + else if (HackRadio.Checked) + { + PickedStatus = RomStatus.TranslatedRom; + } + else if (BadRadio.Checked) + { + PickedStatus = RomStatus.BadDump; + } + + DialogResult = DialogResult.OK; + Close(); + } + + private void CancelBtn_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + Close(); + } + } +} diff --git a/BizHawk.Client.EmuHawk/RomStatusPicker.resx b/BizHawk.Client.EmuHawk/RomStatusPicker.resx new file mode 100644 index 0000000000..29dcb1b3a3 --- /dev/null +++ b/BizHawk.Client.EmuHawk/RomStatusPicker.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file