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
// ----------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "demo.cpp"
#pragma interface "demo.cpp"
@@ -34,7 +35,19 @@
#include "wx/wx.h"
#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"
#endif
// ----------------------------------------------------------------------------
// ressources
@@ -73,7 +86,8 @@ public:
void OnHelp(wxCommandEvent& event);
private:
wxHelpController help;
wxHelpController m_help;
// any class wishing to process wxWindows events must use this macro
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
(void)new wxStaticText(panel, -1, "Hello, world!", wxPoint(10, 10));
// initialise the help system
help.Initialize("doc");
// initialise the help system: this means that we'll use doc.hlp file under
// 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.
case HelpDemo_Help_Classes:
help.DisplaySection(1);
m_help.DisplaySection(1);
break;
case HelpDemo_Help_Functions:
help.DisplaySection(2);
m_help.DisplaySection(4);
break;
case HelpDemo_Help_Help:
help.DisplaySection(5);
m_help.DisplaySection(5);
break;
// These three calls are only used by wxExtHelpController
case HelpDemo_Help_KDE:
help.SetViewer("kdehelp");
m_help.SetViewer("kdehelp");
break;
case HelpDemo_Help_GNOME:
help.SetViewer("gnome-help-browser");
m_help.SetViewer("gnome-help-browser");
break;
case HelpDemo_Help_Netscape:
help.SetViewer("netscape", wxHELP_NETSCAPE);
m_help.SetViewer("netscape", wxHELP_NETSCAPE);
break;
case HelpDemo_Help_Search:
@@ -249,12 +264,12 @@ void MyFrame::OnHelp(wxCommandEvent& event)
"",
this);
if(! key.IsEmpty())
help.KeywordSearch(key);
m_help.KeywordSearch(key);
}
break;
case HelpDemo_Help_Index:
default:
help.DisplayContents();
m_help.DisplayContents();
break;
}
}

View File

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

View File

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