X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3e8c656ca6262a395ac8a9b5df93873dd01a9e6..418b74a078f6502deff7ad4a4d562b9cc496774d:/src/generic/wizard.cpp diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp index cd9c3152d0..0b99d25e0c 100644 --- a/src/generic/wizard.cpp +++ b/src/generic/wizard.cpp @@ -190,6 +190,13 @@ void wxWizard::DoCreateControls() // margin between "Next >" and "Cancel" buttons static const int BUTTON_MARGIN = 10; + // margin between Back and Next buttons +#ifdef __WXMAC__ + static const int BACKNEXT_MARGIN = 10; +#else + static const int BACKNEXT_MARGIN = 0; +#endif + // default width and height of the page static const int DEFAULT_PAGE_WIDTH = 270; static const int DEFAULT_PAGE_HEIGHT = 290; @@ -238,7 +245,7 @@ void wxWizard::DoCreateControls() wxSize(m_x + m_width - x, 2)); #endif // wxUSE_STATLINE - x = m_x + m_width - 3*sizeBtn.x - BUTTON_MARGIN; + x = m_x + m_width - 3*sizeBtn.x - BUTTON_MARGIN - BACKNEXT_MARGIN; y += SEPARATOR_LINE_MARGIN; if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON) @@ -254,6 +261,8 @@ void wxWizard::DoCreateControls() m_btnPrev = new wxButton(this, wxID_BACKWARD, _("< &Back"), wxPoint(x, y), sizeBtn); x += sizeBtn.x; + x += BACKNEXT_MARGIN; + m_btnNext = new wxButton(this, wxID_FORWARD, _("&Next >"), wxPoint(x, y), sizeBtn); x += sizeBtn.x + BUTTON_MARGIN; @@ -280,7 +289,7 @@ void wxWizard::SetPageSize(const wxSize& size) m_sizePage = size; } -void wxWizard::Fit(const wxWizardPage *page) +void wxWizard::FitToPage(const wxWizardPage *page) { // otherwise it will have no effect now as it's too late... wxASSERT_MSG( !WasCreated(), _T("should be called before RunWizard()!") ); @@ -329,7 +338,7 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) if ( m_page ) { // send the event to the old page - wxWizardEvent event(wxEVT_WIZARD_PAGE_CHANGING, GetId(), goingForward); + wxWizardEvent event(wxEVT_WIZARD_PAGE_CHANGING, GetId(), goingForward, m_page); if ( m_page->GetEventHandler()->ProcessEvent(event) && !event.IsAllowed() ) { @@ -359,15 +368,9 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) return TRUE; } - // send the change event to the new page now - wxWizardEvent event(wxEVT_WIZARD_PAGE_CHANGED, GetId(), goingForward); - (void)m_page->GetEventHandler()->ProcessEvent(event); - // position and show the new page (void)m_page->TransferDataToWindow(); m_page->SetSize(m_x, m_y, m_width, m_height); - m_page->Show(); - m_page->SetFocus(); // check if bitmap needs to be updated // update default flag as well @@ -405,6 +408,14 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward) } // nothing to do: the label was already correct + // send the change event to the new page now + wxWizardEvent event(wxEVT_WIZARD_PAGE_CHANGED, GetId(), goingForward, m_page); + (void)m_page->GetEventHandler()->ProcessEvent(event); + + // and finally show it + m_page->Show(); + m_page->SetFocus(); + return TRUE; } @@ -440,7 +451,7 @@ void wxWizard::OnCancel(wxCommandEvent& WXUNUSED(event)) // page, but a small extra check won't hurt wxWindow *win = m_page ? (wxWindow *)m_page : (wxWindow *)this; - wxWizardEvent event(wxEVT_WIZARD_CANCEL, GetId()); + wxWizardEvent event(wxEVT_WIZARD_CANCEL, GetId(), FALSE, m_page); if ( !win->GetEventHandler()->ProcessEvent(event) || event.IsAllowed() ) { // no objections - close the dialog @@ -518,6 +529,8 @@ void wxWizard::OnWizEvent(wxWizardEvent& event) // our public interface // ---------------------------------------------------------------------------- +#ifdef WXWIN_COMPATIBILITY_2_2 + /* static */ wxWizard *wxWizardBase::Create(wxWindow *parent, int id, @@ -529,6 +542,8 @@ wxWizard *wxWizardBase::Create(wxWindow *parent, return new wxWizard(parent, id, title, bitmap, pos); } +#endif // WXWIN_COMPATIBILITY_2_2 + // ---------------------------------------------------------------------------- // wxWizardEvent // ----------------------------------------------------------------------------