--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Orb/Doxygen/src/memberlist.h Thu Jan 21 17:29:01 2010 +0000
@@ -0,0 +1,196 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef MEMBERLIST_H
+#define MEMBERLIST_H
+
+#include <qlist.h>
+#include "memberdef.h"
+#include "sortdict.h"
+
+class GroupDef;
+class MemberGroup;
+class MemberGroupList;
+class StorageIntf;
+
+class MemberList : public QList<MemberDef>
+{
+ public:
+ enum ListType
+ {
+ privateLists = 0x0800,
+ detailedLists = 0x1000,
+ declarationLists = 0x2000,
+ documentationLists = 0x4000,
+
+ pubMethods = 0,
+ proMethods = 1,
+ pacMethods = 2,
+ priMethods = 3 + privateLists,
+ pubStaticMethods = 4,
+ proStaticMethods = 5,
+ pacStaticMethods = 6,
+ priStaticMethods = 7 + privateLists,
+ pubSlots = 8,
+ proSlots = 9,
+ priSlots = 10 + privateLists,
+ pubAttribs = 11,
+ proAttribs = 12,
+ pacAttribs = 13,
+ priAttribs = 14 + privateLists,
+ pubStaticAttribs = 15,
+ proStaticAttribs = 16,
+ pacStaticAttribs = 17,
+ priStaticAttribs = 18 + privateLists,
+ pubTypes = 19,
+ proTypes = 20,
+ pacTypes = 21,
+ priTypes = 22 + privateLists,
+ related = 23,
+ signals = 24,
+ friends = 25,
+ dcopMethods = 26,
+ properties = 27,
+ events = 28,
+
+ typedefMembers = 29 + detailedLists,
+ enumMembers = 30 + detailedLists,
+ enumValMembers = 31 + detailedLists,
+ functionMembers = 32 + detailedLists,
+ relatedMembers = 33 + detailedLists,
+ variableMembers = 34 + detailedLists,
+ propertyMembers = 35 + detailedLists,
+ eventMembers = 36 + detailedLists,
+ constructors = 37 + detailedLists,
+
+ allMembersList = 38,
+
+ decDefineMembers = 39 + declarationLists,
+ decProtoMembers = 40 + declarationLists,
+ decTypedefMembers = 41 + declarationLists,
+ decEnumMembers = 42 + declarationLists,
+ decFuncMembers = 43 + declarationLists,
+ decVarMembers = 44 + declarationLists,
+ decEnumValMembers = 45 + declarationLists,
+ decPubSlotMembers = 46 + declarationLists,
+ decProSlotMembers = 47 + declarationLists,
+ decPriSlotMembers = 48 + declarationLists,
+ decSignalMembers = 49 + declarationLists,
+ decEventMembers = 50 + declarationLists,
+ decFriendMembers = 51 + declarationLists,
+ decPropMembers = 52 + declarationLists,
+
+ docDefineMembers = 53 + documentationLists,
+ docProtoMembers = 54 + documentationLists,
+ docTypedefMembers = 55 + documentationLists,
+ docEnumMembers = 56 + documentationLists,
+ docFuncMembers = 57 + documentationLists,
+ docVarMembers = 58 + documentationLists,
+ docEnumValMembers = 59 + documentationLists,
+ docPubSlotMembers = 60 + documentationLists,
+ docProSlotMembers = 61 + documentationLists,
+ docPriSlotMembers = 62 + documentationLists,
+ docSignalMembers = 63 + documentationLists,
+ docEventMembers = 64 + documentationLists,
+ docFriendMembers = 65 + documentationLists,
+ docPropMembers = 66 + documentationLists,
+
+ redefinedBy = 67,
+ enumFields = 68,
+ memberGroup = 69
+ };
+
+ MemberList();
+ MemberList(ListType lt);
+ ~MemberList();
+ ListType listType() const { return m_listType; }
+ bool insert(uint index,const MemberDef *md);
+ void inSort(const MemberDef *md);
+ void append(const MemberDef *md);
+ int compareItems(GCI item1,GCI item2);
+ int varCount() const { ASSERT(m_numDecMembers!=-1); return m_varCnt; }
+ int funcCount() const { ASSERT(m_numDecMembers!=-1); return m_funcCnt; }
+ int enumCount() const { ASSERT(m_numDecMembers!=-1); return m_enumCnt; }
+ int enumValueCount() const { ASSERT(m_numDecMembers!=-1); return m_enumValCnt; }
+ int typedefCount() const { ASSERT(m_numDecMembers!=-1); return m_typeCnt; }
+ int protoCount() const { ASSERT(m_numDecMembers!=-1); return m_protoCnt; }
+ int defineCount() const { ASSERT(m_numDecMembers!=-1); return m_defCnt; }
+ int friendCount() const { ASSERT(m_numDecMembers!=-1); return m_friendCnt; }
+ int numDecMembers() const { ASSERT(m_numDecMembers!=-1); return m_numDecMembers; }
+ int numDocMembers() const { ASSERT(m_numDocMembers!=-1); return m_numDocMembers; }
+ void countDecMembers(bool countEnumValues=FALSE);
+ void countDocMembers(bool countEnumValues=FALSE);
+ void writePlainDeclarations(OutputList &ol,
+ ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
+ void writeDeclarations(OutputList &ol,
+ ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
+ const char *title,const char *subtitle,bool showEnumValues=FALSE);
+ void writeDocumentation(OutputList &ol,const char *scopeName,
+ Definition *container,const char *title,bool showEnumValues=FALSE);
+ void writeDocumentationPage(OutputList &ol,
+ const char *scopeName, Definition *container);
+ void addMemberGroup(MemberGroup *mg);
+ void setInGroup(bool inGroup) { m_inGroup=inGroup; }
+ void setInFile(bool inFile) { m_inFile=inFile; }
+ void addListReferences(Definition *def);
+ void findSectionsInDocumentation();
+ MemberGroupList *getMemberGroupList() const { return memberGroupList; }
+
+ void marshal(StorageIntf *s);
+ void unmarshal(StorageIntf *s);
+
+ private:
+ int m_varCnt;
+ int m_funcCnt;
+ int m_enumCnt;
+ int m_enumValCnt;
+ int m_typeCnt;
+ int m_protoCnt;
+ int m_defCnt;
+ int m_friendCnt;
+ int m_numDecMembers; // number of members in the brief part of the memberlist
+ int m_numDocMembers; // number of members in the detailed part of the memberlist
+ MemberGroupList *memberGroupList;
+ bool m_inGroup; // is this list part of a group definition
+ bool m_inFile; // is this list part of a file definition
+ ListType m_listType;
+};
+
+class MemberListIterator : public QListIterator<MemberDef>
+{
+ public:
+ MemberListIterator(const QList<MemberDef> &list);
+ virtual ~MemberListIterator() {}
+};
+
+class MemberDict : public QDict<MemberDef>
+{
+ public:
+ MemberDict(int size) : QDict<MemberDef>(size) {}
+ virtual ~MemberDict() {}
+};
+
+class MemberSDict : public SDict<MemberDef>
+{
+ public:
+ MemberSDict(int size=17) : SDict<MemberDef>(size) {}
+ virtual ~MemberSDict() {}
+ int compareItems(GCI item1,GCI item2);
+};
+
+
+#endif