//----------------------------------------------------------------------------- // 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 } }