summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/xmlgen.cpp14
-rw-r--r--templates/xml/compound.xsd1
-rw-r--r--testing/018/018__def_8c.xml3
-rw-r--r--testing/068/068__typed__enum_8cpp.xml25
-rw-r--r--testing/068_typed_enum.cpp7
5 files changed, 49 insertions, 1 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 28809db..2222e46 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -670,6 +670,13 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
t << "\"";
}
+ if (md->memberType() == MemberType_Enumeration)
+ {
+ t << " strong=\"";
+ if (md->isStrong()) t << "yes"; else t << "no";
+ t << "\"";
+ }
+
if (md->memberType() == MemberType_Variable)
{
//ArgumentList *al = md->argumentList();
@@ -801,6 +808,13 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
t << " <argsstring>" << convertToXML(md->argsString()) << "</argsstring>" << endl;
}
+ if (md->memberType() == MemberType_Enumeration)
+ {
+ t << " <type>";
+ linkifyText(TextGeneratorXMLImpl(t),def,md->getBodyDef(),md,md->enumBaseType());
+ t << "</type>" << endl;
+ }
+
t << " <name>" << convertToXML(md->name()) << "</name>" << endl;
if (md->memberType() == MemberType_Property)
diff --git a/templates/xml/compound.xsd b/templates/xml/compound.xsd
index 82538e6..b4356ac 100644
--- a/templates/xml/compound.xsd
+++ b/templates/xml/compound.xsd
@@ -147,6 +147,7 @@
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="prot" type="DoxProtectionKind" />
<xsd:attribute name="static" type="DoxBool" />
+ <xsd:attribute name="strong" type="DoxBool" use="optional"/>
<xsd:attribute name="const" type="DoxBool" use="optional"/>
<xsd:attribute name="explicit" type="DoxBool" use="optional"/>
<xsd:attribute name="inline" type="DoxBool" use="optional"/>
diff --git a/testing/018/018__def_8c.xml b/testing/018/018__def_8c.xml
index 8518666..5f42767 100644
--- a/testing/018/018__def_8c.xml
+++ b/testing/018/018__def_8c.xml
@@ -17,7 +17,8 @@
</memberdef>
</sectiondef>
<sectiondef kind="enum">
- <memberdef kind="enum" id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130a" prot="public" static="no">
+ <memberdef kind="enum" id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130a" prot="public" static="no" strong="no">
+ <type/>
<name>E</name>
<enumvalue id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130aab1710e6a49014ba389d57c8753c530f4" prot="public">
<name>E1</name>
diff --git a/testing/068/068__typed__enum_8cpp.xml b/testing/068/068__typed__enum_8cpp.xml
new file mode 100644
index 0000000..880bf14
--- /dev/null
+++ b/testing/068/068__typed__enum_8cpp.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
+ <compounddef id="068__typed__enum_8cpp" kind="file" language="C++">
+ <compoundname>068_typed_enum.cpp</compoundname>
+ <sectiondef kind="enum">
+ <memberdef kind="enum" id="068__typed__enum_8cpp_1aa72902e6181db009a6a84502f81612c2" prot="public" static="no" strong="yes">
+ <type>unsigned short</type>
+ <name>E</name>
+ <briefdescription>
+ <para>A strongly-typed enum. </para>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ <inbodydescription>
+ </inbodydescription>
+ <location file="068_typed_enum.cpp" line="7" column="1" bodyfile="068_typed_enum.cpp" bodystart="7" bodyend="7"/>
+ </memberdef>
+ </sectiondef>
+ <briefdescription>
+ </briefdescription>
+ <detaileddescription>
+ </detaileddescription>
+ <location file="068_typed_enum.cpp"/>
+ </compounddef>
+</doxygen>
diff --git a/testing/068_typed_enum.cpp b/testing/068_typed_enum.cpp
new file mode 100644
index 0000000..44c4123
--- /dev/null
+++ b/testing/068_typed_enum.cpp
@@ -0,0 +1,7 @@
+// objective: test underlying type and strongness for an enum
+// check: 068__typed__enum_8cpp.xml
+
+/** \file */
+
+/** @brief A strongly-typed enum */
+enum class E: unsigned short {};