Added wxEVT_WIZARD_BEFORE_PAGE_CHANGED event to allow the application to influence
the return value of GetNext after Next is clicked. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
9362d82351
commit
c9f18835ab
@ -291,6 +291,7 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_CANCEL, wxWizardEvent );
|
||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_HELP, wxWizardEvent );
|
||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_FINISHED, wxWizardEvent );
|
||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_SHOWN, wxWizardEvent );
|
||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxWizardEvent );
|
||||
|
||||
typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
|
||||
|
||||
@ -307,6 +308,10 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
|
||||
// changed - unless the event handler vetoes the event
|
||||
#define EVT_WIZARD_PAGE_CHANGING(id, fn) wx__DECLARE_WIZARDEVT(PAGE_CHANGING, id, fn)
|
||||
|
||||
// Called before GetNext/GetPrev is called, so that the handler can change state that will be
|
||||
// used when GetNext/GetPrev is called. PAGE_CHANGING is called too late to influence GetNext/GetPrev.
|
||||
#define EVT_WIZARD_BEFORE_PAGE_CHANGED(id, fn) wx__DECLARE_WIZARDEVT(BEFORE_PAGE_CHANGED, id, fn)
|
||||
|
||||
// the user pressed "Cancel" button and the wizard is going to be dismissed -
|
||||
// unless the event handler vetoes the event
|
||||
#define EVT_WIZARD_CANCEL(id, fn) wx__DECLARE_WIZARDEVT(CANCEL, id, fn)
|
||||
|
@ -98,6 +98,10 @@ public:
|
||||
The page has been just changed (this event cannot be vetoed).
|
||||
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
||||
The page is being changed (this event can be vetoed).
|
||||
@event{EVT_WIZARD_BEFORE_PAGE_CHANGED(id, func)}
|
||||
Called after Next is clicked but before GetNext is called. Unlike EVT_WIZARD_CHANGING,
|
||||
the handler for this function can change state that might affect the return value of
|
||||
GetNext. This event can be vetoed.
|
||||
@event{EVT_WIZARD_PAGE_SHOWN(id, func)}
|
||||
The page was shown and laid out (this event cannot be vetoed).
|
||||
@event{EVT_WIZARD_CANCEL(id, func)}
|
||||
@ -231,6 +235,10 @@ public:
|
||||
The page has just been changed (this event cannot be vetoed).
|
||||
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
||||
The page is being changed (this event can be vetoed).
|
||||
@event{EVT_WIZARD_BEFORE_PAGE_CHANGED(id, func)}
|
||||
Called after Next is clicked but before GetNext is called. Unlike EVT_WIZARD_CHANGING,
|
||||
the handler for this function can change state that might affect the return value of
|
||||
GetNext. This event can be vetoed.
|
||||
@event{EVT_WIZARD_PAGE_SHOWN(id, func)}
|
||||
The page was shown and laid out (this event cannot be vetoed).
|
||||
@event{EVT_WIZARD_CANCEL(id, func)}
|
||||
|
@ -83,6 +83,7 @@ private:
|
||||
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGED, wxWizardEvent );
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGING, wxWizardEvent );
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxWizardEvent );
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_CANCEL, wxWizardEvent );
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_FINISHED, wxWizardEvent );
|
||||
wxDEFINE_EVENT( wxEVT_WIZARD_HELP, wxWizardEvent );
|
||||
@ -792,6 +793,13 @@ void wxWizard::OnBackOrNext(wxCommandEvent& event)
|
||||
|
||||
bool forward = event.GetEventObject() == m_btnNext;
|
||||
|
||||
// Give the application a chance to set state which may influence GetNext()/GetPrev()
|
||||
wxWizardEvent eventPreChanged(wxEVT_WIZARD_BEFORE_PAGE_CHANGED, GetId(), forward, m_page);
|
||||
(void)m_page->GetEventHandler()->ProcessEvent(eventPreChanged);
|
||||
|
||||
if (!eventPreChanged.IsAllowed())
|
||||
return;
|
||||
|
||||
wxWizardPage *page;
|
||||
if ( forward )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user