add some extensions to the ControlExtension class for converting cruddy .NET 1.0 collection objects to IEnumerable<T>, and start removing some code in specific forms that work around cruddy .NET 1.0 stuff
This commit is contained in:
parent
aeea08a823
commit
7ec866ced5
|
@ -58,6 +58,29 @@ namespace BizHawk.Client.EmuHawk.WinFormExtensions
|
||||||
{
|
{
|
||||||
return control.PointToScreen(new Point(child.Location.X, child.Location.Y));
|
return control.PointToScreen(new Point(child.Location.X, child.Location.Y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region Enumerable to Enumerable<T>
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the outdated IEnumerable Controls property to a IEnumerable<T> like .NET should have done a long time ago
|
||||||
|
/// </summary>
|
||||||
|
public static IEnumerable<Control> Controls(this Control control)
|
||||||
|
{
|
||||||
|
return control.Controls
|
||||||
|
.OfType<Control>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<TabPage> TabPages(this TabControl tabControl)
|
||||||
|
{
|
||||||
|
return tabControl.TabPages.Cast<TabPage>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<int> SelectedIndices(this ListView listView)
|
||||||
|
{
|
||||||
|
return listView.SelectedIndices.Cast<int>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class FormExtensions
|
public static class FormExtensions
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -416,9 +417,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
(c as AnalogBindControl).Unbind_Click(null, null);
|
(c as AnalogBindControl).Unbind_Click(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c.Controls.Count > 0)
|
if (c.Controls().Any())
|
||||||
{
|
{
|
||||||
foreach (Control child in c.Controls.OfType<Control>())
|
foreach (Control child in c.Controls())
|
||||||
{
|
{
|
||||||
ClearWidgetAndChildren(child);
|
ClearWidgetAndChildren(child);
|
||||||
}
|
}
|
||||||
|
@ -427,7 +428,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void ClearBtn_Click(object sender, EventArgs e)
|
private void ClearBtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
foreach (var c in Controls.OfType<Control>())
|
foreach (var c in this.Controls())
|
||||||
{
|
{
|
||||||
ClearWidgetAndChildren(c);
|
ClearWidgetAndChildren(c);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
|
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -25,8 +26,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
foreach (var core in coresToHide)
|
foreach (var core in coresToHide)
|
||||||
{
|
{
|
||||||
PathTabControl.TabPages.Remove(
|
PathTabControl.TabPages.Remove(
|
||||||
AllTabPages.FirstOrDefault(x => x.Name == core) ?? new TabPage()
|
PathTabControl.TabPages().FirstOrDefault(x => x.Name == core) ?? new TabPage());
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
var btn = new Button
|
var btn = new Button
|
||||||
{
|
{
|
||||||
Text = String.Empty,
|
Text = string.Empty,
|
||||||
Image = Properties.Resources.OpenFile,
|
Image = Properties.Resources.OpenFile,
|
||||||
Location = new Point(widgetOffset, _y - 1),
|
Location = new Point(widgetOffset, _y - 1),
|
||||||
Width = buttonWidth,
|
Width = buttonWidth,
|
||||||
|
@ -257,18 +257,13 @@ namespace BizHawk.Client.EmuHawk
|
||||||
var allPathControls = new List<Control>();
|
var allPathControls = new List<Control>();
|
||||||
foreach (TabPage tp in PathTabControl.TabPages)
|
foreach (TabPage tp in PathTabControl.TabPages)
|
||||||
{
|
{
|
||||||
allPathControls.AddRange(tp.Controls.OfType<Control>());
|
allPathControls.AddRange(tp.Controls());
|
||||||
}
|
}
|
||||||
|
|
||||||
return allPathControls;
|
return allPathControls;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<TabPage> AllTabPages
|
|
||||||
{
|
|
||||||
get { return PathTabControl.TabPages.Cast<TabPage>(); }
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Events
|
#region Events
|
||||||
|
|
||||||
private void NewPathConfig_Load(object sender, EventArgs e)
|
private void NewPathConfig_Load(object sender, EventArgs e)
|
||||||
|
|
|
@ -59,14 +59,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
public bool UpdateBefore { get { return true; } }
|
public bool UpdateBefore { get { return true; } }
|
||||||
|
|
||||||
private IEnumerable<int> SelectedIndices
|
|
||||||
{
|
|
||||||
get { return LuaListView.SelectedIndices.Cast<int>(); }
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<LuaFile> SelectedItems
|
private IEnumerable<LuaFile> SelectedItems
|
||||||
{
|
{
|
||||||
get { return SelectedIndices.Select(index => _luaList[index]); }
|
get { return LuaListView.SelectedIndices().Select(index => _luaList[index]); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<LuaFile> SelectedFiles
|
private IEnumerable<LuaFile> SelectedFiles
|
||||||
|
@ -654,7 +649,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
RemoveScriptMenuItem.Enabled =
|
RemoveScriptMenuItem.Enabled =
|
||||||
MoveUpMenuItem.Enabled =
|
MoveUpMenuItem.Enabled =
|
||||||
MoveDownMenuItem.Enabled =
|
MoveDownMenuItem.Enabled =
|
||||||
SelectedIndices.Any();
|
LuaListView.SelectedIndices().Any();
|
||||||
|
|
||||||
SelectAllMenuItem.Enabled = _luaList.Any();
|
SelectAllMenuItem.Enabled = _luaList.Any();
|
||||||
StopAllScriptsMenuItem.Enabled = _luaList.Any(script => script.Enabled);
|
StopAllScriptsMenuItem.Enabled = _luaList.Any(script => script.Enabled);
|
||||||
|
@ -783,7 +778,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void InsertSeparatorMenuItem_Click(object sender, EventArgs e)
|
private void InsertSeparatorMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var indices = SelectedIndices.ToList();
|
var indices = LuaListView.SelectedIndices().ToList();
|
||||||
if (indices.Any() && indices.Last() < _luaList.Count)
|
if (indices.Any() && indices.Last() < _luaList.Count)
|
||||||
{
|
{
|
||||||
_luaList.Insert(indices.Last(), LuaFile.SeparatorInstance);
|
_luaList.Insert(indices.Last(), LuaFile.SeparatorInstance);
|
||||||
|
@ -798,7 +793,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void MoveUpMenuItem_Click(object sender, EventArgs e)
|
private void MoveUpMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var indices = SelectedIndices.ToList();
|
var indices = LuaListView.SelectedIndices().ToList();
|
||||||
if (indices.Count == 0 || indices[0] == 0)
|
if (indices.Count == 0 || indices[0] == 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -824,7 +819,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void MoveDownMenuItem_Click(object sender, EventArgs e)
|
private void MoveDownMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var indices = SelectedIndices.ToList();
|
var indices = LuaListView.SelectedIndices().ToList();
|
||||||
if (indices.Count == 0 || indices.Last() == _luaList.Count - 1)
|
if (indices.Count == 0 || indices.Last() == _luaList.Count - 1)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -58,16 +58,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<int> SelectedIndices
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return TasView.SelectedIndices
|
|
||||||
.OfType<int>()
|
|
||||||
.OrderBy(frame => frame);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TasMovie CurrentMovie
|
public TasMovie CurrentMovie
|
||||||
{
|
{
|
||||||
get { return _tas; }
|
get { return _tas; }
|
||||||
|
@ -584,7 +574,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
DeleteFramesMenuItem.Enabled =
|
DeleteFramesMenuItem.Enabled =
|
||||||
CloneMenuItem.Enabled =
|
CloneMenuItem.Enabled =
|
||||||
TruncateMenuItem.Enabled =
|
TruncateMenuItem.Enabled =
|
||||||
SelectedIndices.Any();
|
TasView.SelectedIndices().Any();
|
||||||
|
|
||||||
ReselectClipboardMenuItem.Enabled =
|
ReselectClipboardMenuItem.Enabled =
|
||||||
PasteMenuItem.Enabled =
|
PasteMenuItem.Enabled =
|
||||||
|
@ -604,7 +594,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void SelectBetweenMarkersMenuItem_Click(object sender, EventArgs e)
|
private void SelectBetweenMarkersMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var prevMarker = _tas.Markers.PreviousOrCurrent(LastSelectedIndex);
|
var prevMarker = _tas.Markers.PreviousOrCurrent(LastSelectedIndex);
|
||||||
var nextMarker = _tas.Markers.Next(LastSelectedIndex);
|
var nextMarker = _tas.Markers.Next(LastSelectedIndex);
|
||||||
|
@ -630,7 +620,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void CopyMenuItem_Click(object sender, EventArgs e)
|
private void CopyMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
_tasClipboard.Clear();
|
_tasClipboard.Clear();
|
||||||
var list = TasView.SelectedIndices;
|
var list = TasView.SelectedIndices;
|
||||||
|
@ -692,13 +682,13 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void CutMenuItem_Click(object sender, EventArgs e)
|
private void CutMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||||
var rollBackFrame = FirstSelectedIndex;
|
var rollBackFrame = FirstSelectedIndex;
|
||||||
|
|
||||||
_tasClipboard.Clear();
|
_tasClipboard.Clear();
|
||||||
var list = SelectedIndices.ToArray();
|
var list = TasView.SelectedIndices().ToArray();
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
for (var i = 0; i < list.Length; i++)
|
for (var i = 0; i < list.Length; i++)
|
||||||
{
|
{
|
||||||
|
@ -727,12 +717,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void ClearMenuItem_Click(object sender, EventArgs e)
|
private void ClearMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||||
var rollBackFrame = FirstSelectedIndex;
|
var rollBackFrame = FirstSelectedIndex;
|
||||||
|
|
||||||
foreach (var frame in SelectedIndices)
|
foreach (var frame in TasView.SelectedIndices())
|
||||||
{
|
{
|
||||||
_tas.ClearFrame(frame);
|
_tas.ClearFrame(frame);
|
||||||
}
|
}
|
||||||
|
@ -750,13 +740,13 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void DeleteFramesMenuItem_Click(object sender, EventArgs e)
|
private void DeleteFramesMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||||
var rollBackFrame = FirstSelectedIndex;
|
var rollBackFrame = FirstSelectedIndex;
|
||||||
|
|
||||||
_tasClipboard.Clear();
|
_tasClipboard.Clear();
|
||||||
_tas.RemoveFrames(SelectedIndices.ToArray());
|
_tas.RemoveFrames(TasView.SelectedIndices().ToArray());
|
||||||
SetSplicer();
|
SetSplicer();
|
||||||
TasView.DeselectAll();
|
TasView.DeselectAll();
|
||||||
|
|
||||||
|
@ -773,9 +763,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void CloneMenuItem_Click(object sender, EventArgs e)
|
private void CloneMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var framesToInsert = SelectedIndices.ToList();
|
var framesToInsert = TasView.SelectedIndices().ToList();
|
||||||
var insertionFrame = LastSelectedIndex + 1;
|
var insertionFrame = LastSelectedIndex + 1;
|
||||||
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
||||||
var inputLog = new List<string>();
|
var inputLog = new List<string>();
|
||||||
|
@ -800,7 +790,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void InsertFrameMenuItem_Click(object sender, EventArgs e)
|
private void InsertFrameMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var insertionFrame = SelectedIndices.Any() ? LastSelectedIndex + 1 : 0;
|
var insertionFrame = TasView.SelectedIndices().Any() ? LastSelectedIndex + 1 : 0;
|
||||||
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
||||||
|
|
||||||
_tas.InsertEmptyFrame(insertionFrame);
|
_tas.InsertEmptyFrame(insertionFrame);
|
||||||
|
@ -817,7 +807,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void InsertNumFramesMenuItem_Click(object sender, EventArgs e)
|
private void InsertNumFramesMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var insertionFrame = SelectedIndices.Any() ? LastSelectedIndex + 1 : 0;
|
var insertionFrame = TasView.SelectedIndices().Any() ? LastSelectedIndex + 1 : 0;
|
||||||
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
||||||
|
|
||||||
var framesPrompt = new FramesPrompt();
|
var framesPrompt = new FramesPrompt();
|
||||||
|
@ -839,7 +829,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
private void TruncateMenuItem_Click(object sender, EventArgs e)
|
private void TruncateMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (SelectedIndices.Any())
|
if (TasView.SelectedIndices().Any())
|
||||||
{
|
{
|
||||||
var rollbackFrame = LastSelectedIndex + 1;
|
var rollbackFrame = LastSelectedIndex + 1;
|
||||||
var needsToRollback = !(rollbackFrame > Global.Emulator.Frame);
|
var needsToRollback = !(rollbackFrame > Global.Emulator.Frame);
|
||||||
|
|
Loading…
Reference in New Issue