\section{\class{wxHelpProvider}}\label{wxhelpprovider}

wxHelpProvider is an abstract class used by a program implementing context-sensitive help to
show the help text for the given window.

The current help provider must be explicitly set by the application using
wxHelpProvider::Set().

\wxheading{Derived from}

No base class

\wxheading{Include files}

<wx/cshelp.h>

\wxheading{See also}

\helpref{wxContextHelp}{wxcontexthelp}, \helpref{wxContextHelpButton}{wxcontexthelpbutton}, 
\helpref{wxSimpleHelpProvider}{wxsimplehelpprovider}, \helpref{wxHelpControllerHelpProvider}{wxhelpcontrollerhelpprovider}, 
\helpref{wxWindow::SetHelpText}{wxwindowsethelptext}, \helpref{wxWindow::GetHelpTextAtPoint}{wxwindowgethelptextatpoint}

\latexignore{\rtfignore{\wxheading{Members}}}


\membersection{wxHelpProvider::\destruct{wxHelpProvider}}\label{wxhelpproviderdtor}

\func{}{\destruct{wxHelpProvider}}{\void}

Virtual destructor for any base class.


\membersection{wxHelpProvider::AddHelp}\label{wxhelpprovideraddhelp}

\func{void}{AddHelp}{\param{wxWindowBase* }{window}, \param{const wxString\& }{text}}

Associates the text with the given window or id. Although all help
providers have these functions to allow making \helpref{wxWindow::SetHelpText}{wxwindowsethelptext} 
work, not all of them implement the functions.


\membersection{wxHelpProvider::Get}\label{wxhelpproviderget}

\func{wxHelpProvider*}{Get}{\void}

Unlike some other classes, the help provider is not created on demand.
This must be explicitly done by the application.


\membersection{wxHelpProvider::GetHelp}\label{wxhelpprovidergethelp}

\func{wxString}{GetHelp}{\param{const wxWindowBase* }{window}}

Gets the help string for this window. Its interpretation is dependent on the help provider
except that empty string always means that no help is associated with
the window.

\func{void}{AddHelp}{\param{wxWindowID }{id}, \param{const wxString\& }{text}}

This version associates the given text with all windows with this id.
May be used to set the same help string for all Cancel buttons in
the application, for example.


\membersection{wxHelpProvider::RemoveHelp}\label{wxhelpproviderremovehelp}

\func{void}{RemoveHelp}{\param{wxWindowBase* }{window}}

Removes the association between the window pointer and the help text. This is
called by the wxWindow destructor. Without this, the table of help strings will fill up
and when window pointers are reused, the wrong help string will be found.


\membersection{wxHelpProvider::Set}\label{wxhelpproviderset}

\func{wxHelpProvider*}{Set}{\param{wxHelpProvider* }{helpProvider}}

Get/set the current, application-wide help provider. Returns
the previous one.


\membersection{wxHelpProvider::ShowHelpAtPoint}\label{wxhelpprovidershowhelpatpoint}

\func{bool}{ShowHelpAtPoint}{\param{wxWindowBase* }{window}, \param{const wxPoint & }{point}, \param{wxHelpEvent::Origin }{origin}}

This function may be overridden to show help for the window when it should
depend on the position inside the window, By default this method forwards to 
\helpref{ShowHelp}{wxhelpprovidershowhelp}, so it is enough to only implement
the latter if the help doesn't depend on the position.

Returns \true if help was shown, or \false if no help was available for this
window.

\wxheading{Parameters}

\docparam{window}{Window to show help text for.}

\docparam{point}{Coordinates of the mouse at the moment of help event emission.}

\docparam{origin}{Help event origin, see \helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin}.}

\newsince{2.7.0}


\membersection{wxHelpProvider::ShowHelp}\label{wxhelpprovidershowhelp}

\func{bool}{ShowHelp}{\param{wxWindowBase* }{window}}

Shows help for the given window. Override this function if the help doesn't
depend on the exact position inside the window, otherwise you need to override 
\helpref{ShowHelpAtPoint}{wxhelpprovidershowhelpatpoint}.

Returns \true if help was shown, or \false if no help was available for this
window.

