Root/
Source at commit 1322 created 12 years 7 months ago. By meklort, Add doxygen to utils folder | |
---|---|
1 | /******************************************************************************␊ |
2 | *␊ |
3 | * $Id: memberlist.h,v 1.19 2001/03/19 19:27:41 root Exp $␊ |
4 | *␊ |
5 | * Copyright (C) 1997-2011 by Dimitri van Heesch.␊ |
6 | *␊ |
7 | * Permission to use, copy, modify, and distribute this software and its␊ |
8 | * documentation under the terms of the GNU General Public License is hereby ␊ |
9 | * granted. No representations are made about the suitability of this software ␊ |
10 | * for any purpose. It is provided "as is" without express or implied warranty.␊ |
11 | * See the GNU General Public License for more details.␊ |
12 | *␊ |
13 | * Documents produced by Doxygen are derivative works derived from the␊ |
14 | * input used in their production; they are not affected by this license.␊ |
15 | *␊ |
16 | */␊ |
17 | ␊ |
18 | #ifndef MEMBERLIST_H␊ |
19 | #define MEMBERLIST_H␊ |
20 | ␊ |
21 | #include <qlist.h>␊ |
22 | #include "memberdef.h"␊ |
23 | #include "sortdict.h"␊ |
24 | ␊ |
25 | class GroupDef;␊ |
26 | class MemberGroup;␊ |
27 | class MemberGroupList;␊ |
28 | class StorageIntf;␊ |
29 | ␊ |
30 | class MemberList : public QList<MemberDef> ␊ |
31 | { ␊ |
32 | public:␊ |
33 | enum ListType␊ |
34 | {␊ |
35 | privateLists = 0x0800,␊ |
36 | detailedLists = 0x1000,␊ |
37 | declarationLists = 0x2000,␊ |
38 | documentationLists = 0x4000,␊ |
39 | ␊ |
40 | pubMethods = 0,␊ |
41 | proMethods = 1,␊ |
42 | pacMethods = 2,␊ |
43 | priMethods = 3 + privateLists,␊ |
44 | pubStaticMethods = 4,␊ |
45 | proStaticMethods = 5,␊ |
46 | pacStaticMethods = 6,␊ |
47 | priStaticMethods = 7 + privateLists,␊ |
48 | pubSlots = 8,␊ |
49 | proSlots = 9,␊ |
50 | priSlots = 10 + privateLists,␊ |
51 | pubAttribs = 11,␊ |
52 | proAttribs = 12,␊ |
53 | pacAttribs = 13,␊ |
54 | priAttribs = 14 + privateLists,␊ |
55 | pubStaticAttribs = 15,␊ |
56 | proStaticAttribs = 16,␊ |
57 | pacStaticAttribs = 17,␊ |
58 | priStaticAttribs = 18 + privateLists,␊ |
59 | pubTypes = 19,␊ |
60 | proTypes = 20,␊ |
61 | pacTypes = 21,␊ |
62 | priTypes = 22 + privateLists,␊ |
63 | related = 23,␊ |
64 | signals = 24,␊ |
65 | friends = 25,␊ |
66 | dcopMethods = 26,␊ |
67 | properties = 27,␊ |
68 | events = 28,␊ |
69 | ␊ |
70 | typedefMembers = 29 + detailedLists,␊ |
71 | enumMembers = 30 + detailedLists,␊ |
72 | enumValMembers = 31 + detailedLists,␊ |
73 | functionMembers = 32 + detailedLists,␊ |
74 | relatedMembers = 33 + detailedLists,␊ |
75 | variableMembers = 34 + detailedLists,␊ |
76 | propertyMembers = 35 + detailedLists,␊ |
77 | eventMembers = 36 + detailedLists,␊ |
78 | constructors = 37 + detailedLists,␊ |
79 | ␊ |
80 | allMembersList = 38,␊ |
81 | ␊ |
82 | decDefineMembers = 39 + declarationLists,␊ |
83 | decProtoMembers = 40 + declarationLists, ␊ |
84 | decTypedefMembers = 41 + declarationLists,␊ |
85 | decEnumMembers = 42 + declarationLists,␊ |
86 | decFuncMembers = 43 + declarationLists,␊ |
87 | decVarMembers = 44 + declarationLists,␊ |
88 | decEnumValMembers = 45 + declarationLists,␊ |
89 | decPubSlotMembers = 46 + declarationLists,␊ |
90 | decProSlotMembers = 47 + declarationLists,␊ |
91 | decPriSlotMembers = 48 + declarationLists,␊ |
92 | decSignalMembers = 49 + declarationLists,␊ |
93 | decEventMembers = 50 + declarationLists,␊ |
94 | decFriendMembers = 51 + declarationLists,␊ |
95 | decPropMembers = 52 + declarationLists,␊ |
96 | ␊ |
97 | docDefineMembers = 53 + documentationLists,␊ |
98 | docProtoMembers = 54 + documentationLists,␊ |
99 | docTypedefMembers = 55 + documentationLists,␊ |
100 | docEnumMembers = 56 + documentationLists,␊ |
101 | docFuncMembers = 57 + documentationLists,␊ |
102 | docVarMembers = 58 + documentationLists,␊ |
103 | docEnumValMembers = 59 + documentationLists,␊ |
104 | docPubSlotMembers = 60 + documentationLists,␊ |
105 | docProSlotMembers = 61 + documentationLists,␊ |
106 | docPriSlotMembers = 62 + documentationLists,␊ |
107 | docSignalMembers = 63 + documentationLists,␊ |
108 | docEventMembers = 64 + documentationLists,␊ |
109 | docFriendMembers = 65 + documentationLists,␊ |
110 | docPropMembers = 66 + documentationLists,␊ |
111 | ␊ |
112 | redefinedBy = 67,␊ |
113 | enumFields = 68,␊ |
114 | memberGroup = 69␊ |
115 | };␊ |
116 | ␊ |
117 | MemberList();␊ |
118 | MemberList(ListType lt);␊ |
119 | ~MemberList();␊ |
120 | ListType listType() const { return m_listType; }␊ |
121 | QCString listTypeAsString() const;␊ |
122 | bool insert(uint index,const MemberDef *md);␊ |
123 | void inSort(const MemberDef *md);␊ |
124 | void append(const MemberDef *md);␊ |
125 | int compareItems(GCI item1,GCI item2);␊ |
126 | int varCount() const { ASSERT(m_numDecMembers!=-1); return m_varCnt; }␊ |
127 | int funcCount() const { ASSERT(m_numDecMembers!=-1); return m_funcCnt; }␊ |
128 | int enumCount() const { ASSERT(m_numDecMembers!=-1); return m_enumCnt; }␊ |
129 | int enumValueCount() const { ASSERT(m_numDecMembers!=-1); return m_enumValCnt; }␊ |
130 | int typedefCount() const { ASSERT(m_numDecMembers!=-1); return m_typeCnt; }␊ |
131 | int protoCount() const { ASSERT(m_numDecMembers!=-1); return m_protoCnt; }␊ |
132 | int defineCount() const { ASSERT(m_numDecMembers!=-1); return m_defCnt; }␊ |
133 | int friendCount() const { ASSERT(m_numDecMembers!=-1); return m_friendCnt; }␊ |
134 | int numDecMembers() const { ASSERT(m_numDecMembers!=-1); return m_numDecMembers; }␊ |
135 | int numDocMembers() const { ASSERT(m_numDocMembers!=-1); return m_numDocMembers; }␊ |
136 | bool needsSorting() const { return m_needsSorting; }␊ |
137 | void countDecMembers(bool countEnumValues=FALSE,GroupDef *gd=0);␊ |
138 | void countDocMembers(bool countEnumValues=FALSE);␊ |
139 | void writePlainDeclarations(OutputList &ol,␊ |
140 | ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);␊ |
141 | void writeDeclarations(OutputList &ol,␊ |
142 | ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,␊ |
143 | const char *title,const char *subtitle,bool showEnumValues=FALSE,bool showInline=FALSE);␊ |
144 | void writeDocumentation(OutputList &ol,const char *scopeName,␊ |
145 | Definition *container,const char *title,bool showEnumValues=FALSE,bool showInline=FALSE);␊ |
146 | void writeDocumentationPage(OutputList &ol,␊ |
147 | const char *scopeName, Definition *container);␊ |
148 | bool declVisible() const;␊ |
149 | void addMemberGroup(MemberGroup *mg);␊ |
150 | void setInGroup(bool inGroup) { m_inGroup=inGroup; }␊ |
151 | void setInFile(bool inFile) { m_inFile=inFile; }␊ |
152 | void addListReferences(Definition *def);␊ |
153 | void findSectionsInDocumentation();␊ |
154 | void setNeedsSorting(bool b);␊ |
155 | MemberGroupList *getMemberGroupList() const { return memberGroupList; }␊ |
156 | ␊ |
157 | void marshal(StorageIntf *s);␊ |
158 | void unmarshal(StorageIntf *s);␊ |
159 | ␊ |
160 | private:␊ |
161 | int m_varCnt;␊ |
162 | int m_funcCnt;␊ |
163 | int m_enumCnt;␊ |
164 | int m_enumValCnt;␊ |
165 | int m_typeCnt;␊ |
166 | int m_protoCnt;␊ |
167 | int m_defCnt;␊ |
168 | int m_friendCnt; ␊ |
169 | int m_numDecMembers; // number of members in the brief part of the memberlist␊ |
170 | int m_numDocMembers; // number of members in the detailed part of the memberlist␊ |
171 | MemberGroupList *memberGroupList;␊ |
172 | bool m_inGroup; // is this list part of a group definition␊ |
173 | bool m_inFile; // is this list part of a file definition␊ |
174 | ListType m_listType;␊ |
175 | bool m_needsSorting;␊ |
176 | };␊ |
177 | ␊ |
178 | class MemberListIterator : public QListIterator<MemberDef>␊ |
179 | {␊ |
180 | public:␊ |
181 | MemberListIterator(const QList<MemberDef> &list);␊ |
182 | virtual ~MemberListIterator() {}␊ |
183 | };␊ |
184 | ␊ |
185 | class MemberDict : public QDict<MemberDef>␊ |
186 | {␊ |
187 | public:␊ |
188 | MemberDict(int size) : QDict<MemberDef>(size) {}␊ |
189 | virtual ~MemberDict() {}␊ |
190 | };␊ |
191 | ␊ |
192 | class MemberSDict : public SDict<MemberDef>␊ |
193 | {␊ |
194 | public:␊ |
195 | MemberSDict(int size=17) : SDict<MemberDef>(size) {}␊ |
196 | virtual ~MemberSDict() {}␊ |
197 | int compareItems(GCI item1,GCI item2);␊ |
198 | };␊ |
199 | ␊ |
200 | ␊ |
201 | #endif␊ |
202 |