#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;
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
syntax highlighted by Code2HTML, v. 0.9.1