Commit 704253e0 authored by dimitri's avatar dimitri

Release-1.1.1-20000326

parent e01f902e
DOXYGEN Version 1.1.1-20000319
DOXYGEN Version 1.1.1-20000326
CONTENTS
--------
......@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
1. Unpack the archive, unless you already have:
gunzip doxygen-1.1.1-20000319.src.tar.gz # uncompress the archive
tar xf doxygen-1.1.1-20000319.src.tar # unpack it
gunzip doxygen-1.1.1-20000326.src.tar.gz # uncompress the archive
tar xf doxygen-1.1.1-20000326.src.tar # unpack it
2. Run the configure script:
......@@ -252,4 +252,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (19 March 2000)
Dimitri van Heesch (26 March 2000)
DOXYGEN Version 1.1.1-20000319
DOXYGEN Version 1.1.1-20000326
Please read INSTALL for compilation instructions.
......@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (19 March 2000)
Dimitri van Heesch (26 March 2000)
1.1.1-20000319
1.1.1-20000326
#
# $Id$
#
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
......
#
# $Id$
#
#
# Copyright (C) 1997-2000 by Dimitri van Heesch.
#
......
#
# $Id$
#
#
# Copyright (C) 1997-2000 by Dimitri van Heesch.
#
......
#
# $Id$
#
#
# Copyright (C) 1997-2000 by Dimitri van Heesch.
#
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
%
% $Id$
%
%
% Copyright (C) 1997-2000 by Dimitri van Heesch.
%
......
%
% $Id$
%
%
% Copyright (C) 1997-2000 by Dimitri van Heesch.
%
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -34,6 +34,17 @@ You should use the \\mainpage command inside a comment block like this:
*/
\endverbatim
<li><b>When I set EXTRACT_ALL to NO non of my function are shown in the documentation.</b></li>
In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are
located using a (non-empty) comment block containing a \file (or @file)
command.
Alternatively, you can put all members in a group (or module)
using the \ingroup command and then document the group using a comment
block containing the \defgroup command.
<li><b>How can I avoid that some code fragment is parsed by Doxyen?</b>
<p>
You can use Doxygen's preprocessor for this:
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
Name: doxygen
Version: 1.1.1-20000319
Version: 1.1.1-20000326
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
......
#
# $Id$
#
#
# Copyright (C) 1997-2000 by Dimitri van Heesch.
#
......
This diff is collapsed.
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -39,6 +39,8 @@ class ExampleList;
class MemberNameInfoList;
class MemberNameInfoDict;
class UsesClassDict;
class MemberGroupList;
class MemberGroupDict;
struct IncludeInfo;
class ClassDef : public Definition
......@@ -63,16 +65,18 @@ class ClassDef : public Definition
//void setIncludeName(const char *n_) { incName=n_; }
MemberNameInfoList *memberNameInfoList() { return allMemberNameInfoList; }
MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; }
void insertMember(const MemberDef *);
void insertMember(MemberDef *,int grpId);
void addMemberToGroup(MemberDef *,int grpId);
void insertUsedFile(const char *);
void computeAnchors();
void computeMemberGroups();
void setAnchor(MemberDef *);
void dumpMembers();
void writeDocumentation(OutputList &ol);
void writeMemberList(OutputList &ol);
//void writeIncludeFile(OutputList &ol);
//void writeMembersToContents();
void writeDeclaration(OutputList &ol,MemberDef *md);
void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup);
bool addExample(const char *anchor,const char *name, const char *file);
bool hasExamples();
//void writeExample(OutputList &ol);
......@@ -157,17 +161,21 @@ class ClassDef : public Definition
MemberList relatedMembers;
MemberList variableMembers;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
MemberNameInfoList *allMemberNameInfoList;
MemberNameInfoDict *allMemberNameInfoDict;
ArgumentList *tempArgs;
QStrList files;
ExampleList *exampleList;
ExampleDict *exampleDict;
CompoundType compType;
Protection prot;
FileDef *fileDef;
UsesClassDict *usesImplClassDict;
UsesClassDict *usesIntfClassDict;
ArgumentList *tempArgs;
QStrList files;
ExampleList *exampleList;
ExampleDict *exampleDict;
CompoundType compType;
Protection prot;
FileDef *fileDef;
UsesClassDict *usesImplClassDict;
UsesClassDict *usesIntfClassDict;
};
struct UsesClassDef
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -1634,8 +1634,9 @@ static void substEnvVarsInString(QCString &s)
while ((i=re.match(s,p,&l))!=-1)
{
//printf("Found environment var s.mid(%d,%d)=`%s'\n",i+2,l-3,s.mid(i+2,l-3).data());
const char *env=getenv(s.mid(i+2,l-3));
s = s.left(i)+QCString(env)+s.right(s.length()-i-l);
QCString env=getenv(s.mid(i+2,l-3));
substEnvVarsInString(env); // recursively expand variables if needed.
s = s.left(i)+env+s.right(s.length()-i-l);
p=i+l;
}
//printf("substEnvVarInString(%s) end\n",s.data());
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -93,7 +93,7 @@ static int yyread(char *buf,int max_size)
%}
B [ \t]
ID [a-z_A-Z][a-z_A-Z0-9]*
ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+)
%option noyywrap
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -36,6 +36,8 @@ Definition::~Definition()
QCString Definition::nameToFile(const char *name)
{
return convertNameToFile(name);
#if 0
QCString result;
char c;
const char *p=name;
......@@ -61,6 +63,7 @@ QCString Definition::nameToFile(const char *name)
}
}
return result;
#endif
}
void Definition::addSectionsToDefinition(QList<QCString> *anchorList)
......@@ -280,10 +283,7 @@ bool Definition::hasDocumentation()
{
return !doc.isEmpty() || // has detailed docs
!brief.isEmpty() || // has brief description
(Config::sourceBrowseFlag &&
startBodyLine!=-1 &&
bodyDef
) || // has a source reference
/*(Config::sourceBrowseFlag && startBodyLine!=-1 && bodyDef) || // has a source reference */
Config::extractAllFlag; // extract everything
}
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/*****************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......@@ -466,9 +466,15 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
{
QCString baseName;
QCString diskName=n->m_url.copy();
int i=diskName.find('$'); /* should not return -1 */
ASSERT(i!=-1);
diskName=diskName.right(diskName.length()-i-1);
int i=diskName.find('$');
if (i!=-1)
{
diskName=diskName.right(diskName.length()-i-1);
}
else /* take the label name as the file name (and strip any template stuff) */
{
diskName=convertNameToFile(n->m_label);
}
baseName.sprintf("inherit_graph_%s",diskName.data());
QCString dotName=baseName+".dot";
QCString gifName=baseName+".gif";
......@@ -650,8 +656,10 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
n->colorConnectedNodes(curColor);
curColor++;
const DotNode *dn=n->findDocNode();
ASSERT(dn!=0);
if (dn!=0) m_rootSubgraphs->inSort(dn);
if (dn!=0)
m_rootSubgraphs->inSort(dn);
else
m_rootSubgraphs->inSort(n);
}
}
}
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
This diff is collapsed.
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......@@ -19,6 +19,7 @@
#define DOXYGEN_H
#include "qtbc.h"
#include <qtextstream.h>
#include "groupdef.h"
#include "filedef.h"
#include "classdef.h"
......@@ -26,10 +27,11 @@
#include "classlist.h"
#include "membername.h"
#include "filename.h"
#include "define.h"
//#include "define.h"
#include "namespacedef.h"
#include "formula.h"
#include "section.h"
#include "membergroup.h"
struct PageInfo
{
......@@ -117,6 +119,8 @@ extern FormulaDict formulaDict;
extern FormulaDict formulaNameDict;
extern PageInfo *mainPage;
extern StringDict tagDestinationDict;
extern QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
extern QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
extern int annotatedClasses;
extern int hierarchyClasses;
......
#
# $Id$
#
#
# Copyright (C) 1997-2000 by Dimitri van Heesch.
#
......
#
# $Id$
#
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
#
# $Id$
#
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
#
# $Id$
#
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
......
#
# $Id$
#
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -139,7 +139,8 @@ class Entry
DEFINE_SEC = 0x00f00000,
GROUPDOC_SEC = 0x01000000,
USINGDIR_SEC = 0x01100000,
MAINPAGEDOC_SEC = 0x01200000
MAINPAGEDOC_SEC = 0x01200000,
MEMBERGRP_SEC = 0x01300000
};
Entry();
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -17,7 +17,6 @@
#include "qtbc.h"
#include "memberlist.h"
#include "classlist.h"
#include "define.h"
#include "filedef.h"
#include "scanner.h"
#include "doxygen.h"
......@@ -42,38 +41,39 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref)
filename=nameToFile(nm);
diskname=filename.copy();
setReference(ref);
//memList = new MemberList;
classList = new ClassList;
includeList = new QList<IncludeInfo>;
includeList->setAutoDelete(TRUE);
includeDict = new QDict<IncludeInfo>(61);
defineList = new DefineList;
namespaceList = new NamespaceList;
namespaceDict = new NamespaceDict(7);
srcDefDict = 0;
srcAnchorDict = 0;
usingList = 0;
isSource = FALSE; /*Config::extractAllFlag*/;
isSource = FALSE;
docname = nm;
if (Config::fullPathNameFlag)
{
docname.prepend(stripFromPath(path.copy()));
}
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
}
/*! destroy the file definition */
FileDef::~FileDef()
{
//delete memList;
delete classList;
delete includeDict;
delete includeList;
delete defineList;
delete namespaceList;
delete namespaceDict;
delete srcDefDict;
delete srcAnchorDict;
delete usingList;
delete memberGroupList;
delete memberGroupDict;
}
/*! Compute the HTML anchor names for all members in the class */
......@@ -223,7 +223,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.startMemberList();
found=TRUE;
}
ol.startMemberItem(FALSE,0);
ol.startMemberItem(0);
ol.writeString("namespace ");
ol.insertMemberAlign();
if (nd->isLinkable())
......@@ -240,7 +240,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.docify(nd->name());
ol.endBold();
}
ol.endMemberItem(FALSE,0,0,FALSE);
ol.endMemberItem(FALSE);
}
nd=namespaceList->next();
}
......@@ -262,7 +262,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.startMemberList();
found=TRUE;
}
ol.startMemberItem(FALSE,FALSE);
ol.startMemberItem(FALSE);
switch (cd->compoundType())
{
case ClassDef::Class: ol.writeString("class"); break;
......@@ -287,13 +287,21 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.docify(cd->name());
ol.endBold();
}
ol.endMemberItem(FALSE,0,0,FALSE);
ol.endMemberItem(FALSE);
}
cd=classList->next();
}
if (found) ol.endMemberList();
}
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
mg->writeDeclarations(ol,0,0,this,0);
}
allMemberList.writeDeclarations(ol,0,0,this,0,0,0);
ol.endMemberSections();
......@@ -457,8 +465,31 @@ void FileDef::writeSource(OutputList &ol)
ol.enableAll();
}
/*! Adds a member \a md to the member group with id \a groupId.
*/
void FileDef::addMemberToGroup(MemberDef *md,int groupId)
{
if (groupId!=-1)
{
QCString *pGrpHeader = memberHeaderDict[groupId];
QCString *pDocs = memberDocDict[groupId];
if (pGrpHeader)
{
MemberGroup *mg = memberGroupDict->find(groupId);
if (mg==0)
{
mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
memberGroupDict->insert(groupId,mg);
memberGroupList->append(mg);
}
mg->insertMember(md);
md->setMemberGroup(mg);
}
}
}
/*! Adds member definition \a md to the list of all members of this file */
void FileDef::insertMember(MemberDef *md)
void FileDef::insertMember(MemberDef *md,int groupId)
{
allMemberList.append(md);
switch(md->memberType())
......@@ -473,6 +504,7 @@ void FileDef::insertMember(MemberDef *md)
default:
err("FileDef::insertMembers(): unexpected member insert in file!\n");
}
addMemberToGroup(md,groupId);
}
/*! Adds compound definition \a cd to the list of all compounds of this file */
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -31,10 +31,11 @@ class ClassList;
class ClassDef;
class MemberDef;
class OutputList;
class DefineList;
class NamespaceDef;
class NamespaceList;
class NamespaceDict;
class MemberGroupList;
class MemberGroupDict;
struct IncludeInfo
{
......@@ -108,7 +109,8 @@ class FileDef : public Definition
void writeDocumentation(OutputList &ol);
void writeSource(OutputList &ol);
friend void generatedFileNames();
void insertMember(MemberDef *fd);
void insertMember(MemberDef *md,int groupId);
void addMemberToGroup(MemberDef *md,int groupId);
void insertClass(ClassDef *cd);
void insertNamespace(NamespaceDef *nd);
void computeAnchors();
......@@ -138,7 +140,7 @@ class FileDef : public Definition
NamespaceDict *namespaceDict;
NamespaceList *namespaceList;
NamespaceList *usingList;
DefineList *defineList;
//DefineList *defineList;
QCString path;
QCString filepath;
QCString diskname;
......@@ -148,6 +150,10 @@ class FileDef : public Definition
QIntDict<Definition> *srcDefDict;
QIntDict<QCString> *srcAnchorDict;
bool isSource;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
};
/*! \class FileList filedef.h
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -27,6 +27,8 @@
#include "util.h"
#include "memberlist.h"
#include "message.h"
#include "membergroup.h"
#include "doxygen.h"
GroupDef::GroupDef(const char *na,const char *t) :
Definition(na)
......@@ -45,13 +47,17 @@ GroupDef::GroupDef(const char *na,const char *t) :
title.at(0)=toupper(title.at(0));
}
fileName = "group_"+nameToFile(na);
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
}
GroupDef::~GroupDef()
{
delete fileList;
delete classList;
// delete groupList;
delete memberGroupList;
delete memberGroupDict;
}
void GroupDef::addFile(const FileDef *def)
......@@ -69,7 +75,28 @@ void GroupDef::addNamespace(const NamespaceDef *def)
namespaceList->append(def);
}
void GroupDef::addMember(const MemberDef *md)
void GroupDef::addMemberToGroup(MemberDef *md,int groupId)
{
if (groupId!=-1)
{
QCString *pGrpHeader = memberHeaderDict[groupId];
QCString *pDocs = memberDocDict[groupId];
if (pGrpHeader)
{
MemberGroup *mg = memberGroupDict->find(groupId);
if (mg==0)
{
mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
memberGroupDict->insert(groupId,mg);
memberGroupList->append(mg);
}
mg->insertMember(md);
md->setMemberGroup(mg);
}
}
}
void GroupDef::insertMember(MemberDef *md,int groupId)
{
QCString funcDecl=md->name()+md->argsString();
if (allMemberDict->find(funcDecl)==0)
......@@ -88,6 +115,7 @@ void GroupDef::addMember(const MemberDef *md)
default:
err("FileDef::insertMembers(): unexpected member insert in file!\n");
}
addMemberToGroup(md,groupId);
}
}
......@@ -143,11 +171,11 @@ void GroupDef::writeDocumentation(OutputList &ol)
FileDef *fd=fileList->first();
while (fd)
{
ol.startMemberItem(FALSE,0);
ol.startMemberItem(0);
ol.docify("file");
ol.insertMemberAlign();
ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0,fd->name());
ol.endMemberItem(FALSE,0,0,FALSE);
ol.endMemberItem(FALSE);
if (!fd->briefDescription().isEmpty() && Config::briefMemDescFlag)
{
ol.startMemberDescription();
......@@ -182,11 +210,11 @@ void GroupDef::writeDocumentation(OutputList &ol)
case ClassDef::Interface: type="interface"; break;
case ClassDef::Exception: type="exception"; break;
}
ol.startMemberItem(FALSE,0);
ol.startMemberItem(0);
ol.docify(type);
ol.insertMemberAlign();
ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,cd->name());
ol.endMemberItem(FALSE,0,0,FALSE);
ol.endMemberItem(FALSE);
if (!cd->briefDescription().isEmpty() && Config::briefMemDescFlag)
{
ol.startMemberDescription();
......@@ -200,6 +228,14 @@ void GroupDef::writeDocumentation(OutputList &ol)
}
if (allMemberList->count()>0)
{
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
mg->writeDeclarations(ol,0,0,0,this);
}
allMemberList->writeDeclarations(ol,0,0,0,this,0,0);
}
ol.endMemberSections();
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -32,6 +32,8 @@ class NamespaceDef;
class GroupList;
class OutputList;
class NamespaceList;
class MemberGroupList;
class MemberGroupDict;
class GroupDef : public Definition
{
......@@ -44,7 +46,8 @@ class GroupDef : public Definition
void addFile(const FileDef *def);
void addClass(const ClassDef *def);
void addNamespace(const NamespaceDef *def);
void addMember(const MemberDef *def);
void insertMember(MemberDef *def,int groupId);
void addMemberToGroup(MemberDef *def,int groupId);
void writeDocumentation(OutputList &ol);
int countMembers() const;
bool isLinkableInProject()
......@@ -74,6 +77,11 @@ class GroupDef : public Definition
MemberList enumValMembers;
MemberList funcMembers;
MemberList varMembers;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
};
class GroupList : public QList<GroupDef>
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -30,6 +30,9 @@
#define GROUP_COLOR "#ff8080"
//#define DBG_HTML(x) x;
#define DBG_HTML(x)
HtmlHelp *HtmlGenerator::htmlHelp = 0;
HtmlGenerator::HtmlGenerator() : OutputGenerator()
......@@ -541,9 +544,9 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
void HtmlGenerator::startMemberList()
{
DBG_HTML(t << "<!-- startMemberList -->" << endl)
if (Config::htmlAlignMemberFlag)
{
//t << endl << "<p><table border=0 cellspacing=2 cellpadding=0>" << endl;
}
else
{
......@@ -553,9 +556,9 @@ void HtmlGenerator::startMemberList()
void HtmlGenerator::endMemberList()
{
DBG_HTML(t << "<!-- endMemberList -->" << endl)
if (Config::htmlAlignMemberFlag)
{
//t << "</table>" << endl;
}
else
{
......@@ -567,16 +570,17 @@ void HtmlGenerator::endMemberList()
// 0 = single column right aligned
// 1 = double column left aligned
// 2 = single column left aligned
void HtmlGenerator::startMemberItem(bool inGroup,int annoType)
void HtmlGenerator::startMemberItem(int annoType)
{
DBG_HTML(t << "<!-- startMemberItem() -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "<tr>";
if (inGroup)
t << "<td bgcolor=\"" << GROUP_COLOR << "\">";
else
t << "<td>";
t << "<img src=\"null.gif\"></td><td><img src=\"null.gif\"></td>";
//if (inGroup)
// t << "<td bgcolor=\"" << GROUP_COLOR << "\">";
//else
//t << "<td>";
//t << "<img src=\"null.gif\"></td><td><img src=\"null.gif\"></td>";
switch(annoType)
{
case 0: t << "<td nowrap align=right valign=top>"; break;
......@@ -590,26 +594,26 @@ void HtmlGenerator::startMemberItem(bool inGroup,int annoType)
}
}
void HtmlGenerator::endMemberItem(bool inGroup,
const char *fileName,const char *headerName,bool)
void HtmlGenerator::endMemberItem(bool)
{
//DBG_HTML(t << "<!-- endMemberItem(" << (int)inGroup << "," << fileName << "," << headerName << " -->" << endl)
if (Config::htmlAlignMemberFlag)
{
if (inGroup)
{
t << "&nbsp;</td><td";
if (headerName)
{
t << " align=right valign=top><a class=\"gl\" href=\""
<< fileName << ".html\">&nbsp;" << headerName << "&nbsp;</a>";
}
else
{
t << ">";
}
t << "</td><td bgcolor=\"" << GROUP_COLOR
<< "\"><img src=\"null.gif\">";
}
//if (inGroup)
//{
// t << "&nbsp;</td><td";
// if (headerName)
// {
// t << " align=right valign=top><a class=\"gl\" href=\""
// << fileName << ".html\">&nbsp;" << headerName << "&nbsp;</a>";
// }
// else
// {
// t << ">";
// }
// t << "</td><td bgcolor=\"" << GROUP_COLOR
// << "\"><img src=\"null.gif\">";
//}
t << "</td></tr>";
}
t << endl;
......@@ -617,6 +621,7 @@ void HtmlGenerator::endMemberItem(bool inGroup,
void HtmlGenerator::insertMemberAlign()
{
DBG_HTML(t << "<!-- insertMemberAlign -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "&nbsp;</td><td valign=top>";
......@@ -625,10 +630,12 @@ void HtmlGenerator::insertMemberAlign()
void HtmlGenerator::startMemberDescription()
{
DBG_HTML(t << "<!-- startMemberDescription -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
"<td></td><td><font size=-1><em>";
//t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
// "<td></td><td><font size=-1><em>";
t << "<tr><td>&nbsp;</td><td><font size=-1><em>";
}
else
{
......@@ -638,6 +645,7 @@ void HtmlGenerator::startMemberDescription()
void HtmlGenerator::endMemberDescription()
{
DBG_HTML(t << "<!-- endMemberDescription -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "</em></font><br><br></td></tr>" << endl;
......@@ -650,6 +658,7 @@ void HtmlGenerator::endMemberDescription()
void HtmlGenerator::startMemberSections()
{
DBG_HTML(t << "<!-- startMemberSections -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "<table border=0 cellpadding=0 cellspacing=0>" << endl;
......@@ -658,6 +667,7 @@ void HtmlGenerator::startMemberSections()
void HtmlGenerator::endMemberSections()
{
DBG_HTML(t << "<!-- endMemberSections -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "</table>" << endl;
......@@ -666,9 +676,10 @@ void HtmlGenerator::endMemberSections()
void HtmlGenerator::startMemberHeader()
{
DBG_HTML(t << "<!-- startMemberHeader -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "<tr><td colspan=4><br><h2>";
t << "<tr><td colspan=2><br><h2>";
}
else
{
......@@ -678,6 +689,7 @@ void HtmlGenerator::startMemberHeader()
void HtmlGenerator::endMemberHeader()
{
DBG_HTML(t << "<!-- endMemberHeader -->" << endl)
if (Config::htmlAlignMemberFlag)
{
t << "</h2></td></tr>" << endl;
......@@ -688,39 +700,15 @@ void HtmlGenerator::endMemberHeader()
}
}
void HtmlGenerator::memberGroupSpacing(bool inGroup)
{
t << "<tr><td";
if (inGroup)
{
// left vertical table line
t << " bgcolor=\"" << GROUP_COLOR << "\" height=1><img src=\"null.gif\">"
// white space
"</td><td colspan=4></td>"
// right vertical table line
"<td bgcolor=\"" << GROUP_COLOR << "\"><img src=\"null.gif\">";
}
else
{
// one pixel height of whitespace
t << " height=1>";
}
t << "</td></tr>" << endl;
}
void HtmlGenerator::memberGroupSeparator()
{
t << "<tr><td colspan=6 height=1 bgcolor=\"" << GROUP_COLOR
<< "\"><img src=\"null.gif\"></td></tr>" << endl;
}
void HtmlGenerator::startMemberSubtitle()
{
if (Config::htmlAlignMemberFlag) t << "<tr><td colspan=4>";
DBG_HTML(t << "<!-- startMemberSubtitle -->" << endl)
if (Config::htmlAlignMemberFlag) t << "<tr><td colspan=2>";
}
void HtmlGenerator::endMemberSubtitle()
{
DBG_HTML(t << "<!-- endMemberSubtitle -->" << endl)
if (Config::htmlAlignMemberFlag) t << "<br><br></td></tr>" << endl;
}
......@@ -773,7 +761,7 @@ void HtmlGenerator::writeImage(const char *name,const char *,const char *)
void HtmlGenerator::startMemberDoc(const char *,const char *,const char *,const char *)
{
t << endl << "<p><table width=100%% cellpadding=2 cellspacing=0 border=0><tr><td class=\"md\"><b>" << endl;
t << endl << "<p><table width=100% cellpadding=2 cellspacing=0 border=0><tr><td class=\"md\"><b>" << endl;
}
void HtmlGenerator::endMemberDoc()
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -95,11 +95,11 @@ class HtmlGenerator : public OutputGenerator
void endMemberSubtitle();
void startMemberList();
void endMemberList();
void startMemberItem(bool,int);
void memberGroupSpacing(bool inGroup);
void memberGroupSeparator();
void startMemberItem(int);
//void memberGroupSpacing(bool inGroup);
//void memberGroupSeparator();
void insertMemberAlign();
void endMemberItem(bool,const char *,const char *,bool);
void endMemberItem(bool);
void startMemberDescription();
void endMemberDescription();
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -1171,7 +1171,7 @@ void LatexGenerator::writeFormula(const char *,const char *text)
t << text;
}
void LatexGenerator::startMemberItem(bool,int annType)
void LatexGenerator::startMemberItem(int annType)
{
if (!insideTabbing)
{
......@@ -1190,7 +1190,7 @@ void LatexGenerator::startMemberItem(bool,int annType)
}
}
void LatexGenerator::endMemberItem(bool,const char *,const char *,bool endItem)
void LatexGenerator::endMemberItem(bool endItem)
{
if (insideTabbing && endItem)
{
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -91,10 +91,10 @@ class LatexGenerator : public OutputGenerator
void endMemberSubtitle() {}
void startMemberList();
void endMemberList();
void startMemberItem(bool,int);
void endMemberItem(bool,const char *,const char *,bool);
void memberGroupSpacing(bool) {}
void memberGroupSeparator() {}
void startMemberItem(int);
void endMemberItem(bool);
//void memberGroupSpacing(bool) {}
//void memberGroupSeparator() {}
void insertMemberAlign() {}
void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ }
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -350,7 +350,7 @@ void ManGenerator::endDescItem()
firstCol=TRUE;
}
void ManGenerator::startMemberItem(bool,int annType)
void ManGenerator::startMemberItem(int annType)
{
if (firstCol && !insideTabbing) t << ".in +1c\n";
t << "\n.ti -1c\n.RI \"";
......@@ -358,7 +358,7 @@ void ManGenerator::startMemberItem(bool,int annType)
if (annType!=0) insideTabbing=TRUE;
}
void ManGenerator::endMemberItem(bool,const char *,const char *,bool endItem)
void ManGenerator::endMemberItem(bool endItem)
{
if (endItem)
{
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -91,10 +91,10 @@ class ManGenerator : public OutputGenerator
void writeListItem();
void startMemberList();
void endMemberList();
void startMemberItem(bool,int);
void endMemberItem(bool,const char *,const char *,bool);
void memberGroupSpacing(bool) {}
void memberGroupSeparator() {}
void startMemberItem(int);
void endMemberItem(bool);
//void memberGroupSpacing(bool) {}
//void memberGroupSeparator() {}
void writeRuler() {}
void writeAnchor(const char *) {}
void startCodeFragment();
......
This diff is collapsed.
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -65,11 +65,10 @@ class MemberDef : public Definition
~MemberDef();
void writeLink(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
MemberGroup *mg);
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
void writeDeclaration(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
int prevGroupId,bool inGroup);
bool inGroup);
void writeDocumentation(MemberList *ml,OutputList &ol,
const char *scopeName/*,MemberType m*/);
void warnIfUndocumented();
......@@ -180,10 +179,8 @@ class MemberDef : public Definition
NamespaceDef *getNamespace() { return nspace; }
void setNamespace(NamespaceDef *nd) { nspace=nd; }
// grouping related members
void setGroupId(int groupId);
int groupId() const { return grpId; }
QCString groupHeader() const { return grpHeader; }
// member group related members
void setMemberGroup(MemberGroup *grp);
MemberGroup *getMemberGroup() const { return memberGroup; }
void setFromAnnonymousScope(bool b) { annScope=b; }
......@@ -237,8 +234,8 @@ class MemberDef : public Definition
ArgumentList *tArgList; // template argument list of function template
ArgumentList *scopeTAL; // template argument list of class template
ArgumentList *membTAL; // template argument list of class template
int grpId; // group id
QCString grpHeader; // group header
//int grpId; // group id
//QCString grpHeader; // group header
MemberGroup *memberGroup; // group's member definition
GroupDef *group; // group in which this member is in
......
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -25,19 +25,21 @@
#include "language.h"
#include "scanner.h"
static QCString idToName(int id)
{
QCString result;
result.sprintf("mgroup_%d",id);
return result;
}
//static QCString idToName(int id)
//{
// QCString result;
// result.sprintf("mgroup_%d",id);
// return result;
//}
MemberGroup::MemberGroup(int id,const char *hdr) : Definition(idToName(id))
MemberGroup::MemberGroup(int id,const char *hdr,const char *d) /* : Definition(idToName(id)) */
{
memberList = new MemberList;
grpId = id;
grpHeader = hdr;
fileName = name();
grpId = id;
grpHeader = hdr;
doc = d;
scope = 0;
//printf("Member group docs=`%s'\n",doc.data());
}
MemberGroup::~MemberGroup()
......@@ -45,214 +47,28 @@ MemberGroup::~MemberGroup()
delete memberList;
}
void MemberGroup::insertMember(MemberDef *m)
void MemberGroup::insertMember(MemberDef *md)
{
memberList->append(m);
//printf("MemberGroup::insertMember(%s)\n",md->name().data());
memberList->append(md);
}
void MemberGroup::writeDocumentation(OutputList &ol)
{
//printf("Writing documentation for group %s\n",fileName.data());
if (memberList->count()==0) return; // no member in this group!
QCString title = grpHeader.copy();
if (title.isEmpty())
{
title = "Member Group"; // TODO: make translatable.
}
ol.disable(OutputGenerator::Man);
startFile(ol,fileName,title);
startTitle(ol,getOutputFileBase());
ol.docify(title);
endTitle(ol,getOutputFileBase(),name());
OutputList briefOutput(&ol);
if (!briefDescription().isEmpty())
{
parseDoc(briefOutput,0,0,briefDescription());
ol+=briefOutput;
ol.writeString(" \n");
if (!documentation().isEmpty() || Config::repeatBriefFlag)
{
//bool htmlEnabled = ol.isEnabled(OutputGenerator::Html);
//bool latexEnabled = ol.isEnabled(OutputGenerator::Latex);
//if (htmlEnabled) ol.disable(OutputGenerator::Html);
//if (latexEnabled) ol.disable(OutputGenerator::Latex);
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details");
parseText(ol,theTranslator->trMore());
ol.endTextLink();
ol.popGeneratorState();
//if (htmlEnabled) ol.enable(OutputGenerator::Html);
//if (latexEnabled) ol.enable(OutputGenerator::Latex);
}
}
// TODO: man page synopsis
//if (memberList->count()>0)
//{
QCString scopeName;
MemberDef *md = memberList->first();
ClassDef *cd = md->memberClass();
NamespaceDef *nd = md->getNamespace();
FileDef *fd = md->getFileDef();
//printf("member %s brief=`%s' docs=`%s'\n",
// md->name().data(), md->briefDescription().data(),
// md->documentation().data());
if (cd)
{
ol.newParagraph();
ol.docify("Inside class ");
ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(),0,
cd->name()
);
scopeName=cd->name().copy();
}
else if (nd)
{
ol.newParagraph();
ol.docify("Inside namespace ");
ol.writeObjectLink(nd->getReference(),
nd->getOutputFileBase(),0,
nd->name()
);
scopeName=nd->name().copy();
}
else if (fd)
{
ol.newParagraph();
ol.docify("#include <");
ol.writeObjectLink(fd->getReference(),
fd->getOutputFileBase(),0,
fd->name()
);
ol.docify(">");
}
ol.startMemberSections();
memberList->writeDeclarations(ol,cd,nd,fd,0,"Synopsis",0,TRUE);
ol.endMemberSections();
if ((!briefDescription().isEmpty() && Config::repeatBriefFlag) ||
!documentation().isEmpty())
{
ol.writeRuler();
//bool latexOn = ol.isEnabled(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.writeAnchor("_details");
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol.popGeneratorState();
ol.startGroupHeader();
parseText(ol,theTranslator->trDetailedDescription());
ol.endGroupHeader();
// repeat brief description
if (!briefDescription().isEmpty() && Config::repeatBriefFlag)
{
ol+=briefOutput;
ol.newParagraph();
}
// write documentation
if (!documentation().isEmpty())
{
parseDoc(ol,scopeName,0,documentation()+"\n");
}
}
// memberList->countDocMembers(TRUE);
//
// if ( memberList->defineCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trDefineDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Define);
// }
//
// if ( memberList->protoCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trFunctionPrototypeDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Prototype);
// }
//
// if ( memberList->typedefCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trTypedefDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Typedef);
// }
//
// if ( memberList->enumCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trEnumerationTypeDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Enumeration);
// }
//
// if ( memberList->enumValueCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trEnumerationValueDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::EnumValue);
// }
//
// if ( memberList->funcCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trFunctionDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Function);
// }
//
// if ( memberList->varCount()>0 )
// {
// ol.writeRuler();
// ol.startGroupHeader();
// parseText(ol,theTranslator->trVariableDocumentation());
// ol.endGroupHeader();
// writeMemberDocs(ol,memberList,scopeName,MemberDef::Variable);
// }
endFile(ol);
ol.enable(OutputGenerator::Man);
}
bool MemberGroup::isLinkableInProject()
void MemberGroup::setAnchors()
{
return hasDocumentation() && !isReference();
::setAnchors('z',memberList,grpId);
}
bool MemberGroup::isLinkable()
void MemberGroup::writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd)
{
return isLinkableInProject() || isReference();
memberList->writeDeclarations(ol,cd,nd,fd,gd,grpHeader,doc,TRUE);
}
void MemberGroup::addDocumentation()
void MemberGroup::writePlainDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd)
{
//printf("adding documentation for membergroup %s\n",name().data());
MemberListIterator mli(*memberList);
MemberDef *md;
for (;(md=mli.current());++mli)
{
//printf("Adding docs `%s' `%s'\n",md->briefDescription().data(),md->documentation().data());
setBriefDescription(briefDescription()+"\n"+md->briefDescription());
setDocumentation(documentation()+"\n"+md->documentation());
}
//printf("isLinkable()=%d\n",isLinkable());
//printf("MemberGroup::writePlainDeclarations() memberList->count()=%d\n",memberList->count());
memberList->writePlainDeclarations(ol,cd,nd,fd,gd,TRUE);
}
/******************************************************************************
*
* $Id$
*
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
......@@ -21,32 +21,41 @@
#include <qlist.h>
#include <qintdict.h>
#include "definition.h"
//#include "definition.h"
#define NOGROUP -1
class MemberDef;
class ClassDef;
class NamespaceDef;
class FileDef;
class MemberList;
class GroupDef;
class OutputList;
class Definition;
class MemberGroup : public Definition
class MemberGroup /* : public Definition */
{
public:
MemberGroup(int id,const char *header);
MemberGroup(int id,const char *header,const char *docs);
~MemberGroup();
QCString header() const { return grpHeader; }
QCString getOutputFileBase() const { return fileName; }
int groupId() const { return grpId; }
void insertMember(MemberDef *);
void writeDocumentation(OutputList &ol);
MemberList *members() const { return memberList; }
void addDocumentation();
bool isLinkableInProject();
bool isLinkable();
void setAnchors();
void writePlainDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
void writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
QCString documentation() { return doc; }
private:
MemberList *memberList; // list of all members in the group
MemberList *memberList; // list of all members in the group
int grpId;
QCString grpHeader;
QCString fileName; // base name of the generated file
Definition *scope;
QCString doc;
};
class MemberGroupList : public QList<MemberGroup>
......@@ -67,4 +76,12 @@ class MemberGroupDict : public QIntDict<MemberGroup>
~MemberGroupDict() {}
};
class MemberGroupDictIterator : public QIntDictIterator<MemberGroup>
{
public:
MemberGroupDictIterator(const MemberGroupDict &d) :
QIntDictIterator<MemberGroup>(d) {}
~MemberGroupDictIterator() {}
};
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment