1 /******************************************************************************
3 * Copyright (C) 1997-2015 by Dimitri van Heesch.
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
23 * @brief This file contains a number of basic enums and types.
26 /** Protection level of members */
27 enum Protection { Public, Protected, Private, Package } ;
29 /** Virtualness of a member. */
30 enum Specifier { Normal, Virtual, Pure } ;
33 enum MethodTypes { Method, Signal, Slot, DCOP, Property, Event };
35 /** Type of member relation */
36 enum RelatesType { Simple, Duplicate, MemberOf };
38 /** Kind of member relationship */
39 enum Relationship { Member, Related, Foreign };
41 /** Language as given by extension */
44 SrcLangExt_Unknown = 0x00000,
45 SrcLangExt_IDL = 0x00008,
46 SrcLangExt_Java = 0x00010,
47 SrcLangExt_CSharp = 0x00020,
48 SrcLangExt_D = 0x00040,
49 SrcLangExt_PHP = 0x00080,
50 SrcLangExt_ObjC = 0x00100,
51 SrcLangExt_Cpp = 0x00200,
52 SrcLangExt_JS = 0x00400,
53 SrcLangExt_Python = 0x00800,
54 SrcLangExt_Fortran = 0x01000,
55 SrcLangExt_VHDL = 0x02000,
56 SrcLangExt_XML = 0x04000,
57 SrcLangExt_Tcl = 0x08000,
58 SrcLangExt_Markdown = 0x10000,
59 SrcLangExt_SQL = 0x20000,
60 SrcLangExt_Slice = 0x40000
66 /** Grouping priority */
70 GROUPING_AUTO_WEAK = GROUPING_LOWEST, //!< membership in group was defined via \@weakgroup
71 GROUPING_AUTO_ADD, //!< membership in group was defined via \@add[to]group
72 GROUPING_AUTO_DEF, //!< membership in group was defined via \@defgroup
73 GROUPING_AUTO_HIGHEST = GROUPING_AUTO_DEF,
74 GROUPING_INGROUP, //!< membership in group was defined by \@ingroup
75 GROUPING_HIGHEST = GROUPING_INGROUP
78 static const char *getGroupPriName( GroupPri_t priority )
82 case GROUPING_AUTO_WEAK:
84 case GROUPING_AUTO_ADD:
86 case GROUPING_AUTO_DEF:
88 case GROUPING_INGROUP:
94 Grouping( const char *gn, GroupPri_t p ) : groupname(gn), pri(p) {}
95 Grouping( const Grouping &g ) : groupname(g.groupname), pri(g.pri) {}
96 QCString groupname; //!< name of the group
97 GroupPri_t pri; //!< priority of this definition
109 MemberListType_privateLists = 0x0800,
110 MemberListType_detailedLists = 0x1000,
111 MemberListType_declarationLists = 0x2000,
112 MemberListType_documentationLists = 0x4000,
114 MemberListType_pubMethods = 0,
115 MemberListType_proMethods = 1,
116 MemberListType_pacMethods = 2,
117 MemberListType_priMethods = 3 + MemberListType_privateLists,
118 MemberListType_pubStaticMethods = 4,
119 MemberListType_proStaticMethods = 5,
120 MemberListType_pacStaticMethods = 6,
121 MemberListType_priStaticMethods = 7 + MemberListType_privateLists,
122 MemberListType_pubSlots = 8,
123 MemberListType_proSlots = 9,
124 MemberListType_priSlots = 10 + MemberListType_privateLists,
125 MemberListType_pubAttribs = 11,
126 MemberListType_proAttribs = 12,
127 MemberListType_pacAttribs = 13,
128 MemberListType_priAttribs = 14 + MemberListType_privateLists,
129 MemberListType_pubStaticAttribs = 15,
130 MemberListType_proStaticAttribs = 16,
131 MemberListType_pacStaticAttribs = 17,
132 MemberListType_priStaticAttribs = 18 + MemberListType_privateLists,
133 MemberListType_pubTypes = 19,
134 MemberListType_proTypes = 20,
135 MemberListType_pacTypes = 21,
136 MemberListType_priTypes = 22 + MemberListType_privateLists,
137 MemberListType_related = 23,
138 MemberListType_signals = 24,
139 MemberListType_friends = 25,
140 MemberListType_dcopMethods = 26,
141 MemberListType_properties = 27,
142 MemberListType_events = 28,
144 MemberListType_typedefMembers = 29 + MemberListType_detailedLists,
145 MemberListType_enumMembers = 30 + MemberListType_detailedLists,
146 MemberListType_enumValMembers = 31 + MemberListType_detailedLists,
147 MemberListType_functionMembers = 32 + MemberListType_detailedLists,
148 MemberListType_relatedMembers = 33 + MemberListType_detailedLists,
149 MemberListType_variableMembers = 34 + MemberListType_detailedLists,
150 MemberListType_propertyMembers = 35 + MemberListType_detailedLists,
151 MemberListType_eventMembers = 36 + MemberListType_detailedLists,
152 MemberListType_constructors = 37 + MemberListType_detailedLists,
154 MemberListType_allMembersList = 38,
156 MemberListType_decDefineMembers = 39 + MemberListType_declarationLists,
157 MemberListType_decProtoMembers = 40 + MemberListType_declarationLists,
158 MemberListType_decTypedefMembers = 41 + MemberListType_declarationLists,
159 MemberListType_decEnumMembers = 42 + MemberListType_declarationLists,
160 MemberListType_decFuncMembers = 43 + MemberListType_declarationLists,
161 MemberListType_decVarMembers = 44 + MemberListType_declarationLists,
162 MemberListType_decEnumValMembers = 45 + MemberListType_declarationLists,
163 MemberListType_decPubSlotMembers = 46 + MemberListType_declarationLists,
164 MemberListType_decProSlotMembers = 47 + MemberListType_declarationLists,
165 MemberListType_decPriSlotMembers = 48 + MemberListType_declarationLists,
166 MemberListType_decSignalMembers = 49 + MemberListType_declarationLists,
167 MemberListType_decEventMembers = 50 + MemberListType_declarationLists,
168 MemberListType_decFriendMembers = 51 + MemberListType_declarationLists,
169 MemberListType_decPropMembers = 52 + MemberListType_declarationLists,
171 MemberListType_docDefineMembers = 53 + MemberListType_documentationLists,
172 MemberListType_docProtoMembers = 54 + MemberListType_documentationLists,
173 MemberListType_docTypedefMembers = 55 + MemberListType_documentationLists,
174 MemberListType_docEnumMembers = 56 + MemberListType_documentationLists,
175 MemberListType_docFuncMembers = 57 + MemberListType_documentationLists,
176 MemberListType_docVarMembers = 58 + MemberListType_documentationLists,
177 MemberListType_docEnumValMembers = 59 + MemberListType_documentationLists,
178 MemberListType_docPubSlotMembers = 60 + MemberListType_documentationLists,
179 MemberListType_docProSlotMembers = 61 + MemberListType_documentationLists,
180 MemberListType_docPriSlotMembers = 62 + MemberListType_documentationLists,
181 MemberListType_docSignalMembers = 63 + MemberListType_documentationLists,
182 MemberListType_docEventMembers = 64 + MemberListType_documentationLists,
183 MemberListType_docFriendMembers = 65 + MemberListType_documentationLists,
184 MemberListType_docPropMembers = 66 + MemberListType_documentationLists,
186 MemberListType_redefinedBy = 67,
187 MemberListType_enumFields = 68,
188 MemberListType_memberGroup = 69,
190 // this one is for the summary section on the class page
191 MemberListType_interfaces = 70,
192 // this one is for the detailed section on the class page
193 MemberListType_interfaceMembers = 71 + MemberListType_detailedLists,
194 MemberListType_services = 72,
195 MemberListType_serviceMembers = 73 + MemberListType_detailedLists,
197 MemberListType_decSequenceMembers = 74 + MemberListType_declarationLists,
198 MemberListType_docSequenceMembers = 75 + MemberListType_documentationLists,
199 MemberListType_decDictionaryMembers = 76 + MemberListType_declarationLists,
200 MemberListType_docDictionaryMembers = 77 + MemberListType_documentationLists
209 MemberType_Enumeration,
210 MemberType_EnumValue,
217 MemberType_Interface,
220 MemberType_Dictionary
225 FortranFormat_Unknown,
234 None = 0, // initial value
235 Html = 0, // index / also to be used as bit position in mask (1 << Html)
239 numTocTypes = 4 // number of enum values
241 LocalToc() : m_mask(None) { memset(m_level,0,sizeof(m_level)); }
244 void enableHtml(int level)
249 void enableLatex(int level)
252 m_level[Latex]=level;
254 void enableXml(int level)
259 void enableDocbook(int level)
261 m_mask|=(1<<Docbook);
262 m_level[Docbook]=level;
266 bool isHtmlEnabled() const { return (m_mask & (1<<Html))!=0; }
267 bool isLatexEnabled() const { return (m_mask & (1<<Latex))!=0; }
268 bool isXmlEnabled() const { return (m_mask & (1<<Xml))!=0; }
269 bool isDocbookEnabled() const { return (m_mask & (1<<Docbook))!=0; }
270 bool nothingEnabled() const { return m_mask == None; }
271 int htmlLevel() const { return m_level[Html]; }
272 int latexLevel() const { return m_level[Latex]; }
273 int xmlLevel() const { return m_level[Xml]; }
274 int docbookLevel() const { return m_level[Docbook]; }
275 int mask() const { return m_mask; }
279 int m_level[numTocTypes];