コード例 #1
0
ファイル: wxrc.cpp プロジェクト: EdgarTx/wx
void XmlResApp::MakePackageCPP(const wxArrayString& flist)
{
    wxFFile file(parOutput, wxT("wt"));
    size_t i;

    if (flagVerbose)
        wxPrintf(_T("creating C++ source file ") + parOutput +  _T("...\n"));

    file.Write(_T("")
_T("//\n")
_T("// This file was automatically generated by wxrc, do not edit by hand.\n")
_T("//\n\n")
_T("#include <wx/wxprec.h>\n")
_T("\n")
_T("#ifdef __BORLANDC__\n")
_T("    #pragma hdrstop\n")
_T("#endif\n")
_T("\n")
_T("")
_T("#include <wx/filesys.h>\n")
_T("#include <wx/fs_mem.h>\n")
_T("#include <wx/xrc/xmlres.h>\n")
_T("#include <wx/xrc/xh_all.h>\n")
_T("\n")
_T("#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805\n")
_T("    #define XRC_ADD_FILE(name, data, size, mime) \\\n")
_T("        wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)\n")
_T("#else\n")
_T("    #define XRC_ADD_FILE(name, data, size, mime) \\\n")
_T("        wxMemoryFSHandler::AddFile(name, data, size)\n")
_T("#endif\n")
_T("\n"));

    for (i = 0; i < flist.Count(); i++)
        file.Write(
              FileToCppArray(parOutputPath + wxFILE_SEP_PATH + flist[i], i));

    file.Write(_T("")
_T("void ") + parFuncname + wxT("()\n")
_T("{\n")
_T("\n")
_T("    // Check for memory FS. If not present, load the handler:\n")
_T("    {\n")
_T("        wxMemoryFSHandler::AddFile(wxT(\"XRC_resource/dummy_file\"), wxT(\"dummy one\"));\n")
_T("        wxFileSystem fsys;\n")
_T("        wxFSFile *f = fsys.OpenFile(wxT(\"memory:XRC_resource/dummy_file\"));\n")
_T("        wxMemoryFSHandler::RemoveFile(wxT(\"XRC_resource/dummy_file\"));\n")
_T("        if (f) delete f;\n")
_T("        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n")
_T("    }\n")
_T("\n"));

    for (i = 0; i < flist.Count(); i++)
    {
        wxString s;

        wxString mime;
        wxString ext = wxFileName(flist[i]).GetExt();
        if ( ext.Lower() == _T("xrc") )
            mime = _T("text/xml");
#if wxUSE_MIMETYPE
        else
        {
            wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext);
            if ( ft )
            {
                ft->GetMimeType(&mime);
                delete ft;
            }
        }
#endif // wxUSE_MIMETYPE

        s.Printf(_T("    XRC_ADD_FILE(wxT(\"XRC_resource/") + flist[i] +
                 _T("\"), xml_res_file_%i, xml_res_size_%i, _T(\"%s\"));\n"),
                 i, i, mime.c_str());
        file.Write(s);
    }

    for (i = 0; i < parFiles.Count(); i++)
    {
        file.Write(_T("    wxXmlResource::Get()->Load(wxT(\"memory:XRC_resource/") +
                   GetInternalFileName(parFiles[i], flist) + _T("\"));\n"));
    }

    file.Write(_T("}\n"));


}
コード例 #2
0
ファイル: wxrc.cpp プロジェクト: BackupTheBerlios/wxbeos-svn
void XmlResApp::MakePackageCPP(const wxArrayString& flist)
{
    wxFFile file(parOutput, wxT("wt"));
    size_t i;

    if (flagVerbose)
        wxPrintf(_T("creating C++ source file ") + parOutput +  _T("...\n"));

    file.Write(_T("")
_T("//\n")
_T("// This file was automatically generated by wxrc, do not edit by hand.\n")
_T("//\n\n")
_T("#include <wx/wxprec.h>\n")
_T("\n")
_T("#ifdef __BORLANDC__\n")
_T("    #pragma hdrstop\n")
_T("#endif\n")
_T("\n")
_T("")
_T("#include <wx/filesys.h>\n")
_T("#include <wx/fs_mem.h>\n")
_T("#include <wx/xrc/xmlres.h>\n")
_T("#include <wx/xrc/xh_all.h>\n")
_T("\n"));

    for (i = 0; i < flist.Count(); i++)
        file.Write(
              FileToCppArray(parOutputPath + wxFILE_SEP_PATH + flist[i], i));

    file.Write(_T("")
_T("void ") + parFuncname + wxT("()\n")
_T("{\n")
_T("\n")
_T("    // Check for memory FS. If not present, load the handler:\n")
_T("    {\n")
_T("        wxMemoryFSHandler::AddFile(wxT(\"XRC_resource/dummy_file\"), wxT(\"dummy one\"));\n")
_T("        wxFileSystem fsys;\n")
_T("        wxFSFile *f = fsys.OpenFile(wxT(\"memory:XRC_resource/dummy_file\"));\n")
_T("        wxMemoryFSHandler::RemoveFile(wxT(\"XRC_resource/dummy_file\"));\n")
_T("        if (f) delete f;\n")
_T("        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n")
_T("    }\n")
_T("\n"));

    for (i = 0; i < flist.Count(); i++)
    {
        wxString s;
        s.Printf(_T("    wxMemoryFSHandler::AddFile(wxT(\"XRC_resource/") + flist[i] +
                 _T("\"), xml_res_file_%i, xml_res_size_%i);\n"), i, i);
        file.Write(s);
    }

    for (i = 0; i < parFiles.Count(); i++)
    {
        file.Write(_T("    wxXmlResource::Get()->Load(wxT(\"memory:XRC_resource/") +
                   GetInternalFileName(parFiles[i], flist) + _T("\"));\n"));
    }

    file.Write(_T("}\n"));


}
コード例 #3
0
ファイル: wxrc.cpp プロジェクト: eranif/codelite
void wxcXmlResourceCmp::MakePackageCPP(const wxArrayString& flist)
{
    wxFFile file(m_outputCppFile, wxT("wt"));
    unsigned i;

    file.Write(""
               "//\n"
               "// This file was automatically generated by wxrc, do not edit by hand.\n"
               "//\n\n"
               "#include <wx/wxprec.h>\n"
               "\n"
               "#ifdef __BORLANDC__\n"
               "    #pragma hdrstop\n"
               "#endif\n"
               "\n"
               ""
               "#include <wx/filesys.h>\n"
               "#include <wx/fs_mem.h>\n"
               "#include <wx/xrc/xmlres.h>\n"
               "#include <wx/xrc/xh_all.h>\n"
               "\n"
               "#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805\n"
               "    #define XRC_ADD_FILE(name, data, size, mime) \\\n"
               "        wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime)\n"
               "#else\n"
               "    #define XRC_ADD_FILE(name, data, size, mime) \\\n"
               "        wxMemoryFSHandler::AddFile(name, data, size)\n"
               "#endif\n"
               "\n");

    for(i = 0; i < flist.GetCount(); i++)
        file.Write(FileToCppArray(m_outputPath + wxFILE_SEP_PATH + flist[i], i));

    file.Write(""
               "void " +
               m_functionName +
               "()\n"
               "{\n"
               "\n"
               "    // Check for memory FS. If not present, load the handler:\n"
               "    {\n"
               "        wxMemoryFSHandler::AddFile(wxT(\"XRC_resource/dummy_file\"), wxT(\"dummy one\"));\n"
               "        wxFileSystem fsys;\n"
               "        wxFSFile *f = fsys.OpenFile(wxT(\"memory:XRC_resource/dummy_file\"));\n"
               "        wxMemoryFSHandler::RemoveFile(wxT(\"XRC_resource/dummy_file\"));\n"
               "        if (f) delete f;\n");
    if(wxcProjectMetadata::Get().IsAddHandlers()) {
        file.Write("        else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase);\n");
    }
    file.Write("    }\n\n");
    for(i = 0; i < flist.GetCount(); i++) {
        wxString s;

        wxString mime;
        wxString ext = wxFileName(flist[i]).GetExt();
        if(ext.Lower() == wxT("xrc")) mime = wxT("text/xml");
#if wxUSE_MIMETYPE
        else {
            wxFileType* ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext);
            if(ft) {
                ft->GetMimeType(&mime);
                delete ft;
            }
        }
#endif // wxUSE_MIMETYPE

        s.Printf("    XRC_ADD_FILE(wxT(\"XRC_resource/" + flist[i] +
                     "\"), xml_res_file_%u, xml_res_size_%u, wxT(\"%s\"));\n",
                 i, i, mime.c_str());
        file.Write(s);
    }

    file.Write("    wxXmlResource::Get()->Load(wxT(\"memory:XRC_resource/" + GetInternalFileName(m_xrcFile, flist) +
               "\"));\n");
    file.Write("}\n");
}