diff --git a/BizHawk.MultiClient/BizHawk.MultiClient.csproj b/BizHawk.MultiClient/BizHawk.MultiClient.csproj
index 1a8986cf08..3aff53eb07 100644
--- a/BizHawk.MultiClient/BizHawk.MultiClient.csproj
+++ b/BizHawk.MultiClient/BizHawk.MultiClient.csproj
@@ -170,6 +170,12 @@
+
+ Form
+
+
+ SubtitleMaker.cs
+
Form
@@ -419,6 +425,9 @@
EditSubtitlesForm.cs
+
+ SubtitleMaker.cs
+
NESDebugger.cs
Designer
diff --git a/BizHawk.MultiClient/movie/EditSubtitlesForm.Designer.cs b/BizHawk.MultiClient/movie/EditSubtitlesForm.Designer.cs
index 7849ca4ab3..0ef26326a5 100644
--- a/BizHawk.MultiClient/movie/EditSubtitlesForm.Designer.cs
+++ b/BizHawk.MultiClient/movie/EditSubtitlesForm.Designer.cs
@@ -82,6 +82,7 @@
this.SubGrid.Name = "SubGrid";
this.SubGrid.Size = new System.Drawing.Size(548, 198);
this.SubGrid.TabIndex = 2;
+ this.SubGrid.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SubGrid_MouseDoubleClick);
//
// Frame
//
diff --git a/BizHawk.MultiClient/movie/EditSubtitlesForm.cs b/BizHawk.MultiClient/movie/EditSubtitlesForm.cs
index 67b958c55d..9cdaabe403 100644
--- a/BizHawk.MultiClient/movie/EditSubtitlesForm.cs
+++ b/BizHawk.MultiClient/movie/EditSubtitlesForm.cs
@@ -95,5 +95,16 @@ namespace BizHawk.MultiClient
c.Value = s.Message;
}
}
+
+ private void SubGrid_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ //TODO: if no index slected, return
+ SubtitleMaker s = new SubtitleMaker();
+ s.sub = new Subtitle(); //TODO: function that grabs subtitle from selected index
+ if (s.ShowDialog() == DialogResult.OK)
+ {
+ //selected index, replace (needs new function)
+ }
+ }
}
}
diff --git a/BizHawk.MultiClient/movie/SubtitleMaker.Designer.cs b/BizHawk.MultiClient/movie/SubtitleMaker.Designer.cs
new file mode 100644
index 0000000000..6cd4e1de49
--- /dev/null
+++ b/BizHawk.MultiClient/movie/SubtitleMaker.Designer.cs
@@ -0,0 +1,257 @@
+namespace BizHawk.MultiClient
+{
+ partial class SubtitleMaker
+ {
+ ///
+ /// 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()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SubtitleMaker));
+ this.OK = new System.Windows.Forms.Button();
+ this.Cancel = new System.Windows.Forms.Button();
+ this.Message = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.YNumeric = new System.Windows.Forms.NumericUpDown();
+ this.XNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.DurationNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label4 = new System.Windows.Forms.Label();
+ this.ColorPanel = new System.Windows.Forms.Panel();
+ this.label5 = new System.Windows.Forms.Label();
+ this.colorDialog1 = new System.Windows.Forms.ColorDialog();
+ this.FrameNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label6 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.YNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.XNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.DurationNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.FrameNumeric)).BeginInit();
+ this.SuspendLayout();
+ //
+ // 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(267, 164);
+ this.OK.Name = "OK";
+ this.OK.Size = new System.Drawing.Size(75, 23);
+ this.OK.TabIndex = 0;
+ this.OK.Text = "&Save";
+ this.OK.UseVisualStyleBackColor = true;
+ this.OK.Click += new System.EventHandler(this.OK_Click);
+ //
+ // Cancel
+ //
+ this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.Cancel.Location = new System.Drawing.Point(348, 164);
+ this.Cancel.Name = "Cancel";
+ this.Cancel.Size = new System.Drawing.Size(75, 23);
+ this.Cancel.TabIndex = 1;
+ this.Cancel.Text = "&Cancel";
+ this.Cancel.UseVisualStyleBackColor = true;
+ this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
+ //
+ // Message
+ //
+ this.Message.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Message.Location = new System.Drawing.Point(12, 69);
+ this.Message.MaxLength = 512;
+ this.Message.Name = "Message";
+ this.Message.Size = new System.Drawing.Size(416, 20);
+ this.Message.TabIndex = 15;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(12, 50);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(50, 13);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "Message";
+ //
+ // YNumeric
+ //
+ this.YNumeric.Location = new System.Drawing.Point(15, 130);
+ this.YNumeric.Maximum = new decimal(new int[] {
+ 240,
+ 0,
+ 0,
+ 0});
+ this.YNumeric.Name = "YNumeric";
+ this.YNumeric.Size = new System.Drawing.Size(56, 20);
+ this.YNumeric.TabIndex = 25;
+ //
+ // XNumeric
+ //
+ this.XNumeric.Location = new System.Drawing.Point(15, 106);
+ this.XNumeric.Maximum = new decimal(new int[] {
+ 320,
+ 0,
+ 0,
+ 0});
+ this.XNumeric.Name = "XNumeric";
+ this.XNumeric.Size = new System.Drawing.Size(56, 20);
+ this.XNumeric.TabIndex = 20;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(77, 108);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(53, 13);
+ this.label2.TabIndex = 6;
+ this.label2.Text = "X position";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(75, 133);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(53, 13);
+ this.label3.TabIndex = 7;
+ this.label3.Text = "Y position";
+ //
+ // DurationNumeric
+ //
+ this.DurationNumeric.Location = new System.Drawing.Point(153, 108);
+ this.DurationNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.DurationNumeric.Name = "DurationNumeric";
+ this.DurationNumeric.Size = new System.Drawing.Size(56, 20);
+ this.DurationNumeric.TabIndex = 30;
+ this.DurationNumeric.Value = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(215, 108);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(47, 13);
+ this.label4.TabIndex = 9;
+ this.label4.Text = "Duration";
+ //
+ // ColorPanel
+ //
+ this.ColorPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.ColorPanel.Location = new System.Drawing.Point(153, 131);
+ this.ColorPanel.Name = "ColorPanel";
+ this.ColorPanel.Size = new System.Drawing.Size(56, 19);
+ this.ColorPanel.TabIndex = 35;
+ this.ColorPanel.DoubleClick += new System.EventHandler(this.ColorPanel_DoubleClick);
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(215, 133);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(31, 13);
+ this.label5.TabIndex = 11;
+ this.label5.Text = "Color";
+ //
+ // FrameNumeric
+ //
+ this.FrameNumeric.Location = new System.Drawing.Point(78, 19);
+ this.FrameNumeric.Maximum = new decimal(new int[] {
+ 999999,
+ 0,
+ 0,
+ 0});
+ this.FrameNumeric.Name = "FrameNumeric";
+ this.FrameNumeric.Size = new System.Drawing.Size(70, 20);
+ this.FrameNumeric.TabIndex = 10;
+ this.FrameNumeric.ThousandsSeparator = true;
+ this.FrameNumeric.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(12, 21);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(36, 13);
+ this.label6.TabIndex = 13;
+ this.label6.Text = "Frame";
+ //
+ // SubtitleMaker
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(435, 199);
+ this.Controls.Add(this.label6);
+ this.Controls.Add(this.FrameNumeric);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.ColorPanel);
+ this.Controls.Add(this.label4);
+ this.Controls.Add(this.DurationNumeric);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.XNumeric);
+ this.Controls.Add(this.YNumeric);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.Message);
+ this.Controls.Add(this.Cancel);
+ this.Controls.Add(this.OK);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "SubtitleMaker";
+ this.Text = "Subtitle Maker";
+ this.Load += new System.EventHandler(this.SubtitleMaker_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.YNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.XNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.DurationNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.FrameNumeric)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button OK;
+ private System.Windows.Forms.Button Cancel;
+ private System.Windows.Forms.TextBox Message;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.NumericUpDown YNumeric;
+ private System.Windows.Forms.NumericUpDown XNumeric;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.NumericUpDown DurationNumeric;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Panel ColorPanel;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.ColorDialog colorDialog1;
+ private System.Windows.Forms.NumericUpDown FrameNumeric;
+ private System.Windows.Forms.Label label6;
+ }
+}
\ No newline at end of file
diff --git a/BizHawk.MultiClient/movie/SubtitleMaker.cs b/BizHawk.MultiClient/movie/SubtitleMaker.cs
new file mode 100644
index 0000000000..48d9144db0
--- /dev/null
+++ b/BizHawk.MultiClient/movie/SubtitleMaker.cs
@@ -0,0 +1,54 @@
+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;
+
+namespace BizHawk.MultiClient
+{
+ public partial class SubtitleMaker : Form
+ {
+ public Subtitle sub = new Subtitle();
+
+ public SubtitleMaker()
+ {
+ InitializeComponent();
+ }
+
+ private void Cancel_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void OK_Click(object sender, EventArgs e)
+ {
+ sub.Frame = (int)FrameNumeric.Value;
+ sub.Message = Message.Text;
+ sub.X = (int)XNumeric.Value;
+ sub.Duration = (int)DurationNumeric.Value;
+ sub.Color = (uint)colorDialog1.Color.ToArgb();
+ this.Close();
+ }
+
+ private void SubtitleMaker_Load(object sender, EventArgs e)
+ {
+ FrameNumeric.Value = sub.Frame;
+ Message.Text = sub.Message;
+ XNumeric.Value = sub.X;
+ YNumeric.Value = sub.Y;
+ DurationNumeric.Value = sub.Duration;
+ Message.Focus();
+ colorDialog1.Color = Color.FromArgb((int)sub.Color);
+ ColorPanel.BackColor = colorDialog1.Color;
+ }
+
+ private void ColorPanel_DoubleClick(object sender, EventArgs e)
+ {
+ if (colorDialog1.ShowDialog() == DialogResult.OK)
+ ColorPanel.BackColor = colorDialog1.Color;
+ }
+ }
+}
diff --git a/BizHawk.MultiClient/movie/SubtitleMaker.resx b/BizHawk.MultiClient/movie/SubtitleMaker.resx
new file mode 100644
index 0000000000..d6f83e7f3e
--- /dev/null
+++ b/BizHawk.MultiClient/movie/SubtitleMaker.resx
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+
+ AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA////AP64aABQUFAAwNjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAMDAAMDAwAAAAAAAAAAAAMCAgMDAwMDAwAAAAMDAAADAgICAwMDAwMDAwMCAgMAAAMCAwMD
+ AwMDAwMDAgIDAAMEBAQDAgMDAwMDAwICAgMDBAQEAwICAwQDAwQDAgIDAAMDAwICAgMCAgIDAwMDAAAA
+ AwICAgMCAgIDAgMAAAAAAAAAAwMEBAQEBAQCAwAAAAAAAwMEBAQDAwMDAwMAAAAAAwQEAwMEBAMEBAQC
+ AwAAAAMEBAMDBAMEBAQEAgMAAAAAAwMDBAQDBAMDAwIDAAAAAAMCAgICAgICAgMEBAMAAAAAAwICAgIC
+ AwMEBAQDAAAAAAADAwMDAwAAAwMDAJH/AAAAcwAAAAEAAIABAAAAAAAAAAAAAIABAADABwAA8AMAAOAD
+ AADAAQAAwAEAAOABAADgAAAA8AAAAPgxAAA=
+
+
+
\ No newline at end of file