using System;
using System.Text;
namespace DevComponents.DotNetBar
{
    #region WizardPageChangeEventArgs
    /// 
    /// Provides data for Wizard Page Change events.
    /// 
    public class WizardPageChangeEventArgs : EventArgs
    {
        /// 
        /// Specifies the new active wizard page. You can change this argument when handling WizardPageChanging event and provide newly selected page of your own.
        /// 
        public WizardPage NewPage = null;
        /// 
        /// Specifies page that was or currently is active.
        /// 
        public WizardPage OldPage = null;
        /// 
        /// Indicates the wizard button that was source of page change.
        /// 
        public eWizardPageChangeSource PageChangeSource = eWizardPageChangeSource.NextButton;
        /// 
        /// Creates new instance of the class with default values.
        /// 
        /// New wizard page
        /// Old or current wizard page
        /// Page change source
        public WizardPageChangeEventArgs(WizardPage newPage, WizardPage oldPage, eWizardPageChangeSource pageChangeSource)
        {
            this.NewPage = newPage;
            this.OldPage = oldPage;
            this.PageChangeSource = pageChangeSource;
        }
    }
    #endregion
    #region WizardCancelPageChangeEventArgs
    /// 
    /// Provides data for Wizard Page Change events.
    /// 
    public class WizardCancelPageChangeEventArgs : WizardPageChangeEventArgs
    {
        /// 
        /// Allows you to cancel the page change.
        /// 
        public bool Cancel = false;
        /// 
        /// Creates new instance of the class with default values.
        /// 
        /// New wizard page
        /// Old or current wizard page
        /// Page change source
        public WizardCancelPageChangeEventArgs(WizardPage newPage, WizardPage oldPage, eWizardPageChangeSource pageChangeSource) : base(newPage, oldPage, pageChangeSource)
        {
        }
    }
    #endregion
    #region Event Delegates
    /// 
    /// Defines delegate for WizardPageChange events.
    /// 
    public delegate void WizardCancelPageChangeEventHandler(object sender, WizardCancelPageChangeEventArgs e);
    /// 
    /// Defines delegate for WizardPageChange events.
    /// 
    public delegate void WizardPageChangeEventHandler(object sender, WizardPageChangeEventArgs e);
    #endregion
}