1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxHelpProvider 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  12     wxHelpProvider is an abstract class used by a program implementing 
  13     context-sensitive help to show the help text for the given window. 
  15     The current help provider must be explicitly set by the application using 
  21     @see wxContextHelp, wxContextHelpButton, wxSimpleHelpProvider, 
  22          wxHelpControllerHelpProvider, wxWindow::SetHelpText(), 
  23          wxWindow::GetHelpTextAtPoint() 
  29         Virtual destructor for any base class. 
  31     virtual ~wxHelpProvider(); 
  34         Associates the text with the given window. 
  37         Although all help providers have these functions to allow making 
  38         wxWindow::SetHelpText() work, not all of them implement the functions. 
  40     virtual void AddHelp(wxWindowBase
* window
, const wxString
& text
); 
  43         Associates the text with the given ID. 
  45         This help text will be shown for all windows with ID @a id, unless they 
  46         have more specific help text associated using the other AddHelp() 
  47         prototype.  May be used to set the same help string for all Cancel 
  48         buttons in the application, for example. 
  51         Although all help providers have these functions to allow making 
  52         wxWindow::SetHelpText() work, not all of them implement the functions. 
  54     virtual void AddHelp(wxWindowID id
, const wxString
& text
); 
  57         Returns pointer to help provider instance. 
  59         Unlike some other classes, the help provider is not created on demand. 
  60         This must be explicitly done by the application using Set(). 
  62     static wxHelpProvider
* Get(); 
  65         This version associates the given text with all windows with this id. 
  66         May be used to set the same help string for all Cancel buttons in 
  67         the application, for example. 
  69     virtual wxString 
GetHelp(const wxWindowBase
* window
) = 0; 
  72         Removes the association between the window pointer and the help text. 
  73         This is called by the wxWindow destructor. Without this, the table of 
  74         help strings will fill up and when window pointers are reused, the 
  75         wrong help string will be found. 
  77     virtual void RemoveHelp(wxWindowBase
* window
); 
  80         Set the current, application-wide help provider. 
  82         @return Pointer to previous help provider or @NULL if there wasn't any. 
  84     static wxHelpProvider
* Set(wxHelpProvider
* helpProvider
); 
  87         Shows help for the given window. 
  89         Override this function if the help doesn't depend on the exact position 
  90         inside the window, otherwise you need to override ShowHelpAtPoint(). 
  91         Returns @true if help was shown, or @false if no help was available for 
  94     virtual bool ShowHelp(wxWindowBase
* window
); 
  97         This function may be overridden to show help for the window when it 
  98         should depend on the position inside the window, By default this method 
  99         forwards to ShowHelp(), so it is enough to only implement the latter if 
 100         the help doesn't depend on the position. 
 103             Window to show help text for. 
 105             Coordinates of the mouse at the moment of help event emission. 
 107             Help event origin, see wxHelpEvent::GetOrigin. 
 109         @return @true if help was shown, or @false if no help was available 
 114     virtual bool ShowHelpAtPoint(wxWindowBase
* window
, const wxPoint
& point
, 
 115                                  wxHelpEvent::Origin origin
); 
 121     @class wxHelpControllerHelpProvider 
 123     wxHelpControllerHelpProvider is an implementation of wxHelpProvider which 
 124     supports both context identifiers and plain text help strings. If the help 
 125     text is an integer, it is passed to wxHelpController::DisplayContextPopup(). 
 126     Otherwise, it shows the string in a tooltip as per wxSimpleHelpProvider. If 
 127     you use this with a wxCHMHelpController instance on windows, it will use 
 128     the native style of tip window instead of wxTipWindow. 
 130     You can use the convenience function wxContextId() to convert an integer 
 131     context id to a string for passing to wxWindow::SetHelpText(). 
 136     @see wxHelpProvider, wxSimpleHelpProvider, wxContextHelp, 
 137          wxWindow::SetHelpText(), wxWindow::GetHelpTextAtPoint() 
 139 class wxHelpControllerHelpProvider 
