/////////////////////////////////////////////////////////////////////////////
-// Name: helpbest.cpp
+// Name: src/msw/helpbest.cpp
// Purpose: Tries to load MS HTML Help, falls back to wxHTML upon failure
// Author: Mattia Barbon
// Modified by:
// Created: 02/04/2001
// RCS-ID: $Id$
// Copyright: (c) Mattia Barbon
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "helpbest.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#endif
#ifndef WX_PRECOMP
-#include "wx/defs.h"
+ #include "wx/log.h"
#endif
-#include "wx/filefn.h"
+#include "wx/filename.h"
+
+#if wxUSE_HELP && wxUSE_MS_HTML_HELP \
+ && wxUSE_WXHTML_HELP && !defined(__WXUNIVERSAL__)
-#if wxUSE_HELP && wxUSE_MS_HTML_HELP && defined(__WIN95__) && wxUSE_WXHTML_HELP
#include "wx/msw/helpchm.h"
#include "wx/html/helpctrl.h"
#include "wx/msw/helpbest.h"
-IMPLEMENT_DYNAMIC_CLASS( wxBestHelpController, wxHelpControllerBase );
+IMPLEMENT_DYNAMIC_CLASS( wxBestHelpController, wxHelpControllerBase )
bool wxBestHelpController::Initialize( const wxString& filename )
{
// try wxCHMHelpController
- wxCHMHelpController* chm = new wxCHMHelpController;
+ wxCHMHelpController* chm = new wxCHMHelpController(m_parentWindow);
m_helpControllerType = wxUseChmHelp;
// do not warn upon failure
if( chm->Initialize( GetValidFilename( filename ) ) )
{
m_helpController = chm;
- return TRUE;
+ m_parentWindow = NULL;
+ return true;
}
// failed
delete chm;
// try wxHtmlHelpController
- wxHtmlHelpController* html = new wxHtmlHelpController;
+ wxHtmlHelpController *
+ html = new wxHtmlHelpController(m_style, m_parentWindow);
m_helpControllerType = wxUseHtmlHelp;
if( html->Initialize( GetValidFilename( filename ) ) )
{
m_helpController = html;
- return TRUE;
+ m_parentWindow = NULL;
+ return true;
}
// failed
delete html;
- return FALSE;
+ return false;
}
wxString wxBestHelpController::GetValidFilename( const wxString& filename ) const
{
- wxString tmp = filename;
- ::wxStripExtension( tmp );
+ wxFileName fn(filename);
switch( m_helpControllerType )
{
case wxUseChmHelp:
- if( ::wxFileExists( tmp + ".chm" ) )
- return tmp + ".chm";
+ fn.SetExt("chm");
+ if( fn.FileExists() )
+ return fn.GetFullPath();
return filename;
case wxUseHtmlHelp:
- if( ::wxFileExists( tmp + ".htb" ) )
- return tmp + ".htb";
- if( ::wxFileExists( tmp + ".zip" ) )
- return tmp + ".zip";
- if( ::wxFileExists( tmp + ".hhp" ) )
- return tmp + ".hhp";
+ fn.SetExt("htb");
+ if( fn.FileExists() )
+ return fn.GetFullPath();
+
+ fn.SetExt("zip");
+ if( fn.FileExists() )
+ return fn.GetFullPath();
+
+ fn.SetExt("hhp");
+ if( fn.FileExists() )
+ return fn.GetFullPath();
return filename;
default:
// we CAN'T get here
wxFAIL_MSG( wxT("wxBestHelpController: Must call Initialize, first!") );
- return wxEmptyString;
}
+
+ return wxEmptyString;
}
#endif
- // wxUSE_HELP && wxUSE_MS_HTML_HELP && defined(__WIN95__) && wxUSE_WXHTML_HELP
+ // wxUSE_HELP && wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP