X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/78d14f80e9a72041ede52c30d912ec5cef21b1b3..4b1f929cc3421e43409f7d62260bf9ba0ffc75ab:/src/xrc/xh_html.cpp diff --git a/src/xrc/xh_html.cpp b/src/xrc/xh_html.cpp index affa03f68f..183e0ae5ef 100644 --- a/src/xrc/xh_html.cpp +++ b/src/xrc/xh_html.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: xh_html.cpp -// Purpose: XML resource for wxHtmlWindow +// Purpose: XRC resource for wxHtmlWindow // Author: Bob Mitchell // Created: 2000/03/21 // RCS-ID: $Id$ @@ -24,37 +24,50 @@ #if wxUSE_HTML #include "wx/html/htmlwin.h" +#include "wx/filesys.h" wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler() : wxXmlResourceHandler() { - ADD_STYLE( wxHW_SCROLLBAR_NEVER ); - ADD_STYLE( wxHW_SCROLLBAR_AUTO ); + XRC_ADD_STYLE(wxHW_SCROLLBAR_NEVER); + XRC_ADD_STYLE(wxHW_SCROLLBAR_AUTO); AddWindowStyles(); } wxObject *wxHtmlWindowXmlHandler::DoCreateResource() -{ - wxHtmlWindow *control = new wxHtmlWindow(m_parentAsWindow, - GetID(), - GetPosition(), GetSize(), - GetStyle( wxT("style" ), wxHW_SCROLLBAR_AUTO), - GetName() - ); +{ + XRC_MAKE_INSTANCE(control, wxHtmlWindow) + + control->Create(m_parentAsWindow, + GetID(), + GetPosition(), GetSize(), + GetStyle(wxT("style"), wxHW_SCROLLBAR_AUTO), + GetName()); - if( HasParam( wxT("borders") )) + if (HasParam(wxT("borders"))) { - control->SetBorders( GetDimension( wxT("borders" ))); + control->SetBorders(GetDimension(wxT("borders"))); } - if( HasParam( wxT("url") )) + if (HasParam(wxT("url"))) { - control->LoadPage( GetParamValue( wxT("url" ))); + wxString url = GetParamValue(wxT("url")); + wxFileSystem& fsys = GetCurFileSystem(); + + wxFSFile *f = fsys.OpenFile(url); + if (f) + { + control->LoadPage(f->GetLocation()); + delete f; + } + else + control->LoadPage(url); } - else if( HasParam( wxT("htmlcode") )) + + else if (HasParam(wxT("htmlcode"))) { - control->SetPage( GetText(wxT("htmlcode")) ); + control->SetPage(GetText(wxT("htmlcode"))); } SetupWindow(control); @@ -62,8 +75,6 @@ wxObject *wxHtmlWindowXmlHandler::DoCreateResource() return control; } - - bool wxHtmlWindowXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxHtmlWindow"));