X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dee1a63ff52bfe4da396187f8438aa1a29796737..14619f10b0bdb630206607abd0ce0319d45e095a:/include/wx/wizard.h diff --git a/include/wx/wizard.h b/include/wx/wizard.h index 3674896fa4..59fe14f870 100644 --- a/include/wx/wizard.h +++ b/include/wx/wizard.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: wizard.h +// Name: wx/wizard.h // Purpose: wxWizard class: a GUI control presenting the user with a // sequence of dialogs which allows to simply perform some task // Author: Vadim Zeitlin (partly based on work by Ron Kuris and Kevin B. @@ -33,8 +33,17 @@ // Extended style to specify a help button #define wxWIZARD_EX_HELPBUTTON 0x00000010 +// Placement flags +#define wxWIZARD_VALIGN_TOP 0x01 +#define wxWIZARD_VALIGN_CENTRE 0x02 +#define wxWIZARD_VALIGN_BOTTOM 0x04 +#define wxWIZARD_HALIGN_LEFT 0x08 +#define wxWIZARD_HALIGN_CENTRE 0x10 +#define wxWIZARD_HALIGN_RIGHT 0x20 +#define wxWIZARD_TILE 0x40 + // forward declarations -class WXDLLIMPEXP_ADV wxWizard; +class WXDLLIMPEXP_FWD_ADV wxWizard; // ---------------------------------------------------------------------------- // wxWizardPage is one of the wizards screen: it must know what are the @@ -54,12 +63,10 @@ public: // that no other parameters are needed because the wizard will resize and // reposition the page anyhow wxWizardPage(wxWizard *parent, - const wxBitmap& bitmap = wxNullBitmap, - const wxChar* resource = NULL); + const wxBitmap& bitmap = wxNullBitmap); bool Create(wxWizard *parent, - const wxBitmap& bitmap = wxNullBitmap, - const wxChar* resource = NULL); + const wxBitmap& bitmap = wxNullBitmap); // these functions are used by the wizard to show another page when the // user chooses "Back" or "Next" button @@ -119,30 +126,36 @@ public: // ctor takes the previous and next pages wxWizardPageSimple(wxWizard *parent, - wxWizardPage *prev = (wxWizardPage *)NULL, - wxWizardPage *next = (wxWizardPage *)NULL, - const wxBitmap& bitmap = wxNullBitmap, - const wxChar* resource = NULL) + wxWizardPage *prev = NULL, + wxWizardPage *next = NULL, + const wxBitmap& bitmap = wxNullBitmap) { - Create(parent, prev, next, bitmap, resource); + Create(parent, prev, next, bitmap); } bool Create(wxWizard *parent = NULL, // let it be default ctor too - wxWizardPage *prev = (wxWizardPage *)NULL, - wxWizardPage *next = (wxWizardPage *)NULL, - const wxBitmap& bitmap = wxNullBitmap, - const wxChar* resource = NULL) + wxWizardPage *prev = NULL, + wxWizardPage *next = NULL, + const wxBitmap& bitmap = wxNullBitmap) { m_prev = prev; m_next = next; - return wxWizardPage::Create(parent, bitmap, resource); + return wxWizardPage::Create(parent, bitmap); } // the pointers may be also set later - but before starting the wizard void SetPrev(wxWizardPage *prev) { m_prev = prev; } void SetNext(wxWizardPage *next) { m_next = next; } - // a convenience function to make the pages follow each other + // Convenience functions to make the pages follow each other without having + // to call their SetPrev() or SetNext() explicitly. + wxWizardPageSimple& Chain(wxWizardPageSimple* next) + { + SetNext(next); + next->SetPrev(this); + return *next; + } + static void Chain(wxWizardPageSimple *first, wxWizardPageSimple *second) { wxCHECK_RET( first && second, @@ -239,7 +252,7 @@ public: bool Validate() { return true; } private: - DECLARE_NO_COPY_CLASS(wxWizardBase) + wxDECLARE_NO_COPY_CLASS(wxWizardBase); }; // include the real class declaration @@ -267,30 +280,31 @@ public: wxWizardPage* GetPage() const { return m_page; } + virtual wxEvent *Clone() const { return new wxWizardEvent(*this); } + private: bool m_direction; wxWizardPage* m_page; - DECLARE_DYNAMIC_CLASS(wxWizardEvent) - DECLARE_NO_COPY_CLASS(wxWizardEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWizardEvent) }; // ---------------------------------------------------------------------------- // macros for handling wxWizardEvents // ---------------------------------------------------------------------------- -BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGED, 900) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGING, 901) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_WIZARD_CANCEL, 902) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_WIZARD_HELP, 903) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_WIZARD_FINISHED, 903) -END_DECLARE_EVENT_TYPES() +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGED, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGING, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_CANCEL, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_HELP, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_FINISHED, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_SHOWN, wxWizardEvent ); +wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxWizardEvent ); typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); #define wxWizardEventHandler(func) \ - (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWizardEventFunction, &func) + wxEVENT_HANDLER_CAST(wxWizardEventFunction, func) #define wx__DECLARE_WIZARDEVT(evt, id, fn) \ wx__DECLARE_EVT1(wxEVT_WIZARD_ ## evt, id, wxWizardEventHandler(fn)) @@ -302,6 +316,10 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); // changed - unless the event handler vetoes the event #define EVT_WIZARD_PAGE_CHANGING(id, fn) wx__DECLARE_WIZARDEVT(PAGE_CHANGING, id, fn) +// Called before GetNext/GetPrev is called, so that the handler can change state that will be +// used when GetNext/GetPrev is called. PAGE_CHANGING is called too late to influence GetNext/GetPrev. +#define EVT_WIZARD_BEFORE_PAGE_CHANGED(id, fn) wx__DECLARE_WIZARDEVT(BEFORE_PAGE_CHANGED, id, fn) + // 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) wx__DECLARE_WIZARDEVT(CANCEL, id, fn) @@ -312,6 +330,9 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); // the user pressed "Help" button #define EVT_WIZARD_HELP(id, fn) wx__DECLARE_WIZARDEVT(HELP, id, fn) +// the page was just shown and laid out +#define EVT_WIZARD_PAGE_SHOWN(id, fn) wx__DECLARE_WIZARDEVT(PAGE_SHOWN, id, fn) + #endif // wxUSE_WIZARDDLG #endif // _WX_WIZARD_H_