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:
@@ -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_HELP, wxWizardEvent );
|
||||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_FINISHED, 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_PAGE_SHOWN, wxWizardEvent );
|
||||||
|
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxWizardEvent );
|
||||||
|
|
||||||
typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
|
typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
|
||||||
|
|
||||||
@@ -307,6 +308,10 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
|
|||||||
// changed - unless the event handler vetoes the event
|
// changed - unless the event handler vetoes the event
|
||||||
#define EVT_WIZARD_PAGE_CHANGING(id, fn) wx__DECLARE_WIZARDEVT(PAGE_CHANGING, id, fn)
|
#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 -
|
// the user pressed "Cancel" button and the wizard is going to be dismissed -
|
||||||
// unless the event handler vetoes the event
|
// unless the event handler vetoes the event
|
||||||
#define EVT_WIZARD_CANCEL(id, fn) wx__DECLARE_WIZARDEVT(CANCEL, id, fn)
|
#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).
|
The page has been just changed (this event cannot be vetoed).
|
||||||
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
||||||
The page is being changed (this event can be vetoed).
|
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)}
|
@event{EVT_WIZARD_PAGE_SHOWN(id, func)}
|
||||||
The page was shown and laid out (this event cannot be vetoed).
|
The page was shown and laid out (this event cannot be vetoed).
|
||||||
@event{EVT_WIZARD_CANCEL(id, func)}
|
@event{EVT_WIZARD_CANCEL(id, func)}
|
||||||
@@ -231,6 +235,10 @@ public:
|
|||||||
The page has just been changed (this event cannot be vetoed).
|
The page has just been changed (this event cannot be vetoed).
|
||||||
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
@event{EVT_WIZARD_PAGE_CHANGING(id, func)}
|
||||||
The page is being changed (this event can be vetoed).
|
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)}
|
@event{EVT_WIZARD_PAGE_SHOWN(id, func)}
|
||||||
The page was shown and laid out (this event cannot be vetoed).
|
The page was shown and laid out (this event cannot be vetoed).
|
||||||
@event{EVT_WIZARD_CANCEL(id, func)}
|
@event{EVT_WIZARD_CANCEL(id, func)}
|
||||||
|
@@ -83,6 +83,7 @@ private:
|
|||||||
|
|
||||||
wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGED, wxWizardEvent );
|
wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGED, wxWizardEvent );
|
||||||
wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGING, 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_CANCEL, wxWizardEvent );
|
||||||
wxDEFINE_EVENT( wxEVT_WIZARD_FINISHED, wxWizardEvent );
|
wxDEFINE_EVENT( wxEVT_WIZARD_FINISHED, wxWizardEvent );
|
||||||
wxDEFINE_EVENT( wxEVT_WIZARD_HELP, wxWizardEvent );
|
wxDEFINE_EVENT( wxEVT_WIZARD_HELP, wxWizardEvent );
|
||||||
@@ -792,6 +793,13 @@ void wxWizard::OnBackOrNext(wxCommandEvent& event)
|
|||||||
|
|
||||||
bool forward = event.GetEventObject() == m_btnNext;
|
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;
|
wxWizardPage *page;
|
||||||
if ( forward )
|
if ( forward )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user