// XmlProjectSettings_VC7.h
//

#if !defined (_XMLPROJECTSETTINGS_CSHARP_H_)
#define _XMLPROJECTSETTINGS_CSHARP_H_

#include <string>
#include "XmlSerializable.h"
#include "XmlProjectPostGen.h"
#include "enums.h"

using namespace std;

class CXmlProjectSettings_CSharp: public CXmlSerializable
{
public:
	CXmlProjectSettings_CSharp();
	virtual ~CXmlProjectSettings_CSharp();

	// implementation of CXmlSerializable
public:
	virtual bool BuildFromXml(IXMLDOMNode* node);
	virtual bool AppendToDOMDocument(IXMLDOMDocument2* xmlDoc, IXMLDOMElement* parentElement);	
	
	// get/set
	//
	cmString GetGenerationPath() const;
	void SetGenerationPath(const cmString& generationPath);

	cmString GetClassPrefix() const;
	void SetClassPrefix(const cmString& classPrefix);

	bool GetEnabled() const;
	void SetEnabled(bool enabled);

	static cmString GetXmlNodeName(){return _T("ProjectSettings_CSharp");}

	void SetDefaults();
	void Clear();

	CXmlProjectPostGen* GetPostGenerationStep();

protected:

	bool enabled_;						// C# Code Generation enable
	cmString generationPath_;			// where to put generate file
	cmString classPrefix_;				// class prefix

	CXmlProjectPostGen postGen_;
};
	
#endif //!defined (_XMLPROJECTSETTINGS_CSHARP_H_)