using System; using System.Collections.Generic; using System.Text; namespace Wayne.Lib.StateEngine { /// <summary> /// Argument in the StateChanged events. It contains the new and the old state in a state transition. /// </summary> public class StateChangedEventArgs : EventArgs { #region Fields State oldState; State newState; Transition transition; #endregion #region Construction /// <summary> /// Constructor for the StateChanged Event Arguments /// </summary> /// <param name="oldState">The State object representing the state that was exited.</param> /// <param name="newState">The State object representing the state that was entered.</param> /// <param name="transition">The Transition.</param> public StateChangedEventArgs(State oldState, State newState, Transition transition) { this.oldState = oldState; this.newState = newState; this.transition = transition; } #endregion #region Properties /// <summary> /// The state that is exited /// </summary> public State OldState { get { return oldState; } } /// <summary> /// The new state that is entered. /// </summary> public State NewState { get { return newState; } } /// <summary> /// The Transition. /// </summary> public Transition Transition { get { return transition; } } #endregion } }