| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: cshelp.h
- // Purpose: interface of wxHelpProvider
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /**
- @class 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
- Set().
- @library{wxcore}
- @category{help}
- @see wxContextHelp, wxContextHelpButton, wxSimpleHelpProvider,
- wxHelpControllerHelpProvider, wxWindow::SetHelpText(),
- wxWindow::GetHelpTextAtPoint()
- */
- class wxHelpProvider
- {
- public:
- /**
- Virtual destructor for any base class.
- */
- virtual ~wxHelpProvider();
- /**
- Associates the text with the given window.
- @remarks
- Although all help providers have these functions to allow making
- wxWindow::SetHelpText() work, not all of them implement the functions.
- */
- virtual void AddHelp(wxWindowBase* window, const wxString& text);
- /**
- Associates the text with the given ID.
- This help text will be shown for all windows with ID @a id, unless they
- have more specific help text associated using the other AddHelp()
- prototype. May be used to set the same help string for all Cancel
- buttons in the application, for example.
- @remarks
- Although all help providers have these functions to allow making
- wxWindow::SetHelpText() work, not all of them implement the functions.
- */
- virtual void AddHelp(wxWindowID id, const wxString& text);
- /**
- 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 Set().
- */
- static wxHelpProvider* Get();
- /**
- 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.
- */
- virtual wxString GetHelp(const wxWindowBase* window) = 0;
- /**
- 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.
- */
- virtual void RemoveHelp(wxWindowBase* window);
- /**
- Set the current, application-wide help provider.
- @return Pointer to previous help provider or @NULL if there wasn't any.
- */
- static wxHelpProvider* Set(wxHelpProvider* helpProvider);
- /**
- 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 ShowHelpAtPoint().
- Returns @true if help was shown, or @false if no help was available for
- this window.
- */
- virtual bool ShowHelp(wxWindowBase* window);
- /**
- 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 ShowHelp(), so it is enough to only implement the latter if
- the help doesn't depend on the position.
- @param window
- Window to show help text for.
- @param point
- Coordinates of the mouse at the moment of help event emission.
- @param origin
- Help event origin, see wxHelpEvent::GetOrigin.
- @return @true if help was shown, or @false if no help was available
- for this window.
- @since 2.7.0
- */
- virtual bool ShowHelpAtPoint(wxWindowBase* window, const wxPoint& point,
- wxHelpEvent::Origin origin);
- };
- /**
- @class wxHelpControllerHelpProvider
- wxHelpControllerHelpProvider is an implementation of wxHelpProvider which
- supports both context identifiers and plain text help strings. If the help
- text is an integer, it is passed to wxHelpController::DisplayContextPopup().
- Otherwise, it shows the string in a tooltip as per wxSimpleHelpProvider. If
- you use this with a wxCHMHelpController instance on windows, it will use
- the native style of tip window instead of wxTipWindow.
- You can use the convenience function wxContextId() to convert an integer
- context id to a string for passing to wxWindow::SetHelpText().
- @library{wxcore}
- @category{help}
- @see wxHelpProvider, wxSimpleHelpProvider, wxContextHelp,
- wxWindow::SetHelpText(), wxWindow::GetHelpTextAtPoint()
- */
- class wxHelpControllerHelpProvider : public wxSimpleHelpProvider
- {
- public:
- /**
- Note that the instance doesn't own the help controller. The help
- controller should be deleted separately.
- */
- wxHelpControllerHelpProvider(wxHelpControllerBase* hc = NULL);
- /**
- Returns the help controller associated with this help provider.
- */
- wxHelpControllerBase* GetHelpController() const;
- /**
- Sets the help controller associated with this help provider.
- */
- void SetHelpController(wxHelpControllerBase* hc);
- };
- /**
- @class wxContextHelp
- This class changes the cursor to a query and puts the application into a
- 'context-sensitive help mode'. When the user left-clicks on a window
- within the specified window, a @c wxEVT_HELP event is sent to that control,
- and the application may respond to it by popping up some help.
- For example:
- @code
- wxContextHelp contextHelp(myWindow);
- @endcode
- There are a couple of ways to invoke this behaviour implicitly:
- - Use the wxDIALOG_EX_CONTEXTHELP style for a dialog (Windows only). This
- will put a question mark in the titlebar, and Windows will put the
- application into context-sensitive help mode automatically, with further
- programming.
- - Create a wxContextHelpButton, whose predefined behaviour is
- to create a context help object. Normally you will write your application
- so that this button is only added to a dialog for non-Windows platforms
- (use wxDIALOG_EX_CONTEXTHELP on Windows).
- Note that on Mac OS X, the cursor does not change when in context-sensitive
- help mode.
- @library{wxcore}
- @category{help}
- @see wxHelpEvent, wxHelpController, wxContextHelpButton
- */
- class wxContextHelp : public wxObject
- {
- public:
- /**
- Constructs a context help object, calling BeginContextHelp() if
- @a doNow is @true (the default).
- If @a window is @NULL, the top window is used.
- */
- wxContextHelp(wxWindow* window = NULL, bool doNow = true);
- /**
- Destroys the context help object.
- */
- virtual ~wxContextHelp();
- /**
- Puts the application into context-sensitive help mode. @a window is the
- window which will be used to catch events; if @NULL, the top window
- will be used.
- Returns @true if the application was successfully put into
- context-sensitive help mode.
- This function only returns when the event loop has finished.
- */
- bool BeginContextHelp(wxWindow* window);
- /**
- Ends context-sensitive help mode. Not normally called by the
- application.
- */
- bool EndContextHelp();
- };
- /**
- @class wxContextHelpButton
- Instances of this class may be used to add a question mark button that when
- pressed, puts the application into context-help mode. It does this by
- creating a wxContextHelp object which itself generates a @c wxEVT_HELP event
- when the user clicks on a window.
- On Windows, you may add a question-mark icon to a dialog by use of the
- wxDIALOG_EX_CONTEXTHELP extra style, but on other platforms you will have
- to add a button explicitly, usually next to OK, Cancel or similar buttons.
- @library{wxcore}
- @category{help}
- @see wxBitmapButton, wxContextHelp
- */
- class wxContextHelpButton : public wxBitmapButton
- {
- public:
- /**
- Constructor, creating and showing a context help button.
- @param parent
- Parent window. Must not be @NULL.
- @param id
- Button identifier. Defaults to wxID_CONTEXT_HELP.
- @param pos
- Button position.
- If ::wxDefaultPosition is specified then a default position is chosen.
- @param size
- Button size.
- If ::wxDefaultSize is specified then the button is sized appropriately
- for the question mark bitmap.
- @param style
- Window style.
- @remarks
- Normally you only need pass the parent window to the constructor, and
- use the defaults for the remaining parameters.
- */
- wxContextHelpButton(wxWindow* parent,
- wxWindowID id = wxID_CONTEXT_HELP,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxBU_AUTODRAW);
- };
- /**
- @class wxSimpleHelpProvider
- wxSimpleHelpProvider is an implementation of wxHelpProvider which supports
- only plain text help strings, and shows the string associated with the
- control (if any) in a tooltip.
- @library{wxcore}
- @category{help}
- @see wxHelpProvider, wxHelpControllerHelpProvider, wxContextHelp,
- wxWindow::SetHelpText()(, wxWindow::GetHelpTextAtPoint()
- */
- class wxSimpleHelpProvider : public wxHelpProvider
- {
- public:
- };
|