finally applied the helpbest patch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -262,6 +262,7 @@ dragimag.cpp	MSW
 | 
				
			|||||||
dropsrc.cpp	MSW	OLE
 | 
					dropsrc.cpp	MSW	OLE
 | 
				
			||||||
droptgt.cpp	MSW	OLE
 | 
					droptgt.cpp	MSW	OLE
 | 
				
			||||||
enhmeta.cpp	MSW	Win32Only
 | 
					enhmeta.cpp	MSW	Win32Only
 | 
				
			||||||
 | 
					helpbest.cpp	MSW	Win32Only
 | 
				
			||||||
evtloop.cpp	MSW	LowLevel
 | 
					evtloop.cpp	MSW	LowLevel
 | 
				
			||||||
fdrepdlg.cpp	MSW	Win32Only
 | 
					fdrepdlg.cpp	MSW	Win32Only
 | 
				
			||||||
filedlg.cpp	MSW
 | 
					filedlg.cpp	MSW
 | 
				
			||||||
@@ -922,6 +923,7 @@ minifram.h	MotifH
 | 
				
			|||||||
msgdlg.h	MotifH
 | 
					msgdlg.h	MotifH
 | 
				
			||||||
palette.h	MotifH
 | 
					palette.h	MotifH
 | 
				
			||||||
pen.h	MotifH
 | 
					pen.h	MotifH
 | 
				
			||||||
 | 
					helpbest.h	MSWH
 | 
				
			||||||
print.h	MotifH
 | 
					print.h	MotifH
 | 
				
			||||||
printdlg.h	MotifH
 | 
					printdlg.h	MotifH
 | 
				
			||||||
private.h	MotifH
 | 
					private.h	MotifH
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										128
									
								
								include/wx/msw/helpbest.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								include/wx/msw/helpbest.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
				
			|||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// 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_
 | 
				
			||||||
@@ -67,6 +67,10 @@
 | 
				
			|||||||
#include "wx/msw/helpchm.h"
 | 
					#include "wx/msw/helpchm.h"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
 | 
				
			||||||
 | 
					#include "wx/msw/helpbest.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ----------------------------------------------------------------------------
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
// ressources
 | 
					// ressources
 | 
				
			||||||
// ----------------------------------------------------------------------------
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
@@ -113,6 +117,9 @@ public:
 | 
				
			|||||||
#if wxUSE_MS_HTML_HELP
 | 
					#if wxUSE_MS_HTML_HELP
 | 
				
			||||||
    wxCHMHelpController& GetMSHtmlHelpController() { return m_msHtmlHelp; }
 | 
					    wxCHMHelpController& GetMSHtmlHelpController() { return m_msHtmlHelp; }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
 | 
				
			||||||
 | 
					    wxBestHelpController& GetBestHelpController() { return m_bestHelp; }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // event handlers (these functions should _not_ be virtual)
 | 
					    // event handlers (these functions should _not_ be virtual)
 | 
				
			||||||
    void OnQuit(wxCommandEvent& event);
 | 
					    void OnQuit(wxCommandEvent& event);
 | 
				
			||||||
