+
+ // set the min size which should be available for the pages: a
+ // wizard will take into account the size of the bitmap (if any)
+ // itself and will never be less than some predefined fixed size
+ virtual void SetPageSize(const wxSize& size) = 0;
+
+ // get the size available for the page
+ virtual wxSize GetPageSize() const = 0;
+
+ // set the best size for the wizard, i.e. make it big enough to contain all
+ // of the pages starting from the given one
+ //
+ // this function may be called several times and possible with different
+ // pages in which case it will only increase the page size if needed (this
+ // may be useful if not all pages are accessible from the first one by
+ // default)
+ virtual void FitToPage(const wxWizardPage *firstPage) = 0;
+
+ // Adding pages to page area sizer enlarges wizard
+ virtual wxSizer *GetPageAreaSizer() const = 0;
+
+ // Set border around page area. Default is 0 if you add at least one
+ // page to GetPageAreaSizer and 5 if you don't.
+ virtual void SetBorder(int border) = 0;
+
+ // the methods below may be overridden by the derived classes to provide
+ // custom logic for determining the pages order
+
+ virtual bool HasNextPage(wxWizardPage *page)
+ { return page->GetNext() != NULL; }
+
+ 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)