tastudio: attach usertext to branches, make it editable from menu.
moved branch functions and menu items around.
This commit is contained in:
parent
9b0a94dd8e
commit
1f1382ceb7
|
@ -65,6 +65,8 @@ namespace BizHawk.Client.Common
|
|||
public static BinaryStateLump BranchHeader { get; private set; }
|
||||
[Name("Branches\\Markers", "txt")]
|
||||
public static BinaryStateLump BranchMarkers { get; private set; }
|
||||
[Name("Branches\\UserText", "txt")]
|
||||
public static BinaryStateLump BranchUserText { get; private set; }
|
||||
[Name("Branches\\GreenZone")]
|
||||
public static BinaryStateLump BranchStateHistory { get; private set; }
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ namespace BizHawk.Client.Common
|
|||
public DateTime TimeStamp { get; set; }
|
||||
public TasMovieMarkerList Markers { get; set; }
|
||||
public Guid UniqueIdentifier { get; set; }
|
||||
public string UserText { get; set; }
|
||||
}
|
||||
|
||||
public class TasBranchCollection : List<TasBranch>
|
||||
|
@ -44,6 +45,7 @@ namespace BizHawk.Client.Common
|
|||
var nframebuffer = new IndexedStateLump(BinaryStateLump.BranchFrameBuffer);
|
||||
var nlaglog = new IndexedStateLump(BinaryStateLump.BranchLagLog);
|
||||
var nmarkers = new IndexedStateLump(BinaryStateLump.BranchMarkers);
|
||||
var nusertext = new IndexedStateLump(BinaryStateLump.BranchUserText);
|
||||
foreach (var b in this)
|
||||
{
|
||||
bs.PutLump(nheader, delegate(TextWriter tw)
|
||||
|
@ -85,12 +87,18 @@ namespace BizHawk.Client.Common
|
|||
tw.WriteLine(b.Markers.ToString());
|
||||
});
|
||||
|
||||
bs.PutLump(nusertext, delegate(TextWriter tw)
|
||||
{
|
||||
tw.WriteLine(b.UserText);
|
||||
});
|
||||
|
||||
nheader.Increment();
|
||||
ncore.Increment();
|
||||
ninput.Increment();
|
||||
nframebuffer.Increment();
|
||||
nlaglog.Increment();
|
||||
nmarkers.Increment();
|
||||
nusertext.Increment();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,6 +110,7 @@ namespace BizHawk.Client.Common
|
|||
var nframebuffer = new IndexedStateLump(BinaryStateLump.BranchFrameBuffer);
|
||||
var nlaglog = new IndexedStateLump(BinaryStateLump.BranchLagLog);
|
||||
var nmarkers = new IndexedStateLump(BinaryStateLump.BranchMarkers);
|
||||
var nusertext = new IndexedStateLump(BinaryStateLump.BranchUserText);
|
||||
|
||||
Clear();
|
||||
|
||||
|
@ -179,6 +188,19 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
bl.GetLump(nusertext, false, delegate(TextReader tr)
|
||||
{
|
||||
string line;
|
||||
if ((line = tr.ReadLine()) != null)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(line))
|
||||
{
|
||||
b.UserText = line;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Add(b);
|
||||
|
||||
nheader.Increment();
|
||||
|
@ -187,6 +209,7 @@ namespace BizHawk.Client.Common
|
|||
nframebuffer.Increment();
|
||||
nlaglog.Increment();
|
||||
nmarkers.Increment();
|
||||
nusertext.Increment();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,13 +30,15 @@
|
|||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.BookmarksBranchesGroupBox = new System.Windows.Forms.GroupBox();
|
||||
this.BranchView = new BizHawk.Client.EmuHawk.InputRoll();
|
||||
this.BranchesContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.LoadBranchContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.UpdateBranchContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AddContextMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AddBranchContextMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.RemoveBranchContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.BranchView = new BizHawk.Client.EmuHawk.InputRoll();
|
||||
this.EditBranchTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.AddBranchWithTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.BookmarksBranchesGroupBox.SuspendLayout();
|
||||
this.BranchesContextMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
|
@ -54,54 +56,6 @@
|
|||
this.BookmarksBranchesGroupBox.TabStop = false;
|
||||
this.BookmarksBranchesGroupBox.Text = "Branches";
|
||||
//
|
||||
// BranchesContextMenu
|
||||
//
|
||||
this.BranchesContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.LoadBranchContextMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.UpdateBranchContextMenuItem,
|
||||
this.AddContextMenu,
|
||||
this.RemoveBranchContextMenuItem});
|
||||
this.BranchesContextMenu.Name = "BranchesContextMenu";
|
||||
this.BranchesContextMenu.Size = new System.Drawing.Size(118, 98);
|
||||
this.BranchesContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.BranchesContextMenu_Opening);
|
||||
//
|
||||
// LoadBranchContextMenuItem
|
||||
//
|
||||
this.LoadBranchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Debugger;
|
||||
this.LoadBranchContextMenuItem.Name = "LoadBranchContextMenuItem";
|
||||
this.LoadBranchContextMenuItem.Size = new System.Drawing.Size(117, 22);
|
||||
this.LoadBranchContextMenuItem.Text = "Load";
|
||||
this.LoadBranchContextMenuItem.Click += new System.EventHandler(this.LoadBranchContextMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(114, 6);
|
||||
//
|
||||
// UpdateBranchContextMenuItem
|
||||
//
|
||||
this.UpdateBranchContextMenuItem.Name = "UpdateBranchContextMenuItem";
|
||||
this.UpdateBranchContextMenuItem.Size = new System.Drawing.Size(117, 22);
|
||||
this.UpdateBranchContextMenuItem.Text = "&Update";
|
||||
this.UpdateBranchContextMenuItem.Click += new System.EventHandler(this.UpdateBranchContextMenuItem_Click);
|
||||
//
|
||||
// AddContextMenu
|
||||
//
|
||||
this.AddContextMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.add;
|
||||
this.AddContextMenu.Name = "AddContextMenu";
|
||||
this.AddContextMenu.Size = new System.Drawing.Size(117, 22);
|
||||
this.AddContextMenu.Text = "Add";
|
||||
this.AddContextMenu.Click += new System.EventHandler(this.AddContextMenu_Click);
|
||||
//
|
||||
// RemoveBranchContextMenuItem
|
||||
//
|
||||
this.RemoveBranchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete;
|
||||
this.RemoveBranchContextMenuItem.Name = "RemoveBranchContextMenuItem";
|
||||
this.RemoveBranchContextMenuItem.Size = new System.Drawing.Size(117, 22);
|
||||
this.RemoveBranchContextMenuItem.Text = "Remove";
|
||||
this.RemoveBranchContextMenuItem.Click += new System.EventHandler(this.RemoveBranchContextMenuItem_Click);
|
||||
//
|
||||
// BranchView
|
||||
//
|
||||
this.BranchView.AllowColumnReorder = false;
|
||||
|
@ -112,6 +66,10 @@
|
|||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.BranchView.CellHeightPadding = 0;
|
||||
this.BranchView.ContextMenuStrip = this.BranchesContextMenu;
|
||||
this.BranchView.denoteMarkersWithBGColor = false;
|
||||
this.BranchView.denoteMarkersWithIcons = false;
|
||||
this.BranchView.denoteStatesWithBGColor = false;
|
||||
this.BranchView.denoteStatesWithIcons = false;
|
||||
this.BranchView.FullRowSelect = true;
|
||||
this.BranchView.HideWasLagFrames = false;
|
||||
this.BranchView.HorizontalOrientation = false;
|
||||
|
@ -133,6 +91,73 @@
|
|||
this.BranchView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.BranchView_MouseMove);
|
||||
this.BranchView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.BranchView_MouseUp);
|
||||
//
|
||||
// BranchesContextMenu
|
||||
//
|
||||
this.BranchesContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.LoadBranchContextMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.AddBranchContextMenu,
|
||||
this.AddBranchWithTextToolStripMenuItem,
|
||||
this.UpdateBranchContextMenuItem,
|
||||
this.EditBranchTextToolStripMenuItem,
|
||||
this.RemoveBranchContextMenuItem});
|
||||
this.BranchesContextMenu.Name = "BranchesContextMenu";
|
||||
this.BranchesContextMenu.Size = new System.Drawing.Size(153, 164);
|
||||
this.BranchesContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.BranchesContextMenu_Opening);
|
||||
//
|
||||
// LoadBranchContextMenuItem
|
||||
//
|
||||
this.LoadBranchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Debugger;
|
||||
this.LoadBranchContextMenuItem.Name = "LoadBranchContextMenuItem";
|
||||
this.LoadBranchContextMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.LoadBranchContextMenuItem.Text = "Load";
|
||||
this.LoadBranchContextMenuItem.Click += new System.EventHandler(this.LoadBranchContextMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// UpdateBranchContextMenuItem
|
||||
//
|
||||
this.UpdateBranchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.reboot;
|
||||
this.UpdateBranchContextMenuItem.Name = "UpdateBranchContextMenuItem";
|
||||
this.UpdateBranchContextMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.UpdateBranchContextMenuItem.Text = "&Update";
|
||||
this.UpdateBranchContextMenuItem.Click += new System.EventHandler(this.UpdateBranchContextMenuItem_Click);
|
||||
//
|
||||
// AddBranchContextMenu
|
||||
//
|
||||
this.AddBranchContextMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.add;
|
||||
this.AddBranchContextMenu.Name = "AddBranchContextMenu";
|
||||
this.AddBranchContextMenu.Size = new System.Drawing.Size(152, 22);
|
||||
this.AddBranchContextMenu.Text = "Add";
|
||||
this.AddBranchContextMenu.Click += new System.EventHandler(this.AddContextMenu_Click);
|
||||
//
|
||||
// RemoveBranchContextMenuItem
|
||||
//
|
||||
this.RemoveBranchContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Delete;
|
||||
this.RemoveBranchContextMenuItem.Name = "RemoveBranchContextMenuItem";
|
||||
this.RemoveBranchContextMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.RemoveBranchContextMenuItem.Text = "Remove";
|
||||
this.RemoveBranchContextMenuItem.Click += new System.EventHandler(this.RemoveBranchContextMenuItem_Click);
|
||||
//
|
||||
// EditBranchTextToolStripMenuItem
|
||||
//
|
||||
this.EditBranchTextToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.pencil;
|
||||
this.EditBranchTextToolStripMenuItem.Name = "EditBranchTextToolStripMenuItem";
|
||||
this.EditBranchTextToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.EditBranchTextToolStripMenuItem.Text = "Edit Text";
|
||||
this.EditBranchTextToolStripMenuItem.Click += new System.EventHandler(this.EditBranchTextToolStripMenuItem_Click);
|
||||
//
|
||||
// AddBranchWithTextToolStripMenuItem
|
||||
//
|
||||
this.AddBranchWithTextToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.add;
|
||||
this.AddBranchWithTextToolStripMenuItem.Name = "AddBranchWithTextToolStripMenuItem";
|
||||
this.AddBranchWithTextToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.AddBranchWithTextToolStripMenuItem.Text = "Add with Text";
|
||||
this.AddBranchWithTextToolStripMenuItem.Click += new System.EventHandler(this.AddBranchWithTextToolStripMenuItem_Click);
|
||||
//
|
||||
// BookmarksBranchesBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
|
||||
|
@ -150,10 +175,12 @@
|
|||
private System.Windows.Forms.GroupBox BookmarksBranchesGroupBox;
|
||||
private InputRoll BranchView;
|
||||
private System.Windows.Forms.ContextMenuStrip BranchesContextMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem AddContextMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem AddBranchContextMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem RemoveBranchContextMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem LoadBranchContextMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem UpdateBranchContextMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem EditBranchTextToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem AddBranchWithTextToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,19 +58,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
BranchView.QueryItemBkColor += QueryItemBkColor;
|
||||
}
|
||||
|
||||
public TasBranch SelectedBranch
|
||||
{
|
||||
get
|
||||
{
|
||||
if (BranchView.AnyRowsSelected)
|
||||
{
|
||||
return GetBranch(BranchView.SelectedRows.First());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void QueryItemText(int index, InputRoll.RollColumn column, out string text, ref int offsetX, ref int offsetY)
|
||||
{
|
||||
text = string.Empty;
|
||||
|
@ -125,19 +112,63 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
private void AddContextMenu_Click(object sender, EventArgs e)
|
||||
public void Branch()
|
||||
{
|
||||
Branch();
|
||||
TasBranch branch = CreateBranch();
|
||||
Movie.AddBranch(branch);
|
||||
BranchView.RowCount = Movie.BranchCount;
|
||||
Movie.CurrentBranch = Movie.BranchCount - 1;
|
||||
BranchView.Refresh();
|
||||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
private void BranchView_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
public TasBranch SelectedBranch
|
||||
{
|
||||
LoadSelectedBranch();
|
||||
get
|
||||
{
|
||||
if (BranchView.AnyRowsSelected)
|
||||
{
|
||||
return GetBranch(BranchView.SelectedRows.First());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadBranchContextMenuItem_Click(object sender, EventArgs e)
|
||||
private TasBranch CreateBranch()
|
||||
{
|
||||
LoadSelectedBranch();
|
||||
// TODO: don't use Global.Emulator
|
||||
return new TasBranch
|
||||
{
|
||||
Frame = Global.Emulator.Frame,
|
||||
CoreData = (byte[])((Global.Emulator as IStatable).SaveStateBinary().Clone()),
|
||||
InputLog = Movie.InputLog.Clone(),
|
||||
OSDFrameBuffer = GlobalWin.MainForm.CaptureOSD(),
|
||||
LagLog = Movie.TasLagLog.Clone(),
|
||||
ChangeLog = new TasMovieChangeLog(Movie),
|
||||
TimeStamp = DateTime.Now,
|
||||
Markers = Movie.Markers.DeepClone(),
|
||||
UserText = ""
|
||||
};
|
||||
}
|
||||
|
||||
private void LoadBranch(TasBranch branch)
|
||||
{
|
||||
Tastudio.CurrentTasMovie.LoadBranch(branch);
|
||||
GlobalWin.DisplayManager.NeedsToPaint = true;
|
||||
var stateInfo = new KeyValuePair<int, byte[]>(branch.Frame, branch.CoreData);
|
||||
Tastudio.LoadState(stateInfo);
|
||||
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.OSDFrameBuffer), Global.Emulator.VideoProvider());
|
||||
GlobalWin.MainForm.PauseEmulator();
|
||||
GlobalWin.MainForm.PauseOnFrame = null;
|
||||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
private void UpdateBranch(TasBranch branch)
|
||||
{
|
||||
Movie.UpdateBranch(branch, CreateBranch());
|
||||
BranchView.Refresh();
|
||||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
private void LoadSelectedBranch()
|
||||
|
@ -161,6 +192,40 @@ namespace BizHawk.Client.EmuHawk
|
|||
SelectedBranch != null;
|
||||
}
|
||||
|
||||
private void AddContextMenu_Click(object sender, EventArgs e)
|
||||
{
|
||||
Branch();
|
||||
}
|
||||
|
||||
private void AddBranchWithTextToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Branch();
|
||||
Tastudio.CallEditBranchTextPopUp(Movie.CurrentBranch);
|
||||
}
|
||||
|
||||
private void LoadBranchContextMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
LoadSelectedBranch();
|
||||
}
|
||||
|
||||
private void UpdateBranchContextMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedBranch != null)
|
||||
{
|
||||
UpdateBranch(SelectedBranch);
|
||||
Movie.CurrentBranch = BranchView.SelectedRows.First();
|
||||
}
|
||||
}
|
||||
|
||||
private void EditBranchTextToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedBranch != null)
|
||||
{
|
||||
int index = BranchView.SelectedRows.First();
|
||||
Tastudio.CallEditBranchTextPopUp(index);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveBranchContextMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedBranch != null)
|
||||
|
@ -188,18 +253,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
private void LoadBranch(TasBranch branch)
|
||||
{
|
||||
Tastudio.CurrentTasMovie.LoadBranch(branch);
|
||||
GlobalWin.DisplayManager.NeedsToPaint = true;
|
||||
var stateInfo = new KeyValuePair<int, byte[]>(branch.Frame, branch.CoreData);
|
||||
Tastudio.LoadState(stateInfo);
|
||||
QuickBmpFile.Copy(new BitmapBufferVideoProvider(branch.OSDFrameBuffer), Global.Emulator.VideoProvider());
|
||||
GlobalWin.MainForm.PauseEmulator();
|
||||
GlobalWin.MainForm.PauseOnFrame = null;
|
||||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
public void UpdateValues()
|
||||
{
|
||||
BranchView.RowCount = Movie.BranchCount;
|
||||
|
@ -213,30 +266,68 @@ namespace BizHawk.Client.EmuHawk
|
|||
BranchView.Refresh();
|
||||
}
|
||||
|
||||
public void Branch()
|
||||
private void ScreenShotPopUp(TasBranch branch, int index)
|
||||
{
|
||||
TasBranch branch = CreateBranch();
|
||||
Movie.AddBranch(branch);
|
||||
BranchView.RowCount = Movie.BranchCount;
|
||||
Movie.CurrentBranch = Movie.BranchCount - 1;
|
||||
BranchView.Refresh();
|
||||
Tastudio.RefreshDialog();
|
||||
Point locationOnForm = this.FindForm().PointToClient(
|
||||
this.Parent.PointToScreen(this.Location));
|
||||
|
||||
int x = locationOnForm.X - Tastudio.ScreenshotControl.Width;
|
||||
int y = locationOnForm.Y; // keep consistent height, helps when conparing screenshots
|
||||
|
||||
if (x < 1) x = 1;
|
||||
|
||||
Tastudio.ScreenshotControl.Location = new Point(x, y);
|
||||
Tastudio.ScreenshotControl.Visible = true;
|
||||
Tastudio.ScreenshotControl.Branch = branch;
|
||||
Tastudio.ScreenshotControl.RecalculateHeight();
|
||||
Tastudio.ScreenshotControl.Refresh();
|
||||
}
|
||||
|
||||
private TasBranch CreateBranch()
|
||||
private void CloseScreenShotPopUp()
|
||||
{
|
||||
// TODO: don't use Global.Emulator
|
||||
return new TasBranch
|
||||
Tastudio.ScreenshotControl.Visible = false;
|
||||
}
|
||||
|
||||
private void BranchView_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right)
|
||||
{
|
||||
Frame = Global.Emulator.Frame,
|
||||
CoreData = (byte[])((Global.Emulator as IStatable).SaveStateBinary().Clone()),
|
||||
InputLog = Movie.InputLog.Clone(),
|
||||
OSDFrameBuffer = GlobalWin.MainForm.CaptureOSD(),
|
||||
LagLog = Movie.TasLagLog.Clone(),
|
||||
ChangeLog = new TasMovieChangeLog(Movie),
|
||||
TimeStamp = DateTime.Now,
|
||||
Markers = Movie.Markers.DeepClone()
|
||||
};
|
||||
if (BranchView.CurrentCell != null && BranchView.CurrentCell.IsDataCell
|
||||
&& BranchView.CurrentCell.Column.Name == BranchNumberColumnName)
|
||||
{
|
||||
BranchView.DragCurrentCell();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void BranchView_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
BranchView.ReleaseCurrentCell();
|
||||
}
|
||||
}
|
||||
|
||||
private void BranchView_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
LoadSelectedBranch();
|
||||
}
|
||||
|
||||
private void BranchView_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (BranchView.CurrentCell == null || !BranchView.CurrentCell.RowIndex.HasValue || BranchView.CurrentCell.Column == null)
|
||||
{
|
||||
CloseScreenShotPopUp();
|
||||
}
|
||||
else if (BranchView.CurrentCell.Column.Name == BranchNumberColumnName)
|
||||
{
|
||||
BranchView.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void BranchView_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
// Tastudio.ScreenshotControl.Visible = false;
|
||||
}
|
||||
|
||||
private void BranchView_CellHovered(object sender, InputRoll.CellEventArgs e)
|
||||
|
@ -258,82 +349,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
private void BranchView_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (BranchView.CurrentCell == null || !BranchView.CurrentCell.RowIndex.HasValue || BranchView.CurrentCell.Column == null)
|
||||
{
|
||||
CloseScreenShotPopUp();
|
||||
}
|
||||
else if (BranchView.CurrentCell.Column.Name == BranchNumberColumnName)
|
||||
{
|
||||
BranchView.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void CloseScreenShotPopUp()
|
||||
{
|
||||
Tastudio.ScreenshotControl.Visible = false;
|
||||
}
|
||||
|
||||
private void BranchView_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
// Tastudio.ScreenshotControl.Visible = false;
|
||||
}
|
||||
|
||||
private void ScreenShotPopUp(TasBranch branch, int index)
|
||||
{
|
||||
Point locationOnForm = this.FindForm().PointToClient(
|
||||
this.Parent.PointToScreen(this.Location));
|
||||
|
||||
int x = locationOnForm.X - Tastudio.ScreenshotControl.Width;
|
||||
int y = locationOnForm.Y; // keep consistent height, helps when conparing screenshots
|
||||
|
||||
if (x < 1) x = 1;
|
||||
|
||||
Tastudio.ScreenshotControl.UserText = "";
|
||||
Tastudio.ScreenshotControl.RecalculatePadding();
|
||||
Tastudio.ScreenshotControl.Location = new Point(x, y);
|
||||
Tastudio.ScreenshotControl.Visible = true;
|
||||
Tastudio.ScreenshotControl.Branch = branch;
|
||||
Tastudio.ScreenshotControl.Refresh();
|
||||
}
|
||||
|
||||
private void UpdateBranchContextMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedBranch != null)
|
||||
{
|
||||
UpdateBranch(SelectedBranch);
|
||||
Movie.CurrentBranch = BranchView.SelectedRows.First();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateBranch(TasBranch branch)
|
||||
{
|
||||
Movie.UpdateBranch(branch, CreateBranch());
|
||||
BranchView.Refresh();
|
||||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
private void BranchView_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
if (BranchView.CurrentCell != null && BranchView.CurrentCell.IsDataCell
|
||||
&& BranchView.CurrentCell.Column.Name == BranchNumberColumnName)
|
||||
{
|
||||
BranchView.DragCurrentCell();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void BranchView_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
BranchView.ReleaseCurrentCell();
|
||||
}
|
||||
}
|
||||
|
||||
private void BranchView_CellDropped(object sender, InputRoll.CellEventArgs e)
|
||||
{
|
||||
if (e.NewCell != null && e.NewCell.IsDataCell && e.OldCell.RowIndex.Value < Movie.BranchCount)
|
||||
|
|
|
@ -9,6 +9,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public partial class ScreenshotPopupControl : UserControl
|
||||
{
|
||||
public TasBranch Branch { get; set; }
|
||||
public int DrawingHeight = 0;
|
||||
public int UserPadding = 0;
|
||||
public int UserFontSize = 10; // because why not?
|
||||
public FontStyle UserFontStyle = FontStyle.Regular;
|
||||
public string UserText;
|
||||
private Font UserFont;
|
||||
|
||||
public ScreenshotPopupControl()
|
||||
{
|
||||
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
|
||||
|
@ -18,13 +26,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
InitializeComponent();
|
||||
}
|
||||
|
||||
public TasBranch Branch { get; set; }
|
||||
|
||||
private void ScreenshotPopupControl_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
var bitmap = Branch.OSDFrameBuffer.ToSysdrawingBitmap();
|
||||
|
@ -32,11 +33,31 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (UserPadding > 0)
|
||||
{
|
||||
e.Graphics.DrawRectangle(new Pen(Brushes.Black), new Rectangle(new Point(0, DrawingHeight), new Size(Width - 1, UserPadding - 1)));
|
||||
e.Graphics.DrawString(UserText, _font, Brushes.Black, new Rectangle(1, DrawingHeight, Width - 1, Height));
|
||||
e.Graphics.DrawString(UserText, UserFont, Brushes.Black, new Rectangle(2, DrawingHeight, Width - 2, Height));
|
||||
}
|
||||
base.OnPaint(e);
|
||||
}
|
||||
|
||||
public void SetFontStyle(FontStyle style)
|
||||
{
|
||||
UserFontStyle = style;
|
||||
}
|
||||
|
||||
public void SetFontSize(int size)
|
||||
{
|
||||
UserFontSize = size;
|
||||
}
|
||||
|
||||
public void RecalculateHeight()
|
||||
{
|
||||
UserFont = new Font(FontFamily.GenericMonospace, UserFontSize, UserFontStyle);
|
||||
UserText = Branch.UserText;
|
||||
UserPadding = (int)Graphics.FromHwnd(this.Handle).MeasureString(UserText, UserFont, Width).Height;
|
||||
if (UserPadding > 0)
|
||||
UserPadding += 2;
|
||||
Height = DrawingHeight + UserPadding;
|
||||
}
|
||||
|
||||
private void ScreenshotPopupControl_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
Visible = false;
|
||||
|
@ -47,18 +68,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
// todo: switch screenshots by hotkey
|
||||
}
|
||||
|
||||
public void RecalculatePadding()
|
||||
private void ScreenshotPopupControl_Load(object sender, EventArgs e)
|
||||
{
|
||||
UserPadding = (int)Graphics.FromHwnd(this.Handle).MeasureString(UserText, _font, Width).Height;
|
||||
if (UserPadding > 0)
|
||||
UserPadding += 2;
|
||||
Height = DrawingHeight + UserPadding;
|
||||
|
||||
}
|
||||
|
||||
public int DrawingHeight = 0;
|
||||
public int UserPadding = 0;
|
||||
public string UserText;
|
||||
|
||||
private Font _font = new Font(new FontFamily("Courier New"), 8);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -755,6 +755,29 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
public void CallEditBranchTextPopUp(int index)
|
||||
{
|
||||
TasBranch branch = CurrentTasMovie.GetBranch(index);
|
||||
if (branch == null)
|
||||
return;
|
||||
|
||||
InputPrompt i = new InputPrompt
|
||||
{
|
||||
Text = "Text for branch " + index,
|
||||
TextInputType = InputPrompt.InputType.Text,
|
||||
Message = "Enter a message",
|
||||
InitialValue = branch.UserText
|
||||
};
|
||||
|
||||
var result = i.ShowHawkDialog();
|
||||
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
branch.UserText = i.PromptText;
|
||||
BookMarkControl.UpdateValues();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateChangesIndicator()
|
||||
{
|
||||
// TODO
|
||||
|
|
Loading…
Reference in New Issue