X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03647350fc7cd141953c72e0284e928847d30f44..e8fd252ef87d8ff6409d405218ff02c91b980e0a:/src/generic/wizard.cpp diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp index 82af511d4b..af2cdf6274 100644 --- a/src/generic/wizard.cpp +++ b/src/generic/wizard.cpp @@ -86,6 +86,7 @@ wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_CHANGING, wxWizardEvent ); wxDEFINE_EVENT( wxEVT_WIZARD_CANCEL, wxWizardEvent ); wxDEFINE_EVENT( wxEVT_WIZARD_FINISHED, wxWizardEvent ); wxDEFINE_EVENT( wxEVT_WIZARD_HELP, wxWizardEvent ); +wxDEFINE_EVENT( wxEVT_WIZARD_PAGE_SHOWN, wxWizardEvent ); BEGIN_EVENT_TABLE(wxWizard, wxDialog) EVT_BUTTON(wxID_CANCEL, wxWizard::OnCancel) @@ -372,13 +373,6 @@ void wxWizard::AddBackNextPair(wxBoxSizer *buttonRow) wxT("You must create the buttons before calling ") wxT("wxWizard::AddBackNextPair") ); - // margin between Back and Next buttons -#ifdef __WXMAC__ - static const int BACKNEXT_MARGIN = 10; -#else - static const int BACKNEXT_MARGIN = 0; -#endif - wxBoxSizer *backNextPair = new wxBoxSizer(wxHORIZONTAL); buttonRow->Add( backNextPair, @@ -388,7 +382,7 @@ void wxWizard::AddBackNextPair(wxBoxSizer *buttonRow) ); backNextPair->Add(m_btnPrev); - backNextPair->Add(BACKNEXT_MARGIN,0, + backNextPair->Add(10, 0, 0, // No horizontal stretching wxEXPAND // No border, (mostly useless) vertical stretching ); @@ -431,7 +425,7 @@ void wxWizard::AddButtonRow(wxBoxSizer *mainColumn) wxButton *btnHelp=0; #ifdef __WXMAC__ if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON) - btnHelp=new wxButton(this, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, buttonStyle); + btnHelp=new wxButton(this, wxID_HELP, wxEmptyString, wxDefaultPosition, wxDefaultSize, buttonStyle); #endif m_btnNext = new wxButton(this, wxID_FORWARD, _("&Next >")); @@ -562,11 +556,8 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) m_sizerBmpAndPage->Detach(m_page); } - // set the new page - m_page = page; - // is this the end? - if ( !m_page ) + if ( !page ) { // terminate successfully if ( IsModal() ) @@ -581,12 +572,18 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) // and notify the user code (this is especially useful for modeless // wizards) - wxWizardEvent event(wxEVT_WIZARD_FINISHED, GetId(), false, 0); + wxWizardEvent event(wxEVT_WIZARD_FINISHED, GetId(), false, m_page); (void)GetEventHandler()->ProcessEvent(event); + m_page = NULL; + return true; } + // notice that we change m_page only here so that wxEVT_WIZARD_FINISHED + // event above could still use the correct (i.e. old) value of m_page + m_page = page; + // position and show the new page (void)m_page->TransferDataToWindow(); @@ -662,6 +659,10 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) m_sizerPage->RecalcSizes(); } + wxWizardEvent pageShownEvent(wxEVT_WIZARD_PAGE_SHOWN, GetId(), + goingForward, m_page); + m_page->GetEventHandler()->ProcessEvent(pageShownEvent); + return true; }