convert Tastudio UndoHistory from VirtualListView to InputRoll
This commit is contained in:
parent
7fc4e82ef9
commit
ccdf616d46
|
@ -40,9 +40,7 @@
|
||||||
this.AutoScrollCheck = new System.Windows.Forms.CheckBox();
|
this.AutoScrollCheck = new System.Windows.Forms.CheckBox();
|
||||||
this.MaxStepsNum = new System.Windows.Forms.NumericUpDown();
|
this.MaxStepsNum = new System.Windows.Forms.NumericUpDown();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.HistoryView = new BizHawk.Client.EmuHawk.VirtualListView();
|
this.HistoryView = new InputRoll();
|
||||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
|
||||||
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
|
||||||
this.RightClickMenu.SuspendLayout();
|
this.RightClickMenu.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.MaxStepsNum)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.MaxStepsNum)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
|
@ -168,35 +166,19 @@
|
||||||
this.HistoryView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.HistoryView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.HistoryView.BlazingFast = false;
|
this.HistoryView.RowCount = 0;
|
||||||
this.HistoryView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
|
||||||
this.columnHeader1,
|
|
||||||
this.columnHeader2});
|
|
||||||
this.HistoryView.HideSelection = false;
|
|
||||||
this.HistoryView.ItemCount = 0;
|
|
||||||
this.HistoryView.Location = new System.Drawing.Point(10, 10);
|
this.HistoryView.Location = new System.Drawing.Point(10, 10);
|
||||||
this.HistoryView.MultiSelect = false;
|
this.HistoryView.MultiSelect = false;
|
||||||
this.HistoryView.Name = "HistoryView";
|
this.HistoryView.Name = "HistoryView";
|
||||||
this.HistoryView.SelectAllInProgress = false;
|
|
||||||
this.HistoryView.selectedItem = -1;
|
|
||||||
this.HistoryView.Size = new System.Drawing.Size(369, 213);
|
this.HistoryView.Size = new System.Drawing.Size(369, 213);
|
||||||
this.HistoryView.TabIndex = 2;
|
this.HistoryView.TabIndex = 2;
|
||||||
this.HistoryView.UseCompatibleStateImageBehavior = false;
|
|
||||||
this.HistoryView.UseCustomBackground = true;
|
this.HistoryView.UseCustomBackground = true;
|
||||||
this.HistoryView.View = System.Windows.Forms.View.Details;
|
|
||||||
this.HistoryView.DoubleClick += new System.EventHandler(this.HistoryView_DoubleClick);
|
this.HistoryView.DoubleClick += new System.EventHandler(this.HistoryView_DoubleClick);
|
||||||
this.HistoryView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.HistoryView_MouseDown);
|
this.HistoryView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.HistoryView_MouseDown);
|
||||||
this.HistoryView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.HistoryView_MouseUp);
|
this.HistoryView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.HistoryView_MouseUp);
|
||||||
//
|
this.HistoryView.AllowColumnReorder = false;
|
||||||
// columnHeader1
|
this.HistoryView.AllowColumnResize = false;
|
||||||
//
|
this.HistoryView.FullRowSelect = true;
|
||||||
this.columnHeader1.Text = "ID";
|
|
||||||
this.columnHeader1.Width = 40;
|
|
||||||
//
|
|
||||||
// columnHeader2
|
|
||||||
//
|
|
||||||
this.columnHeader2.Text = "Undo Step";
|
|
||||||
this.columnHeader2.Width = 322;
|
|
||||||
//
|
//
|
||||||
// UndoHistoryForm
|
// UndoHistoryForm
|
||||||
//
|
//
|
||||||
|
@ -225,9 +207,7 @@
|
||||||
|
|
||||||
private System.Windows.Forms.Button ClearButton;
|
private System.Windows.Forms.Button ClearButton;
|
||||||
private System.Windows.Forms.Button UndoButton;
|
private System.Windows.Forms.Button UndoButton;
|
||||||
private VirtualListView HistoryView;
|
private InputRoll HistoryView;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
|
||||||
private System.Windows.Forms.Button RedoButton;
|
private System.Windows.Forms.Button RedoButton;
|
||||||
private System.Windows.Forms.ContextMenuStrip RightClickMenu;
|
private System.Windows.Forms.ContextMenuStrip RightClickMenu;
|
||||||
private System.Windows.Forms.ToolStripMenuItem undoHereToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem undoHereToolStripMenuItem;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
|
|
||||||
|
@ -7,6 +8,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
public partial class UndoHistoryForm : Form
|
public partial class UndoHistoryForm : Form
|
||||||
{
|
{
|
||||||
|
private const string IdColumnName = "ID";
|
||||||
|
private const string UndoColumnName = "Undo Step";
|
||||||
|
|
||||||
private readonly TAStudio _tastudio;
|
private readonly TAStudio _tastudio;
|
||||||
private string _lastUndoAction;
|
private string _lastUndoAction;
|
||||||
private TasMovieChangeLog Log => _tastudio.CurrentTasMovie.ChangeLog;
|
private TasMovieChangeLog Log => _tastudio.CurrentTasMovie.ChangeLog;
|
||||||
|
@ -19,30 +23,30 @@ namespace BizHawk.Client.EmuHawk
|
||||||
HistoryView.QueryItemText += HistoryView_QueryItemText;
|
HistoryView.QueryItemText += HistoryView_QueryItemText;
|
||||||
HistoryView.QueryItemBkColor += HistoryView_QueryItemBkColor;
|
HistoryView.QueryItemBkColor += HistoryView_QueryItemBkColor;
|
||||||
|
|
||||||
HistoryView.Columns[1].Width = 280;
|
HistoryView.AllColumns.Clear();
|
||||||
|
HistoryView.AllColumns.AddRange(new[]
|
||||||
|
{
|
||||||
|
new InputRoll.RollColumn { Name = IdColumnName, Text = IdColumnName, Width = 40, Type = InputRoll.RollColumn.InputType.Text },
|
||||||
|
new InputRoll.RollColumn { Name = UndoColumnName, Text = UndoColumnName, Width = 280, Type = InputRoll.RollColumn.InputType.Text }
|
||||||
|
});
|
||||||
|
|
||||||
MaxStepsNum.Value = Log.MaxSteps;
|
MaxStepsNum.Value = Log.MaxSteps;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HistoryView_QueryItemText(int row, int column, out string text)
|
private void HistoryView_QueryItemText(int index, InputRoll.RollColumn column, out string text, ref int offsetX, ref int offsetY)
|
||||||
{
|
{
|
||||||
text = column == 1
|
text = column.Name == UndoColumnName
|
||||||
? Log.Names[row]
|
? Log.Names[index]
|
||||||
: row.ToString();
|
: index.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HistoryView_QueryItemBkColor(int row, int column, ref Color color)
|
private void HistoryView_QueryItemBkColor(int index, InputRoll.RollColumn column, ref Color color)
|
||||||
{
|
{
|
||||||
if (column == 0)
|
if (index == Log.UndoIndex)
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (row == Log.UndoIndex)
|
|
||||||
{
|
{
|
||||||
color = TAStudio.GreenZone_InputLog;
|
color = TAStudio.GreenZone_InputLog;
|
||||||
}
|
}
|
||||||
else if (row > Log.UndoIndex)
|
else if (index > Log.UndoIndex)
|
||||||
{
|
{
|
||||||
color = TAStudio.LagZone_InputLog;
|
color = TAStudio.LagZone_InputLog;
|
||||||
}
|
}
|
||||||
|
@ -50,12 +54,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
public void UpdateValues()
|
public void UpdateValues()
|
||||||
{
|
{
|
||||||
HistoryView.ItemCount = Log.Names.Count;
|
HistoryView.RowCount = Log.Names.Count;
|
||||||
if (AutoScrollCheck.Checked && _lastUndoAction != Log.NextUndoStepName)
|
if (AutoScrollCheck.Checked && _lastUndoAction != Log.NextUndoStepName)
|
||||||
{
|
{
|
||||||
HistoryView.ensureVisible(Log.UndoIndex);
|
HistoryView.ScrollToIndex(Log.UndoIndex);
|
||||||
HistoryView.clearSelection();
|
HistoryView.DeselectAll();
|
||||||
HistoryView.SelectItem(Log.UndoIndex - 1, true);
|
HistoryView.SelectRow(Log.UndoIndex - 1, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_lastUndoAction = Log.NextUndoStepName;
|
_lastUndoAction = Log.NextUndoStepName;
|
||||||
|
@ -81,9 +85,13 @@ namespace BizHawk.Client.EmuHawk
|
||||||
_tastudio.RefreshDialog();
|
_tastudio.RefreshDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int SelectedItem => HistoryView.SelectedRows.Any()
|
||||||
|
? HistoryView.SelectedRows.First()
|
||||||
|
: -1;
|
||||||
|
|
||||||
private void HistoryView_DoubleClick(object sender, EventArgs e)
|
private void HistoryView_DoubleClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (Log.UndoIndex <= HistoryView.selectedItem)
|
if (Log.UndoIndex <= SelectedItem)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +100,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
Log.Undo();
|
Log.Undo();
|
||||||
}
|
}
|
||||||
while (Log.UndoIndex > HistoryView.selectedItem);
|
while (Log.UndoIndex > SelectedItem);
|
||||||
|
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
}
|
}
|
||||||
|
@ -105,9 +113,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
else if (e.Button == MouseButtons.Left)
|
else if (e.Button == MouseButtons.Left)
|
||||||
{
|
{
|
||||||
if (HistoryView.selectedItem == -1)
|
if (SelectedItem == -1)
|
||||||
{
|
{
|
||||||
HistoryView.SelectItem(_hackSelect, true);
|
HistoryView.SelectRow(_hackSelect, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,13 +125,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void HistoryView_MouseDown(object sender, MouseEventArgs e)
|
private void HistoryView_MouseDown(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
HistoryView.SelectItem((e.Y / HistoryView.LineHeight) + HistoryView.VScrollPos - 1, true);
|
_hackSelect = SelectedItem;
|
||||||
_hackSelect = HistoryView.selectedItem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UndoHereMenuItem_Click(object sender, EventArgs e)
|
private void UndoHereMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (HistoryView.selectedItem == -1 || Log.UndoIndex < HistoryView.selectedItem)
|
if (SelectedItem == -1 || Log.UndoIndex < SelectedItem)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -132,14 +139,14 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
Log.Undo();
|
Log.Undo();
|
||||||
}
|
}
|
||||||
while (Log.UndoIndex >= HistoryView.selectedItem);
|
while (Log.UndoIndex >= SelectedItem);
|
||||||
|
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RedoHereMenuItem_Click(object sender, EventArgs e)
|
private void RedoHereMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (HistoryView.selectedItem == -1 || Log.UndoIndex >= HistoryView.selectedItem)
|
if (SelectedItem == -1 || Log.UndoIndex >= SelectedItem)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -148,16 +155,16 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
Log.Redo();
|
Log.Redo();
|
||||||
}
|
}
|
||||||
while (Log.UndoIndex < HistoryView.selectedItem);
|
while (Log.UndoIndex < SelectedItem);
|
||||||
|
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ClearHistoryToHereMenuItem_Click(object sender, EventArgs e)
|
private void ClearHistoryToHereMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (HistoryView.selectedItem != -1)
|
if (SelectedItem != -1)
|
||||||
{
|
{
|
||||||
Log.ClearLog(HistoryView.selectedItem);
|
Log.ClearLog(SelectedItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateValues();
|
UpdateValues();
|
||||||
|
|
Loading…
Reference in New Issue