@@ -120,6 +127,7 @@ public:
 | 
				
			|||||||
    void OnHtmlHelp(wxCommandEvent& event);
 | 
					    void OnHtmlHelp(wxCommandEvent& event);
 | 
				
			||||||
    void OnAdvancedHtmlHelp(wxCommandEvent& event);
 | 
					    void OnAdvancedHtmlHelp(wxCommandEvent& event);
 | 
				
			||||||
    void OnMSHtmlHelp(wxCommandEvent& event);
 | 
					    void OnMSHtmlHelp(wxCommandEvent& event);
 | 
				
			||||||
 | 
					    void OnBestHelp(wxCommandEvent& event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void OnShowContextHelp(wxCommandEvent& event);
 | 
					    void OnShowContextHelp(wxCommandEvent& event);
 | 
				
			||||||
    void OnShowDialogContextHelp(wxCommandEvent& event);
 | 
					    void OnShowDialogContextHelp(wxCommandEvent& event);
 | 
				
			||||||
@@ -140,6 +148,10 @@ private:
 | 
				
			|||||||
    wxCHMHelpController     m_msHtmlHelp;
 | 
					    wxCHMHelpController     m_msHtmlHelp;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
 | 
				
			||||||
 | 
					    wxBestHelpController    m_bestHelp;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // any class wishing to process wxWindows events must use this macro
 | 
					    // any class wishing to process wxWindows events must use this macro
 | 
				
			||||||
   DECLARE_EVENT_TABLE()
 | 
					   DECLARE_EVENT_TABLE()
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -190,6 +202,12 @@ enum
 | 
				
			|||||||
    HelpDemo_MS_Html_Help_Help,
 | 
					    HelpDemo_MS_Html_Help_Help,
 | 
				
			||||||
    HelpDemo_MS_Html_Help_Search,
 | 
					    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_KDE,
 | 
				
			||||||
    HelpDemo_Help_GNOME,
 | 
					    HelpDemo_Help_GNOME,
 | 
				
			||||||
    HelpDemo_Help_Netscape,
 | 
					    HelpDemo_Help_Netscape,
 | 
				
			||||||
@@ -232,6 +250,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
				
			|||||||
    EVT_MENU(HelpDemo_MS_Html_Help_Help, MyFrame::OnMSHtmlHelp)
 | 
					    EVT_MENU(HelpDemo_MS_Html_Help_Help, MyFrame::OnMSHtmlHelp)
 | 
				
			||||||
    EVT_MENU(HelpDemo_MS_Html_Help_Search, 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_KDE, MyFrame::OnHelp)
 | 
				
			||||||
    EVT_MENU(HelpDemo_Help_GNOME, MyFrame::OnHelp)
 | 
					    EVT_MENU(HelpDemo_Help_GNOME, MyFrame::OnHelp)
 | 
				
			||||||
    EVT_MENU(HelpDemo_Help_Netscape, MyFrame::OnHelp)
 | 
					    EVT_MENU(HelpDemo_Help_Netscape, MyFrame::OnHelp)
 | 
				
			||||||
@@ -297,6 +317,21 @@ bool MyApp::OnInit()
 | 
				
			|||||||
        return FALSE;
 | 
					        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
 | 
					#if USE_HTML_HELP
 | 
				
			||||||
    // initialise the standard HTML help system: this means that the HTML docs are in the
 | 
					    // initialise the standard HTML help system: this means that the HTML docs are in the
 | 
				
			||||||
    // subdirectory doc for platforms using HTML help
 | 
					    // subdirectory doc for platforms using HTML help
 | 
				
			||||||
@@ -319,7 +354,8 @@ bool MyApp::OnInit()
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__WXMSW__) && wxUSE_MS_HTML_HELP
 | 
					#if 0
 | 
				
			||||||
 | 
					    // defined(__WXMSW__) && wxUSE_MS_HTML_HELP
 | 
				
			||||||
    wxString path(wxGetCwd());
 | 
					    wxString path(wxGetCwd());
 | 
				
			||||||
    if ( !frame->GetMSHtmlHelpController().Initialize(path + "\\doc.chm") )
 | 
					    if ( !frame->GetMSHtmlHelpController().Initialize(path + "\\doc.chm") )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -387,6 +423,11 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 | 
				
			|||||||
    menuFile->Append(HelpDemo_MS_Html_Help_Search, "MS HTML &Search help...");
 | 
					    menuFile->Append(HelpDemo_MS_Html_Help_Search, "MS HTML &Search help...");
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
 | 
				
			||||||
 | 
					    menuFile->AppendSeparator();
 | 
				
			||||||
 | 
					    menuFile->Append(HelpDemo_Best_Help_Index, "Best &Help Index...");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __WXMSW__
 | 
					#ifndef __WXMSW__
 | 
				
			||||||
#if !wxUSE_HTML
 | 
					#if !wxUSE_HTML
 | 
				
			||||||
    menuFile->AppendSeparator();
 | 
					    menuFile->AppendSeparator();
 | 
				
			||||||
@@ -470,6 +511,13 @@ void MyFrame::OnMSHtmlHelp(wxCommandEvent& event)
 | 
				
			|||||||
