//-----------------------------------------------------------------------------
// EditCurveCollection.cs
//
// Microsoft XNA Community Game Platform
// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
namespace Xna.Tools
{
///
/// EditCurve event argument that passes EditCurve instance.
///
public class EditCurveEventArgs : EventArgs
{
public EditCurve Curve;
public EditCurveEventArgs(EditCurve curve)
{
Curve = curve;
}
}
///
/// EditCurveCollection that fires event when collection has been changed.
///
public class EditCurveCollection : Collection
{
///
/// Occurs when EditCurve adding to Collection.
///
public event EventHandler AddingCurve;
///
/// Occurs when EditCurve removing from Collection
///
public event EventHandler RemovingCurve;
///
/// Occurs when EditCurve collection changed.
///
public event EventHandler Changed;
#region Overrided methods
protected override void RemoveItem(int index)
{
if (RemovingCurve != null)
RemovingCurve(this, new EditCurveEventArgs(Items[index]));
if (Changed != null)
Changed(this, EventArgs.Empty);
base.RemoveItem(index);
}
protected override void ClearItems()
{
if (RemovingCurve != null)
{
foreach (EditCurve item in Items)
RemovingCurve(this, new EditCurveEventArgs(item));
}
if (Changed != null) Changed(this, EventArgs.Empty);
base.ClearItems();
}
protected override void InsertItem(int index, EditCurve item)
{
if (AddingCurve != null)
AddingCurve(this, new EditCurveEventArgs(item));
if (Changed != null)
Changed(this, EventArgs.Empty);
base.InsertItem(index, item);
}
protected override void SetItem(int index, EditCurve item)
{
if (RemovingCurve != null)
RemovingCurve(this, new EditCurveEventArgs(Items[index]));
if (AddingCurve != null)
AddingCurve(this, new EditCurveEventArgs(item));
if (Changed != null) Changed(this, EventArgs.Empty);
base.SetItem(index, item);
}
#endregion
}
}