Add the simplest and most fool proof of chaining the pages in static wizards: just chain several calls to the new, non-static, wxWizardPageSimple::Chain() overload. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			588 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			588 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wizard.h
 | 
						|
// Purpose:     interface of wxWizardPage, wxWizardEvent,
 | 
						|
// Author:      wxWidgets team
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 | 
						|
// Extended style to specify a help button
 | 
						|
#define wxWIZARD_EX_HELPBUTTON   0x00000010
 | 
						|
 | 
						|
// Bitmap 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
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxWizardPage
 | 
						|
 | 
						|
    wxWizardPage is one of the screens in wxWizard: it must know what are the
 | 
						|
    following and preceding pages (which may be @NULL for the first/last page).
 | 
						|
    Except for this extra knowledge, wxWizardPage is just a
 | 
						|
    panel, so the controls may be placed directly on it in the usual way.
 | 
						|
 | 
						|
    This class allows the programmer to decide the order of pages in the wizard
 | 
						|
    dynamically (during run-time) and so provides maximal flexibility.
 | 
						|
    Usually, however, the order of pages is known in advance in which case
 | 
						|
    wxWizardPageSimple class is enough and it is simpler to use.
 | 
						|
 | 
						|
 | 
						|
    @section wizardpage_virtuals Virtual functions to override
 | 
						|
 | 
						|
    To use this class, you must override wxWizardPage::GetPrev() and
 | 
						|
    wxWizardPage::GetNext() pure virtual functions (or you may use
 | 
						|
    wxWizardPageSimple instead).
 | 
						|
    wxWizardPage::GetBitmap() can also be overridden, but this should be very
 | 
						|
    rarely needed.
 | 
						|
 | 
						|
    @library{wxadv}
 | 
						|
    @category{miscwnd}
 | 
						|
 | 
						|
    @see wxWizard, @ref page_samples_wizard
 | 
						|
*/
 | 
						|
