wxWizard help patch (474974)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-11-02 17:29:38 +00:00
parent a0a48a3f0d
commit f80bf90194
6 changed files with 43 additions and 4 deletions

View File

@ -46,7 +46,7 @@ All (GUI):
- wxStreamToTextRedirector to allow easily redirect cout to wxTextCtrl added
- fixed bug with using wxExecute() to capture huge amounts of output
- new wxCalendarCtrl styles added (Søren Erland Vestø)
- wxWizardPage can be loaded from WXR (Robert Cavanaugh)
- wxWizard changes: loading from WXR support, help button (Robert Cavanaugh)
- wxDirSelector() added (Paul A. Thiessen)
wxHTML:

View File

@ -53,6 +53,7 @@ changed (this event can not be vetoed).}
changed (this event can be vetoed).}
\twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel
the wizard (this event may also be vetoed).}
\twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.}
\end{twocollist}%
\wxheading{Extended styles}

View File

@ -39,6 +39,7 @@ changed (this event can not be vetoed).}
changed (this event can be vetoed).}
\twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel
the wizard (this event may also be vetoed).}
\twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.}
\end{twocollist}%
\wxheading{See also}
@ -64,3 +65,10 @@ FALSE otherwise and for {\tt EVT\_WIZARD\_PAGE\_CHANGED} return {\tt TRUE} if
we came from the previous page and {\tt FALSE} if we returned from the next
one.
\membersection{wxWizardEvent::GetPage}\label{wxwizardeventgetpage}
\constfunc{wxWizardPage}{GetPage}{\void}
Returns the \helpref{wxWizardPage}{wxwizardpage} which was active when this
event was generated.

View File

@ -65,6 +65,7 @@ private:
// event handlers
void OnCancel(wxCommandEvent& event);
void OnBackOrNext(wxCommandEvent& event);
void OnHelp(wxCommandEvent& event);
// the page size requested by user
wxSize m_sizePage;

View File

@ -169,7 +169,8 @@ class WXDLLEXPORT wxWizardEvent : public wxNotifyEvent
public:
wxWizardEvent(wxEventType type = wxEVT_NULL,
int id = -1,
bool direction = TRUE);
bool direction = TRUE,
wxWizardPage* page = NULL);
// for EVT_WIZARD_PAGE_CHANGING, return TRUE if we're going forward or
// FALSE otherwise and for EVT_WIZARD_PAGE_CHANGED return TRUE if we came
@ -177,8 +178,11 @@ public:
// (this function doesn't make sense for CANCEL events)
bool GetDirection() const { return m_direction; }
wxWizardPage* GetPage() const { return m_page; }
private:
bool m_direction;
wxWizardPage* m_page;
DECLARE_DYNAMIC_CLASS(wxWizardEvent)
};
@ -191,6 +195,7 @@ BEGIN_DECLARE_EVENT_TYPES()
DECLARE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGED, 900)
DECLARE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGING, 901)
DECLARE_EVENT_TYPE(wxEVT_WIZARD_CANCEL, 902)
DECLARE_EVENT_TYPE(wxEVT_WIZARD_HELP, 903)
END_DECLARE_EVENT_TYPES()
typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
@ -206,6 +211,9 @@ typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&);
// unless the event handler vetoes the event
#define EVT_WIZARD_CANCEL(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL),
// the user pressed "Help" button
#define EVT_WIZARD_HELP(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_WIZARD_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) wxWizardEventFunction) & fn, (wxObject *)NULL),
#endif // wxUSE_WIZARDDLG
#endif // _WX_WIZARD_H_

View File

@ -57,10 +57,13 @@ WX_DEFINE_ARRAY(wxPanel *, wxArrayPages);
DEFINE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGED)
DEFINE_EVENT_TYPE(wxEVT_WIZARD_PAGE_CHANGING)
DEFINE_EVENT_TYPE(wxEVT_WIZARD_CANCEL)
DEFINE_EVENT_TYPE(wxEVT_WIZARD_HELP)
BEGIN_EVENT_TABLE(wxWizard, wxDialog)
EVT_BUTTON(wxID_CANCEL, wxWizard::OnCancel)
EVT_BUTTON(-1, wxWizard::OnBackOrNext)
EVT_BUTTON(wxID_BACKWARD, wxWizard::OnBackOrNext)
EVT_BUTTON(wxID_FORWARD, wxWizard::OnBackOrNext)
EVT_BUTTON(wxID_HELP, wxWizard::OnHelp)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxWizard, wxDialog)
@ -410,6 +413,21 @@ void wxWizard::OnBackOrNext(wxCommandEvent& event)
(void)ShowPage(page, forward);
}
void wxWizard::OnHelp(wxCommandEvent& WXUNUSED(event))
{
// this function probably can never be called when we don't have an active
// page, but a small extra check won't hurt
if(m_page != NULL)
{
// Create and send the help event to the specific page handler
// event data contains the active page so that context-sensitive
// help is possible
wxWizardEvent eventHelp(wxEVT_WIZARD_HELP, GetId(), TRUE, m_page);
(void)m_page->GetEventHandler()->ProcessEvent(eventHelp);
}
}
// ----------------------------------------------------------------------------
// our public interface
// ----------------------------------------------------------------------------
@ -429,10 +447,13 @@ wxWizard *wxWizardBase::Create(wxWindow *parent,
// wxWizardEvent
// ----------------------------------------------------------------------------
wxWizardEvent::wxWizardEvent(wxEventType type, int id, bool direction)
wxWizardEvent::wxWizardEvent(wxEventType type, int id, bool direction, wxWizardPage* page)
: wxNotifyEvent(type, id)
{
// Modified 10-20-2001 Robert Cavanaugh
// add the active page to the event data
m_direction = direction;
m_page = page;
}
#endif // wxUSE_WIZARDDLG