}
node = node -> GetNext();
}
- if (src == wxEmptyString) src = m_DefaultFilter.ReadFile(*f);
+ if (src == wxEmptyString) {
+ if (m_DefaultFilter == NULL) m_DefaultFilter = GetDefaultFilter();
+ src = m_DefaultFilter -> ReadFile(*f);
+ }
m_FS -> ChangePathTo(f -> GetLocation());
rt_val = SetPage(src);
wxList wxHtmlWindow::m_Filters;
-wxHtmlFilterPlainText wxHtmlWindow::m_DefaultFilter;
+wxHtmlFilter *wxHtmlWindow::m_DefaultFilter = NULL;
+
+void wxHtmlWindow::CleanUpStatics()
+{
+ if (m_DefaultFilter) delete m_DefaultFilter;
+ m_DefaultFilter = NULL;
+}
+
+
void wxHtmlWindow::AddFilter(wxHtmlFilter *filter)
{
+// A module to allow initialization/cleanup
+// without calling these functions from app.cpp or from
+// the user's application.
+
+class wxHtmlWinModule: public wxModule
+{
+DECLARE_DYNAMIC_CLASS(wxHtmlWinModule)
+public:
+ wxHtmlWinModule() : wxModule() {}
+ bool OnInit() { return TRUE; }
+ void OnExit() { wxHtmlWindow::CleanUpStatics(); }
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxHtmlWinModule, wxModule)
+