Refactored a lot of InputRoll, started the foundation of changing orientation behavior, horizontal scrollbar now works completely. Have not tested horizontal orientation (not until vscrollbar is in pixels and switching between orientations is tested).

This commit is contained in:
kylelyk 2014-08-30 18:42:14 +00:00
parent e6d6dc7e51
commit d2eb036b90
7 changed files with 412 additions and 261 deletions

File diff suppressed because it is too large Load Diff

View File

@ -66,8 +66,8 @@
this.MarkerView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.MarkerView.FullRowSelect = true;
this.MarkerView.HorizontalOrientation = false;
this.MarkerView.ItemCount = 0;
this.MarkerView.LastVisibleIndex = 9;
this.MarkerView.RowCount = 0;
this.MarkerView.LastVisibleRow = 9;
this.MarkerView.Location = new System.Drawing.Point(3, 0);
this.MarkerView.MultiSelect = false;
this.MarkerView.Name = "MarkerView";

View File

@ -98,7 +98,7 @@ namespace BizHawk.Client.EmuHawk
{
if (MarkerView != null && Markers != null)
{
MarkerView.ItemCount = Markers.Count;
MarkerView.RowCount = Markers.Count;
}
MarkerView.Refresh();
@ -120,7 +120,7 @@ namespace BizHawk.Client.EmuHawk
{
get
{
return MarkerView.SelectedIndices
return MarkerView.SelectedRows
.OfType<int>();
}
}

View File

@ -698,8 +698,8 @@ namespace BizHawk.Client.EmuHawk
this.TasView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.TasView.FullRowSelect = true;
this.TasView.HorizontalOrientation = false;
this.TasView.ItemCount = 0;
this.TasView.LastVisibleIndex = 22;
this.TasView.RowCount = 0;
this.TasView.LastVisibleRow = 22;
this.TasView.Location = new System.Drawing.Point(8, 27);
this.TasView.MultiSelect = true;
this.TasView.Name = "TasView";

View File

@ -7,23 +7,18 @@ namespace BizHawk.Client.EmuHawk
{
public void UpdateValues()
{
if (!IsHandleCreated || IsDisposed)
{
return;
}
if (_currentTasMovie == null)
if (!IsHandleCreated || IsDisposed || _currentTasMovie == null)
{
return;
}
if (_currentTasMovie.IsRecording)
{
TasView.LastVisibleIndex = _currentTasMovie.InputLogLength - 1;
TasView.LastVisibleRow = _currentTasMovie.InputLogLength - 1;
}
else
{
TasView.LastVisibleIndex = Global.Emulator.Frame;
TasView.LastVisibleRow = Global.Emulator.Frame;
}
RefreshDialog();

View File

@ -164,7 +164,7 @@ namespace BizHawk.Client.EmuHawk
private void TasView_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var columnName = TasView.Columns[e.Column].Name;
@ -174,7 +174,7 @@ namespace BizHawk.Client.EmuHawk
}
else if (columnName != MarkerColumnName) // TODO: what about float?
{
foreach (var index in TasView.SelectedIndices)
foreach (var index in TasView.SelectedRows)
{
ToggleBoolState(index, columnName);
}
@ -230,10 +230,10 @@ namespace BizHawk.Client.EmuHawk
{
var frame = TasView.CurrentCell.RowIndex.Value;
var buttonName = TasView.CurrentCell.Column.Name;
if (TasView.SelectedIndices.IndexOf(frame) != -1 && (buttonName == MarkerColumnName || buttonName == FrameColumnName))
if (TasView.SelectedRows.IndexOf(frame) != -1 && (buttonName == MarkerColumnName || buttonName == FrameColumnName))
{
//Disable the option to remove markers if no markers are selected (FCUEX does this).
RemoveMarkersContextMenuItem.Enabled = _currentTasMovie.Markers.Any(m => TasView.SelectedIndices.Contains(m.Frame));
RemoveMarkersContextMenuItem.Enabled = _currentTasMovie.Markers.Any(m => TasView.SelectedRows.Contains(m.Frame));
RightClickMenu.Show(TasView, e.X, e.Y);
}
}

View File

@ -156,8 +156,7 @@ namespace BizHawk.Client.EmuHawk
{
_currentTasMovie.FlushInputCache();
_currentTasMovie.UseInputCache = true;
TasView.ItemCount = _currentTasMovie.InputLogLength + 1;
TasView.RowCount = _currentTasMovie.InputLogLength + 1;
TasView.Refresh();
_currentTasMovie.FlushInputCache();
@ -270,7 +269,7 @@ namespace BizHawk.Client.EmuHawk
}
GlobalWin.DisplayManager.NeedsToPaint = true;
TasView.LastVisibleIndex = frame;
TasView.LastVisibleRow = frame;
}
else // Get as close as we can then emulate there
{
@ -294,7 +293,7 @@ namespace BizHawk.Client.EmuHawk
Global.Emulator.LoadStateBinary(new BinaryReader(new MemoryStream(_currentTasMovie[goToFrame].State.ToArray())));
Global.Emulator.FrameAdvance(true);
GlobalWin.DisplayManager.NeedsToPaint = true;
TasView.LastVisibleIndex = frame;
TasView.LastVisibleRow = frame;
}
else
{
@ -373,7 +372,7 @@ namespace BizHawk.Client.EmuHawk
{
// TODO: columns selected
// TODO: clipboard
var list = TasView.SelectedIndices;
var list = TasView.SelectedRows;
string message = "Selected: ";
if (list.Count > 0)
@ -541,7 +540,7 @@ namespace BizHawk.Client.EmuHawk
DeleteFramesMenuItem.Enabled =
CloneMenuItem.Enabled =
TruncateMenuItem.Enabled =
TasView.SelectedIndices.Any();
TasView.SelectedRows.Any();
ReselectClipboardMenuItem.Enabled =
PasteMenuItem.Enabled =
PasteInsertMenuItem.Enabled =
@ -560,7 +559,7 @@ namespace BizHawk.Client.EmuHawk
private void SelectBetweenMarkersMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var prevMarker = _currentTasMovie.Markers.PreviousOrCurrent(TasView.LastSelectedIndex.Value);
var nextMarker = _currentTasMovie.Markers.Next(TasView.LastSelectedIndex.Value);
@ -586,10 +585,10 @@ namespace BizHawk.Client.EmuHawk
private void CopyMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
_tasClipboard.Clear();
var list = TasView.SelectedIndices;
var list = TasView.SelectedRows;
var sb = new StringBuilder();
for (var i = 0; i < list.Count; i++)
{
@ -648,13 +647,13 @@ namespace BizHawk.Client.EmuHawk
private void CutMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var needsToRollback = !(TasView.FirstSelectedIndex.Value > Global.Emulator.Frame);
var rollBackFrame = TasView.FirstSelectedIndex.Value;
_tasClipboard.Clear();
var list = TasView.SelectedIndices.ToArray();
var list = TasView.SelectedRows.ToArray();
var sb = new StringBuilder();
for (var i = 0; i < list.Length; i++)
{
@ -683,12 +682,12 @@ namespace BizHawk.Client.EmuHawk
private void ClearMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var needsToRollback = !(TasView.FirstSelectedIndex > Global.Emulator.Frame);
var rollBackFrame = TasView.FirstSelectedIndex.Value;
foreach (var frame in TasView.SelectedIndices)
foreach (var frame in TasView.SelectedRows)
{
_currentTasMovie.ClearFrame(frame);
}
@ -706,13 +705,13 @@ namespace BizHawk.Client.EmuHawk
private void DeleteFramesMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var needsToRollback = !(TasView.FirstSelectedIndex > Global.Emulator.Frame);
var rollBackFrame = TasView.FirstSelectedIndex.Value;
_tasClipboard.Clear();
_currentTasMovie.RemoveFrames(TasView.SelectedIndices.ToArray());
_currentTasMovie.RemoveFrames(TasView.SelectedRows.ToArray());
SetSplicer();
TasView.DeselectAll();
@ -729,9 +728,9 @@ namespace BizHawk.Client.EmuHawk
private void CloneMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var framesToInsert = TasView.SelectedIndices.ToList();
var framesToInsert = TasView.SelectedRows.ToList();
var insertionFrame = TasView.LastSelectedIndex.Value + 1;
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
var inputLog = new List<string>();
@ -756,7 +755,7 @@ namespace BizHawk.Client.EmuHawk
private void InsertFrameMenuItem_Click(object sender, EventArgs e)
{
var insertionFrame = TasView.SelectedIndices.Any() ? TasView.FirstSelectedIndex.Value : 0;
var insertionFrame = TasView.SelectedRows.Any() ? TasView.FirstSelectedIndex.Value : 0;
bool needsToRollback = insertionFrame <= Global.Emulator.Frame;
_currentTasMovie.InsertEmptyFrame(insertionFrame);
@ -773,7 +772,7 @@ namespace BizHawk.Client.EmuHawk
private void InsertNumFramesMenuItem_Click(object sender, EventArgs e)
{
var insertionFrame = TasView.SelectedIndices.Any() ? TasView.FirstSelectedIndex.Value : 0;
var insertionFrame = TasView.SelectedRows.Any() ? TasView.FirstSelectedIndex.Value : 0;
bool needsToRollback = insertionFrame <= Global.Emulator.Frame;
var framesPrompt = new FramesPrompt();
@ -795,7 +794,7 @@ namespace BizHawk.Client.EmuHawk
private void TruncateMenuItem_Click(object sender, EventArgs e)
{
if (TasView.SelectedIndices.Any())
if (TasView.SelectedRows.Any())
{
var rollbackFrame = TasView.LastSelectedIndex.Value + 1;
var needsToRollback = !(rollbackFrame > Global.Emulator.Frame);
@ -815,7 +814,7 @@ namespace BizHawk.Client.EmuHawk
private void SetMarkersMenuItem_Click(object sender, EventArgs e)
{
foreach(int index in TasView.SelectedIndices)
foreach(int index in TasView.SelectedRows)
{
CallAddMarkerPopUp(index);
}
@ -823,7 +822,7 @@ namespace BizHawk.Client.EmuHawk
private void RemoveMarkersMenuItem_Click(object sender, EventArgs e)
{
_currentTasMovie.Markers.RemoveAll(m => TasView.SelectedIndices.Contains(m.Frame));
_currentTasMovie.Markers.RemoveAll(m => TasView.SelectedRows.Contains(m.Frame));
RefreshDialog();
}