From b27a4ef40d0fe9e86638f97bbf96dcbe9be3573c Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 29 Sep 2004 00:15:21 +0000 Subject: [PATCH] Updates for how the Python code is generated git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/wxrc/wxrc.cpp | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/utils/wxrc/wxrc.cpp b/utils/wxrc/wxrc.cpp index 92be406592..90991340f3 100644 --- a/utils/wxrc/wxrc.cpp +++ b/utils/wxrc/wxrc.cpp @@ -654,7 +654,7 @@ static wxString FileToPythonArray(wxString filename, int num) tmp = (wxChar)c; linelng = 0; } - else if (c < 32 || c > 127) + else if (c < 32 || c > 127 || c == '"') tmp.Printf(_T("\\x%02x"), c); else if (c == '\\') tmp = _T("\\\\"); @@ -689,8 +689,8 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist) _T("#\n") _T("# This file was automatically generated by wxrc, do not edit by hand.\n") _T("#\n\n") - _T("from wxPython.wx import *\n") - _T("from wxPython.xrc import *\n\n") + _T("import wx\n") + _T("import wx.xrc\n\n") ); @@ -700,12 +700,35 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist) file.Write( FileToPythonArray(parOutputPath + wxFILE_SEP_PATH + flist[i], i)); + file.Write( + _T(" # check if the memory filesystem handler has been loaded yet, and load it if not\n") + _T(" wx.MemoryFSHandler.AddFile('XRC_resource/dummy_file', 'dummy value')\n") + _T(" fsys = wx.FileSystem()\n") + _T(" f = fsys.OpenFile('memory:XRC_resource/dummy_file')\n") + _T(" wx.MemoryFSHandler.RemoveFile('XRC_resource/dummy_file')\n") + _T(" if f is not None:\n") + _T(" f.Destroy()\n") + _T(" else:\n") + _T(" wx.FileSystem.AddHandler(wx.MemoryFSHandler())\n") + _T("\n") + _T(" # load all the strings as memory files and load into XmlRes\n") + ); + + for (i = 0; i < flist.Count(); i++) { wxString s; - s.Printf(_T(" wxXmlResource_Get().LoadFromString(xml_res_file_%i)\n"), i); + s.Printf(_T(" wx.MemoryFSHandler.AddFile('XRC_resource/") + flist[i] + + _T("', xml_res_file_%i)\n"), i); file.Write(s); } + for (i = 0; i < parFiles.Count(); i++) + { + file.Write(_T(" wx.xrc.XmlResource.Get().Load('memory:XRC_resource/") + + GetInternalFileName(parFiles[i], flist) + _T("')\n")); + } + + file.Write(_T("\n")); }