// wxWizard
// ----------------------------------------------------------------------------
-class wxWizard : public wxWizardBase
+class WXDLLEXPORT wxButton;
+class WXDLLEXPORT wxStaticBitmap;
+
+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)
+ {
+ 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,
- const wxSize& size = wxDefaultSize);
+ 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;
// 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
+ 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);
+ // 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
int m_width, // the size of the page itself
// wizard state
wxWizardPage *m_page; // the current page or NULL
+ wxBitmap m_bitmap; // the default bitmap to show
// wizard controls
wxButton *m_btnPrev, // the "<Back" button
*m_btnNext; // the "Next>" or "Finish" button
+ wxStaticBitmap *m_statbmp; // the control for the bitmap
DECLARE_DYNAMIC_CLASS(wxWizard)
DECLARE_EVENT_TABLE()