+// ----------------------------------------------------------------------------
+// MyWizard
+// ----------------------------------------------------------------------------
+
+MyWizard::MyWizard(wxFrame *frame)
+ :wxWizard(frame,wxID_ANY,_T("Absolutely Useless Wizard"),
+ wxBitmap(wiztest_xpm),wxDefaultPosition,
+ wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
+{
+ // a wizard page may be either an object of predefined class
+ m_page1 = new wxWizardPageSimple(this);
+
+ /* wxStaticText *text = */ new wxStaticText(m_page1, wxID_ANY,
+ _T("This wizard doesn't help you\nto do anything at all.\n")
+ _T("\n")
+ _T("The next pages will present you\nwith more useless controls."),
+ wxPoint(5,5)
+ );
+
+ // ... or a derived class
+ wxRadioboxPage *page3 = new wxRadioboxPage(this);
+ wxValidationPage *page4 = new wxValidationPage(this);
+
+ // set the page order using a convenience function - could also use
+ // SetNext/Prev directly as below
+ wxWizardPageSimple::Chain(page3, page4);
+
+ // this page is not a wxWizardPageSimple, so we use SetNext/Prev to insert
+ // it into the chain of pages
+ wxCheckboxPage *page2 = new wxCheckboxPage(this, m_page1, page3);
+ m_page1->SetNext(page2);
+ page3->SetPrev(page2);
+
+ // allow the wizard to size itself around the pages
+ GetPageAreaSizer()->Add(m_page1);
+}
+
+void MyWizard::RunIt(bool modal)
+{
+ if ( modal )
+ {
+ if ( RunWizard(m_page1) )
+ {
+ // Success
+ }
+
+ Destroy();
+ }
+ else
+ {
+ FinishLayout();
+ ShowPage(m_page1);
+ Show(true);
+ }
+}
+