1///////////////////////////////////////////////////////////////////////////// 2// Name: xh_html.cpp 3// Purpose: XRC resource for wxHtmlWindow 4// Author: Bob Mitchell 5// Created: 2000/03/21 6// RCS-ID: $Id: xh_html.cpp 35650 2005-09-23 12:56:45Z MR $ 7// Copyright: (c) 2000 Bob Mitchell and Verant Interactive 8// Licence: wxWindows licence 9///////////////////////////////////////////////////////////////////////////// 10 11// For compilers that support precompilation, includes "wx.h". 12#include "wx/wxprec.h" 13 14#ifdef __BORLANDC__ 15 #pragma hdrstop 16#endif 17 18#if wxUSE_XRC && wxUSE_HTML 19 20#include "wx/xrc/xh_html.h" 21 22#include "wx/html/htmlwin.h" 23#include "wx/filesys.h" 24 25IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindowXmlHandler, wxXmlResourceHandler) 26 27wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler() 28: wxXmlResourceHandler() 29{ 30 XRC_ADD_STYLE(wxHW_SCROLLBAR_NEVER); 31 XRC_ADD_STYLE(wxHW_SCROLLBAR_AUTO); 32 XRC_ADD_STYLE(wxHW_NO_SELECTION); 33 AddWindowStyles(); 34} 35 36wxObject *wxHtmlWindowXmlHandler::DoCreateResource() 37{ 38 XRC_MAKE_INSTANCE(control, wxHtmlWindow) 39 40 control->Create(m_parentAsWindow, 41 GetID(), 42 GetPosition(), GetSize(), 43 GetStyle(wxT("style"), wxHW_SCROLLBAR_AUTO), 44 GetName()); 45 46 if (HasParam(wxT("borders"))) 47 { 48 control->SetBorders(GetDimension(wxT("borders"))); 49 } 50 51 if (HasParam(wxT("url"))) 52 { 53 wxString url = GetParamValue(wxT("url")); 54 wxFileSystem& fsys = GetCurFileSystem(); 55 56 wxFSFile *f = fsys.OpenFile(url); 57 if (f) 58 { 59 control->LoadPage(f->GetLocation()); 60 delete f; 61 } 62 else 63 control->LoadPage(url); 64 } 65 66 else if (HasParam(wxT("htmlcode"))) 67 { 68 control->SetPage(GetText(wxT("htmlcode"))); 69 } 70 71 SetupWindow(control); 72 73 return control; 74} 75 76bool wxHtmlWindowXmlHandler::CanHandle(wxXmlNode *node) 77{ 78 return IsOfClass(node, wxT("wxHtmlWindow")); 79} 80 81#endif // wxUSE_XRC && wxUSE_HTML 82