X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/78d14f80e9a72041ede52c30d912ec5cef21b1b3..8e19598f7fb35ba2aeed3d672d4c7c5cfed0cbf6:/src/xrc/xh_html.cpp diff --git a/src/xrc/xh_html.cpp b/src/xrc/xh_html.cpp index affa03f68f..efdc7c727c 100644 --- a/src/xrc/xh_html.cpp +++ b/src/xrc/xh_html.cpp @@ -1,16 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: xh_html.cpp -// Purpose: XML resource for wxHtmlWindow +// Name: src/xrc/xh_html.cpp +// Purpose: XRC resource for wxHtmlWindow // Author: Bob Mitchell // Created: 2000/03/21 // RCS-ID: $Id$ // Copyright: (c) 2000 Bob Mitchell and Verant Interactive // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xh_html.h" -#endif // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -19,54 +15,67 @@ #pragma hdrstop #endif -#include "wx/xrc/xh_html.h" +#if wxUSE_XRC && wxUSE_HTML -#if wxUSE_HTML +#include "wx/xrc/xh_html.h" #include "wx/html/htmlwin.h" +#include "wx/filesys.h" +IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindowXmlHandler, wxXmlResourceHandler) -wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler() -: wxXmlResourceHandler() +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); + XRC_ADD_STYLE(wxHW_NO_SELECTION); AddWindowStyles(); } wxObject *wxHtmlWindowXmlHandler::DoCreateResource() -{ - wxHtmlWindow *control = new wxHtmlWindow(m_parentAsWindow, - GetID(), - GetPosition(), GetSize(), - GetStyle( wxT("style" ), wxHW_SCROLLBAR_AUTO), - GetName() - ); - - if( HasParam( wxT("borders") )) +{ + XRC_MAKE_INSTANCE(control, wxHtmlWindow) + + control->Create(m_parentAsWindow, + GetID(), + GetPosition(), GetSize(), + GetStyle(wxT("style"), wxHW_SCROLLBAR_AUTO), + GetName()); + + 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); - + return control; } - - bool wxHtmlWindowXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxHtmlWindow")); } -#endif // wxUSE_HTML +#endif // wxUSE_XRC && wxUSE_HTML