Soren Jorvang d14efe561b Import r67258 of the wxWidgets trunk, which I expect will before
long become wxWidgets 2.9.2, which in turn is expected to be the
last 2.9 release before the 3.0 stable release.

Since the full wxWidgets distribution is rather large, I have
imported only the parts that we use, on a subdirectory basis:

art
include/wx/*.*
include/wx/aui
include/wx/cocoa
include/wx/generic
include/wx/gtk
include/wx/meta
include/wx/msw
include/wx/osx
include/wx/persist
include/wx/private
include/wx/protocol
include/wx/unix
src/aui
src/common
src/generic
src/gtk
src/msw
src/osx
src/unix


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7380 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-20 18:05:19 +00:00

109 lines
2.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// 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: helpbest.cpp 57870 2009-01-07 01:04:01Z FM $
// Copyright: (c) Mattia Barbon
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/log.h"
#endif
#include "wx/filename.h"
#if wxUSE_HELP && wxUSE_MS_HTML_HELP \
&& wxUSE_WXHTML_HELP && !defined(__WXUNIVERSAL__)
#include "wx/msw/helpchm.h"
#include "wx/html/helpctrl.h"
#include "wx/msw/helpbest.h"
IMPLEMENT_DYNAMIC_CLASS( wxBestHelpController, wxHelpControllerBase )
bool wxBestHelpController::Initialize( const wxString& filename )
{
// try wxCHMHelpController
wxCHMHelpController* chm = new wxCHMHelpController(m_parentWindow);
m_helpControllerType = wxUseChmHelp;
// do not warn upon failure
wxLogNull dontWarnOnFailure;
if( chm->Initialize( GetValidFilename( filename ) ) )
{
m_helpController = chm;
m_parentWindow = NULL;
return true;
}
// failed
delete chm;
// try wxHtmlHelpController
wxHtmlHelpController *
html = new wxHtmlHelpController(m_style, m_parentWindow);
m_helpControllerType = wxUseHtmlHelp;
if( html->Initialize( GetValidFilename( filename ) ) )
{
m_helpController = html;
m_parentWindow = NULL;
return true;
}
// failed
delete html;
return false;
}
wxString wxBestHelpController::GetValidFilename( const wxString& filename ) const
{
wxFileName fn(filename);
switch( m_helpControllerType )
{
case wxUseChmHelp:
fn.SetExt("chm");
if( fn.FileExists() )
return fn.GetFullPath();
return filename;
case wxUseHtmlHelp:
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;
}
#endif
// wxUSE_HELP && wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP