More work on subtitle maker, implmeent context menu "Add Subtitle" which will open subtitle maker and set frame to the current frame
This commit is contained in:
parent
8d333fc04c
commit
26569dab58
|
@ -1749,7 +1749,7 @@
|
|||
this.screenshotToolStripMenuItem1,
|
||||
this.closeROMToolStripMenuItem1});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(179, 330);
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(179, 308);
|
||||
this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening);
|
||||
this.contextMenuStrip1.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.contextMenuStrip1_Closing);
|
||||
//
|
||||
|
@ -1832,8 +1832,8 @@
|
|||
//
|
||||
this.undoLoadstateToolStripMenuItem.Name = "undoLoadstateToolStripMenuItem";
|
||||
this.undoLoadstateToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
|
||||
this.undoLoadstateToolStripMenuItem.Text = "Undo Loadstate";
|
||||
this.undoLoadstateToolStripMenuItem.Click += new System.EventHandler(this.undoLoadstateToolStripMenuItem_Click);
|
||||
this.undoLoadstateToolStripMenuItem.Text = "Add Subtitle";
|
||||
this.undoLoadstateToolStripMenuItem.Click += new System.EventHandler(this.AddSubtitleToolStripMenuItem_Click);
|
||||
//
|
||||
// undoSavestateToolStripMenuItem
|
||||
//
|
||||
|
|
|
@ -757,9 +757,34 @@ namespace BizHawk.MultiClient
|
|||
LoadMoviesFromRecent(Global.Config.RecentMovies.GetRecentFileByPosition(0));
|
||||
}
|
||||
|
||||
private void undoLoadstateToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private void AddSubtitleToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
//TODO
|
||||
SubtitleMaker s = new SubtitleMaker();
|
||||
s.DisableFrame();
|
||||
int index = -1;
|
||||
Subtitle sub = new Subtitle();
|
||||
for (int x = 0; x < UserMovie.Subtitles.Count(); x++)
|
||||
{
|
||||
sub = UserMovie.Subtitles.GetSubtitleByIndex(x);
|
||||
if (Global.Emulator.Frame == sub.Frame)
|
||||
{
|
||||
index = x;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (index < 0)
|
||||
{
|
||||
sub = new Subtitle();
|
||||
sub.Frame = Global.Emulator.Frame;
|
||||
}
|
||||
s.sub = sub;
|
||||
|
||||
if (s.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if (index >= 0)
|
||||
UserMovie.Subtitles.Remove(index);
|
||||
UserMovie.Subtitles.AddSubtitle(s.sub);
|
||||
}
|
||||
}
|
||||
|
||||
private void undoSavestateToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
|
@ -836,15 +861,16 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
contextMenuStrip1.Items[8].Text = "View Subtitles";
|
||||
contextMenuStrip1.Items[9].Text = "View Comments";
|
||||
contextMenuStrip1.Items[11].Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
contextMenuStrip1.Items[8].Text = "Edit Subtitles";
|
||||
contextMenuStrip1.Items[9].Text = "Edit Comments";
|
||||
contextMenuStrip1.Items[11].Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
contextMenuStrip1.Items[11].Visible = true;
|
||||
contextMenuStrip1.Items[12].Visible = true;
|
||||
|
||||
contextMenuStrip1.Items[13].Visible = true;
|
||||
|
@ -864,8 +890,7 @@ namespace BizHawk.MultiClient
|
|||
|
||||
|
||||
//TODO:
|
||||
contextMenuStrip1.Items[10].Enabled = false;
|
||||
contextMenuStrip1.Items[11].Enabled = false;
|
||||
contextMenuStrip1.Items[12].Enabled = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ namespace BizHawk.MultiClient
|
|||
//TODO: Parse hex on color when saving
|
||||
//TODO: try/catch on parsing int
|
||||
//TODO: display color in hex when loading from movie
|
||||
//TODO: color if color cell = value of color cell
|
||||
|
||||
public EditSubtitlesForm()
|
||||
{
|
||||
|
@ -96,14 +97,62 @@ namespace BizHawk.MultiClient
|
|||
}
|
||||
}
|
||||
|
||||
private void ChangeRow(Subtitle s, int index)
|
||||
{
|
||||
if (index >= SubGrid.Rows.Count) return;
|
||||
DataGridViewCell c = SubGrid.Rows[index].Cells[0];
|
||||
c.Value = s.Frame;
|
||||
c = SubGrid.Rows[index].Cells[1];
|
||||
c.Value = s.X;
|
||||
c = SubGrid.Rows[index].Cells[2];
|
||||
c.Value = s.Y;
|
||||
c = SubGrid.Rows[index].Cells[3];
|
||||
c.Value = s.Duration;
|
||||
c = SubGrid.Rows[index].Cells[4];
|
||||
c.Value = s.Color; //TODO: view in hex
|
||||
c = SubGrid.Rows[index].Cells[5];
|
||||
c.Value = s.Message;
|
||||
}
|
||||
|
||||
private Subtitle GetRow(int index)
|
||||
{
|
||||
if (index >= SubGrid.Rows.Count) return new Subtitle();
|
||||
|
||||
Subtitle s = new Subtitle();
|
||||
DataGridViewCell c = SubGrid.Rows[index].Cells[0];
|
||||
|
||||
//Empty catch because it should default to subtitle default value
|
||||
try { s.Frame = int.Parse(c.Value.ToString()); }
|
||||
catch { }
|
||||
c = SubGrid.Rows[index].Cells[1];
|
||||
try { s.X = int.Parse(c.Value.ToString()); }
|
||||
catch { }
|
||||
c = SubGrid.Rows[index].Cells[2];
|
||||
try { s.Y = int.Parse(c.Value.ToString()); }
|
||||
catch { }
|
||||
c = SubGrid.Rows[index].Cells[3];
|
||||
try { s.Duration = int.Parse(c.Value.ToString()); }
|
||||
catch { }
|
||||
c = SubGrid.Rows[index].Cells[4];
|
||||
try { s.Color = uint.Parse(c.Value.ToString()); }
|
||||
catch { }
|
||||
c = SubGrid.Rows[index].Cells[5];
|
||||
try { s.Message = c.Value.ToString(); }
|
||||
catch { }
|
||||
selectedMovie.Subtitles.AddSubtitle(s);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
private void SubGrid_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
//TODO: if no index slected, return
|
||||
DataGridViewSelectedRowCollection c = SubGrid.SelectedRows;
|
||||
if (c.Count == 0) return;
|
||||
SubtitleMaker s = new SubtitleMaker();
|
||||
s.sub = new Subtitle(); //TODO: function that grabs subtitle from selected index
|
||||
s.sub = GetRow(c[0].Index);
|
||||
if (s.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
//selected index, replace (needs new function)
|
||||
ChangeRow(s.sub, SubGrid.SelectedRows[0].Index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,5 +195,12 @@ namespace BizHawk.MultiClient
|
|||
{
|
||||
subs.Clear();
|
||||
}
|
||||
|
||||
public void Remove(int index)
|
||||
{
|
||||
if (index >= subs.Count) return;
|
||||
|
||||
subs.RemoveAt(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
// Cancel
|
||||
//
|
||||
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(348, 164);
|
||||
this.Cancel.Name = "Cancel";
|
||||
this.Cancel.Size = new System.Drawing.Size(75, 23);
|
||||
|
@ -166,6 +167,7 @@
|
|||
this.ColorPanel.Name = "ColorPanel";
|
||||
this.ColorPanel.Size = new System.Drawing.Size(56, 19);
|
||||
this.ColorPanel.TabIndex = 35;
|
||||
this.ColorPanel.TabStop = true;
|
||||
this.ColorPanel.DoubleClick += new System.EventHandler(this.ColorPanel_DoubleClick);
|
||||
//
|
||||
// label5
|
||||
|
@ -206,8 +208,10 @@
|
|||
//
|
||||
// SubtitleMaker
|
||||
//
|
||||
this.AcceptButton = this.OK;
|
||||
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(435, 199);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.FrameNumeric);
|
||||
|
|
|
@ -18,6 +18,11 @@ namespace BizHawk.MultiClient
|
|||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void DisableFrame()
|
||||
{
|
||||
FrameNumeric.Enabled = false;
|
||||
}
|
||||
|
||||
private void Cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
|
@ -30,6 +35,7 @@ namespace BizHawk.MultiClient
|
|||
sub.X = (int)XNumeric.Value;
|
||||
sub.Duration = (int)DurationNumeric.Value;
|
||||
sub.Color = (uint)colorDialog1.Color.ToArgb();
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
|
@ -40,9 +46,9 @@ namespace BizHawk.MultiClient
|
|||
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;
|
||||
Message.Focus();
|
||||
}
|
||||
|
||||
private void ColorPanel_DoubleClick(object sender, EventArgs e)
|
||||
|
|
Loading…
Reference in New Issue