+/////////////////////////////////////////////////////////////////////////////
+// Name: helpbest.h
+// 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
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_HELPBEST_H_
+#define _WX_HELPBEST_H_
+
+#ifdef __GNUG__
+#pragma interface "helpbest.h"
+#endif
+
+#include "wx/wx.h"
+
+#if wxUSE_HELP && wxUSE_MS_HTML_HELP && defined(__WIN95__) && wxUSE_WXHTML_HELP
+
+#include "wx/helpbase.h"
+
+class WXDLLEXPORT wxBestHelpController: public wxHelpControllerBase
+{
+ DECLARE_DYNAMIC_CLASS(wxBestHelpController)
+
+public:
+ wxBestHelpController():m_helpControllerType( wxUseNone ),
+ m_helpController( 0 ) {}
+ ~wxBestHelpController() { delete m_helpController; }
+
+ // Must call this to set the filename
+ virtual bool Initialize(const wxString& file);
+
+ // If file is "", reloads file given in Initialize
+ virtual bool LoadFile(const wxString& file = wxEmptyString)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->LoadFile( GetValidFilename( file ) );
+ }
+
+ virtual bool DisplayContents()
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplayContents();
+ }
+
+ virtual bool DisplaySection(int sectionNo)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplaySection( sectionNo );
+ }
+
+ virtual bool DisplaySection(const wxString& section)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplaySection( section );
+ }
+
+ virtual bool DisplayBlock(long blockNo)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplayBlock( blockNo );
+ }
+
+ virtual bool DisplayContextPopup(int contextId)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplayContextPopup( contextId );
+ }
+
+ virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->DisplayTextPopup( text, pos );
+ }
+
+ virtual bool KeywordSearch(const wxString& k)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->KeywordSearch( k );
+ }
+
+ virtual bool Quit()
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->Quit();
+ }
+
+ /// Allows one to override the default settings for the help frame.
+ virtual void SetFrameParameters(const wxString& title,
+ const wxSize& size,
+ const wxPoint& pos = wxDefaultPosition,
+ bool newFrameEachTime = FALSE)
+ {
+ wxASSERT( m_helpController );
+ m_helpController->SetFrameParameters( title, size, pos,
+ newFrameEachTime );
+ }
+
+ /// Obtains the latest settings used by the help frame and the help
+ /// frame.
+ virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
+ wxPoint *pos = NULL,
+ bool *newFrameEachTime = NULL)
+ {
+ wxASSERT( m_helpController );
+ return m_helpController->GetFrameParameters( size, pos,
+ newFrameEachTime );
+ }
+
+protected:
+ // Append/change extension if necessary.
+ wxString GetValidFilename(const wxString& file) const;
+
+protected:
+ enum HelpControllerType { wxUseNone, wxUseHtmlHelp, wxUseChmHelp };
+
+ HelpControllerType m_helpControllerType;
+ wxHelpControllerBase* m_helpController;
+};
+
+#endif // wxUSE_HELP && wxUSE_MS_HTML_HELP && defined(__WIN95__) && wxUSE_WXHTML_HELP
+
+#endif
+ // _WX_HELPBEST_H_