summaryrefslogtreecommitdiffstats
path: root/src/qdoc/qdoc/src/qdoc/enumnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/qdoc/src/qdoc/enumnode.h')
-rw-r--r--src/qdoc/qdoc/src/qdoc/enumnode.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/qdoc/qdoc/src/qdoc/enumnode.h b/src/qdoc/qdoc/src/qdoc/enumnode.h
new file mode 100644
index 000000000..47139ae4d
--- /dev/null
+++ b/src/qdoc/qdoc/src/qdoc/enumnode.h
@@ -0,0 +1,49 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef ENUMNODE_H
+#define ENUMNODE_H
+
+#include "access.h"
+#include "node.h"
+#include "typedefnode.h"
+
+#include <QtCore/qglobal.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qset.h>
+#include <QtCore/qstring.h>
+
+QT_BEGIN_NAMESPACE
+
+class Aggregate;
+
+class EnumNode : public Node
+{
+public:
+ EnumNode(Aggregate *parent, const QString &name, bool isScoped = false)
+ : Node(Enum, parent, name), m_isScoped(isScoped)
+ {
+ }
+
+ void addItem(const EnumItem &item);
+ void setFlagsType(TypedefNode *typedefNode);
+ bool hasItem(const QString &name) const { return m_names.contains(name); }
+ bool isScoped() const { return m_isScoped; }
+
+ const QList<EnumItem> &items() const { return m_items; }
+ Access itemAccess(const QString &name) const;
+ const TypedefNode *flagsType() const { return m_flagsType; }
+ QString itemValue(const QString &name) const;
+ Node *clone(Aggregate *parent) override;
+ void setSince(const QString &value, const QString &since);
+
+private:
+ QList<EnumItem> m_items {};
+ QSet<QString> m_names {};
+ const TypedefNode *m_flagsType { nullptr };
+ bool m_isScoped { false };
+};
+
+QT_END_NAMESPACE
+
+#endif // ENUMNODE_H