+void wxWizard::AddButtonRow(wxBoxSizer *mainColumn)
+{
+ wxBoxSizer *buttonRow = new wxBoxSizer(wxHORIZONTAL);
+ mainColumn->Add(
+ buttonRow,
+ 0, // Vertically unstretchable
+ wxALIGN_RIGHT // Right aligned, no border
+ );
+
+ if (GetExtraStyle() & wxWIZARD_EX_HELPBUTTON)
+ buttonRow->Add(
+ new wxButton(this, wxID_HELP, _("&Help")),
+ 0, // Horizontally unstretchable
+ wxALL, // Border all around, top aligned
+ 5 // Border width
+ );
+
+ AddBackNextPair(buttonRow);
+
+ buttonRow->Add(
+ new wxButton(this, wxID_CANCEL, _("&Cancel")),
+ 0, // Horizontally unstretchable
+ wxALL, // Border all around, top aligned
+ 5 // Border width
+ );
+}
+
+void wxWizard::DoCreateControls()
+{
+ // do nothing if the controls were already created
+ if ( WasCreated() )
+ return;
+
+ // wxWindow::SetSizer will be called at end
+ wxBoxSizer *windowSizer = new wxBoxSizer(wxVERTICAL);
+
+ wxBoxSizer *mainColumn = new wxBoxSizer(wxVERTICAL);
+ windowSizer->Add(
+ mainColumn,
+ 1, // Vertical stretching
+ wxALL | wxEXPAND, // Border all around, horizontal stretching
+ 5 // Border width
+ );
+
+ AddBitmapRow(mainColumn);
+ AddStaticLine(mainColumn);
+ AddButtonRow(mainColumn);
+
+ // wxWindow::SetSizer should be followed by wxWindow::Fit, but
+ // this is done in FinishLayout anyway so why duplicate it
+ SetSizer(windowSizer);
+}