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));
|
||||
}
|
||||
|
||||
#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
|
||||
|
|
|
@ -7,6 +7,7 @@ using System.Windows.Forms;
|
|||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Emulation.Common;
|
||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -416,9 +417,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
(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);
|
||||
}
|
||||
|
@ -427,7 +428,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void ClearBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
foreach (var c in Controls.OfType<Control>())
|
||||
foreach (var c in this.Controls())
|
||||
{
|
||||
ClearWidgetAndChildren(c);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ using System.Linq;
|
|||
using System.Windows.Forms;
|
||||
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Client.EmuHawk.WinFormExtensions;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -25,8 +26,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
foreach (var core in coresToHide)
|
||||
{
|
||||
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
|
||||
{
|
||||
Text = String.Empty,
|
||||
Text = string.Empty,
|
||||
Image = Properties.Resources.OpenFile,
|
||||
Location = new Point(widgetOffset, _y - 1),
|
||||
Width = buttonWidth,
|
||||
|
@ -257,18 +257,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
var allPathControls = new List<Control>();
|
||||
foreach (TabPage tp in PathTabControl.TabPages)
|
||||
{
|
||||
allPathControls.AddRange(tp.Controls.OfType<Control>());
|
||||
allPathControls.AddRange(tp.Controls());
|
||||
}
|
||||
|
||||
return allPathControls;
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<TabPage> AllTabPages
|
||||
{
|
||||
get { return PathTabControl.TabPages.Cast<TabPage>(); }
|
||||
}
|
||||
|
||||
#region Events
|
||||
|
||||
private void NewPathConfig_Load(object sender, EventArgs e)
|
||||
|
|
|
@ -59,14 +59,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public bool UpdateBefore { get { return true; } }
|
||||
|
||||
private IEnumerable<int> SelectedIndices
|
||||
{
|
||||
get { return LuaListView.SelectedIndices.Cast<int>(); }
|
||||
}
|
||||
|
||||
private IEnumerable<LuaFile> SelectedItems
|
||||
{
|
||||
get { return SelectedIndices.Select(index => _luaList[index]); }
|
||||
get { return LuaListView.SelectedIndices().Select(index => _luaList[index]); }
|
||||
}
|
||||
|
||||
private IEnumerable<LuaFile> SelectedFiles
|
||||
|
@ -654,7 +649,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
RemoveScriptMenuItem.Enabled =
|
||||
MoveUpMenuItem.Enabled =
|
||||
MoveDownMenuItem.Enabled =
|
||||
SelectedIndices.Any();
|
||||
LuaListView.SelectedIndices().Any();
|
||||
|
||||
SelectAllMenuItem.Enabled = _luaList.Any();
|
||||
StopAllScriptsMenuItem.Enabled = _luaList.Any(script => script.Enabled);
|
||||
|
@ -783,7 +778,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void InsertSeparatorMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var indices = SelectedIndices.ToList();
|
||||
var indices = LuaListView.SelectedIndices().ToList();
|
||||
if (indices.Any() && indices.Last() < _luaList.Count)
|
||||
{
|
||||
_luaList.Insert(indices.Last(), LuaFile.SeparatorInstance);
|
||||
|
@ -798,7 +793,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void MoveUpMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
var indices = SelectedIndices.ToList();
|
||||
var indices = LuaListView.SelectedIndices().ToList();
|
||||
if (indices.Count == 0 || indices[0] == 0)
|
||||
{
|
||||
return;
|
||||
|
@ -824,7 +819,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
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)
|
||||
{
|
||||
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
|
||||
{
|
||||
get { return _tas; }
|
||||
|
@ -584,7 +574,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
DeleteFramesMenuItem.Enabled =
|
||||
CloneMenuItem.Enabled =
|
||||
TruncateMenuItem.Enabled =
|
||||
SelectedIndices.Any();
|
||||
TasView.SelectedIndices().Any();
|
||||
|
||||
ReselectClipboardMenuItem.Enabled =
|
||||
PasteMenuItem.Enabled =
|
||||
|
@ -604,7 +594,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void SelectBetweenMarkersMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
var prevMarker = _tas.Markers.PreviousOrCurrent(LastSelectedIndex);
|
||||
var nextMarker = _tas.Markers.Next(LastSelectedIndex);
|
||||
|
@ -630,7 +620,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void CopyMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
_tasClipboard.Clear();
|
||||
var list = TasView.SelectedIndices;
|
||||
|
@ -692,13 +682,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void CutMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||
var rollBackFrame = FirstSelectedIndex;
|
||||
|
||||
_tasClipboard.Clear();
|
||||
var list = SelectedIndices.ToArray();
|
||||
var list = TasView.SelectedIndices().ToArray();
|
||||
var sb = new StringBuilder();
|
||||
for (var i = 0; i < list.Length; i++)
|
||||
{
|
||||
|
@ -727,12 +717,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void ClearMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||
var rollBackFrame = FirstSelectedIndex;
|
||||
|
||||
foreach (var frame in SelectedIndices)
|
||||
foreach (var frame in TasView.SelectedIndices())
|
||||
{
|
||||
_tas.ClearFrame(frame);
|
||||
}
|
||||
|
@ -750,13 +740,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void DeleteFramesMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
var needsToRollback = !(FirstSelectedIndex > Global.Emulator.Frame);
|
||||
var rollBackFrame = FirstSelectedIndex;
|
||||
|
||||
_tasClipboard.Clear();
|
||||
_tas.RemoveFrames(SelectedIndices.ToArray());
|
||||
_tas.RemoveFrames(TasView.SelectedIndices().ToArray());
|
||||
SetSplicer();
|
||||
TasView.DeselectAll();
|
||||
|
||||
|
@ -773,9 +763,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
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 needsToRollback = !(insertionFrame > Global.Emulator.Frame);
|
||||
var inputLog = new List<string>();
|
||||
|
@ -800,7 +790,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
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);
|
||||
|
||||
_tas.InsertEmptyFrame(insertionFrame);
|
||||
|
@ -817,7 +807,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
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 framesPrompt = new FramesPrompt();
|
||||
|
@ -839,7 +829,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void TruncateMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (SelectedIndices.Any())
|
||||
if (TasView.SelectedIndices().Any())
|
||||
{
|
||||
var rollbackFrame = LastSelectedIndex + 1;
|
||||
var needsToRollback = !(rollbackFrame > Global.Emulator.Frame);
|
||||
|
|
Loading…
Reference in New Issue