X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b11752c4f9e1fd4b11ba3d184246267facb3ad3..57ab6f2314860f6efd2d1339913c91a302020a8e:/src/generic/wizard.cpp diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp index da9fb73754..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) @@ -214,11 +215,6 @@ wxSize wxWizardSizer::CalcMin() wxSize wxWizardSizer::GetMaxChildSize() { -#if !defined(__WXDEBUG__) - if ( m_childSize.IsFullySpecified() ) - return m_childSize; -#endif - wxSize maxOfMin; for ( wxSizerItemList::compatibility_iterator childNode = m_children.GetFirst(); @@ -230,21 +226,6 @@ wxSize wxWizardSizer::GetMaxChildSize() maxOfMin.IncTo(SiblingSize(child)); } - // No longer applicable since we may change sizes when size adaptation is done -#if 0 -#ifdef __WXDEBUG__ - if ( m_childSize.IsFullySpecified() && m_childSize != maxOfMin ) - { - wxFAIL_MSG( _T("Size changed in wxWizard::GetPageAreaSizer()") - _T("after RunWizard().\n") - _T("Did you forget to call GetSizer()->Fit(this) ") - _T("for some page?")) ; - - return m_childSize; - } -#endif // __WXDEBUG__ -#endif - if ( m_owner->m_started ) { m_childSize = maxOfMin; @@ -389,15 +370,8 @@ void wxWizard::AddStaticLine(wxBoxSizer *mainColumn) void wxWizard::AddBackNextPair(wxBoxSizer *buttonRow) { wxASSERT_MSG( m_btnNext && m_btnPrev, - _T("You must create the buttons before calling ") - _T("wxWizard::AddBackNextPair") ); - - // margin between Back and Next buttons -#ifdef __WXMAC__ - static const int BACKNEXT_MARGIN = 10; -#else - static const int BACKNEXT_MARGIN = 0; -#endif + wxT("You must create the buttons before calling ") + wxT("wxWizard::AddBackNextPair") ); wxBoxSizer *backNextPair = new wxBoxSizer(wxHORIZONTAL); buttonRow->Add( @@ -408,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 ); @@ -451,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 >")); @@ -582,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() ) @@ -601,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(); @@ -682,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; } @@ -798,7 +779,7 @@ void wxWizard::OnBackOrNext(wxCommandEvent& event) (event.GetEventObject() == m_btnPrev), wxT("unknown button") ); - wxCHECK_RET( m_page, _T("should have a valid current page") ); + wxCHECK_RET( m_page, wxT("should have a valid current page") ); // ask the current page first: notice that we do it before calling // GetNext/Prev() because the data transfered from the controls of the page @@ -936,7 +917,7 @@ bool wxWizard::DoLayoutAdaptation() // Size event doesn't get sent soon enough on wxGTK DoLayout(); - + SetLayoutAdaptationDone(true); return true;