Chameleon

Chameleon Svn Source Tree

Root/branches/xZenu/src/util/doxygen/src/membergroup.h

Source at commit 1322 created 12 years 8 months ago.
By meklort, Add doxygen to utils folder
1/******************************************************************************
2 *
3 * $Id: membergroup.h,v 1.13 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 MEMBERGROUP_H
19#define MEMBERGROUP_H
20
21#include "qtbc.h"
22#include <qlist.h>
23#include <qfile.h>
24#include "sortdict.h"
25
26#define DOX_NOGROUP -1
27
28class MemberDef;
29class ClassDef;
30class NamespaceDef;
31class FileDef;
32class MemberList;
33class GroupDef;
34class OutputList;
35class Definition;
36class StorageIntf;
37struct ListItemInfo;
38
39class MemberGroup
40{
41 public:
42 MemberGroup();
43 MemberGroup(Definition *parent,int id,const char *header,
44 const char *docs,const char *docFile);
45 ~MemberGroup();
46 QCString header() const { return grpHeader; }
47 int groupId() const { return grpId; }
48 void insertMember(MemberDef *md);
49 void setAnchors(ClassDef *);
50 void writePlainDeclarations(OutputList &ol,
51 ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
52 void writeDeclarations(OutputList &ol,
53 ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
54 bool showInline=FALSE);
55
56 void writeDocumentation(OutputList &ol,const char *scopeName,
57 Definition *container,bool showEnumValues,bool showInline);
58 void writeDocumentationPage(OutputList &ol,const char *scopeName,
59 Definition *container);
60 QCString documentation() { return doc; }
61 bool allMembersInSameSection() { return inSameSection; }
62 void addToDeclarationSection();
63 int countDecMembers(GroupDef *gd=0);
64 int countDocMembers();
65 void distributeMemberGroupDocumentation();
66 void findSectionsInDocumentation();
67 int varCount() const;
68 int funcCount() const;
69 int enumCount() const;
70 int enumValueCount() const;
71 int typedefCount() const;
72 int protoCount() const;
73 int defineCount() const;
74 int friendCount() const;
75 int numDecMembers() const;
76 int numDocMembers() const;
77 void setInGroup(bool b);
78 void addListReferences(Definition *d);
79 void setRefItems(const QList<ListItemInfo> *sli);
80 MemberList *members() const { return memberList; }
81 Definition *parent() const { return m_parent; }
82 QCString anchor() const;
83
84 void marshal(StorageIntf *s);
85 void unmarshal(StorageIntf *s);
86
87 private:
88 MemberList *memberList; // list of all members in the group
89 MemberList *inDeclSection;
90 int grpId;
91 QCString grpHeader;
92 QCString fileName; // base name of the generated file
93 Definition *scope;
94 QCString doc;
95 bool inSameSection;
96 int m_numDecMembers;
97 int m_numDocMembers;
98 Definition *m_parent;
99 QCString m_docFile;
100 QList<ListItemInfo> *m_xrefListItems;
101};
102
103class MemberGroupList : public QList<MemberGroup>
104{
105};
106
107class MemberGroupListIterator : public QListIterator<MemberGroup>
108{
109 public:
110 MemberGroupListIterator(const MemberGroupList &l) :
111 QListIterator<MemberGroup>(l) {}
112};
113
114class MemberGroupSDict : public SIntDict<MemberGroup>
115{
116 public:
117 MemberGroupSDict(int size=17) : SIntDict<MemberGroup>(size) {}
118 ~MemberGroupSDict() {}
119 int compareItems(GCI item1,GCI item2)
120 {
121 return ((MemberGroup *)item1)->groupId() - ((MemberGroup*)item2)->groupId();
122 }
123};
124
125
126struct MemberGroupInfo
127{
128 MemberGroupInfo() : m_sli(0) {}
129 ~MemberGroupInfo() { delete m_sli; m_sli=0; }
130 void setRefItems(const QList<ListItemInfo> *sli);
131 QCString header;
132 QCString doc;
133 QCString docFile;
134 QCString compoundName;
135 QList<ListItemInfo> *m_sli;
136};
137
138//class MemberGroupDict : public QIntDict<MemberGroup>
139//{
140// public:
141// MemberGroupDict(int size) : QIntDict<MemberGroup>(size) {}
142// ~MemberGroupDict() {}
143//};
144
145//class MemberGroupDictIterator : public QIntDictIterator<MemberGroup>
146//{
147// public:
148// MemberGroupDictIterator(const MemberGroupDict &d) :
149// QIntDictIterator<MemberGroup>(d) {}
150// ~MemberGroupDictIterator() {}
151//};
152
153#endif
154

Archive Download this file

Revision: 1322