using System;
namespace OpenTap.Plugins.BasicSteps
{
/// A list that invokes a callback when it has been changed. This is useful to handle GUIs changing the list.
///
class NotifyChangedList : VirtualCollection
{
public Action> ChangedCallback = list => { };
public override void Insert(int index, T item)
{
base.Insert(index, item);
ChangedCallback(this);
}
public override void Clear()
{
base.Clear();
ChangedCallback(this);
}
public override void Add(T item)
{
base.Add(item);
ChangedCallback(this);
}
public override bool Remove(T item)
{
var r= base.Remove(item);
ChangedCallback(this);
return r;
}
public override void RemoveAt(int index)
{
base.RemoveAt(index);
ChangedCallback(this);
}
}
}