const ArrayOfXRCWidgetData& GetWidgetData(){
return m_wdata;
}
- void GenerateHeaderCode(wxFFile& file){
+
+ bool IsRealClass(const wxString& name)
+ {
+ if (name == _T("tool") || name == _T("unknown") ||
+ name == _T("notebookpage") || name == _T("separator") ||
+ name == _T("sizeritem") ||
+ name == _T("wxMenuItem"))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ void GenerateHeaderCode(wxFFile& file)
+ {
file.Write(_T("class ") + m_className + _T(" : public ") + m_parentClassName
+ _T(" {\nprotected:\n"));
size_t i;
- for(i=0;i<m_wdata.Count();++i){
+ for(i=0;i<m_wdata.Count();++i)
+ {
const XRCWidgetData& w = m_wdata.Item(i);
+ if( !IsRealClass(w.GetClass()) ) continue;
+ if( w.GetName().Length() == 0 ) continue;
file.Write(
_T(" ") + w.GetClass() + _T("* ") + w.GetName()
+ _T(";\n"));
}
file.Write(_T("\nprivate:\n void InitWidgetsFromXRC(){\n")
- _T(" wxXmlResource::Get()->LoadObject(this,NULL,\"")
+ _T(" wxXmlResource::Get()->LoadObject(this,NULL,_T(\"")
+ m_className
- + _T("\",\"")
+ + _T("\"), _T(\"")
+ m_parentClassName
- + _T("\");\n"));
- for(i=0;i<m_wdata.Count();++i){
+ + _T("\"));\n"));
+ for(i=0;i<m_wdata.Count();++i)
+ {
const XRCWidgetData& w = m_wdata.Item(i);
+ if( !IsRealClass(w.GetClass()) ) continue;
+ if( w.GetName().Length() == 0 ) continue;
file.Write( _T(" ")
+ w.GetName()
+ _T(" = XRCCTRL(*this,\"")
// Any bitmaps:
if (node->GetName() == _T("bitmap"))
return true;
+
+ if (node->GetName() == _T("icon"))
+ return true;
// URLs in wxHtmlWindow:
if (node->GetName() == _T("url"))
_T(" #pragma hdrstop\n")
_T("#endif\n")
_T("\n")
-_T("#ifndef WX_PRECOMP\n")
-_T(" #include <wx/wx.h>\n")
-_T("#endif\n")
_T("")
_T("#include <wx/filesys.h>\n")
_T("#include <wx/fs_mem.h>\n")
void XmlResApp::GenCPPHeader()
{
- wxString fileSpec = (parOutput.BeforeLast('.')).AfterLast('/');
+ wxString fileSpec = ((parOutput.BeforeLast('.')).AfterLast('/')).AfterLast('\\');
wxString heaFileName = fileSpec + _T(".h");
wxFFile file(heaFileName, wxT("wt"));
size_t lng = file.Length();
snum.Printf(_T("%i"), num);
- output = _T(" xml_res_file_") + snum + _T(" = \"\"\"\\\n");
+ output = _T(" xml_res_file_") + snum + _T(" = '''\\\n");
unsigned char *buffer = new unsigned char[lng];
file.Read(buffer, lng);
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("\\\\");
delete[] buffer;
- output += _T("\"\"\"\n\n");
+ output += _T("'''\n\n");
return output;
}
_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")
);
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"));
}
))
// ...and known to contain translatable string
{
- arr.Add(ConvertText(n->GetContent()));
+ if (!flagGettext ||
+ node->GetPropVal(_T("translate"), _T("1")) != _T("0"))
+ {
+ arr.Add(ConvertText(n->GetContent()));
+ }
}
// subnodes: