]> git.saurik.com Git - wxWidgets.git/blame - include/wx/wizard.h
some changes to make wxHtmlHelpController easier to subclass
[wxWidgets.git] / include / wx / wizard.h
CommitLineData
66cd017c
VZ
1///////////////////////////////////////////////////////////////////////////////
2// Name: wizard.h
3// Purpose: wxWizard class: a GUI control presenting the user with a
4// sequence of dialogs which allows to simply perform some task
5// Author: Vadim Zeitlin (partly based on work by Ron Kuris and Kevin B.
6// Smith)
7// Modified by:
8// Created: 15.08.99
9// RCS-ID: $Id$
10// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
11// Licence: wxWindows license
12///////////////////////////////////////////////////////////////////////////////
13
14#ifndef _WX_WIZARD_H_
15#define _WX_WIZARD_H_
16
b87654f3
VZ
17// ----------------------------------------------------------------------------
18// headers
19// ----------------------------------------------------------------------------
20
21#ifndef WX_PRECOMP
22 #include "wx/dialog.h" // the base class
23
24 #include "wx/event.h" // wxEVT_XXX constants
25#endif // WX_PRECOMP
26
66cd017c
VZ
27// ----------------------------------------------------------------------------
28// wxWizard
29// ----------------------------------------------------------------------------
30
31class WXDLLEXPORT wxWizard : public wxDialog
32{
33public:
34 // create the wizard control
35 static wxWizard *Create(wxWindow *parent,
36 int id = -1,
37 const wxString& title = wxEmptyString,
38 const wxBitmap& bitmap = wxNullBitmap,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize);
41
42 // wizard construction: add/insert new page into it
43 // adds a page at the end
44 virtual void AddPage(wxPanel *page) = 0;
45 // adds a page before the page nPage (the new page will have this index)
46 virtual void InsertPage(int nPage, wxPanel *page) = 0;
47
48 // executes the wizard, returns TRUE if it was successfully finished, FALSE
49 // if user cancelled it
50 virtual bool RunWizard() = 0;
51
52 // get the current page (NULL if RunWizard() isn't running)
53 virtual wxPanel *GetCurrentPage() const = 0;
54
55private:
56 DECLARE_DYNAMIC_CLASS(wxWizard)
57};
58
59// ----------------------------------------------------------------------------
60// wxWizardEvent class represents an event generated by the wizard
61// ----------------------------------------------------------------------------
62
63class WXDLLEXPORT wxWizardEvent : public wxNotifyEvent
64{
65public:
66 wxWizardEvent(wxEventType type = wxEVT_NULL, int id = 0);
67
68 // get the previously active page or -1 if none
69 int GetOldPage() const { return m_pageOld; }
70
71 // get the current page or -1 if none
72 int GetPage() const { return m_page; }
73
74private:
75 int m_pageOld, m_page;
76
77 DECLARE_DYNAMIC_CLASS(wxWizardEvent)
78};
79
80// ----------------------------------------------------------------------------
81// macros for handling wxWizardEvents
82// ----------------------------------------------------------------------------
83
84typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
85
86// notifies that the page has just been changed
87#define EVT_WIZARD_PAGE_CHANGED(id, fn) { wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL },
88
89// the user pressed "<Back" or "Next>" button and the page is going to be
90// changed - unless the event handler vetoes the event
91#define EVT_WIZARD_PAGE_CHANGING(id, fn) { wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL },
92
93// the user pressed "Cancel" button and the wizard is going to be dismissed -
94// unless the event handler vetoes the event
95#define EVT_WIZARD_CANCEL(id, fn) { wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL },
96
97#endif // _WX_WIZARD_H_