paysages3d/src/definition/BaseDefinition.h

46 lines
923 B
C
Raw Normal View History

#ifndef BASEDEFINITION_H
#define BASEDEFINITION_H
#include "definition_global.h"
2013-10-30 14:39:56 +00:00
#include <QList>
2013-10-31 16:59:18 +00:00
#include <QString>
2013-10-30 14:39:56 +00:00
#include "PackStream.h" // TODO Delete when c++ migration is done
namespace paysages {
namespace definition {
/**
* @brief Base class for all definition containers
*/
class DEFINITIONSHARED_EXPORT BaseDefinition
{
public:
BaseDefinition(BaseDefinition* parent);
virtual ~BaseDefinition();
virtual void save(PackStream* pack);
virtual void load(PackStream* pack);
2013-10-31 16:59:18 +00:00
virtual void copy(BaseDefinition* destination);
virtual void validate();
inline const QString& getName() {return name;}
void setName(QString name);
2013-10-30 14:39:56 +00:00
protected:
void addChild(BaseDefinition* child);
void removeChild(BaseDefinition* child);
private:
BaseDefinition* parent;
2013-10-30 14:39:56 +00:00
BaseDefinition* root;
2013-10-31 16:59:18 +00:00
QString name;
2013-10-30 14:39:56 +00:00
QList<BaseDefinition*> children;
};
}
}
#endif // BASEDEFINITION_H