dropsrc.cpp MSW OLE
droptgt.cpp MSW OLE
enhmeta.cpp MSW Win32Only
+helpbest.cpp MSW Win32Only
evtloop.cpp MSW LowLevel
fdrepdlg.cpp MSW Win32Only
filedlg.cpp MSW
msgdlg.h MotifH
palette.h MotifH
pen.h MotifH
+helpbest.h MSWH
print.h MotifH
printdlg.h MotifH
private.h MotifH
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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_
#include "wx/msw/helpchm.h"
#endif
+#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
+#include "wx/msw/helpbest.h"
+#endif
+
// ----------------------------------------------------------------------------
// ressources
// ----------------------------------------------------------------------------
#if wxUSE_MS_HTML_HELP
wxCHMHelpController& GetMSHtmlHelpController() { return m_msHtmlHelp; }
#endif
+#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
+ wxBestHelpController& GetBestHelpController() { return m_bestHelp; }
+#endif
// event handlers (these functions should _not_ be virtual)
void OnQuit(wxCommandEvent& event);
void OnHtmlHelp(wxCommandEvent& event);
void OnAdvancedHtmlHelp(wxCommandEvent& event);
void OnMSHtmlHelp(wxCommandEvent& event);
+ void OnBestHelp(wxCommandEvent& event);
void OnShowContextHelp(wxCommandEvent& event);
void OnShowDialogContextHelp(wxCommandEvent& event);
wxCHMHelpController m_msHtmlHelp;
#endif
+#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
+ wxBestHelpController m_bestHelp;
+#endif
+
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
};
HelpDemo_MS_Html_Help_Help,
HelpDemo_MS_Html_Help_Search,
+ HelpDemo_Best_Help_Index,
+ HelpDemo_Best_Help_Classes,
+ HelpDemo_Best_Help_Functions,
+ HelpDemo_Best_Help_Help,
+ HelpDemo_Best_Help_Search,
+
HelpDemo_Help_KDE,
HelpDemo_Help_GNOME,
HelpDemo_Help_Netscape,
EVT_MENU(HelpDemo_MS_Html_Help_Help, MyFrame::OnMSHtmlHelp)
EVT_MENU(HelpDemo_MS_Html_Help_Search, MyFrame::OnMSHtmlHelp)
+ EVT_MENU(HelpDemo_Best_Help_Index, MyFrame::OnBestHelp)
+
EVT_MENU(HelpDemo_Help_KDE, MyFrame::OnHelp)
EVT_MENU(HelpDemo_Help_GNOME, MyFrame::OnHelp)
EVT_MENU(HelpDemo_Help_Netscape, MyFrame::OnHelp)
return FALSE;
}
+#if wxUSE_MS_HTML_HELP
+ if( !frame->GetMSHtmlHelpController().Initialize("doc") )
+ {
+ wxLogError("Cannot initialize the MS HTML Help system.");
+ }
+#endif
+
+#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
+ // you need to call Initialize in order to use wxBestHelpController
+ if( !frame->GetBestHelpController().Initialize("doc") )
+ {
+ wxLogError("Cannot initialize the best help system, aborting.");
+ }
+#endif
+
#if USE_HTML_HELP
// initialise the standard HTML help system: this means that the HTML docs are in the
// subdirectory doc for platforms using HTML help
}
#endif
-#if defined(__WXMSW__) && wxUSE_MS_HTML_HELP
+#if 0
+ // defined(__WXMSW__) && wxUSE_MS_HTML_HELP
wxString path(wxGetCwd());
if ( !frame->GetMSHtmlHelpController().Initialize(path + "\\doc.chm") )
{
menuFile->Append(HelpDemo_MS_Html_Help_Search, "MS HTML &Search help...");
#endif
+#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
+ menuFile->AppendSeparator();
+ menuFile->Append(HelpDemo_Best_Help_Index, "Best &Help Index...");
+#endif
+
#ifndef __WXMSW__
#if !wxUSE_HTML
menuFile->AppendSeparator();
#endif
}
+void MyFrame::OnBestHelp(wxCommandEvent& event)
+{
+#if wxUSE_MS_HTML_HELP && wxUSE_HTML
+ ShowHelp(event.GetId(), m_bestHelp);
+#endif
+}
+
/*
Notes: ShowHelp uses section ids for displaying particular topics,
but you might want to use a unique keyword to display a topic, instead.
case HelpDemo_Html_Help_Classes:
case HelpDemo_Advanced_Html_Help_Classes:
case HelpDemo_MS_Html_Help_Classes:
+ case HelpDemo_Best_Help_Classes:
helpController.DisplaySection(2);
//helpController.DisplaySection("Classes"); // An alternative form for most controllers
case HelpDemo_Html_Help_Help:
case HelpDemo_Advanced_Html_Help_Help:
case HelpDemo_MS_Html_Help_Help:
+ case HelpDemo_Best_Help_Help:
helpController.DisplaySection(3);
//helpController.DisplaySection("About"); // An alternative form for most controllers
break;
case HelpDemo_Html_Help_Search:
case HelpDemo_Advanced_Html_Help_Search:
case HelpDemo_MS_Html_Help_Search:
+ case HelpDemo_Best_Help_Search:
{
wxString key = wxGetTextFromUser("Search for?",
"Search help for keyword",
case HelpDemo_Html_Help_Index:
case HelpDemo_Advanced_Html_Help_Index:
case HelpDemo_MS_Html_Help_Index:
+ case HelpDemo_Best_Help_Index:
helpController.DisplayContents();
break;
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: 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
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "helpbest.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/defs.h"
+#endif
+
+#include "wx/filefn.h"
+
+#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 );
+
+bool wxBestHelpController::Initialize( const wxString& filename )
+{
+ // try wxCHMHelpController
+ wxCHMHelpController* chm = new wxCHMHelpController;
+
+ m_helpControllerType = wxUseChmHelp;
+ // do not warn upon failure
+ wxLogNull dontWarnOnFailure;
+
+ if( chm->Initialize( GetValidFilename( filename ) ) )
+ {
+ m_helpController = chm;
+ return TRUE;
+ }
+
+ // failed
+ delete chm;
+
+ // try wxHtmlHelpController
+ wxHtmlHelpController* html = new wxHtmlHelpController;
+
+ m_helpControllerType = wxUseHtmlHelp;
+ if( html->Initialize( GetValidFilename( filename ) ) )
+ {
+ m_helpController = html;
+ return TRUE;
+ }
+
+ // failed
+ delete html;
+
+ return FALSE;
+}
+
+wxString wxBestHelpController::GetValidFilename( const wxString& filename ) const
+{
+ wxString tmp = filename;
+ ::wxStripExtension( tmp );
+
+ switch( m_helpControllerType )
+ {
+ case wxUseChmHelp:
+ if( ::wxFileExists( tmp + ".chm" ) )
+ return tmp + ".chm";
+
+ return filename;
+ break;
+ case wxUseHtmlHelp:
+ if( ::wxFileExists( tmp + ".htb" ) )
+ return tmp + ".htb";
+ if( ::wxFileExists( tmp + ".zip" ) )
+ return tmp + ".zip";
+ if( ::wxFileExists( tmp + ".hhp" ) )
+ return tmp + ".hhp";
+
+ return filename;
+ break;
+ default:
+ // we CAN'T get here
+ wxFAIL_MSG( "wxBestHelpController: Must call Initialize, first!" );
+ return wxEmptyString;
+ break;
+ }
+}
+
+#endif
+ // wxUSE_HELP && wxUSE_MS_HTML_HELP && defined(__WIN95__) && wxUSE_WXHTML_HELP