Added automatic dialog scrolling ability

Added ability to resize wizard bitmaps automatically
Made it easier to derive from wxWizard and override behaviour,
mainly by making members protected instead of private



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2007-12-29 16:35:39 +00:00
parent 85136e3bf5
commit 3aa8e4ea6d
25 changed files with 1234 additions and 29 deletions

View File

@@ -38,11 +38,14 @@
#include "wx/sizer.h"
#endif
#include "wx/textctrl.h"
#include "wx/wizard.h"
#include "wiztest.xpm"
#include "wiztest2.xpm"
#include "../sample.xpm"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
@@ -50,11 +53,15 @@
// ids for menu items
enum
{
Wizard_About = wxID_ABOUT,
Wizard_Quit = wxID_EXIT,
Wizard_RunModal = wxID_HIGHEST,
Wizard_RunNoSizer,
Wizard_RunModeless,
Wizard_About = wxID_ABOUT
Wizard_LargeWizard,
Wizard_ExpandBitmap
};
// ----------------------------------------------------------------------------
@@ -299,6 +306,14 @@ public:
);
#endif // wxUSE_CHECKLISTBOX
wxSize textSize = wxSize(150, 200);
if (((wxFrame*) wxTheApp->GetTopWindow())->GetMenuBar()->IsChecked(Wizard_LargeWizard))
textSize = wxSize(150, wxGetClientDisplayRect().GetHeight() - 200);
wxTextCtrl* textCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, textSize, wxTE_MULTILINE);
mainSizer->Add(textCtrl, 0, wxALL|wxEXPAND, 5);
SetSizer(mainSizer);
mainSizer->Fit(this);
}
@@ -375,6 +390,16 @@ MyWizard::MyWizard(wxFrame *frame, bool useSizer)
wxBitmap(wiztest_xpm),wxDefaultPosition,
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
{
SetIcon(wxIcon(sample_xpm));
// Allow the bitmap to be expanded to fit the page height
if (frame->GetMenuBar()->IsChecked(Wizard_ExpandBitmap))
SetBitmapPlacement(wxWIZARD_VALIGN_CENTRE);
// Enable scrolling adaptation
if (frame->GetMenuBar()->IsChecked(Wizard_LargeWizard))
SetLayoutAdaptationMode(wxDIALOG_ADAPTATION_MODE_ENABLED);
// a wizard page may be either an object of predefined class
m_page1 = new wxWizardPageSimple(this);
@@ -421,12 +446,17 @@ MyFrame::MyFrame(const wxString& title)
menuFile->AppendSeparator();
menuFile->Append(Wizard_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
wxMenu *menuOptions = new wxMenu;
menuOptions->AppendCheckItem(Wizard_LargeWizard, _T("&Scroll Wizard Pages"));
menuOptions->AppendCheckItem(Wizard_ExpandBitmap, _T("Si&ze Bitmap To Page"));
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(Wizard_About, _T("&About...\tF1"), _T("Show about dialog"));
// now append the freshly created menu to the menu bar...
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(menuFile, _T("&File"));
menuBar->Append(menuOptions, _T("&Options"));
menuBar->Append(helpMenu, _T("&Help"));
// ... and attach this menu bar to the frame