/usr/include/wx-3.0/wx/cshelp.h is in wx3.0-headers 3.0.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | /////////////////////////////////////////////////////////////////////////////
// Name: wx/cshelp.h
// Purpose: Context-sensitive help support classes
// Author: Julian Smart, Vadim Zeitlin
// Modified by:
// Created: 08/09/2000
// Copyright: (c) 2000 Julian Smart, Vadim Zeitlin
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CSHELP_H_
#define _WX_CSHELP_H_
#include "wx/defs.h"
#if wxUSE_HELP
#include "wx/help.h"
#include "wx/hashmap.h"
#if wxUSE_BMPBUTTON
#include "wx/bmpbuttn.h"
#endif
#include "wx/event.h"
// ----------------------------------------------------------------------------
// classes used to implement context help UI
// ----------------------------------------------------------------------------
/*
* wxContextHelp
* Invokes context-sensitive help. When the user
* clicks on a window, a wxEVT_HELP event will be sent to that
* window for the application to display help for.
*/
class WXDLLIMPEXP_CORE wxContextHelp : public wxObject
{
public:
wxContextHelp(wxWindow* win = NULL, bool beginHelp = true);
virtual ~wxContextHelp();
bool BeginContextHelp(wxWindow* win);
bool EndContextHelp();
bool EventLoop();
bool DispatchEvent(wxWindow* win, const wxPoint& pt);
void SetStatus(bool status) { m_status = status; }
protected:
bool m_inHelp;
bool m_status; // true if the user left-clicked
private:
DECLARE_DYNAMIC_CLASS(wxContextHelp)
};
#if wxUSE_BMPBUTTON
/*
* wxContextHelpButton
* You can add this to your dialogs (especially on non-Windows platforms)
* to put the application into context help mode.
*/
class WXDLLIMPEXP_CORE wxContextHelpButton : public wxBitmapButton
{
public:
wxContextHelpButton(wxWindow* parent,
wxWindowID id = wxID_CONTEXT_HELP,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxBU_AUTODRAW);
void OnContextHelp(wxCommandEvent& event);
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxContextHelpButton)
DECLARE_EVENT_TABLE()
};
#endif
// ----------------------------------------------------------------------------
// classes used to implement context help support
// ----------------------------------------------------------------------------
// wxHelpProvider is an abstract class used by the program implementing context help to
// show the help text (or whatever: it may be HTML page or anything else) for
// the given window.
//
// The current help provider must be explicitly set by the application using
// wxHelpProvider::Set().
//
// Special note about ShowHelpAtPoint() and ShowHelp(): we want to be able to
// override ShowHelpAtPoint() when we need to use different help messages for
// different parts of the window, but it should also be possible to override
// just ShowHelp() both for backwards compatibility and just because most
// often the help does not, in fact, depend on the position and so
// implementing just ShowHelp() is simpler and more natural, so by default
// ShowHelpAtPoint() forwards to ShowHelp(). But this means that
// wxSimpleHelpProvider has to override ShowHelp() and not ShowHelpAtPoint()
// for backwards compatibility as otherwise the existing code deriving from it
// and overriding ShowHelp() but calling the base class version wouldn't work
// any more, which forces us to use a rather ugly hack and pass the extra
// parameters of ShowHelpAtPoint() to ShowHelp() via member variables.
class WXDLLIMPEXP_CORE wxHelpProvider
{
public:
// get/set the current (application-global) help provider (Set() returns
// the previous one)
static wxHelpProvider *Set(wxHelpProvider *helpProvider)
{
wxHelpProvider *helpProviderOld = ms_helpProvider;
ms_helpProvider = helpProvider;
return helpProviderOld;
}
// unlike some other class, the help provider is not created on demand,
// this must be explicitly done by the application
static wxHelpProvider *Get() { return ms_helpProvider; }
// get the help string (whose interpretation is help provider dependent
// except that empty string always means that no help is associated with
// the window) for this window
virtual wxString GetHelp(const wxWindowBase *window) = 0;
// do show help for the given window (uses window->GetHelpAtPoint()
// internally if applicable), return true if it was done or false
// if no help available for this window
virtual bool ShowHelpAtPoint(wxWindowBase *window,
const wxPoint& pt,
wxHelpEvent::Origin origin)
{
wxCHECK_MSG( window, false, wxT("window must not be NULL") );
m_helptextAtPoint = pt;
m_helptextOrigin = origin;
return ShowHelp(window);
}
// show help for the given window, see ShowHelpAtPoint() above
virtual bool ShowHelp(wxWindowBase * WXUNUSED(window)) { return false; }
// associate the text with the given window or id: although all help
// providers have these functions to allow making wxWindow::SetHelpText()
// work, not all of them implement them
virtual void AddHelp(wxWindowBase *window, const wxString& text);
// this version associates the given text with all window with this id
// (may be used to set the same help string for all [Cancel] buttons in
// the application, for example)
virtual void AddHelp(wxWindowID id, const wxString& text);
// removes the association
virtual void RemoveHelp(wxWindowBase* window);
// virtual dtor for any base class
virtual ~wxHelpProvider();
protected:
wxHelpProvider()
: m_helptextAtPoint(wxDefaultPosition),
m_helptextOrigin(wxHelpEvent::Origin_Unknown)
{
}
// helper method used by ShowHelp(): returns the help string to use by
// using m_helptextAtPoint/m_helptextOrigin if they're set or just GetHelp
// otherwise
wxString GetHelpTextMaybeAtPoint(wxWindowBase *window);
// parameters of the last ShowHelpAtPoint() call, used by ShowHelp()
wxPoint m_helptextAtPoint;
wxHelpEvent::Origin m_helptextOrigin;
private:
static wxHelpProvider *ms_helpProvider;
};
WX_DECLARE_EXPORTED_HASH_MAP( wxUIntPtr, wxString, wxIntegerHash,
wxIntegerEqual, wxSimpleHelpProviderHashMap );
// 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
class WXDLLIMPEXP_CORE wxSimpleHelpProvider : public wxHelpProvider
{
public:
// implement wxHelpProvider methods
virtual wxString GetHelp(const wxWindowBase *window);
// override ShowHelp() and not ShowHelpAtPoint() as explained above
virtual bool ShowHelp(wxWindowBase *window);
virtual void AddHelp(wxWindowBase *window, const wxString& text);
virtual void AddHelp(wxWindowID id, const wxString& text);
virtual void RemoveHelp(wxWindowBase* window);
protected:
// we use 2 hashes for storing the help strings associated with windows
// and the ids
wxSimpleHelpProviderHashMap m_hashWindows,
m_hashIds;
};
// 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.
class WXDLLIMPEXP_CORE wxHelpControllerHelpProvider : public wxSimpleHelpProvider
{
public:
// Note that it doesn't own the help controller. The help controller
// should be deleted separately.
wxHelpControllerHelpProvider(wxHelpControllerBase* hc = NULL);
// implement wxHelpProvider methods
// again (see above): this should be ShowHelpAtPoint() but we need to
// override ShowHelp() to avoid breaking existing code
virtual bool ShowHelp(wxWindowBase *window);
// Other accessors
void SetHelpController(wxHelpControllerBase* hc) { m_helpController = hc; }
wxHelpControllerBase* GetHelpController() const { return m_helpController; }
protected:
wxHelpControllerBase* m_helpController;
wxDECLARE_NO_COPY_CLASS(wxHelpControllerHelpProvider);
};
// Convenience function for turning context id into wxString
WXDLLIMPEXP_CORE wxString wxContextId(int id);
#endif // wxUSE_HELP
#endif // _WX_CSHELP_H_
|