Added chainable wxWizardPageSimple::Chain() overload.
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
This commit is contained in:
@@ -628,6 +628,7 @@ All (GUI):
|
||||
- Added wxDocument::Activate() (troelsk).
|
||||
- Added wxDocManager::FindDocumentByPath() (troelsk).
|
||||
- Added wxEVT_GRID_COL_AUTO_SIZE event (Igor Korot).
|
||||
- Added chainable wxWizardPageSimple::Chain() overload.
|
||||
|
||||
wxGTK:
|
||||
|
||||
|
@@ -147,7 +147,15 @@ public:
|
||||
void SetPrev(wxWizardPage *prev) { m_prev = prev; }
|
||||
void SetNext(wxWizardPage *next) { m_next = next; }
|
||||
|
||||
// a convenience function to make the pages follow each other
|
||||
// Convenience functions to make the pages follow each other without having
|
||||
// to call their SetPrev() or SetNext() explicitly.
|
||||
wxWizardPageSimple& Chain(wxWizardPageSimple* next)
|
||||
{
|
||||
SetNext(next);
|
||||
next->SetPrev(this);
|
||||
return *next;
|
||||
}
|
||||
|
||||
static void Chain(wxWizardPageSimple *first, wxWizardPageSimple *second)
|
||||
{
|
||||
wxCHECK_RET( first && second,
|
||||
|
@@ -226,6 +226,28 @@ public:
|
||||
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:
|
||||
|
@@ -414,8 +414,10 @@ MyWizard::MyWizard(wxFrame *frame, bool useSizer)
|
||||
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);
|
||||
// SetNext/Prev directly as below, but Chain() is shorter, avoids the risk
|
||||
// of an error and can itself be chained, e.g. you could write
|
||||
// page3.Chain(page4).Chain(page5) and so on.
|
||||
page3->Chain(page4);
|
||||
|
||||
// this page is not a wxWizardPageSimple, so we use SetNext/Prev to insert
|
||||
// it into the chain of pages
|
||||
|
Reference in New Issue
Block a user