#endif
 | 
					#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,
 | 
					 Notes: ShowHelp uses section ids for displaying particular topics,
 | 
				
			||||||
 but you might want to use a unique keyword to display a topic, instead.
 | 
					 but you might want to use a unique keyword to display a topic, instead.
 | 
				
			||||||
@@ -545,6 +593,7 @@ void MyFrame::ShowHelp(int commandId, wxHelpControllerBase& helpController)
 | 
				
			|||||||
   case HelpDemo_Html_Help_Classes:
 | 
					   case HelpDemo_Html_Help_Classes:
 | 
				
			||||||
   case HelpDemo_Advanced_Html_Help_Classes:
 | 
					   case HelpDemo_Advanced_Html_Help_Classes:
 | 
				
			||||||
   case HelpDemo_MS_Html_Help_Classes:
 | 
					   case HelpDemo_MS_Html_Help_Classes:
 | 
				
			||||||
 | 
					   case HelpDemo_Best_Help_Classes:
 | 
				
			||||||
      helpController.DisplaySection(2);
 | 
					      helpController.DisplaySection(2);
 | 
				
			||||||
      //helpController.DisplaySection("Classes"); // An alternative form for most controllers
 | 
					      //helpController.DisplaySection("Classes"); // An alternative form for most controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -560,6 +609,7 @@ void MyFrame::ShowHelp(int commandId, wxHelpControllerBase& helpController)
 | 
				
			|||||||
   case HelpDemo_Html_Help_Help:
 | 
					   case HelpDemo_Html_Help_Help:
 | 
				
			||||||
   case HelpDemo_Advanced_Html_Help_Help:
 | 
					   case HelpDemo_Advanced_Html_Help_Help:
 | 
				
			||||||
   case HelpDemo_MS_Html_Help_Help:
 | 
					   case HelpDemo_MS_Html_Help_Help:
 | 
				
			||||||
 | 
					   case HelpDemo_Best_Help_Help:
 | 
				
			||||||
      helpController.DisplaySection(3);
 | 
					      helpController.DisplaySection(3);
 | 
				
			||||||
      //helpController.DisplaySection("About"); // An alternative form for most controllers
 | 
					      //helpController.DisplaySection("About"); // An alternative form for most controllers
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
@@ -568,6 +618,7 @@ void MyFrame::ShowHelp(int commandId, wxHelpControllerBase& helpController)
 | 
				
			|||||||
   case HelpDemo_Html_Help_Search:
 | 
					   case HelpDemo_Html_Help_Search:
 | 
				
			||||||
   case HelpDemo_Advanced_Html_Help_Search:
 | 
					   case HelpDemo_Advanced_Html_Help_Search:
 | 
				
			||||||
   case HelpDemo_MS_Html_Help_Search:
 | 
					   case HelpDemo_MS_Html_Help_Search:
 | 
				
			||||||
 | 
					   case HelpDemo_Best_Help_Search:
 | 
				
			||||||
   {
 | 
					   {
 | 
				
			||||||
      wxString key = wxGetTextFromUser("Search for?",
 | 
					      wxString key = wxGetTextFromUser("Search for?",
 | 
				
			||||||
                                       "Search help for keyword",
 | 
					                                       "Search help for keyword",
 | 
				
			||||||
@@ -582,6 +633,7 @@ void MyFrame::ShowHelp(int commandId, wxHelpControllerBase& helpController)
 | 
				
			|||||||
   case HelpDemo_Html_Help_Index:
 | 
					   case HelpDemo_Html_Help_Index:
 | 
				
			||||||
   case HelpDemo_Advanced_Html_Help_Index:
 | 
					   case HelpDemo_Advanced_Html_Help_Index:
 | 
				
			||||||
   case HelpDemo_MS_Html_Help_Index:
 | 
					   case HelpDemo_MS_Html_Help_Index:
 | 
				
			||||||
 | 
					   case HelpDemo_Best_Help_Index:
 | 
				
			||||||
      helpController.DisplayContents();
 | 
					      helpController.DisplayContents();
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										102
									
								
								src/msw/helpbest.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								src/msw/helpbest.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// 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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user