\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{virtual 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.

\func{virtual 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::Get}\label{wxhelpproviderget}

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

Returns pointer to help provider instance.

Unlike some other classes, the help provider is not created on demand.
This must be explicitly done by the application using
\helpref{Set}{wxhelpproviderset}.


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

\func{virtual 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.


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

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

Removes the association between the window pointer and the help text, if it
was previously set using \helpref{AddHelp}{wxhelpprovideraddhelp}. 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.

Note that this method may be called even for windows that don't have any
associated help text. If that happens, its implementation should simply do
nothing.


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

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

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


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

\func{virtual 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{virtual 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.

