X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/259d1674f293dcb7bbc0fa1c38392d899ce71bc0..d1dea842a06344bef9500b372463c0d1f94f7701:/src/html/htmlhelp.cpp diff --git a/src/html/htmlhelp.cpp b/src/html/htmlhelp.cpp index a208ea5caf..70f9a9a575 100644 --- a/src/html/htmlhelp.cpp +++ b/src/html/htmlhelp.cpp @@ -5,14 +5,17 @@ // Licence: wxWindows Licence ///////////////////////////////////////////////////////////////////////////// +#error This file should not be compiled! Update your build system! \ +(configure users, rerun configure to get a new Makefile) \ +Instead of htmlhelp[_io], use helpdata, helpfrm and helpctrl. This \ +file is only left to point out the problem and will be removed r.s.n. #ifdef __GNUG__ -#pragma implementation +#pragma implementation "htmlhelp.h" #endif -#include +#include "wx/wxprec.h" -#include "wx/defs.h" #if wxUSE_HTML #ifdef __BORDLANDC__ @@ -53,54 +56,6 @@ -//----------------------------------------------------------------------------- -// Helper constants -//----------------------------------------------------------------------------- - - -// Command IDs : - -enum { - wxID_HTML_PANEL = wxID_HIGHEST + 1, - wxID_HTML_BACK, - wxID_HTML_FORWARD, - wxID_HTML_TREECTRL, - wxID_HTML_INDEXPAGE, - wxID_HTML_INDEXLIST, - wxID_HTML_NOTEBOOK, - wxID_HTML_SEARCHPAGE, - wxID_HTML_SEARCHTEXT, - wxID_HTML_SEARCHLIST, - wxID_HTML_SEARCHBUTTON -}; - - -// Images: - -enum { - IMG_Book = 0, - IMG_Folder, - IMG_Page -}; - - - - - - -class HtmlHelpTreeItemData : public wxTreeItemData -{ - private: - wxString m_Page; - - public: - HtmlHelpTreeItemData(HtmlContentsItem *it) : wxTreeItemData() {m_Page = it -> m_Book -> GetBasePath() + it -> m_Page;} - const wxString& GetPage() {return m_Page;} -}; - - - - #include WX_DEFINE_OBJARRAY(HtmlBookRecArray) @@ -143,6 +98,15 @@ wxHtmlHelpController::wxHtmlHelpController() : wxEvtHandler() m_ContentsCnt = 0; m_Index = NULL; m_IndexCnt = 0; + + m_IndexBox = NULL; + m_ContentsBox = NULL; + m_SearchList = NULL; + m_SearchText = NULL; + m_SearchButton = NULL; + m_HtmlWin = NULL; + m_Splitter = NULL; + m_NavigPan = NULL; } @@ -155,15 +119,15 @@ wxHtmlHelpController::~wxHtmlHelpController() delete m_ContentsImageList; if (m_Contents) { for (i = 0; i < m_ContentsCnt; i++) { - free(m_Contents[i].m_Page); - free(m_Contents[i].m_Name); + delete[] m_Contents[i].m_Page; + delete[] m_Contents[i].m_Name; } free(m_Contents); } if (m_Index) { for (i = 0; i < m_IndexCnt; i++) { - free(m_Index[i].m_Page); - free(m_Index[i].m_Name); + delete[] m_Index[i].m_Page; + delete[] m_Index[i].m_Name; } free(m_Index); } @@ -202,12 +166,12 @@ static char* ReadLine(char *line, char *buf) static wxString SafeFileName(const wxString& s) { wxString res = s; - res.Replace(":", "_", TRUE); - res.Replace(" ", "_", TRUE); - res.Replace("/", "_", TRUE); - res.Replace("\\", "_", TRUE); - res.Replace("#", "_", TRUE); - res.Replace(".", "_", TRUE); + res.Replace(_T(":"), _T("_"), TRUE); + res.Replace(_T(" "), _T("_"), TRUE); + res.Replace(_T("/"), _T("_"), TRUE); + res.Replace(_T("\\"), _T("_"), TRUE); + res.Replace(_T("#"), _T("_"), TRUE); + res.Replace(_T("."), _T("_"), TRUE); return res; } @@ -244,7 +208,7 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) fsys.ChangePathTo(bookFull); s = fi -> GetStream(); sz = s -> GetSize(); - buff = (char*) malloc(sz+1); + buff = new char[sz+1]; buff[sz] = 0; s -> Read(buff, sz); lineptr = buff; @@ -260,7 +224,7 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) if (strstr(linebuf, "Contents file=") == linebuf) contents = linebuf + strlen("Contents file="); } - free(buff); + delete[] buff; bookr = new HtmlBookRecord(fsys.GetPath(), title, start); @@ -268,9 +232,9 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) m_Contents = (HtmlContentsItem*) realloc(m_Contents, (m_ContentsCnt + HTML_REALLOC_STEP) * sizeof(HtmlContentsItem)); m_Contents[m_ContentsCnt].m_Level = 0; m_Contents[m_ContentsCnt].m_ID = 0; - m_Contents[m_ContentsCnt].m_Page = (char*) malloc(start.Length() + 1); + m_Contents[m_ContentsCnt].m_Page = new char[start.Length() + 1]; strcpy(m_Contents[m_ContentsCnt].m_Page, start.c_str()); - m_Contents[m_ContentsCnt].m_Name = (char*) malloc(title.Length() + 1); + m_Contents[m_ContentsCnt].m_Name = new char [title.Length() + 1]; strcpy(m_Contents[m_ContentsCnt].m_Name, title.c_str()); m_Contents[m_ContentsCnt].m_Book = bookr; m_ContentsCnt++; @@ -434,19 +398,22 @@ END_EVENT_TABLE() bool wxHtmlHelpController::KeywordSearch(const wxString& keyword) { int foundcnt = 0; - CreateHelpWindow(); + // if these are not set, we can't continue + if (! (m_SearchList && m_HtmlWin)) + return FALSE; m_Frame -> Raise(); - if (!m_Splitter -> IsSplit()) { - m_NavigPan -> Show(TRUE); - m_HtmlWin -> Show(TRUE); - m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); + if (m_Splitter && m_NavigPan && m_SearchButton) { + if (!m_Splitter -> IsSplit()) { + m_NavigPan -> Show(TRUE); + m_HtmlWin -> Show(TRUE); + m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); + } + m_NavigPan -> SetSelection(2); + m_SearchList -> Clear(); + m_SearchText -> SetValue(keyword); + m_SearchButton -> Enable(FALSE); } - m_NavigPan -> SetSelection(2); - m_SearchList -> Clear(); - m_SearchText -> SetValue(keyword); - m_SearchButton -> Enable(FALSE); - { int cnt = m_ContentsCnt; wxSearchEngine engine; @@ -504,10 +471,12 @@ bool wxHtmlHelpController::KeywordSearch(const wxString& keyword) progress.Close(TRUE); #endif } - - m_SearchButton -> Enable(TRUE); - m_SearchText -> SetSelection(0, keyword.Length()); - m_SearchText -> SetFocus(); + if (m_SearchButton) + m_SearchButton -> Enable(TRUE); + if (m_SearchText) { + m_SearchText -> SetSelection(0, keyword.Length()); + m_SearchText -> SetFocus(); + } if (foundcnt) { HtmlContentsItem *it = (HtmlContentsItem*) m_SearchList -> GetClientData(0); if (it) m_HtmlWin -> LoadPage(it -> m_Book -> GetBasePath() + it -> m_Page); @@ -528,7 +497,7 @@ void wxHtmlHelpController::CreateHelpWindow() if (m_Frame) { m_Frame -> Raise(); - m_Frame -> Show(TRUE); + m_Frame -> Show(TRUE); return; } @@ -667,7 +636,7 @@ void wxHtmlHelpController::CreateContents() for (int i = 0; i < count; i++) { it = m_Contents + i; - roots[it -> m_Level + 1] = m_ContentsBox -> AppendItem(roots[it -> m_Level], it -> m_Name, IMG_Page, -1, new HtmlHelpTreeItemData(it)); + roots[it -> m_Level + 1] = m_ContentsBox -> AppendItem(roots[it -> m_Level], it -> m_Name, IMG_Page, -1, new wxHtmlHelpTreeItemData(it)); if (it -> m_Level == 0) { m_ContentsBox -> SetItemBold(roots[1], TRUE); m_ContentsBox -> SetItemImage(roots[1], IMG_Book); @@ -794,9 +763,9 @@ void wxHtmlHelpController::OnToolbar(wxCommandEvent& event) void wxHtmlHelpController::OnContentsSel(wxTreeEvent& event) { - HtmlHelpTreeItemData *pg; + wxHtmlHelpTreeItemData *pg; - pg = (HtmlHelpTreeItemData*) m_ContentsBox -> GetItemData(event.GetItem()); + pg = (wxHtmlHelpTreeItemData*) m_ContentsBox -> GetItemData(event.GetItem()); if (pg) m_HtmlWin -> LoadPage(pg -> GetPage()); }