Logo Search packages:      
Sourcecode: codeblocks version File versions  Download package

projecttemplateloader.h

/*
 * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
 * http://www.gnu.org/licenses/lgpl-3.0.html
 */

#ifndef PROJECTTEMPLATELOADER_H
#define PROJECTTEMPLATELOADER_H

#include "tinyxml/tinyxml.h"
#include "settings.h"

struct FileSetFile
{
      wxString source;
      wxString destination;
      wxString targets;
};
WX_DECLARE_OBJARRAY(FileSetFile, FileSetFileArray);

struct FileSet
{
      wxString name;
      wxString title;
      FileSetFileArray files;
};
WX_DECLARE_OBJARRAY(FileSet, FileSetArray);

struct TemplateOption
{
      wxString name;
      wxString notice;
      int noticeMsgType;
      bool useDefaultCompiler;
      wxString file;
      wxArrayString extraCFlags;
      wxArrayString extraLDFlags;
};
WX_DECLARE_OBJARRAY(TemplateOption, TemplateOptionArray);

class DLLIMPORT ProjectTemplateLoader
{
      public:
            ProjectTemplateLoader();
            virtual ~ProjectTemplateLoader();

        bool Open(const wxString& filename);

            wxString m_Name;
            wxString m_Notice;
            int m_NoticeMsgType;
            wxString m_Title;
            wxString m_Category;
            wxString m_Bitmap;
            FileSetArray m_FileSets;
            TemplateOptionArray m_TemplateOptions;
      protected:
        void DoTemplate(TiXmlElement* parentNode);
        void DoTemplateNotice(TiXmlElement* parentNode);
        void DoFileSet(TiXmlElement* parentNode);
        void DoFileSetFile(TiXmlElement* parentNode, FileSet& fs);
        void DoOption(TiXmlElement* parentNode);
        void DoOptionProject(TiXmlElement* parentNode, TemplateOption& to);
        void DoOptionCompiler(TiXmlElement* parentNode, TemplateOption& to);
        void DoOptionLinker(TiXmlElement* parentNode, TemplateOption& to);
      private:
};

#endif // PROJECTTEMPLATELOADER_H


Generated by  Doxygen 1.6.0   Back to index