// XmlProjectSettings.h
//

#if !defined (_XMLPROJECTSETTINGS_H_)
#define _XMLPROJECTSETTINGS_H_

#include <string>
#include "enums.h"
#include "XmlSerializable.h"
#include "XmlProjectSettings_Cpp.h"
#include "XmlProjectSettings_Atl.h"
#include "XmlProjectSettings_CSharp.h"

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

	// implementation of CXmlSerializable
public:
	virtual bool BuildFromXml(IXMLDOMNode* node);
	virtual bool AppendToDOMDocument(IXMLDOMDocument2* xmlDoc, IXMLDOMElement* parentElement);	
	
	CXmlProjectSettings_Cpp* GetCppSettings();
	CXmlProjectSettings_Atl* GetAtlSettings();
	CXmlProjectSettings_CSharp* GetCSharpSettings();

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

	void SetDefaults();
	void Clear();

protected:

	CXmlProjectSettings_Cpp cppSettings_;
	CXmlProjectSettings_Atl atlSettings_;
	CXmlProjectSettings_CSharp cSharpSettings_;
};
	
#endif //!defined (_XMLPROJECTSETTINGS_H_)