// wxWizard
// ----------------------------------------------------------------------------
+#if defined(__GNUG__) && !defined(__APPLE__)
+ #pragma interface "wizardg.h"
+#endif
+
class WXDLLEXPORT wxButton;
class WXDLLEXPORT wxStaticBitmap;
+class WXDLLEXPORT wxWizardEvent;
class WXDLLEXPORT wxWizard : public wxWizardBase
{
public:
// ctor
- wxWizard(wxWindow *parent = NULL,
+ wxWizard() { Init(); }
+ wxWizard(wxWindow *parent,
int id = -1,
const wxString& title = wxEmptyString,
const wxBitmap& bitmap = wxNullBitmap,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize);
+ const wxPoint& pos = wxDefaultPosition)
+ {
+ Init();
+ Create(parent, id, title, bitmap, pos);
+ }
+ bool Create(wxWindow *parent,
+ int id = -1,
+ const wxString& title = wxEmptyString,
+ const wxBitmap& bitmap = wxNullBitmap,
+ const wxPoint& pos = wxDefaultPosition);
+ void Init();
// implement base class pure virtuals
virtual bool RunWizard(wxWizardPage *firstPage);
virtual wxWizardPage *GetCurrentPage() const;
+ virtual void SetPageSize(const wxSize& size);
virtual wxSize GetPageSize() const;
+ virtual void FitToPage(const wxWizardPage *firstPage);
// implementation only from now on
// -------------------------------
bool IsRunning() const { return m_page != NULL; }
// show the prev/next page, but call TransferDataFromWindow on the current
- // page first and return FALSE without changing the page if it returns
- // FALSE
+ // page first and return FALSE without changing the page if
+ // TransferDataFromWindow() returns FALSE - otherwise, returns TRUE
bool ShowPage(wxWizardPage *page, bool goingForward = TRUE);
+ // do fill the dialog with controls
+ // this is app-overridable to, for example, set help and tooltip text
+ virtual void DoCreateControls();
+
private:
+ // was the dialog really created?
+ bool WasCreated() const { return m_btnPrev != NULL; }
+
// event handlers
void OnCancel(wxCommandEvent& event);
void OnBackOrNext(wxCommandEvent& event);
+ void OnHelp(wxCommandEvent& event);
+
+ void OnWizEvent(wxWizardEvent& event);
+
+ // the page size requested by user
+ wxSize m_sizePage;
+
+ // the dialog position from the ctor
+ wxPoint m_posWizard;
// wizard dimensions
int m_x, m_y; // the origin for the pages