From: Vadim Zeitlin Date: Fri, 30 Apr 2004 22:44:03 +0000 (+0000) Subject: use an internal wxFileSystem in wxHtmlListBox so that references to images could... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2d814c19cc7b8aa54ca452b14e6a99442361d7da use an internal wxFileSystem in wxHtmlListBox so that references to images could be resolved git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 5aff49c6a3..53124c555c 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -112,6 +112,7 @@ All (GUI): min size using SetSizeHints, and calls to wxSizer::SetItemMinSize are also forwarded to SetSizeHints for window items. - added wxRegEx::GetMatchCount() +- it is now possible to display images in wxHtmlListBox wxMSW: diff --git a/docs/latex/wx/htmllbox.tex b/docs/latex/wx/htmllbox.tex index 63729f5856..170f542d7a 100644 --- a/docs/latex/wx/htmllbox.tex +++ b/docs/latex/wx/htmllbox.tex @@ -63,6 +63,19 @@ wxListBox styles can not be used here. Returns {\tt true} on success or {\tt false} if the control couldn't be created +\membersection{wxHtmlListBox::GetFileSystem}\label{wxhtmllistboxgetfilesystem} + +\func{wxFileSystem\&}{GetFileSystem}{\void} + +\constfunc{const wxFileSystem\&}{GetFileSystem}{\void} + +Returns the \helpref{wxFileSystem}{wxfilesystem} used by the HTML parser of +this object. The file system object is used to resolve the paths in HTML +fragments displayed in the control and you should use +\helpref{wxFileSystem::ChangePathTo}{wxfilesystemchangepathto} if you use +relative paths for the images or other resources embedded in your HTML. + + \membersection{wxHtmlListBox::GetSelectedTextBgColour}\label{wxhtmllistboxgetselectedtextbgcolour} \constfunc{wxColour}{GetSelectedTextBgColour}{\param{const wxColour\& }{colBg}} diff --git a/include/wx/htmllbox.h b/include/wx/htmllbox.h index f61360bc53..48e944e1ef 100644 --- a/include/wx/htmllbox.h +++ b/include/wx/htmllbox.h @@ -14,6 +14,10 @@ #include "wx/vlbox.h" // base class +#if wxUSE_FILESYSTEM + #include "wx/filesys.h" +#endif // wxUSE_FILESYSTEM + class WXDLLIMPEXP_HTML wxHtmlCell; class WXDLLIMPEXP_HTML wxHtmlWinParser; class WXDLLIMPEXP_HTML wxHtmlListBoxCache; @@ -66,6 +70,14 @@ public: virtual void RefreshAll(); virtual void SetItemCount(size_t count); + +#if wxUSE_FILESYSTEM + // retrieve the file system used by the wxHtmlWinParser: if you use + // relative paths in your HTML, you should use its ChangePathTo() method + wxFileSystem& GetFileSystem() { return m_filesystem; } + const wxFileSystem& GetFileSystem() const { return m_filesystem; } +#endif // wxUSE_FILESYSTEM + protected: // this method must be implemented in the derived class and should return // the body (i.e. without ) of the HTML for the given item @@ -112,6 +124,11 @@ private: // HTML parser we use wxHtmlWinParser *m_htmlParser; +#if wxUSE_FILESYSTEM + // file system used by m_htmlParser + wxFileSystem m_filesystem; +#endif // wxUSE_FILESYSTEM + // rendering style for the parser which allows us to customize our colours wxHtmlListBoxStyle *m_htmlRendStyle; diff --git a/src/generic/htmllbox.cpp b/src/generic/htmllbox.cpp index 91be6e7ac7..5cc120f75c 100644 --- a/src/generic/htmllbox.cpp +++ b/src/generic/htmllbox.cpp @@ -242,6 +242,7 @@ void wxHtmlListBox::CacheItem(size_t n) const self->m_htmlParser = new wxHtmlWinParser; m_htmlParser->SetDC(new wxClientDC(self)); + m_htmlParser->SetFS(&self->m_filesystem); } wxHtmlContainerCell *cell = (wxHtmlContainerCell *)m_htmlParser->