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:
adelikat 2014-07-28 03:01:57 +00:00
parent aeea08a823
commit 7ec866ced5
5 changed files with 50 additions and 46 deletions

View File

@ -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

View File

@ -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);
}

View File

@ -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)

View File

@ -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;

View File

@ -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);