]> git.saurik.com Git - wxWidgets.git/commitdiff
more wxHtmlHelpFrame fixes (didn't store customization correctly, still needs some...
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 31 Oct 1999 22:03:50 +0000 (22:03 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 31 Oct 1999 22:03:50 +0000 (22:03 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/html/helpfrm.h
src/html/helpdata.cpp
src/html/helpfrm.cpp

index b227572e2b002d941a6d65b46b469d59ff5dfd5d..ed8e493b5994c8b3e3a6d5e88ae59525efa30db9 100644 (file)
@@ -61,7 +61,7 @@ enum
 
 typedef struct
 {
-    long x, y, w, h;
+    int x, y, w, h;
     long sashpos;
     bool navig_on;
 }
index 4adb1e7f8d9c7f06f1d2aa9a54cd659cb9d85cc2..d4bf792b8f2b17f27711dd12510e8f5d7b6da32d 100644 (file)
@@ -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)
index 465670a1269222f3150da812c37cb2870e550a61..e4162ea35dc60e53d2d97e823ed7062a0acb379f 100644 (file)
@@ -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();
 }