: public wxSimpleHelpProvider
 
 143         Note that the instance doesn't own the help controller. The help 
 144         controller should be deleted separately. 
 146     wxHelpControllerHelpProvider(wxHelpControllerBase
* hc 
= NULL
); 
 149         Returns the help controller associated with this help provider. 
 151     wxHelpControllerBase
* GetHelpController() const; 
 154         Sets the help controller associated with this help provider. 
 156     void SetHelpController(wxHelpControllerBase
* hc
); 
 164     This class changes the cursor to a query and puts the application into a 
 165     'context-sensitive help mode'.  When the user left-clicks on a window 
 166     within the specified window, a wxEVT_HELP event is sent to that control, 
 167     and the application may respond to it by popping up some help. 
 171     wxContextHelp contextHelp(myWindow); 
 174     There are a couple of ways to invoke this behaviour implicitly: 
 176     - Use the wxDIALOG_EX_CONTEXTHELP style for a dialog (Windows only). This 
 177       will put a question mark in the titlebar, and Windows will put the 
 178       application into context-sensitive help mode automatically, with further 
 181     - Create a wxContextHelpButton, whose predefined behaviour is 
 182       to create a context help object.  Normally you will write your application 
 183       so that this button is only added to a dialog for non-Windows platforms 
 184       (use wxDIALOG_EX_CONTEXTHELP on Windows). 
 186     Note that on Mac OS X, the cursor does not change when in context-sensitive 
 192     @see wxHelpEvent, wxHelpController, wxContextHelpButton 
 194 class wxContextHelp 
: public wxObject
 
 198         Constructs a context help object, calling BeginContextHelp() if 
 199         @a doNow is @true (the default). 
 201         If @a window is @NULL, the top window is used. 
 203     wxContextHelp(wxWindow
* window 
= NULL
, bool doNow 
= true); 
 206         Destroys the context help object. 
 208     virtual ~wxContextHelp(); 
 211         Puts the application into context-sensitive help mode. @a window is the 
 212         window which will be used to catch events; if @NULL, the top window 
 215         Returns @true if the application was successfully put into 
 216         context-sensitive help mode. 
 217         This function only returns when the event loop has finished. 
 219     bool BeginContextHelp(wxWindow
* window
); 
 222         Ends context-sensitive help mode. Not normally called by the 
 225     bool EndContextHelp(); 
 231     @class wxContextHelpButton 
 233     Instances of this class may be used to add a question mark button that when 
 234     pressed, puts the application into context-help mode. It does this by 
 235     creating a wxContextHelp object which itself generates a wxEVT_HELP event 
 236     when the user clicks on a window. 
 238     On Windows, you may add a question-mark icon to a dialog by use of the 
 239     wxDIALOG_EX_CONTEXTHELP extra style, but on other platforms you will have 
 240     to add a button explicitly, usually next to OK, Cancel or similar buttons. 
 245     @see wxBitmapButton, wxContextHelp 
 247 class wxContextHelpButton 
: public wxBitmapButton
 
 251         Constructor, creating and showing a context help button. 
 254             Parent window. Must not be @NULL. 
 256             Button identifier. Defaults to wxID_CONTEXT_HELP. 
 260             Button size. If wxDefaultSize is specified then the button is sized 
 261             appropriately for the question mark bitmap. 
 266         Normally you only need pass the parent window to the constructor, and 
 267         use the defaults for the remaining parameters. 
 269     wxContextHelpButton(wxWindow
* parent
, 
 270                         wxWindowID id 
= wxID_CONTEXT_HELP
, 
 271                         const wxPoint
& pos 
= wxDefaultPosition
, 
 272                         const wxSize
& size 
= wxDefaultSize
, 
 273                         long style 
= wxBU_AUTODRAW
); 
 278     @class wxSimpleHelpProvider 
 280     wxSimpleHelpProvider is an implementation of wxHelpProvider which supports 
 281     only plain text help strings, and shows the string associated with the 
 282     control (if any) in a tooltip. 
 287     @see wxHelpProvider, wxHelpControllerHelpProvider, wxContextHelp, 
 288          wxWindow::SetHelpText()(, wxWindow::GetHelpTextAtPoint() 
 290 class wxSimpleHelpProvider 
: public wxHelpProvider