// Created: 15.08.99
// RCS-ID: $Id$
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
#include "wx/wizard.h"
-// ----------------------------------------------------------------------------
-// simple types
-// ----------------------------------------------------------------------------
-
-WX_DEFINE_ARRAY(wxPanel *, wxArrayPages);
-
// ----------------------------------------------------------------------------
// event tables and such
// ----------------------------------------------------------------------------
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)
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()
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
}
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() )
{
// terminate successfully
EndModal(wxID_OK);
+ if ( !IsModal() )
+ {
+ wxWizardEvent event(wxEVT_WIZARD_FINISHED, GetId(),FALSE, 0);
+ (void)GetEventHandler()->ProcessEvent(event);
+ }
return TRUE;
}
}
// 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
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
// ask the current page first: notice that we do it before calling
// GetNext/Prev() because the data transfered from the controls of the page
// may change the value returned by these methods
- if ( m_page && !m_page->TransferDataFromWindow() )
+ if ( m_page && (!m_page->Validate() || !m_page->TransferDataFromWindow()) )
{
// the page data is incorrect, don't do anything
return;