membergroup.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  *
00003  * $Id: membergroup.h,v 1.13 2001/03/19 19:27:41 root Exp $
00004  *
00005  * Copyright (C) 1997-2008 by Dimitri van Heesch.
00006  *
00007  * Permission to use, copy, modify, and distribute this software and its
00008  * documentation under the terms of the GNU General Public License is hereby 
00009  * granted. No representations are made about the suitability of this software 
00010  * for any purpose. It is provided "as is" without express or implied warranty.
00011  * See the GNU General Public License for more details.
00012  *
00013  * Documents produced by Doxygen are derivative works derived from the
00014  * input used in their production; they are not affected by this license.
00015  *
00016  */
00017 
00018 #ifndef MEMBERGROUP_H
00019 #define MEMBERGROUP_H
00020 
00021 #include "qtbc.h"
00022 #include <qlist.h>
00023 #include <qfile.h>
00024 #include "sortdict.h"
00025 
00026 #define DOX_NOGROUP -1
00027 
00028 class MemberDef;
00029 class ClassDef;
00030 class NamespaceDef;
00031 class FileDef;
00032 class MemberList;
00033 class GroupDef;
00034 class OutputList;
00035 class Definition;
00036 class StorageIntf;
00037 
00038 class MemberGroup 
00039 {
00040   public:
00041     MemberGroup();
00042     MemberGroup(Definition *parent,int id,const char *header,
00043                 const char *docs,const char *docFile);
00044    ~MemberGroup();
00045     QCString header() const { return grpHeader; }
00046     int groupId() const { return grpId; }
00047     void insertMember(MemberDef *md);
00048     void setAnchors(ClassDef *);
00049     void writePlainDeclarations(OutputList &ol,
00050                ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
00051     void writeDeclarations(OutputList &ol,
00052                ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
00053 
00054     void writeDocumentation(OutputList &ol,const char *scopeName,
00055                Definition *container);
00056     void writeDocumentationPage(OutputList &ol,const char *scopeName,
00057                Definition *container);
00058     QCString documentation() { return doc; }
00059     bool allMembersInSameSection() { return inSameSection; }
00060     void addToDeclarationSection();
00061     int countDecMembers();
00062     int countDocMembers();
00063     void distributeMemberGroupDocumentation();
00064     void findSectionsInDocumentation();
00065     int varCount() const;
00066     int funcCount() const;
00067     int enumCount() const;
00068     int enumValueCount() const;
00069     int typedefCount() const;
00070     int protoCount() const;
00071     int defineCount() const;
00072     int friendCount() const;
00073     int numDecMembers() const;
00074     int numDocMembers() const;
00075     void setInGroup(bool b);
00076     void addListReferences(Definition *d);
00077     MemberList *members() const { return memberList; }
00078     Definition *parent() const { return m_parent; }
00079 
00080     void marshal(StorageIntf *s);
00081     void unmarshal(StorageIntf *s);
00082 
00083   private: 
00084     MemberList *memberList;      // list of all members in the group
00085     MemberList *inDeclSection;
00086     int grpId;
00087     QCString grpHeader;
00088     QCString fileName;           // base name of the generated file
00089     Definition *scope;
00090     QCString doc;
00091     bool inSameSection;
00092     int  m_numDecMembers;
00093     int  m_numDocMembers;
00094     Definition *m_parent;
00095     QCString m_docFile;
00096 };
00097 
00098 class MemberGroupList : public QList<MemberGroup>
00099 {
00100 };
00101 
00102 class MemberGroupListIterator : public QListIterator<MemberGroup>
00103 {
00104   public:
00105     MemberGroupListIterator(const MemberGroupList &l) : 
00106       QListIterator<MemberGroup>(l) {}
00107 };
00108 
00109 class MemberGroupSDict : public SIntDict<MemberGroup>
00110 {
00111   public:
00112     MemberGroupSDict(int size=17) : SIntDict<MemberGroup>(size) {}
00113    ~MemberGroupSDict() {}
00114 };
00115 
00116 struct MemberGroupInfo
00117 {
00118   QCString header;
00119   QCString doc;
00120   QCString docFile;
00121 };
00122 
00123 //class MemberGroupDict : public QIntDict<MemberGroup>
00124 //{
00125 //  public:
00126 //    MemberGroupDict(int size) : QIntDict<MemberGroup>(size) {}
00127 //   ~MemberGroupDict() {}
00128 //};
00129 
00130 //class MemberGroupDictIterator : public QIntDictIterator<MemberGroup>
00131 //{
00132 //  public:
00133 //    MemberGroupDictIterator(const MemberGroupDict &d) : 
00134 //      QIntDictIterator<MemberGroup>(d) {}
00135 //   ~MemberGroupDictIterator() {}
00136 //};
00137 
00138 #endif



Generated on Mon Mar 31 10:58:40 2008 by  doxygen 1.5.1