class wxWizardPage : public wxPanel
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
       Default constructor.
 | 
						|
    */
 | 
						|
    wxWizardPage();
 | 
						|
    
 | 
						|
    /**
 | 
						|
        Constructor accepts an optional bitmap which will be used for this page
 | 
						|
        instead of the default one for this wizard (note that all bitmaps used should
 | 
						|
        be of the same size). Notice that no other parameters are needed because the
 | 
						|
        wizard will resize and reposition the page anyhow.
 | 
						|
 | 
						|
        @param parent
 | 
						|
            The parent wizard
 | 
						|
        @param bitmap
 | 
						|
            The page-specific bitmap if different from the global one
 | 
						|
    */
 | 
						|
    wxWizardPage(wxWizard* parent,
 | 
						|
                 const wxBitmap& bitmap = wxNullBitmap);
 | 
						|
 | 
						|
    /**
 | 
						|
       Creates the wizard page.
 | 
						|
       Must be called if the default constructor had been used to create the object.
 | 
						|
 | 
						|
        @param parent
 | 
						|
            The parent wizard
 | 
						|
        @param bitmap
 | 
						|
            The page-specific bitmap if different from the global one
 | 
						|
    */
 | 
						|
    bool Create(wxWizard *parent,
 | 
						|
                const wxBitmap& bitmap = wxNullBitmap);
 | 
						|
 | 
						|
    /**
 | 
						|
        This method is called by wxWizard to get the bitmap to display alongside the page.
 | 
						|
        By default, @c m_bitmap member variable which was set in the
 | 
						|
        @ref wxWizardPage() constructor.
 | 
						|
 | 
						|
        If the bitmap was not explicitly set (i.e. if ::wxNullBitmap is returned),
 | 
						|
        the default bitmap for the wizard should be used.
 | 
						|
 | 
						|
        The only cases when you would want to override this function is if the page
 | 
						|
        bitmap depends dynamically on the user choices, i.e. almost never.
 | 
						|
    */
 | 
						|
    virtual wxBitmap GetBitmap() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Get the page which should be shown when the user chooses the @c "Next"
 | 
						|
        button: if @NULL is returned, this button will be disabled.
 | 
						|
        The last page of the wizard will usually return @NULL from here, but
 | 
						|
        the others will not.
 | 
						|
 | 
						|
        @see GetPrev()
 | 
						|
    */
 | 
						|
    virtual wxWizardPage* GetNext() const = 0;
 | 
						|
 | 
						|
    /**
 | 
						|
        Get the page which should be shown when the user chooses the @c "Back"
 | 
						|
        button: if @NULL is returned, this button will be disabled.
 | 
						|
        The first page of the wizard will usually return @NULL from here, but
 | 
						|
        the others will not.
 | 
						|
 | 
						|
        @see GetNext()
 | 
						|
    */
 | 
						|
    virtual wxWizardPage* GetPrev() const = 0;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxWizardEvent
 | 
						|
 | 
						|
    wxWizardEvent class represents an event generated by the wxWizard: this event
 | 
						|
    is first sent to the page itself and, if not processed there, goes up the
 | 
						|
    window hierarchy as usual.
 | 
						|
 | 
						|
    @beginEventTable{wxWizardEvent}
 | 
						|
    @event{EVT_WIZARD_PAGE_CHANGED(id, func)}
 | 
						|
        The page has been just changed (this event cannot be vetoed).
 | 
						|
    @event{EVT_WIZARD_PAGE_CHANGING(id, func)}
 | 
						|
        The page is being changed (this event can be vetoed).
 | 
						|
    @event{EVT_WIZARD_BEFORE_PAGE_CHANGED(id, func)}
 | 
						|
        Called after Next is clicked but before GetNext is called. Unlike EVT_WIZARD_CHANGING,
 | 
						|
        the handler for this function can change state that might affect the return value of
 | 
						|
        GetNext. This event can be vetoed.
 | 
						|
    @event{EVT_WIZARD_PAGE_SHOWN(id, func)}
 | 
						|
        The page was shown and laid out (this event cannot be vetoed).
 | 
						|
    @event{EVT_WIZARD_CANCEL(id, func)}
 | 
						|
        The user attempted to cancel the wizard (this event may also be vetoed).
 | 
						|
    @event{EVT_WIZARD_HELP(id, func)}
 | 
						|
        The wizard help button was pressed.
 | 
						|
    @event{EVT_WIZARD_FINISHED(id, func)}
 | 
						|
        The wizard finished button was pressed.
 | 
						|
    @endEventTable
 | 
						|
 | 
						|
    @library{wxadv}
 | 
						|
    @category{events}
 | 
						|
 | 
						|
    @see wxWizard, @ref page_samples_wizard
 | 
						|
*/
 | 
						|
