From 683646599939f5113215254870b15d03e830458e Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 31 Oct 1999 22:03:50 +0000 Subject: [PATCH] more wxHtmlHelpFrame fixes (didn't store customization correctly, still needs some fixing, will do asap) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/html/helpfrm.h | 2 +- src/html/helpdata.cpp | 114 +++++++++++++++++++++++--------------- src/html/helpfrm.cpp | 17 +++++- 3 files changed, 83 insertions(+), 50 deletions(-) diff --git a/include/wx/html/helpfrm.h b/include/wx/html/helpfrm.h index b227572e2b..ed8e493b59 100644 --- a/include/wx/html/helpfrm.h +++ b/include/wx/html/helpfrm.h @@ -61,7 +61,7 @@ enum typedef struct { - long x, y, w, h; + int x, y, w, h; long sashpos; bool navig_on; } diff --git a/src/html/helpdata.cpp b/src/html/helpdata.cpp index 4adb1e7f8d..d4bf792b8f 100644 --- a/src/html/helpdata.cpp +++ b/src/html/helpdata.cpp @@ -350,7 +350,7 @@ bool wxHtmlHelpData::AddBookParam(const wxString& title, const wxString& contfil if (! path.IsEmpty()) fsys.ChangePathTo(path, TRUE); - bookr = new wxHtmlBookRecord(path + '/', title, deftopic); + bookr = new wxHtmlBookRecord(fsys.GetPath(), title, deftopic); if (m_ContentsCnt % wxHTML_REALLOC_STEP == 0) m_Contents = (wxHtmlContentsItem*) realloc(m_Contents, (m_ContentsCnt + wxHTML_REALLOC_STEP) * sizeof(wxHtmlContentsItem)); @@ -367,12 +367,12 @@ bool wxHtmlHelpData::AddBookParam(const wxString& title, const wxString& contfil // Try to find cached binary versions: safetitle = SafeFileName(title); - fi = fsys.OpenFile(safetitle + ".cached"); - if (fi == NULL) fi = fsys.OpenFile(m_TempPath + safetitle + ".cached"); + fi = fsys.OpenFile(safetitle + wxT(".cached")); + if (fi == NULL) fi = fsys.OpenFile(m_TempPath + safetitle + wxT(".cached")); if ((fi == NULL) || (m_TempPath == wxEmptyString)) { LoadMSProject(bookr, fsys, indexfile, contfile); if (m_TempPath != wxEmptyString) { - wxFileOutputStream *outs = new wxFileOutputStream(m_TempPath + safetitle + ".cached"); + wxFileOutputStream *outs = new wxFileOutputStream(m_TempPath + safetitle + wxT(".cached")); SaveCachedBook(bookr, outs); delete outs; } @@ -394,49 +394,71 @@ bool wxHtmlHelpData::AddBookParam(const wxString& title, const wxString& contfil bool wxHtmlHelpData::AddBook(const wxString& book) { - wxFSFile *fi; - wxFileSystem fsys; - wxInputStream *s; - wxString bookFull; + if (book.Right(4).Lower() == wxT(".zip") || + book.Right(4).Lower() == wxT(".htb") /*html book*/) + + { + wxFileSystem fsys; + wxString s; + bool rt = FALSE; + + s = fsys.FindFirst(book + wxT("#zip:") + wxT("*.hhp"), wxFILE); + while (!s.IsEmpty()) + { + if (AddBook(s)) rt = TRUE; + s = fsys.FindNext(); + } + + return rt; + } - int sz; - char *buff, *lineptr; - char linebuf[300]; - - wxString title = _("noname"), - safetitle, - start = wxEmptyString, - contents = wxEmptyString, index = wxEmptyString; - - if (wxIsAbsolutePath(book)) bookFull = book; - else bookFull = wxGetCwd() + "/" + book; - - fi = fsys.OpenFile(bookFull); - if (fi == NULL) return FALSE; - fsys.ChangePathTo(bookFull); - s = fi -> GetStream(); - sz = s -> GetSize(); - buff = new char[sz + 1]; - buff[sz] = 0; - s -> Read(buff, sz); - lineptr = buff; - delete fi; - - do { - lineptr = ReadLine(lineptr, linebuf); - - if (strstr(linebuf, "Title=") == linebuf) - title = linebuf + strlen("Title="); - if (strstr(linebuf, "Default topic=") == linebuf) - start = linebuf + strlen("Default topic="); - if (strstr(linebuf, "Index file=") == linebuf) - index = linebuf + strlen("Index file="); - if (strstr(linebuf, "Contents file=") == linebuf) - contents = linebuf + strlen("Contents file="); - } while (lineptr != NULL); - delete[] buff; - - return AddBookParam(title, contents, index, start, fsys.GetPath()); + + else + { + wxFSFile *fi; + wxFileSystem fsys; + wxInputStream *s; + wxString bookFull; + + int sz; + char *buff, *lineptr; + char linebuf[300]; + + wxString title = _("noname"), + safetitle, + start = wxEmptyString, + contents = wxEmptyString, index = wxEmptyString; + + if (wxIsAbsolutePath(book)) bookFull = book; + else bookFull = wxGetCwd() + "/" + book; + + fi = fsys.OpenFile(bookFull); + if (fi == NULL) return FALSE; + fsys.ChangePathTo(bookFull); + s = fi -> GetStream(); + sz = s -> GetSize(); + buff = new char[sz + 1]; + buff[sz] = 0; + s -> Read(buff, sz); + lineptr = buff; + delete fi; + + do { + lineptr = ReadLine(lineptr, linebuf); + + if (strstr(linebuf, "Title=") == linebuf) + title = linebuf + strlen("Title="); + if (strstr(linebuf, "Default topic=") == linebuf) + start = linebuf + strlen("Default topic="); + if (strstr(linebuf, "Index file=") == linebuf) + index = linebuf + strlen("Index file="); + if (strstr(linebuf, "Contents file=") == linebuf) + contents = linebuf + strlen("Contents file="); + } while (lineptr != NULL); + delete[] buff; + + return AddBookParam(title, contents, index, start, fsys.GetPath()); + } } wxString wxHtmlHelpData::FindPageByName(const wxString& x) diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index 465670a126..e4162ea35d 100644 --- a/src/html/helpfrm.cpp +++ b/src/html/helpfrm.cpp @@ -96,7 +96,7 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data) m_DataCreated = TRUE; } - m_ContentsImageList = new wxImageList(12, 12); + m_ContentsImageList = new wxImageList(16, 16); m_ContentsImageList -> Add(wxICON(book)); m_ContentsImageList -> Add(wxICON(folder)); m_ContentsImageList -> Add(wxICON(page)); @@ -137,7 +137,7 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& ti if (m_Config) ReadCustomization(m_Config, m_ConfigRoot); - wxFrame::Create(parent, id, "", wxPoint(m_Cfg.x, m_Cfg.y), wxSize(m_Cfg.w, m_Cfg.h)); + wxFrame::Create(parent, id, _("Help"), wxPoint(m_Cfg.x, m_Cfg.y), wxSize(m_Cfg.w, m_Cfg.h)); int notebook_page = 0; @@ -156,7 +156,7 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& ti toolBarBitmaps[2] = new wxBitmap("forward"); int width = 24; #else -toolBarBitmaps[0] = new wxBitmap(panel_xpm); + toolBarBitmaps[0] = new wxBitmap(panel_xpm); toolBarBitmaps[1] = new wxBitmap(back_xpm); toolBarBitmaps[2] = new wxBitmap(forward_xpm); int width = 16; @@ -279,6 +279,10 @@ toolBarBitmaps[0] = new wxBitmap(panel_xpm); m_Splitter -> SetMinimumPaneSize(20); if (m_Cfg.navig_on) m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); + else { + m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); + m_Splitter -> Unsplit(); + } } m_HtmlWin -> Show(TRUE); return TRUE; @@ -574,10 +578,12 @@ void wxHtmlHelpFrame::OnToolbar(wxCommandEvent& event) if (m_Splitter -> IsSplit()) { m_Cfg.sashpos = m_Splitter -> GetSashPosition(); m_Splitter -> Unsplit(m_NavigPan); + m_Cfg.navig_on = FALSE; } else { m_NavigPan -> Show(TRUE); m_HtmlWin -> Show(TRUE); m_Splitter -> SplitVertically(m_NavigPan, m_HtmlWin, m_Cfg.sashpos); + m_Cfg.navig_on = TRUE; } break; } @@ -618,8 +624,13 @@ void wxHtmlHelpFrame::OnSearch(wxCommandEvent& WXUNUSED(event)) void wxHtmlHelpFrame::OnCloseWindow(wxCloseEvent& evt) { + GetSize(&m_Cfg.w, &m_Cfg.h); + GetPosition(&m_Cfg.x, &m_Cfg.y); + if (m_Splitter && m_Cfg.navig_on) m_Cfg.sashpos = m_Splitter -> GetSashPosition(); + if (m_Config) WriteCustomization(m_Config, m_ConfigRoot); + evt.Skip(); } -- 2.45.2