WatchList object - implement IList (previously only implemented IEnumerable but already had most of the IList methods anyway)
This commit is contained in:
parent
611e21dd47
commit
39ca14dda1
|
@ -5,12 +5,11 @@ using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
using BizHawk.Common;
|
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.Common
|
namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
public class WatchList : IEnumerable<Watch>
|
public class WatchList : IList<Watch>
|
||||||
{
|
{
|
||||||
public const string ADDRESS = "AddressColumn";
|
public const string ADDRESS = "AddressColumn";
|
||||||
public const string VALUE = "ValueColumn";
|
public const string VALUE = "ValueColumn";
|
||||||
|
@ -48,30 +47,18 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public Watch this[int index]
|
public Watch this[int index]
|
||||||
{
|
{
|
||||||
get
|
get { return _watchList[index]; }
|
||||||
{
|
set { _watchList[index] = value; }
|
||||||
return _watchList[index];
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_watchList[index] = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int WatchCount
|
public int WatchCount
|
||||||
{
|
{
|
||||||
get
|
get { return _watchList.Count(w => !w.IsSeparator); }
|
||||||
{
|
|
||||||
return _watchList.Count(w => !w.IsSeparator);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ItemCount
|
public int ItemCount
|
||||||
{
|
{
|
||||||
get
|
get { return _watchList.Count; }
|
||||||
{
|
|
||||||
return _watchList.Count;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OrderWatches(string column, bool reverse)
|
public void OrderWatches(string column, bool reverse)
|
||||||
|
@ -271,10 +258,14 @@ namespace BizHawk.Client.Common
|
||||||
Changes = true;
|
Changes = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Remove(Watch watch)
|
public bool Remove(Watch watch)
|
||||||
{
|
{
|
||||||
_watchList.Remove(watch);
|
bool result = _watchList.Remove(watch);
|
||||||
Changes = true;
|
if (result)
|
||||||
|
{
|
||||||
|
Changes = true;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Insert(int index, Watch watch)
|
public void Insert(int index, Watch watch)
|
||||||
|
@ -290,6 +281,35 @@ namespace BizHawk.Client.Common
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsReadOnly { get { return false; } }
|
||||||
|
|
||||||
|
public bool Contains(Watch watch)
|
||||||
|
{
|
||||||
|
return _watchList.Any(w =>
|
||||||
|
w.Size == watch.Size &&
|
||||||
|
w.Type == watch.Type &&
|
||||||
|
w.Domain == watch.Domain &&
|
||||||
|
w.Address == watch.Address &&
|
||||||
|
w.BigEndian == watch.BigEndian
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CopyTo(Watch[] array, int arrayIndex)
|
||||||
|
{
|
||||||
|
_watchList.CopyTo(array, arrayIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int IndexOf(Watch watch)
|
||||||
|
{
|
||||||
|
return _watchList.IndexOf(watch);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveAt(int index)
|
||||||
|
{
|
||||||
|
_watchList.RemoveAt(index);
|
||||||
|
Changes = true;
|
||||||
|
}
|
||||||
|
|
||||||
#region File handling logic - probably needs to be its own class
|
#region File handling logic - probably needs to be its own class
|
||||||
|
|
||||||
public string CurrentFileName { get { return _currentFilename; } set { _currentFilename = value; } }
|
public string CurrentFileName { get { return _currentFilename; } set { _currentFilename = value; } }
|
||||||
|
|
Loading…
Reference in New Issue