class wxWizardEvent : public wxNotifyEvent
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor.
 | 
						|
 | 
						|
        It is not normally used by the user code as the objects of this
 | 
						|
        type are constructed by wxWizard.
 | 
						|
    */
 | 
						|
    wxWizardEvent(wxEventType type = wxEVT_NULL, int id = wxID_ANY,
 | 
						|
                  bool direction = true, wxWizardPage* page = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Return the direction in which the page is changing: for
 | 
						|
        @c EVT_WIZARD_PAGE_CHANGING, return @true if we're going forward or
 | 
						|
        @false otherwise and for @c EVT_WIZARD_PAGE_CHANGED return @true if we
 | 
						|
        came from the previous page and @false if we returned from the next one.
 | 
						|
    */
 | 
						|
    bool GetDirection() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the wxWizardPage which was active when this event was generated.
 | 
						|
    */
 | 
						|
    wxWizardPage* GetPage() const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
wxEventType wxEVT_WIZARD_PAGE_CHANGED;
 | 
						|
wxEventType wxEVT_WIZARD_PAGE_CHANGING;
 | 
						|
wxEventType wxEVT_WIZARD_CANCEL;
 | 
						|
wxEventType wxEVT_WIZARD_HELP;
 | 
						|
wxEventType wxEVT_WIZARD_FINISHED;
 | 
						|
wxEventType wxEVT_WIZARD_PAGE_SHOWN;
 | 
						|
wxEventType wxEVT_WIZARD_BEFORE_PAGE_CHANGED;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxWizardPageSimple
 | 
						|
 | 
						|
    wxWizardPageSimple is the simplest possible wxWizardPage implementation:
 | 
						|
    it just returns the pointers given to its constructor from wxWizardPage::GetNext()
 | 
						|
    and wxWizardPage::GetPrev() functions.
 | 
						|
 | 
						|
    This makes it very easy to use the objects of this class in the wizards where
 | 
						|
    the pages order is known statically - on the other hand, if this is not the
 | 
						|
    case you must derive your own class from wxWizardPage instead.
 | 
						|
 | 
						|
    @library{wxadv}
 | 
						|
    @category{miscwnd}
 | 
						|
 | 
						|
    @see wxWizard, @ref page_samples_wizard
 | 
						|
*/
 | 
						|
class wxWizardPageSimple : public wxWizardPage
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
       Default constructor.
 | 
						|
    */
 | 
						|
    wxWizardPageSimple();
 | 
						|
    
 | 
						|
    /**
 | 
						|
        Constructor takes the previous and next pages.
 | 
						|
        They may be modified later by SetPrev() or SetNext().
 | 
						|
    */
 | 
						|
    wxWizardPageSimple(wxWizard* parent,
 | 
						|
                       wxWizardPage* prev = NULL,
 | 
						|
                       wxWizardPage* next = NULL,
 | 
						|
                       const wxBitmap& bitmap = wxNullBitmap);
 | 
						|
 | 
						|
    /**
 | 
						|
       Creates the wizard page.
 | 
						|
       Must be called if the default constructor had been used to create the object.
 | 
						|
    */
 | 
						|
    bool Create(wxWizard *parent = NULL, 
 | 
						|
                wxWizardPage *prev = NULL,
 | 
						|
                wxWizardPage *next = NULL,
 | 
						|
                const wxBitmap& bitmap = wxNullBitmap);
 | 
						|
 | 
						|
    /**
 | 
						|
        A helper chaining this page with the next one.
 | 
						|
 | 
						|
        Notice that this method returns a reference to the next page, so the
 | 
						|
        calls to it can, in turn, be chained:
 | 
						|
 | 
						|
        @code
 | 
						|
        wxWizardPageSimple* firstPage = new FirstPage;
 | 
						|
        (*firstPage).Chain(new SecondPage)
 | 
						|
                    .Chain(new ThirdPage)
 | 
						|
                    .Chain(new LastPage);
 | 
						|
        @endcode
 | 
						|
 | 
						|
        This makes this method the simplest way to define the order of changes
 | 
						|
        in fully static wizards, i.e. in those where the order doesn't depend
 | 
						|
        on the choices made by the user in the wizard pages during run-time.
 | 
						|
 | 
						|
        @param next A non-@NULL pointer to the next page.
 | 
						|
        @return Reference to @a next on which Chain() can be called again.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
     */
 | 
						|
    /**
 | 
						|
        A convenience function to make the pages follow each other.
 | 
						|
        Example:
 | 
						|
 | 
						|
        @code
 | 
						|
        wxRadioboxPage *page3 = new wxRadioboxPage(wizard);
 | 
						|
        wxValidationPage *page4 = new wxValidationPage(wizard);
 | 
						|
 | 
						|
        wxWizardPageSimple::Chain(page3, page4);
 | 
						|
        @endcode
 | 
						|
    */
 | 
						|
    static void Chain(wxWizardPageSimple* first,
 | 
						|
                      wxWizardPageSimple* second);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the next page.
 | 
						|
    */
 | 
						|
    void SetNext(wxWizardPage* next);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the previous page.
 | 
						|
    */
 | 
						|
    void SetPrev(wxWizardPage* prev);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxWizard
 | 
						|
 | 
						|
    wxWizard is the central class for implementing 'wizard-like' dialogs.
 | 
						|
    These dialogs are mostly familiar to Windows users and are nothing other than a
 | 
						|
    sequence of 'pages', each displayed inside a dialog which has the buttons to
 | 
						|
    navigate to the next (and previous) pages.
 | 
						|
 | 
						|
    The wizards are typically used to decompose a complex dialog into several
 | 
						|
    simple steps and are mainly useful to the novice users, hence it is important
 | 
						|
    to keep them as simple as possible.
 | 
						|
 | 
						|
    To show a wizard dialog, you must first create an instance of the wxWizard class
 | 
						|
    using either the non-default constructor or a default one followed by call to the
 | 
						|
    wxWizard::Create function. Then you should add all pages you want the wizard to
 | 
						|
    show and call wxWizard::RunWizard().
 | 
						|
    Finally, don't forget to call @c "wizard->Destroy()", otherwise your application
 | 
						|
    will hang on exit due to an undestroyed window.
 | 
						|
 | 
						|
    You can supply a bitmap to display on the left of the wizard, either for all pages
 | 
						|
    or for individual pages. If you need to have the bitmap resize to the height of
 | 
						|
    the wizard, call wxWizard::SetBitmapPlacement() and if necessary,
 | 
						|
    wxWizard::SetBitmapBackgroundColour() and wxWizard::SetMinimumBitmapWidth().
 | 
						|
 | 
						|
    To make wizard pages scroll when the display is too small to fit the whole
 | 
						|
    dialog, you can switch layout adaptation on globally with
 | 
						|
    wxDialog::EnableLayoutAdaptation() or per dialog with wxDialog::SetLayoutAdaptationMode().
 | 
						|
    For more about layout adaptation, see @ref overview_dialog_autoscrolling.
 | 
						|
 | 
						|
    @beginEventEmissionTable{wxWizardEvent}
 | 
						|
    For some events, Veto() can be called to prevent the event from happening.
 | 
						|
    @event{EVT_WIZARD_PAGE_CHANGED(id, func)}
 | 
						|
        The page has just been changed (this event cannot be vetoed).
 | 
						|
    @event{EVT_WIZARD_PAGE_CHANGING(id, func)}
 | 
						|
        The page is being changed (this event can be vetoed).
 | 
						|
    @event{EVT_WIZARD_BEFORE_PAGE_CHANGED(id, func)}
 | 
						|
        Called after Next is clicked but before GetNext is called. Unlike EVT_WIZARD_CHANGING,
 | 
						|
        the handler for this function can change state that might affect the return value of
 | 
						|
        GetNext. This event can be vetoed.
 | 
						|
    @event{EVT_WIZARD_PAGE_SHOWN(id, func)}
 | 
						|
        The page was shown and laid out (this event cannot be vetoed).
 | 
						|
    @event{EVT_WIZARD_CANCEL(id, func)}
 | 
						|
        The user attempted to cancel the wizard (this event may also be vetoed).
 | 
						|
    @event{EVT_WIZARD_HELP(id, func)}
 | 
						|
        The wizard help button was pressed.
 | 
						|
    @event{EVT_WIZARD_FINISHED(id, func)}
 | 
						|
        The wizard finished button was pressed.
 | 
						|
    @endEventTable
 | 
						|
 | 
						|
 | 
						|
    @section wizard_extstyles Extended styles
 | 
						|
 | 
						|
    Use the wxWindow::SetExtraStyle() function to set the following style.
 | 
						|
    You will need to use two-step construction (use the default constructor,
 | 
						|
    call SetExtraStyle(), then call Create).
 | 
						|
 | 
						|
    @beginExtraStyleTable
 | 
						|
    @style{wxWIZARD_EX_HELPBUTTON}
 | 
						|
        Shows a Help button using wxID_HELP.
 | 
						|
    @endExtraStyleTable
 | 
						|
 | 
						|
    See also wxDialog for other extended styles.
 | 
						|
 | 
						|
    @library{wxadv}
 | 
						|
    @category{cmndlg}
 | 
						|
 | 
						|
    @see wxWizardEvent, wxWizardPage, @ref page_samples_wizard
 | 
						|
*/
 | 
						|
class wxWizard : public wxDialog
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Default constructor.
 | 
						|
 | 
						|
        Use this if you wish to derive from wxWizard and then call Create(),
 | 
						|
        for example if you wish to set an extra style with wxWindow::SetExtraStyle()
 | 
						|
        between the two calls.
 | 
						|
    */
 | 
						|
    wxWizard();
 | 
						|
 | 
						|
    /**
 | 
						|
        Constructor which really creates the wizard -- if you use this constructor, you
 | 
						|
        shouldn't call Create().
 | 
						|
 | 
						|
        Notice that unlike almost all other wxWidgets classes, there is no @e size
 | 
						|
        parameter in the wxWizard constructor because the wizard will have a predefined
 | 
						|
        default size by default.
 | 
						|
        If you want to change this, you should use the GetPageAreaSizer() function.
 | 
						|
 | 
						|
        @param parent
 | 
						|
            The parent window, may be @NULL.
 | 
						|
        @param id
 | 
						|
            The id of the dialog, will usually be just wxID_ANY.
 | 
						|
        @param title
 | 
						|
            The title of the dialog.
 | 
						|
        @param bitmap
 | 
						|
            The default bitmap used in the left side of the wizard. See also GetBitmap().
 | 
						|
        @param pos
 | 
						|
            The position of the dialog, it will be centered on the screen by default.
 | 
						|
        @param style
 | 
						|
            Window style is passed to wxDialog.
 | 
						|
    */
 | 
						|
    wxWizard(wxWindow* parent, int id = wxID_ANY,
 | 
						|
             const wxString& title = wxEmptyString,
 | 
						|
             const wxBitmap& bitmap = wxNullBitmap,
 | 
						|
             const wxPoint& pos = wxDefaultPosition,
 | 
						|
             long style = wxDEFAULT_DIALOG_STYLE);
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates the wizard dialog.
 | 
						|
        Must be called if the default constructor had been used to create the object.
 | 
						|
 | 
						|
        Notice that unlike almost all other wxWidgets classes, there is no @e size
 | 
						|
        parameter in the wxWizard constructor because the wizard will have a predefined
 | 
						|
        default size by default.
 | 
						|
        If you want to change this, you should use the GetPageAreaSizer() function.
 | 
						|
 | 
						|
        @param parent
 | 
						|
            The parent window, may be @NULL.
 | 
						|
        @param id
 | 
						|
            The id of the dialog, will usually be just -1.
 | 
						|
        @param title
 | 
						|
            The title of the dialog.
 | 
						|
        @param bitmap
 | 
						|
            The default bitmap used in the left side of the wizard. See also GetBitmap().
 | 
						|
        @param pos
 | 
						|
            The position of the dialog, it will be centered on the screen by default.
 | 
						|
        @param style
 | 
						|
            Window style is passed to wxDialog.
 | 
						|
    */
 | 
						|
    bool Create(wxWindow* parent, int id = wxID_ANY,
 | 
						|
                const wxString& title = wxEmptyString,
 | 
						|
                const wxBitmap& bitmap = wxNullBitmap,
 | 
						|
                const wxPoint& pos = wxDefaultPosition, long style = wxDEFAULT_DIALOG_STYLE);
 | 
						|
 | 
						|
    /**
 | 
						|
        This method is obsolete, use GetPageAreaSizer() instead.
 | 
						|
 | 
						|
        Sets the page size to be big enough for all the pages accessible via the
 | 
						|
        given @e firstPage, i.e. this page, its next page and so on.
 | 
						|
 | 
						|
        This method may be called more than once and it will only change the page size
 | 
						|
        if the size required by the new page is bigger than the previously set one.
 | 
						|
        This is useful if the decision about which pages to show is taken during
 | 
						|
        run-time, as in this case, the wizard won't be able to get to all pages starting
 | 
						|
        from a single one and you should call @e Fit separately for the others.
 | 
						|
    */
 | 
						|
    virtual void FitToPage(const wxWizardPage* firstPage);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the bitmap used for the wizard.
 | 
						|
    */
 | 
						|
    const wxBitmap& GetBitmap() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the colour that should be used to fill the area not taken up by the
 | 
						|
        wizard or page bitmap, if a non-zero bitmap placement flag has been set.
 | 
						|
 | 
						|
        See also SetBitmapPlacement().
 | 
						|
    */
 | 
						|
    const wxColour& GetBitmapBackgroundColour() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the flags indicating how the wizard or page bitmap should be expanded
 | 
						|
        and positioned to fit the page height. By default, placement is 0 (no expansion is done).
 | 
						|
 | 
						|
        See also SetBitmapPlacement() for the possible values.
 | 
						|
    */
 | 
						|
    int GetBitmapPlacement() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Get the current page while the wizard is running.
 | 
						|
        @NULL is returned if RunWizard() is not being executed now.
 | 
						|
    */
 | 
						|
    virtual wxWizardPage* GetCurrentPage() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the minimum width for the bitmap that will be constructed to contain
 | 
						|
        the actual wizard or page bitmap if a non-zero bitmap placement flag has been set.
 | 
						|
 | 
						|
        See also SetBitmapPlacement().
 | 
						|
    */
 | 
						|
    int GetMinimumBitmapWidth() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns pointer to page area sizer. The wizard is laid out using sizers and
 | 
						|
        the page area sizer is the place-holder for the pages. All pages are resized
 | 
						|
        before being shown to match the wizard page area.
 | 
						|
 | 
						|
        Page area sizer has a minimal size that is the maximum of several values.
 | 
						|
        First, all pages (or other objects) added to the sizer. Second, all pages reachable
 | 
						|
        by repeatedly applying wxWizardPage::GetNext() to any page inserted into the sizer.
 | 
						|
 | 
						|
        Third, the minimal size specified using SetPageSize() and FitToPage().
 | 
						|
        Fourth, the total wizard height may be increased to accommodate the bitmap height.
 | 
						|
        Fifth and finally, wizards are never smaller than some built-in minimal size to
 | 
						|
        avoid wizards that are too small.
 | 
						|
 | 
						|
        The caller can use wxSizer::SetMinSize to enlarge it beyond the minimal size.
 | 
						|
        If @c wxRESIZE_BORDER was passed to constructor, user can resize wizard and
 | 
						|
        consequently the page area (but not make it smaller than the minimal size).
 | 
						|
 | 
						|
        It is recommended to add the first page to the page area sizer.
 | 
						|
        For simple wizards, this will enlarge the wizard to fit the biggest page.
 | 
						|
 | 
						|
        For non-linear wizards, the first page of every separate chain should be added.
 | 
						|
        Caller-specified size can be accomplished using wxSizer::SetMinSize().
 | 
						|
        Adding pages to the page area sizer affects the default border width around page
 | 
						|
        area that can be altered with SetBorder().
 | 
						|
    */
 | 
						|
    virtual wxSizer* GetPageAreaSizer() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the size available for the pages.
 | 
						|
    */
 | 
						|
    virtual wxSize GetPageSize() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Return @true if this page is not the last one in the wizard.
 | 
						|
        The base class version implements this by calling
 | 
						|
        @ref wxWizardPage::GetNext "page->GetNext" but this could be
 | 
						|
        undesirable if, for example, the pages are created on demand only.
 | 
						|
 | 
						|
        @see HasPrevPage()
 | 
						|
    */
 | 
						|
    virtual bool HasNextPage(wxWizardPage* page);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns @true if this page is not the last one in the wizard.
 | 
						|
        The base class version implements this by calling
 | 
						|
        @ref wxWizardPage::GetPrev "page->GetPrev" but this could be
 | 
						|
        undesirable if, for example, the pages are created on demand only.
 | 
						|
 | 
						|
        @see HasNextPage()
 | 
						|
    */
 | 
						|
    virtual bool HasPrevPage(wxWizardPage* page);
 | 
						|
 | 
						|
    /**
 | 
						|
        Executes the wizard starting from the given page, returning @true if it was
 | 
						|
        successfully finished or @false if user cancelled it.
 | 
						|
        The @a firstPage cannot be @NULL.
 | 
						|
    */
 | 
						|
    virtual bool RunWizard(wxWizardPage* firstPage);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the bitmap used for the wizard.
 | 
						|
    */
 | 
						|
    void SetBitmap(const wxBitmap& bitmap);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the colour that should be used to fill the area not taken up by the wizard
 | 
						|
        or page bitmap, if a non-zero bitmap placement flag has been set.
 | 
						|
 | 
						|
        See also SetBitmapPlacement().
 | 
						|
    */
 | 
						|
    void SetBitmapBackgroundColour(const wxColour& colour);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the flags indicating how the wizard or page bitmap should be expanded and
 | 
						|
        positioned to fit the page height.
 | 
						|
 | 
						|
        By default, placement is 0 (no expansion is done). @a placement is a bitlist with the
 | 
						|
        following possible values:
 | 
						|
 | 
						|
        - @b wxWIZARD_VALIGN_TOP: Aligns the bitmap at the top.
 | 
						|
        - @b wxWIZARD_VALIGN_CENTRE: Centres the bitmap vertically.
 | 
						|
        - @b wxWIZARD_VALIGN_BOTTOM: Aligns the bitmap at the bottom.
 | 
						|
        - @b wxWIZARD_HALIGN_LEFT: Left-aligns the bitmap.
 | 
						|
        - @b wxWIZARD_HALIGN_CENTRE: Centres the bitmap horizontally.
 | 
						|
        - @b wxWIZARD_HALIGN_RIGHT: Right-aligns the bitmap.
 | 
						|
        - @b wxWIZARD_TILE: @todo describe this
 | 
						|
 | 
						|
        See also SetMinimumBitmapWidth().
 | 
						|
    */
 | 
						|
    void SetBitmapPlacement(int placement);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets width of border around page area. Default is zero.
 | 
						|
        For backward compatibility, if there are no pages in GetPageAreaSizer(),
 | 
						|
        the default is 5 pixels.
 | 
						|
 | 
						|
        If there is a five point border around all controls in a page and the border
 | 
						|
        around page area is left as zero, a five point white space along all dialog borders
 | 
						|
        will be added to the control border in order to space page controls ten points
 | 
						|
        from the dialog border and non-page controls.
 | 
						|
    */
 | 
						|
    virtual void SetBorder(int border);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the minimum width for the bitmap that will be constructed to contain the
 | 
						|
        actual wizard or page bitmap if a non-zero bitmap placement flag has been set.
 | 
						|
        If this is not set when using bitmap placement, the initial layout may be incorrect.
 | 
						|
 | 
						|
        See also SetBitmapPlacement().
 | 
						|
    */
 | 
						|
    void SetMinimumBitmapWidth(int width);
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the minimal size to be made available for the wizard pages.
 | 
						|
        The wizard will take into account the size of the bitmap (if any) itself.
 | 
						|
        Also, the wizard will never be smaller than the default size.
 | 
						|
 | 
						|
        The recommended way to use this function is to lay out all wizard pages
 | 
						|
        using the sizers (even though the wizard is not resizable) and then use
 | 
						|
        wxSizer::CalcMin() in a loop to calculate the maximum of minimal sizes of
 | 
						|
        the pages and pass it to SetPageSize().
 | 
						|
    */
 | 
						|
    virtual void SetPageSize(const wxSize& sizePage);
 | 
						|
};
 | 
						|
 |