added sizers support; allow resizeable wizards (Robert Vazan)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
// Name: wizard.cpp
|
||||
// Purpose: wxWindows sample demonstrating wxWizard control
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Modified by: Robert Vazan (sizers)
|
||||
// Created: 15.08.99
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Vadim Zeitlin
|
||||
@@ -17,11 +17,6 @@
|
||||
// headers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__GNUG__) && !defined(__APPLE__)
|
||||
#pragma implementation "wizard.cpp"
|
||||
#pragma interface "wizard.cpp"
|
||||
#endif
|
||||
|
||||
// For compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
@@ -29,10 +24,16 @@
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
// for all others, include the necessary headers (this file is usually all you
|
||||
// need because it includes almost all "standard" wxWindows headers
|
||||
// for all others, include the necessary headers
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/wx.h"
|
||||
#include "wx/stattext.h"
|
||||
#include "wx/log.h"
|
||||
#include "wx/app.h"
|
||||
#include "wx/checkbox.h"
|
||||
#include "wx/msgdlg.h"
|
||||
#include "wx/radiobox.h"
|
||||
#include "wx/menu.h"
|
||||
#include "wx/sizer.h"
|
||||
#endif
|
||||
|
||||
#include "wx/wizard.h"
|
||||
@@ -101,6 +102,25 @@ public:
|
||||
m_bitmap = wxBITMAP(wiztest2);
|
||||
|
||||
m_checkbox = new wxCheckBox(this, -1, _T("&Check me"));
|
||||
|
||||
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
|
||||
mainSizer->Add(
|
||||
new wxStaticText(this, -1,
|
||||
_T("You need to check the checkbox\n")
|
||||
_T("below before going to the next page\n")),
|
||||
0,
|
||||
wxALL,
|
||||
5
|
||||
);
|
||||
|
||||
mainSizer->Add(
|
||||
m_checkbox,
|
||||
0, // No stretching
|
||||
wxALL,
|
||||
5 // Border
|
||||
);
|
||||
SetSizer(mainSizer);
|
||||
mainSizer->Fit(this);
|
||||
}
|
||||
|
||||
virtual bool TransferDataFromWindow()
|
||||
@@ -144,10 +164,20 @@ public:
|
||||
choices[3] = _T("neither");
|
||||
|
||||
m_radio = new wxRadioBox(this, -1, _T("Allow to proceed:"),
|
||||
wxPoint(5, 5), wxDefaultSize,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
WXSIZEOF(choices), choices,
|
||||
1, wxRA_SPECIFY_COLS);
|
||||
m_radio->SetSelection(Both);
|
||||
|
||||
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
|
||||
mainSizer->Add(
|
||||
m_radio,
|
||||
0, // No stretching
|
||||
wxALL,
|
||||
5 // Border
|
||||
);
|
||||
SetSizer(mainSizer);
|
||||
mainSizer->Fit(this);
|
||||
}
|
||||
|
||||
// wizard event handlers
|
||||
@@ -197,12 +227,27 @@ public:
|
||||
{
|
||||
m_prev = prev;
|
||||
m_next = next;
|
||||
|
||||
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
(void)new wxStaticText(this, -1, _T("Try checking the box below and\n")
|
||||
_T("then going back and clearing it"));
|
||||
mainSizer->Add(
|
||||
new wxStaticText(this, -1, _T("Try checking the box below and\n")
|
||||
_T("then going back and clearing it")),
|
||||
0, // No vertical stretching
|
||||
wxALL,
|
||||
5 // Border width
|
||||
);
|
||||
|
||||
m_checkbox = new wxCheckBox(this, -1, _T("&Skip the next page"),
|
||||
wxPoint(5, 30));
|
||||
m_checkbox = new wxCheckBox(this, -1, _T("&Skip the next page"));
|
||||
mainSizer->Add(
|
||||
m_checkbox,
|
||||
0, // No vertical stretching
|
||||
wxALL,
|
||||
5 // Border width
|
||||
);
|
||||
|
||||
SetSizer(mainSizer);
|
||||
mainSizer->Fit(this);
|
||||
}
|
||||
|
||||
// implement wxWizardPage functions
|
||||
@@ -304,14 +349,17 @@ void MyFrame::OnRunWizard(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
wxWizard *wizard = new wxWizard(this, -1,
|
||||
_T("Absolutely Useless Wizard"),
|
||||
wxBITMAP(wiztest));
|
||||
wxBITMAP(wiztest),
|
||||
wxDefaultPosition,
|
||||
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
|
||||
|
||||
// a wizard page may be either an object of predefined class
|
||||
wxWizardPageSimple *page1 = new wxWizardPageSimple(wizard);
|
||||
wxStaticText *text = new wxStaticText(page1, -1,
|
||||
_T("This wizard doesn't help you to do anything at all.\n")
|
||||
_T("This wizard doesn't help you\nto do anything at all.\n")
|
||||
_T("\n")
|
||||
_T("The next pages will present you with more useless controls.")
|
||||
_T("The next pages will present you\nwith more useless controls."),
|
||||
wxPoint(5,5)
|
||||
);
|
||||
wxSize size = text->GetBestSize();
|
||||
|
||||
@@ -330,6 +378,8 @@ void MyFrame::OnRunWizard(wxCommandEvent& WXUNUSED(event))
|
||||
page3->SetPrev(page2);
|
||||
|
||||
wizard->SetPageSize(size);
|
||||
wizard->GetPageAreaSizer()->Add(page1);
|
||||
|
||||
if ( wizard->RunWizard(page1) )
|
||||
{
|
||||
wxMessageBox(_T("The wizard successfully completed"), _T("That's all"),
|
||||
|
Reference in New Issue
Block a user