return top;
}
-bool wxHtmlWinParser::CanOpenURL(const wxString& url) const
+wxFSFile *wxHtmlWinParser::OpenURL(wxHtmlURLType type,
+ const wxString& url) const
{
// FIXME - normalize the URL to full path before passing to
// OnOpeningURL!!
if ( m_Window )
- return m_Window->OnOpeningURL(url);
- else
- return TRUE;
+ {
+ wxString myurl(url);
+ wxHtmlOpeningStatus status;
+ for (;;)
+ {
+ wxString redirect;
+ status = m_Window->OnOpeningURL(type, myurl, &redirect);
+ if ( status != wxHTML_REDIRECT )
+ break;
+
+ myurl = redirect;
+ }
+
+ if ( status == wxHTML_BLOCK )
+ return NULL;
+
+ return GetFS()->OpenFile(myurl);
+ }
+
+ return wxHtmlParser::OpenURL(type, url);
}
void wxHtmlWinParser::AddText(const wxChar* txt)
IMPLEMENT_ABSTRACT_CLASS(wxHtmlWinTagHandler, wxHtmlTagHandler)
-
-
//-----------------------------------------------------------------------------
// wxHtmlTagsModule
//-----------------------------------------------------------------------------
+// NB: This is *NOT* winpars.cpp's initialization and shutdown code!!
+// This module is an ancestor for tag handlers modules defined
+// in m_*.cpp files with TAGS_MODULE_BEGIN...TAGS_MODULE_END construct.
+//
+// Do not add any winpars.cpp shutdown or initialization code to it,
+// create a new module instead!
IMPLEMENT_DYNAMIC_CLASS(wxHtmlTagsModule, wxModule)
-
bool wxHtmlTagsModule::OnInit()
{
wxHtmlWinParser::AddModule(this);
return TRUE;
}
-
-
void wxHtmlTagsModule::OnExit()
{
wxHtmlWinParser::RemoveModule(this);
}
+
#endif