X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be604faa7b2134e60a1e12d74c9c62b946a259ac..e8617760b089b3dd31e4d77ce493267a82fc1003:/src/generic/wizard.cpp diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp index 0b99d25e0c..fa33339481 100644 --- a/src/generic/wizard.cpp +++ b/src/generic/wizard.cpp @@ -9,7 +9,7 @@ // Created: 15.08.99 // RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -44,12 +44,6 @@ #include "wx/wizard.h" -// ---------------------------------------------------------------------------- -// simple types -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY(wxPanel *, wxArrayPages); - // ---------------------------------------------------------------------------- // event tables and such // ---------------------------------------------------------------------------- @@ -57,6 +51,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 +63,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() @@ -106,10 +102,12 @@ bool wxWizardPage::Create(wxWizard *parent, if ( resource != NULL ) { #if wxUSE_WX_RESOURCES - if ( !LoadFromResource(this, resource) ) +#if 0 + if ( !LoadFromResource(this, resource) ) { wxFAIL_MSG(wxT("wxWizardPage LoadFromResource failed!!!!")); } +#endif #endif // wxUSE_RESOURCES } @@ -348,7 +346,7 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) m_page->Hide(); - btnLabelWasNext = m_page->GetNext() != (wxWizardPage *)NULL; + btnLabelWasNext = HasNextPage(m_page); // Get the bitmap of the previous page (if it exists) if ( m_page->GetBitmap().Ok() ) @@ -365,6 +363,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; } @@ -395,9 +398,9 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) } // and update the buttons state - m_btnPrev->Enable(m_page->GetPrev() != (wxWizardPage *)NULL); + m_btnPrev->Enable(HasPrevPage(m_page)); - bool hasNext = m_page->GetNext() != (wxWizardPage *)NULL; + bool hasNext = HasNextPage(m_page); if ( btnLabelWasNext != hasNext ) { // need to update @@ -445,7 +448,7 @@ wxSize wxWizard::GetPageSize() const return wxSize(m_width, m_height); } -void wxWizard::OnCancel(wxCommandEvent& WXUNUSED(event)) +void wxWizard::OnCancel(wxCommandEvent& WXUNUSED(eventUnused)) { // this function probably can never be called when we don't have an active // page, but a small extra check won't hurt