X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/45bbbc54304272eb25b96e6c63b57107991bcd26..02b7b6b072762ff1e02950109a751815ac7429fd:/include/wx/wizard.h diff --git a/include/wx/wizard.h b/include/wx/wizard.h index b9e79b702c..7f9f8d4016 100644 --- a/include/wx/wizard.h +++ b/include/wx/wizard.h @@ -74,6 +74,22 @@ public: // wxNullBitmap from here - the default one will be used then. virtual wxBitmap GetBitmap() const { return m_bitmap; } +#if wxUSE_VALIDATOR + /// Override the base functions to allow a validator to be assigned to this page. + bool TransferDataToWindow() + { + return GetValidator() ? GetValidator()->TransferToWindow() : wxPanel::TransferDataToWindow(); + } + bool TransferDataFromWindow() + { + return GetValidator() ? GetValidator()->TransferFromWindow() : wxPanel::TransferDataFromWindow(); + } + bool Validate() + { + return GetValidator() ? GetValidator()->Validate(this) : wxPanel::Validate(); + } +#endif // wxUSE_VALIDATOR + protected: // common part of ctors: void Init(); @@ -222,6 +238,13 @@ public: virtual bool HasPrevPage(wxWizardPage *page) { return page->GetPrev() != NULL; } + /// Override these functions to stop InitDialog from calling TransferDataToWindow + /// for _all_ pages when the wizard starts. Instead 'ShowPage' will call + /// TransferDataToWindow for the first page only. + bool TransferDataToWindow() { return true; } + bool TransferDataFromWindow() { return true; } + bool Validate() { return true; } + private: DECLARE_NO_COPY_CLASS(wxWizardBase) }; @@ -274,21 +297,21 @@ END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); // notifies that the page has just been changed (can't be vetoed) -#define EVT_WIZARD_PAGE_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), +#define EVT_WIZARD_PAGE_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxWizardEventFunction, & fn ), (wxObject *)NULL), // the user pressed "" button and the page is going to be // changed - unless the event handler vetoes the event -#define EVT_WIZARD_PAGE_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), +#define EVT_WIZARD_PAGE_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxWizardEventFunction, & fn ), (wxObject *)NULL), // the user pressed "Cancel" button and the wizard is going to be dismissed - // unless the event handler vetoes the event -#define EVT_WIZARD_CANCEL(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), +#define EVT_WIZARD_CANCEL(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxWizardEventFunction, & fn ), (wxObject *)NULL), // the user pressed "Finish" button and the wizard is going to be dismissed - -#define EVT_WIZARD_FINISHED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_FINISHED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), +#define EVT_WIZARD_FINISHED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_FINISHED, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxWizardEventFunction, & fn ), (wxObject *)NULL), // the user pressed "Help" button -#define EVT_WIZARD_HELP(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), +#define EVT_WIZARD_HELP(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxWizardEventFunction, & fn ), (wxObject *)NULL), #endif // wxUSE_WIZARDDLG