// CAtlResourceGenerator.h
//

#if !defined (_ATLRESOURCEGENERATPR_H_)
#define _ATLRESOURCEGENERATPR_H_

#include "AtlBaseGenerator.h"
#include "cmString.h"

class CXmlClassInfo;

using namespace std;

class CAtlResourceGenerator: public CAtlBaseGenerator
{
public:
	CAtlResourceGenerator();
	virtual ~CAtlResourceGenerator();

	void Generate();

protected:
	virtual void Head_generateHeader();
	virtual void Head_generateIfDefBegin();
	virtual void Head_generateGlobalResource();
	virtual void Head_generateClassResource(CXmlClassInfo* classInfo, cmString parentPath, int& count);
	virtual void Head_generateIfDefEnd();
	virtual void GenerateTreeIconsHeaderFile();
	virtual void GenerateTreeResourceFile();
	void GenerateRegistryResourceFile();
	void GenerateRgsClassId(CXmlClassInfo* classInfo, cmString& code);

	cmString ComposeLine(const cmString& define, const cmString& number, const cmString& comment);

	cmString headCode_;
	long resCounter_;
};

#endif //!defined (_ATLRESOURCEGENERATPR_H_)
