wxHTMLHelpController compiles (and somewhat works) under Windows, added a

(compile-time) option to the sample to always use HTML help, even under MSW.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-06-22 21:20:48 +00:00
parent 2506aab63c
commit f96b60aa86
3 changed files with 100 additions and 50 deletions

View File

@@ -16,6 +16,7 @@
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// headers // headers
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation "demo.cpp" #pragma implementation "demo.cpp"
#pragma interface "demo.cpp" #pragma interface "demo.cpp"
@@ -34,7 +35,19 @@
#include "wx/wx.h" #include "wx/wx.h"
#endif #endif
// defien this to 1 to use HTML help even under Windows (by default, Windows
// version will HLP-based help)
#define USE_HTML_HELP 1
#if USE_HTML_HELP
#include "wx/helpbase.h"
#include "wx/generic/helpext.h"
#define wxHelpController wxExtHelpController
#define sm_classwxHelpController sm_classwxExtHelpController
#else
#include "wx/help.h" #include "wx/help.h"
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// ressources // ressources
@@ -73,7 +86,8 @@ public:
void OnHelp(wxCommandEvent& event); void OnHelp(wxCommandEvent& event);
private: private:
wxHelpController help; wxHelpController m_help;
// any class wishing to process wxWindows events must use this macro // any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
@@ -198,9 +212,10 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
// and a static control whose parent is the panel // and a static control whose parent is the panel
(void)new wxStaticText(panel, -1, "Hello, world!", wxPoint(10, 10)); (void)new wxStaticText(panel, -1, "Hello, world!", wxPoint(10, 10));
// initialise the help system // initialise the help system: this means that we'll use doc.hlp file under
help.Initialize("doc"); // Windows and that the HTML docs are in the subdirectory doc for platforms
// using HTML help
m_help.Initialize("doc");
} }
@@ -221,25 +236,25 @@ void MyFrame::OnHelp(wxCommandEvent& event)
// (on Unix). For WinHelp, we'd need to use different context ids. // (on Unix). For WinHelp, we'd need to use different context ids.
case HelpDemo_Help_Classes: case HelpDemo_Help_Classes:
help.DisplaySection(1); m_help.DisplaySection(1);
break; break;
case HelpDemo_Help_Functions: case HelpDemo_Help_Functions:
help.DisplaySection(2); m_help.DisplaySection(4);
break; break;
case HelpDemo_Help_Help: case HelpDemo_Help_Help:
help.DisplaySection(5); m_help.DisplaySection(5);
break; break;
// These three calls are only used by wxExtHelpController // These three calls are only used by wxExtHelpController
case HelpDemo_Help_KDE: case HelpDemo_Help_KDE:
help.SetViewer("kdehelp"); m_help.SetViewer("kdehelp");
break; break;
case HelpDemo_Help_GNOME: case HelpDemo_Help_GNOME:
help.SetViewer("gnome-help-browser"); m_help.SetViewer("gnome-help-browser");
break; break;
case HelpDemo_Help_Netscape: case HelpDemo_Help_Netscape:
help.SetViewer("netscape", wxHELP_NETSCAPE); m_help.SetViewer("netscape", wxHELP_NETSCAPE);
break; break;
case HelpDemo_Help_Search: case HelpDemo_Help_Search:
@@ -249,12 +264,12 @@ void MyFrame::OnHelp(wxCommandEvent& event)
"", "",
this); this);
if(! key.IsEmpty()) if(! key.IsEmpty())
help.KeywordSearch(key); m_help.KeywordSearch(key);
} }
break; break;
case HelpDemo_Help_Index: case HelpDemo_Help_Index:
default: default:
help.DisplayContents(); m_help.DisplayContents();
break; break;
} }
} }

View File

@@ -1,24 +1,42 @@
/*-*- c++ -*-******************************************************** /////////////////////////////////////////////////////////////////////////////
* helpext.cpp - an external help controller for wxWindows * // Name: helpext.cpp
* * // Purpose: an external help controller for wxWindows
* (C) 1999 by Karsten Ball<6C>der (Ballueder@usa.net) * // Author: Karsten Ballueder
* * // Modified by:
* $Id$ // Created: 04/01/98
*******************************************************************/ // RCS-ID: $Id$
// Copyright: (c) Karsten Ballueder
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
# pragma implementation "wxexthlp.h" # pragma implementation "wxexthlp.h"
#endif #endif
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/setup.h" #include "wx/setup.h"
#include "wx/helpbase.h"
#include "wx/generic/helpext.h"
#include "wx/string.h" #include "wx/string.h"
#include "wx/utils.h" #include "wx/utils.h"
#include "wx/list.h" #include "wx/list.h"
#include "wx/intl.h"
#endif
#include "wx/helpbase.h"
#include "wx/generic/helpext.h"
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <sys/stat.h> #include <sys/stat.h>
#ifndef __WINDOWS__
#include <unistd.h> #include <unistd.h>
#endif
IMPLEMENT_CLASS(wxExtHelpController, wxHTMLHelpControllerBase) IMPLEMENT_CLASS(wxExtHelpController, wxHTMLHelpControllerBase)
@@ -63,7 +81,9 @@ wxExtHelpController::DisplayHelp(wxString const &relativeURL)
#ifdef __WXMSW__ #ifdef __WXMSW__
bool bOk = (int)ShellExecute(NULL, "open", relativeURL.c_str(), wxString url;
url << m_MapFile << '\\' << relativeURL.BeforeFirst('#');
bool bOk = (int)ShellExecute(NULL, "open", url,
NULL, NULL, SW_SHOWNORMAL ) > 32; NULL, NULL, SW_SHOWNORMAL ) > 32;
if ( !bOk ) if ( !bOk )
{ {

View File

@@ -1,27 +1,42 @@
/*-*- c++ -*-******************************************************** /////////////////////////////////////////////////////////////////////////////
* helphtml.cpp - base class for html help systems * // Name: helphtml.cpp
* * // Purpose: base class for html help systems
* (C) 1999 by Karsten Ball<6C>der (Ballueder@usa.net) * // Author: Karsten Ballueder
* * // Modified by:
* $Id$ // Created: 04/01/98
*******************************************************************/ // RCS-ID: $Id$
// Copyright: (c) Karsten Ballueder
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
# pragma implementation "helphtml.h" # pragma implementation "helphtml.h"
#endif #endif
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/setup.h" #include "wx/setup.h"
#include "wx/helpbase.h"
#include "wx/generic/helpext.h"
#include "wx/string.h" #include "wx/string.h"
#include "wx/utils.h" #include "wx/utils.h"
#include "wx/list.h" #include "wx/list.h"
#include "wx/intl.h" #include "wx/intl.h"
#endif
#include "wx/helpbase.h"
#include "wx/generic/helpext.h"
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <sys/stat.h> #include <sys/stat.h>
#ifndef __WINDOWS__
#include <unistd.h> #include <unistd.h>
#endif
class wxExtHelpMapEntry : public wxObject class wxExtHelpMapEntry : public wxObject
{ {