/**
* Module for change event args handling.
*
* Authors:
*   Jacob Jensen
* License:
*   https://github.com/PoisonEngine/poison-ui/blob/master/LICENSE
*/
module poison.core.eventargs.changeeventargs;

import poison.core.eventargs : EventArgs;

/// Event args for value changes.
class ChangeEventArgs(T) : EventArgs {
  private:
  /// The old value.
  T _oldValue;

  /// The new value.
  T _newValue;

  public:
  /**
  * Creates a new change event args.
  * Params:
  *   oldValue =  The old value.
  *   newValue =  The new value.
  */
  this(T oldValue, T newValue) {
    super();

    _oldValue = oldValue;
    _newValue = newValue;
  }

  @property {
    /// Gets the old value.
    T oldValue() { return _oldValue; }

    /// Gets the new value.
    T newValue() { return _newValue; }
  }
}