X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8dd71e2b5181ea24c88cbdc5a921187260b045ae..a62867a56ec00a9f3f0087486d42cf46e5eeda84:/src/generic/helphtml.cpp diff --git a/src/generic/helphtml.cpp b/src/generic/helphtml.cpp index cabeb9a825..1eb1519c8f 100644 --- a/src/generic/helphtml.cpp +++ b/src/generic/helphtml.cpp @@ -19,12 +19,16 @@ #pragma hdrstop #endif +#if wxUSE_HELP + #ifndef WX_PRECOMP #include "wx/setup.h" #include "wx/string.h" #include "wx/utils.h" #include "wx/list.h" #include "wx/intl.h" + #include "wx/msgdlg.h" + #include "wx/choicdlg.h" #endif #include "wx/helpbase.h" @@ -38,6 +42,8 @@ #include #endif +#define CONTENTS_ID 0 + class wxExtHelpMapEntry : public wxObject { public: @@ -198,11 +204,30 @@ wxHTMLHelpControllerBase::DisplayContents() if(! m_NumOfEntries) return FALSE; - // use ID 0 for contents - if(! DisplaySection(0)) - return KeywordSearch(""); - else - return TRUE; + wxString contents; + wxNode *node = m_MapList->First(); + wxExtHelpMapEntry *entry; + while(node) + { + entry = (wxExtHelpMapEntry *)node->Data(); + if(entry->id == CONTENTS_ID) + { + contents = entry->url; + break; + } + node = node->Next(); + } + + bool rc = FALSE; + wxString file; + file << m_MapFile << WXEXTHELP_SEPARATOR << contents; + if(file.Contains(_T('#'))) + file = file.BeforeLast(_T('#')); + if(contents.Length() && wxFileExists(file)) + rc = DisplaySection(CONTENTS_ID); + + // if not found, open homemade toc: + return rc ? TRUE : KeywordSearch(_T("")); } bool @@ -303,3 +328,4 @@ wxHTMLHelpControllerBase::OnQuit() { } +#endif // wxUSE_HELP