// XmlProject.h: interface for the CXmlProject class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(_XMLPROJECT_H_)
#define _XMLPROJECT_H_

#include "XmlSerializable.h"
#include "XmlProjectSettings.h"
#include "XmlProjectIcons.h"
#include "XmlMainDialog.h"

class CXmlClassInfo;

class CXmlProject : public CXmlBaseElement
{
public:
	CXmlProject();
	virtual ~CXmlProject();

	// implementation of CXmlSerializable
	//
public:
	virtual bool BuildFromXml(IXMLDOMNode* node);
	virtual bool AppendToDOMDocument(IXMLDOMDocument2* xmlDoc, IXMLDOMElement* parentElement);	

	CXmlProjectSettings* GetProjectSettings();
	CXmlClassInfo* GetRootElement();
	CXmlProjectIcons* GetProjectIcons();
	CXmlMainDialog* GetMainDialog();

	bool IsEmpty();
	void Clear();

protected:
	
	
	void SetDefaults();
	virtual cmString GetXmlNodeName() {return _T("Project");}

	CXmlProjectSettings projectSettings_;
	CXmlClassInfo* rootElement_;
	CXmlProjectIcons icons_;
	CXmlMainDialog mainDialog_;
	cmString editorVersion_;
};

#endif // !defined(_XMLPROJECT_H_)
