]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 642162 ] restore wxWizard wxEVT_WIZARD_FINISHED
authorJulian Smart <julian@anthemion.co.uk>
Mon, 9 Dec 2002 09:46:16 +0000 (09:46 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 9 Dec 2002 09:46:16 +0000 (09:46 +0000)
Restore the wxWizard wxEVT_WIZARD_FINISHED
event, which was sent when the FINISHED button was
pressed and the wizard was finished. When the
wxWizard is modal this event is not needed. However,
when the wizard is non-modal this is the only way to
determine that the wizard has finished.

Scott Pleiter

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/wizard.tex
docs/latex/wx/wizevt.tex
include/wx/wizard.h
src/generic/wizard.cpp

index 5bb32f817038922853c6a740c5bc0bfdf0238d21..ebe73802ee2db0a5e16deee1f823f100929e2e60 100644 (file)
@@ -55,6 +55,7 @@ changed (this event can be vetoed).}
 \twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel
 the wizard (this event may also be vetoed).}
 \twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.}
+\twocolitem{{\bf EVT\_WIZARD\_FINISHED(id, func)}}{The wizard finished button was pressed.}
 \end{twocollist}%
 
 \wxheading{Extended styles}
index d375939ec4e828c9a0665407d10e26f62b3b0ce2..1d0ba404b5680b6531dbe9819b3c4943a069355d 100644 (file)
@@ -40,6 +40,7 @@ changed (this event can be vetoed).}
 \twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel
 the wizard (this event may also be vetoed).}
 \twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.}
+\twocolitem{{\bf EVT\_WIZARD\_FINISHED(id, func)}}{The wizard finished button was pressed.}
 \end{twocollist}%
 
 \wxheading{See also}
index 8ff916d7a0289da7374559647a05d3e0828d42e6..db4dbbf752da38171871de55cdf6f31991a18b92 100644 (file)
@@ -253,6 +253,7 @@ BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGING, 901)
     DECLARE_EVENT_TYPE(wxEVT_WIZARD_CANCEL, 902)
     DECLARE_EVENT_TYPE(wxEVT_WIZARD_HELP, 903)
+    DECLARE_EVENT_TYPE(wxEVT_WIZARD_FINISHED, 903)
 END_DECLARE_EVENT_TYPES()
 
 typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
@@ -268,6 +269,9 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
 // unless the event handler vetoes the event
 #define EVT_WIZARD_CANCEL(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL),
 
+// the user pressed "Finish" button and the wizard is going to be dismissed -
+#define EVT_WIZARD_FINISHED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_FINISHED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL),
+
 // the user pressed "Help" button 
 #define EVT_WIZARD_HELP(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL),
 
index c438b292c5132a0112831d5b85eefdb2d464db75..fbc3fc7d5befd99d6f8be319edbd8944e8ff924f 100644 (file)
@@ -57,6 +57,7 @@ WX_DEFINE_ARRAY(wxPanel *, wxArrayPages);
 DEFINE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGED)
 DEFINE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGING)
 DEFINE_EVENT_TYPE(wxEVT_WIZARD_CANCEL)
+DEFINE_EVENT_TYPE(wxEVT_WIZARD_FINISHED)
 DEFINE_EVENT_TYPE(wxEVT_WIZARD_HELP)
 
 BEGIN_EVENT_TABLE(wxWizard, wxDialog)
@@ -68,6 +69,7 @@ BEGIN_EVENT_TABLE(wxWizard, wxDialog)
     EVT_WIZARD_PAGE_CHANGED(-1, wxWizard::OnWizEvent)
     EVT_WIZARD_PAGE_CHANGING(-1, wxWizard::OnWizEvent)
     EVT_WIZARD_CANCEL(-1, wxWizard::OnWizEvent)
+    EVT_WIZARD_FINISHED(-1, wxWizard::OnWizEvent)
     EVT_WIZARD_HELP(-1, wxWizard::OnWizEvent)
 END_EVENT_TABLE()
 
@@ -365,6 +367,11 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
     {
         // terminate successfully
         EndModal(wxID_OK);
+        if ( !IsModal() )
+         {
+           wxWizardEvent event(wxEVT_WIZARD_FINISHED, GetId(),FALSE, 0);
+           (void)GetEventHandler()->ProcessEvent(event);
+         }
         return TRUE;
     }