From c068f22329d5cc722622a2183bbb22eef2093df7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Aug 2026 11:16:07 +0200 Subject: initial import --- tool_src/QvLib/QvGroup.cpp | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tool_src/QvLib/QvGroup.cpp (limited to 'tool_src/QvLib/QvGroup.cpp') diff --git a/tool_src/QvLib/QvGroup.cpp b/tool_src/QvLib/QvGroup.cpp new file mode 100644 index 0000000..96795c5 --- /dev/null +++ b/tool_src/QvLib/QvGroup.cpp @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#include + +QV_NODE_SOURCE(QvGroup); + +QvGroup::QvGroup() +{ + children = new QvChildList(); + QV_NODE_CONSTRUCTOR(QvGroup); + isBuiltIn = TRUE; +} + +QvGroup::~QvGroup() +{ + delete children; +} + +QvNode * +QvGroup::getChild(int index) const +{ + return(*children)[index]; +} + +int +QvGroup::getNumChildren() const +{ + return children->getLength(); +} + +QvChildList * +QvGroup::getChildren() const +{ + return children; +} + +QvBool +QvGroup::readInstance(QvInput *in) +{ + QvName typeString; + QvFieldData *fieldData = getFieldData(); + + if (! isBuiltIn) { + if (in->read(typeString, TRUE)) { + if (typeString == "fields") { + if (! fieldData->readFieldTypes(in, this)) { + QvReadError::post(in, "Bad field specifications for node"); + return FALSE; + } + } + else + in->putBack(typeString.getString()); + } + } + + return (fieldData->read(in, this, FALSE) && readChildren(in)); +} + +QvBool +QvGroup::readChildren(QvInput *in) +{ + QvNode *child; + QvBool ret = TRUE; + + while (TRUE) { + if (read(in, child)) { + if (child != NULL) + children->append(child); + else + break; + } + else { + ret = FALSE; + break; + } + } + + return ret; +} -- cgit v1.2.3