1. added wxHelpProvider and (unfinished) wxSimpleHelpProvider
2. added wxStringHashTable which wxStringHashTable uses git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: cshelp.h
|
||||
// Purpose: Context-sensitive help classes
|
||||
// Author: Julian Smart
|
||||
// Name: wx/cshelp.h
|
||||
// Purpose: Context-sensitive help support classes
|
||||
// Author: Julian Smart, Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 08/09/2000
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart
|
||||
// Copyright: (c) 2000 Julian Smart, Vadim Zeitlin
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#define _WX_CSHELPH__
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "cshelp.h"
|
||||
#pragma interface "cshelp.h"
|
||||
#endif
|
||||
|
||||
#include "wx/defs.h"
|
||||
@@ -22,6 +22,10 @@
|
||||
|
||||
#include "wx/bmpbuttn.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// classes used to implement context help UI
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
* wxContextHelp
|
||||
* Invokes context-sensitive help. When the user
|
||||
@@ -29,12 +33,11 @@
|
||||
* window for the application to display help for.
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxContextHelp: public wxObject
|
||||
class WXDLLEXPORT wxContextHelp : public wxObject
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxContextHelp)
|
||||
public:
|
||||
wxContextHelp(wxWindow* win = NULL, bool beginHelp = TRUE);
|
||||
~wxContextHelp();
|
||||
virtual ~wxContextHelp();
|
||||
|
||||
bool BeginContextHelp(wxWindow* win);
|
||||
bool EndContextHelp();
|
||||
@@ -45,9 +48,11 @@ public:
|
||||
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)
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -56,19 +61,95 @@ protected:
|
||||
* to put the application into context help mode.
|
||||
*/
|
||||
|
||||
class WXDLLEXPORT wxContextHelpButton: public wxBitmapButton
|
||||
class WXDLLEXPORT wxContextHelpButton : public wxBitmapButton
|
||||
{
|
||||
public:
|
||||
wxContextHelpButton(wxWindow* parent, wxWindowID id = wxID_CONTEXT_HELP,
|
||||
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(20, -1),
|
||||
long style = wxBU_AUTODRAW);
|
||||
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_CLASS(wxContextHelpButton)
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif // wxUSE_HELP
|
||||
#endif
|
||||
// _WX_CSHELPH__
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// classes used to implement context help support
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// wxHelpProvider is an ABC 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().
|
||||
class WXDLLEXPORT 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 GetHelp() internally if
|
||||
// applicable), return TRUE if it was done or FALSE if no help available
|
||||
// for this window
|
||||
virtual bool ShowHelp(wxWindowBase *window) = 0;
|
||||
|
||||
// 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);
|
||||
|
||||
// virtual dtor for any base class
|
||||
virtual ~wxHelpProvider();
|
||||
|
||||
private:
|
||||
static wxHelpProvider *ms_helpProvider;
|
||||
};
|
||||
|
||||
// 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 WXDLLEXPORT wxSimpleHelpProvider : public wxHelpProvider
|
||||
{
|
||||
public:
|
||||
// implement wxHelpProvider methods
|
||||
virtual wxString GetHelp(const wxWindowBase *window);
|
||||
virtual bool ShowHelp(wxWindowBase *window);
|
||||
virtual void AddHelp(wxWindowBase *window, const wxString& text);
|
||||
virtual void AddHelp(wxWindowID id, const wxString& text);
|
||||
|
||||
protected:
|
||||
// we use 2 hashes for storing the help strings associated with windows
|
||||
// and the ids
|
||||
wxStringHashTable m_hashWindows,
|
||||
m_hashIds;
|
||||
};
|
||||
|
||||
#endif // _WX_CSHELPH__
|
||||
|
||||
|
Reference in New Issue
Block a user