X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0bcddc59c8d2d5d28e97aed65d3ceb2fce577879..e3dbf5934e997729c6f4f5154b1b7f29d5d22149:/src/generic/helphtml.cpp diff --git a/src/generic/helphtml.cpp b/src/generic/helphtml.cpp index c595157f3f..8aa2840806 100644 --- a/src/generic/helphtml.cpp +++ b/src/generic/helphtml.cpp @@ -36,12 +36,25 @@ #include #include +#ifndef __MWERKS__ #include +#endif -#ifndef __WINDOWS__ +#if !defined(__WINDOWS__) && !defined(__OS2__) #include #endif +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +/// Name for map file. +#define WXEXTHELP_MAPFILE _T("wxhelp.map") +/// Maximum line length in map file. +#define WXEXTHELP_BUFLEN 512 +/// Character introducing comments/documentation field in map file. +#define WXEXTHELP_COMMENTCHAR ';' + #define CONTENTS_ID 0 class wxExtHelpMapEntry : public wxObject @@ -120,7 +133,11 @@ wxHTMLHelpControllerBase::LoadFile(const wxString& ifile) wxChar* f = wxGetWorkingDirectory(); file = f; delete[] f; // wxGetWorkingDirectory returns new memory +#ifdef __WXMAC__ + file << ifile; +#else file << WXEXTHELP_SEPARATOR << ifile; +#endif } else file = ifile; @@ -141,7 +158,7 @@ wxHTMLHelpControllerBase::LoadFile(const wxString& ifile) { newfile = WXEXTHELP_SEPARATOR; const wxChar *cptr = wxGetLocale()->GetName().c_str(); - while(*cptr && *cptr != _T('_')) + while(*cptr && *cptr != wxT('_')) newfile << *(cptr++); if(wxDirExists(newfile)) file = newfile; @@ -164,7 +181,7 @@ wxHTMLHelpControllerBase::LoadFile(const wxString& ifile) m_MapList = new wxList; m_NumOfEntries = 0; - FILE *input = fopen(mapFile.fn_str(),"rt"); + FILE *input = wxFopen(mapFile,wxT("rt")); if(! input) return FALSE; do @@ -221,13 +238,13 @@ wxHTMLHelpControllerBase::DisplayContents() bool rc = FALSE; wxString file; file << m_MapFile << WXEXTHELP_SEPARATOR << contents; - if(file.Contains(_T('#'))) - file = file.BeforeLast(_T('#')); + if(file.Contains(wxT('#'))) + file = file.BeforeLast(wxT('#')); if(contents.Length() && wxFileExists(file)) rc = DisplaySection(CONTENTS_ID); - + // if not found, open homemade toc: - return rc ? TRUE : KeywordSearch(_T("")); + return rc ? TRUE : KeywordSearch(wxT("")); } bool @@ -249,6 +266,16 @@ wxHTMLHelpControllerBase::DisplaySection(int sectionNo) return FALSE; } +bool wxHTMLHelpControllerBase::DisplaySection(const wxString& section) +{ + bool isFilename = (section.Find(wxT(".htm")) != -1); + + if (isFilename) + return DisplayHelp(section); + else + return KeywordSearch(section); +} + bool wxHTMLHelpControllerBase::DisplayBlock(long blockNo) { @@ -294,7 +321,7 @@ wxHTMLHelpControllerBase::KeywordSearch(const wxString& k) node = node->Next(); } } - + if(idx == 1) rc = DisplayHelp(urls[0]); else if(idx == 0)