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