diff options
-rw-r--r-- | src/xmlgen.cpp | 14 | ||||
-rw-r--r-- | templates/xml/compound.xsd | 1 | ||||
-rw-r--r-- | testing/018/018__def_8c.xml | 3 | ||||
-rw-r--r-- | testing/068/068__typed__enum_8cpp.xml | 25 | ||||
-rw-r--r-- | testing/068_typed_enum.cpp | 7 |
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 {}; |