Commit cce8b950 authored by dimitri's avatar dimitri

Release-1.2.12-20011125

parent c736b03f
DOXYGEN Version 1.2.12
DOXYGEN Version 1.2.12-20011125
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (18 November 2001)
Dimitri van Heesch (25 November 2001)
DOXYGEN Version 1.2.12
DOXYGEN Version 1.2.12_20011125
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (18 November 2001)
Dimitri van Heesch (dimitri@stack.nl) (25 November 2001)
1.2.12
1.2.12-20011125
......@@ -4,6 +4,8 @@
#include <qlist.h>
#include <qstring.h>
class IMember;
class IParam
{
public:
......@@ -15,6 +17,14 @@ class IParam
virtual QString defaultValue() const = 0;
};
class IMemberReference
{
public:
virtual IMember *getMember() const = 0;
virtual QString getMemberName() const = 0;
virtual int getLineNumber() const = 0;
};
class IMember
{
public:
......
......@@ -67,6 +67,20 @@ void MainHandler::initialize()
m_compoundNameDict.insert(compHandler->name(),compHandler);
m_compoundDict.insert(compHandler->id(),compHandler);
}
// for each member
QDictIterator< QList<IMember> > mndi(m_memberNameDict);
QList<IMember> *ml;
for (;(ml=mndi.current());++mndi)
{
QListIterator<IMember> mli(*ml);
IMember *mem;
for (;(mem=mli.current());++mli)
{
((MemberHandler*)mem)->initialize(this);
}
}
}
class ErrorHandler : public QXmlErrorHandler
......
......@@ -16,6 +16,7 @@
#include "memberhandler.h"
#include "sectionhandler.h"
#include "dochandler.h"
#include "mainhandler.h"
MemberHandler::MemberHandler(IBaseHandler *parent)
: m_parent(parent), m_brief(0), m_detailed(0)
......@@ -90,6 +91,7 @@ void MemberHandler::startReferences(const QXmlAttributes& attrib)
{
MemberReference *mr = new MemberReference;
mr->m_memId = attrib.value("id");
mr->m_line = attrib.value("line").toInt();
m_references.append(mr);
m_curString="";
}
......@@ -103,6 +105,7 @@ void MemberHandler::startReferencedBy(const QXmlAttributes& attrib)
{
MemberReference *mr = new MemberReference;
mr->m_memId = attrib.value("id");
mr->m_line = attrib.value("line").toInt();
m_referencedBy.append(mr);
m_curString="";
}
......@@ -136,4 +139,22 @@ void MemberHandler::startParam(const QXmlAttributes& attrib)
m_params.append(paramHandler);
}
void MemberHandler::initialize(MainHandler *mh)
{
QListIterator<MemberReference> mli(m_references);
MemberReference *mr;
for (;(mr=mli.current());++mli)
{
mr->initialize(mh);
}
}
void MemberHandler::MemberReference::initialize(MainHandler *mh)
{
m_mainHandler = mh;
}
IMember *MemberHandler::MemberReference::getMember() const
{
return m_mainHandler->getMemberById(m_memId);
}
......@@ -25,6 +25,7 @@
#include "doxmlintf.h"
class DocHandler;
class MainHandler;
class MemberHandler : public IMember, public BaseHandler<MemberHandler>
{
......@@ -54,12 +55,21 @@ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
virtual QString name() const { return m_name; }
virtual QListIterator<IParam> getParamIterator() const { return m_params; }
void initialize(MainHandler *m);
private:
struct MemberReference
struct MemberReference : public IMemberReference
{
QString m_memId;
QString m_name;
int line;
virtual ~MemberReference() {}
virtual IMember *getMember() const;
virtual QString getMemberName() const { return m_name; }
virtual int getLineNumber() const { return m_line; }
void initialize(MainHandler *m);
QString m_memId;
QString m_name;
int m_line;
MainHandler *m_mainHandler;
};
IBaseHandler *m_parent;
......
......@@ -2,7 +2,7 @@
% xml entities like &auml; are used for special characters
Brazilian
Fabio "FJTC" Jun Takada Chino: chino@grad.icmc.sc.usp.br
Fabio "FJTC" Jun Takada Chino: chino@icmc.sc.usp.br
Chinese
Wei Liu: liuwei@asiainfo.com
......
Name: doxygen
Version: 1.2.12
Version: 1.2.12_20011125
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
......
......@@ -84,9 +84,8 @@ ClassDef::ClassDef(
m_fileDef=0;
m_usesImplClassDict=0;
m_usesIntfClassDict=0;
m_memberGroupList = new MemberGroupList;
m_memberGroupList->setAutoDelete(TRUE);
m_memberGroupDict = new MemberGroupDict(17);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
m_innerClasses = new ClassSDict(17);
//int i=name().findRev("::"); // TODO: broken if A<N::C> is the class name
//if (i==-1)
......@@ -117,8 +116,7 @@ ClassDef::~ClassDef()
delete m_usesImplClassDict;
delete m_usesIntfClassDict;
delete m_incInfo;
delete m_memberGroupList;
delete m_memberGroupDict;
delete memberGroupSDict;
delete m_innerClasses;
delete m_templateInstances;
delete m_templBaseClassNames;
......@@ -157,29 +155,29 @@ void ClassDef::insertSubClass(ClassDef *cd,Protection p,
void ClassDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&pubTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&signals,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&dcopMethods,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&proStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priTypes,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priSlots,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priStaticMembers,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&priStaticAttribs,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&friends,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&related,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&properties,m_memberGroupDict,m_memberGroupList);
::addMembersToMemberGroup(&pubTypes,memberGroupSDict);
::addMembersToMemberGroup(&pubMembers,memberGroupSDict);
::addMembersToMemberGroup(&pubAttribs,memberGroupSDict);
::addMembersToMemberGroup(&pubSlots,memberGroupSDict);
::addMembersToMemberGroup(&signals,memberGroupSDict);
::addMembersToMemberGroup(&dcopMethods,memberGroupSDict);
::addMembersToMemberGroup(&pubStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&pubStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&proTypes,memberGroupSDict);
::addMembersToMemberGroup(&proMembers,memberGroupSDict);
::addMembersToMemberGroup(&proAttribs,memberGroupSDict);
::addMembersToMemberGroup(&proSlots,memberGroupSDict);
::addMembersToMemberGroup(&proStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&proStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&priTypes,memberGroupSDict);
::addMembersToMemberGroup(&priMembers,memberGroupSDict);
::addMembersToMemberGroup(&priAttribs,memberGroupSDict);
::addMembersToMemberGroup(&priSlots,memberGroupSDict);
::addMembersToMemberGroup(&priStaticMembers,memberGroupSDict);
::addMembersToMemberGroup(&priStaticAttribs,memberGroupSDict);
::addMembersToMemberGroup(&friends,memberGroupSDict);
::addMembersToMemberGroup(&related,memberGroupSDict);
::addMembersToMemberGroup(&properties,memberGroupSDict);
}
// adds new member definition to the class
......@@ -527,7 +525,7 @@ void ClassDef::computeAnchors()
void ClassDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -737,8 +735,17 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (!nm.isEmpty())
{
ol.startTypewriter();
ol.docify("#include ");
if (m_incInfo->local)
bool isIDLorJava = nm.right(4)==".idl" ||
nm.right(5)==".java";
if (isIDLorJava)
{
ol.docify("import ");
}
else
{
ol.docify("#include ");
}
if (m_incInfo->local || isIDLorJava)
ol.docify("\"");
else
ol.docify("<");
......@@ -756,10 +763,12 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.docify(nm);
}
ol.popGeneratorState();
if (m_incInfo->local)
if (m_incInfo->local || isIDLorJava)
ol.docify("\"");
else
ol.docify(">");
if (isIDLorJava)
ol.docify(";");
ol.endTypewriter();
ol.newParagraph();
}
......@@ -973,7 +982,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.startMemberSections();
// write user defined member groups
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -1485,7 +1494,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup)
ol.endMemberItem(FALSE);
// write user defined member groups
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -2361,7 +2370,7 @@ void ClassDef::addListReferences()
theTranslator->trClass(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*m_memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -39,8 +39,7 @@ class MemberDef;
class ExampleSDict;
class MemberNameInfoSDict;
class UsesClassDict;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class QTextStream;
class PackageDef;
class GroupDef;
......@@ -235,6 +234,9 @@ class ClassDef : public Definition
MemberList variableMembers;
MemberList propertyMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
/*! \} Public API */
/*! \name Doxygen internal API
......@@ -377,9 +379,6 @@ class ClassDef : public Definition
*/
ClassSDict *m_innerClasses;
/* user defined member groups */
MemberGroupList *m_memberGroupList;
MemberGroupDict *m_memberGroupDict;
/* classes for the collaboration diagram */
UsesClassDict *m_usesImplClassDict;
......
......@@ -1967,9 +1967,9 @@ void parseCode(OutputDocInterface &od,const char *className,const QCString &s,
codeYYrestart( codeYYin );
BEGIN( Body );
codeYYlex();
endFontClass();
if (g_inputLines==1)
{
endFontClass();
g_code->endCodeLine();
}
od.append(g_code);
......
......@@ -85,7 +85,9 @@ static int yyread(char *buf,int max_size)
[1-9][0-9]*[uUlL]* { g_strToken=yytext;
return TOK_DECIMALINT;
}
(0x|0X)[0-9a-fA-F]+[uUlL]* { g_strToken=yytext; return TOK_HEXADECIMALINT; }
(0x|0X)[0-9a-fA-F]+[uUlL]* { g_strToken=yytext+2;
return TOK_HEXADECIMALINT;
}
(([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+))([eE]([\-\+])?[0-9]+)?([fFlL])? {
g_strToken=yytext; return TOK_FLOAT;
}
......@@ -106,7 +108,7 @@ bool parseCppExpression(const char *fileName,int lineNr,const QCString &s)
g_inputPosition = 0;
cppExpYYrestart( cppExpYYin );
cppExpYYparse();
//printf("Result: %ld\n",(long)resultValue);
//printf("Result: %ld\n",(long)g_resultValue);
return (long)g_resultValue!=0;
}
......
......@@ -50,6 +50,7 @@ CPPValue parseHexadecimal()
else if (*p >= 'a' && *p <= 'f') val = val * 16 + *p - 'a' + 10;
else if (*p >= 'A' && *p <= 'F') val = val * 16 + *p - 'A' + 10;
}
//printf("parseHexadecimal %s->%x\n",g_strToken.data(),val);
return CPPValue(val);
}
......
......@@ -377,13 +377,17 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
{
name.prepend(scope+"::");
}
Definition *d = md->getOuterScope();
if (d==Doxygen::globalScope) d=md->getBodyDef();
if (md->getStartBodyLine()!=-1 && md->getBodyDef())
{
//printf("md->getBodyDef()=%p global=%p\n",md->getBodyDef(),Doxygen::globalScope);
// for HTML write a real link
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
QCString lineStr,anchorStr;
anchorStr.sprintf("l%05d",md->getStartBodyLine());
//printf("Write object link to %s\n",md->getBodyDef()->getSourceFileBase().data());
ol.writeObjectLink(0,md->getBodyDef()->getSourceFileBase(),anchorStr,name);
ol.popGeneratorState();
......@@ -393,9 +397,8 @@ void Definition::writeSourceRefList(OutputList &ol,const char *scopeName,
ol.docify(name);
ol.popGeneratorState();
}
else if (md->isLinkable() && md->getOuterScope())
else if (md->isLinkable() && d && d->isLinkable())
{
Definition *d = md->getOuterScope();
// for HTML write a real link
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
......
......@@ -913,7 +913,7 @@ TT [tT][tT]
UL [uU][lL]
VAR [vV][aA][rR]
BLOCKQUOTE [bB][lL][oO][cC][kK][qQ][uU][oO][tT][eE]
DOCPARAM ("#")?([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
DOCPARAM ("#")?([a-z_A-Z0-9:\!\<\~\>\^\&\=\.\-]+)|("\"".*"\"")
OPNEW {B}+"new"({B}*"[]")?
OPDEL {B}+"delete"({B}*"[]")?
OPARG "("[a-z_A-Z0-9,\<\> \t\*\&]*")"
......
......@@ -1520,6 +1520,16 @@ bool DotInclDepGraph::isTrivial() const
return m_startNode->m_children==0;
}
void DotInclDepGraph::writeXML(QTextStream &t)
{
QDictIterator<DotNode> dni(*m_usedNodes);
DotNode *node;
for (;(node=dni.current());++dni)
{
node->writeXML(t);
}
}
//-------------------------------------------------------------
void generateGraphLegend(const char *path)
......
......@@ -151,6 +151,7 @@ class DotInclDepGraph
bool writeImageMap=TRUE);
bool isTrivial() const;
QCString diskName() const;
void writeXML(QTextStream &t);
private:
void buildGraph(DotNode *n,FileDef *fd,int distance);
......
......@@ -7102,6 +7102,7 @@ void generateOutput()
exit(1);
}
Doxygen::tagFile.setDevice(tag);
Doxygen::tagFile << "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>" << endl;
Doxygen::tagFile << "<tagfile>" << endl;
}
......
......@@ -17,6 +17,11 @@
// includes
#ifdef _WIN32
#include <windows.h> // for AllocConsole
#endif
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
......@@ -805,7 +810,11 @@ void getConfig(const char *s)
int l;
char configFile[MAXSTRLEN];
strcpy(configFile,s);
#if defined(_WIN32)
strcat(configFile,"\\search.cfg");
#else
strcat(configFile,"/search.cfg");
#endif
FILE *f;
if ((f=fopen(configFile,"r"))==NULL)
......@@ -860,6 +869,10 @@ void strlowercpy(char *d,const char *s)
int main(int argc,char **argv)
{
#ifdef _WIN32
AllocConsole();
#endif
#ifdef PROFILING
struct timeval tv_start,tv_end;
gettimeofday(&tv_start,0);
......
......@@ -64,9 +64,8 @@ FileDef::FileDef(const char *p,const char *nm,const char *lref)
{
docname.prepend(stripFromPath(path.copy()));
}
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
}
/*! destroy the file definition */
......@@ -81,8 +80,7 @@ FileDef::~FileDef()
delete srcMemberDict;
delete usingDirList;
delete usingDeclList;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
/*! Compute the HTML anchor names for all members in the class */
......@@ -93,7 +91,7 @@ void FileDef::computeAnchors()
void FileDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -161,9 +159,22 @@ void FileDef::writeDocumentation(OutputList &ol)
for (;(ii=ili.current());++ili)
{
FileDef *fd=ii->fileDef;
bool isIDLorJava = FALSE;
if (fd)
{
isIDLorJava = fd->name().right(4)==".idl" ||
fd->name().right(5)==".java";
}
ol.startTypewriter();
ol.docify("#include ");
if (ii->local)
if (isIDLorJava)
{
ol.docify("import ");
}
else
{
ol.docify("#include ");
}
if (ii->local || isIDLorJava)
ol.docify("\"");
else
ol.docify("<");
......@@ -185,10 +196,12 @@ void FileDef::writeDocumentation(OutputList &ol)
}
ol.enableAll();
if (ii->local)
if (ii->local || isIDLorJava)
ol.docify("\"");
else
ol.docify(">");
if (isIDLorJava)
ol.docify(";");
ol.endTypewriter();
ol.disable(OutputGenerator::RTF);
ol.lineBreak();
......@@ -301,7 +314,7 @@ void FileDef::writeDocumentation(OutputList &ol)
classSDict->writeDeclaration(ol);
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -425,13 +438,10 @@ void FileDef::writeSource(OutputList &ol)
initParseCodeContext();
ol.startCodeFragment();
//if (name().left(9)=="memory.c")
//{
parseCode(ol,0,
fileToString(absFilePath(),Config_getBool("FILTER_SOURCE_FILES")),
FALSE,0,this
);
//}
ol.endCodeFragment();
endFile(ol);
ol.enableAll();
......@@ -440,12 +450,12 @@ void FileDef::writeSource(OutputList &ol)
void FileDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
}
/*! Adds member definition \a md to the list of all members of this file */
......@@ -631,7 +641,7 @@ void FileDef::addListReferences()
theTranslator->trFile(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -37,8 +37,7 @@ class OutputList;
class NamespaceDef;
class NamespaceList;
class NamespaceDict;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class PackageDef;
struct IncludeInfo
......@@ -169,6 +168,9 @@ class FileDef : public Definition
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
private:
ClassSDict *classSDict;
......@@ -191,9 +193,6 @@ class FileDef : public Definition
QIntDict<MemberDef> *srcMemberDict;
bool isSource;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
PackageDef *package;
};
......
......@@ -46,9 +46,8 @@ GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) :
allMemberNameInfoSDict = new MemberNameInfoSDict(17);
fileName = (QCString)"group_"+na;
setGroupTitle( t );
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
decDefineMembers.setInGroup(TRUE);
decProtoMembers.setInGroup(TRUE);
......@@ -79,8 +78,7 @@ GroupDef::~GroupDef()
delete exampleDict;
delete allMemberList;
delete allMemberNameInfoSDict;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
void GroupDef::setGroupTitle( const char *t )
......@@ -101,7 +99,7 @@ void GroupDef::setGroupTitle( const char *t )
void GroupDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -147,16 +145,16 @@ void GroupDef::addExample(const PageInfo *def)
void GroupDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumValMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumValMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
//printf("GroupDef::addMembersToMemberGroup() memberGroupList=%d\n",memberGroupList->count());
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -476,7 +474,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
if (allMemberList->count()>0)
{
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -740,7 +738,7 @@ void GroupDef::addListReferences()
theTranslator->trGroup(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -33,8 +33,7 @@ class NamespaceDef;
class GroupList;
class OutputList;
class NamespaceList;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class MemberNameInfoSDict;
class PageSDict;
class PageInfo;
......@@ -82,6 +81,26 @@ class GroupDef : public Definition
friend void writeGroupTreeNode(OutputList&, GroupDef*,bool);
// make accessible for writing tree view of group in index.cpp - KPW
// members in the declaration part of the documentation
MemberList decDefineMembers;
MemberList decProtoMembers;
MemberList decTypedefMembers;
MemberList decEnumMembers;
MemberList decEnumValMembers;
MemberList decFuncMembers;
MemberList decVarMembers;
// members in the documentation part of the documentation
MemberList docDefineMembers;
MemberList docProtoMembers;
MemberList docTypedefMembers;
MemberList docEnumMembers;
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
protected:
void addMemberListToGroup(MemberList *,bool (MemberDef::*)() const);
......@@ -100,26 +119,7 @@ class GroupDef : public Definition
MemberList *allMemberList;
MemberNameInfoSDict *allMemberNameInfoSDict;
// members in the declaration part of the documentation
MemberList decDefineMembers;
MemberList decProtoMembers;
MemberList decTypedefMembers;
MemberList decEnumMembers;
MemberList decEnumValMembers;
MemberList decFuncMembers;
MemberList decVarMembers;
// members in the documentation part of the documentation
MemberList docDefineMembers;
MemberList docProtoMembers;
MemberList docTypedefMembers;
MemberList docEnumMembers;
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupList *memberGroupList; // list of member groups in this group
MemberGroupDict *memberGroupDict;
};
class GroupSDict : public SDict<GroupDef>
......
......@@ -427,14 +427,14 @@ QCString MemberDef::getOutputFileBase() const
{
return classDef->getOutputFileBase();
}
else if (fileDef)
{
return fileDef->getOutputFileBase();
}
else if (nspace)
{
return nspace->getOutputFileBase();
}
else if (fileDef)
{
return fileDef->getOutputFileBase();
}
warn(m_defFileName,m_defLine,
"Warning: Internal inconsistency: member %s does not belong to any"
" container!",name().data()
......
......@@ -20,7 +20,7 @@
#include "qtbc.h"
#include <qlist.h>
#include <qintdict.h>
#include "sortdict.h"
#define NOGROUP -1
......@@ -33,7 +33,7 @@ class GroupDef;
class OutputList;
class Definition;
class MemberGroup /* : public Definition */
class MemberGroup
{
public:
MemberGroup(int id,const char *header,const char *docs);
......@@ -66,6 +66,7 @@ class MemberGroup /* : public Definition */
int numDocMembers() const;
void setInGroup(bool b);
void addListReferences(Definition *d);
MemberList *members() const { return memberList; }
private:
MemberList *memberList; // list of all members in the group
......@@ -97,6 +98,13 @@ class MemberGroupDict : public QIntDict<MemberGroup>
~MemberGroupDict() {}
};
class MemberGroupSDict : public SIntDict<MemberGroup>
{
public:
MemberGroupSDict(int size=17) : SIntDict<MemberGroup>(size) {}
~MemberGroupSDict() {}
};
class MemberGroupDictIterator : public QIntDictIterator<MemberGroup>
{
public:
......
......@@ -38,9 +38,8 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
usingDirList = 0;
usingDeclList = 0;
setReference(lref);
memberGroupList = new MemberGroupList;
memberGroupList->setAutoDelete(TRUE);
memberGroupDict = new MemberGroupDict(1009);
memberGroupSDict = new MemberGroupSDict;
memberGroupSDict->setAutoDelete(TRUE);
}
NamespaceDef::~NamespaceDef()
......@@ -50,13 +49,12 @@ NamespaceDef::~NamespaceDef()
delete m_innerCompounds;
delete usingDirList;
delete usingDeclList;
delete memberGroupList;
delete memberGroupDict;
delete memberGroupSDict;
}
void NamespaceDef::distributeMemberGroupDocumentation()
{
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -96,44 +94,15 @@ void NamespaceDef::insertNamespace(NamespaceDef *nd)
}
}
#if 0
void NamespaceDef::addMemberListToGroup(MemberList *ml,
bool (MemberDef::*func)() const)
{
MemberListIterator mli(*ml);
MemberDef *md;
for (;(md=mli.current());++mli)
{
int groupId=md->getMemberGroupId();
if ((md->*func)() && groupId!=-1)
{
QCString *pGrpHeader = Doxygen::memberHeaderDict[groupId];
QCString *pDocs = Doxygen::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);
}
}
}
}
#endif
void NamespaceDef::addMembersToMemberGroup()
{
::addMembersToMemberGroup(&decDefineMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decProtoMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decEnumMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decFuncMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decVarMembers,memberGroupDict,memberGroupList);
::addMembersToMemberGroup(&decDefineMembers,memberGroupSDict);
::addMembersToMemberGroup(&decProtoMembers,memberGroupSDict);
::addMembersToMemberGroup(&decTypedefMembers,memberGroupSDict);
::addMembersToMemberGroup(&decEnumMembers,memberGroupSDict);
::addMembersToMemberGroup(&decFuncMembers,memberGroupSDict);
::addMembersToMemberGroup(&decVarMembers,memberGroupSDict);
}
void NamespaceDef::insertMember(MemberDef *md)
......@@ -199,12 +168,6 @@ void NamespaceDef::insertMember(MemberDef *md)
void NamespaceDef::computeAnchors()
{
setAnchors('a',&allMemberList);
//MemberGroupListIterator mgli(*memberGroupList);
//MemberGroup *mg;
//for (;(mg=mgli.current());++mgli)
//{
// mg->setAnchors();
//}
}
void NamespaceDef::writeDocumentation(OutputList &ol)
......@@ -249,7 +212,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
classSDict->writeDeclaration(ol);
/* write user defined member groups */
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......@@ -380,7 +343,7 @@ void NamespaceDef::addListReferences()
theTranslator->trNamespace(TRUE,TRUE),
getOutputFileBase(),name()
);
MemberGroupListIterator mgli(*memberGroupList);
MemberGroupSDict::Iterator mgli(*memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
......
......@@ -31,8 +31,7 @@ class OutputList;
class ClassSDict;
class MemberDef;
class NamespaceList;
class MemberGroupDict;
class MemberGroupList;
class MemberGroupSDict;
class NamespaceSDict;
class NamespaceDef : public Definition
......@@ -97,6 +96,9 @@ class NamespaceDef : public Definition
MemberList docFuncMembers;
MemberList docVarMembers;
/* user defined member groups */
MemberGroupSDict *memberGroupSDict;
/*! Classes inside this namespace */
ClassSDict *classSDict;
/*! Namespaces inside this namespace */
......@@ -114,9 +116,6 @@ class NamespaceDef : public Definition
MemberList allMemberList;
/* user defined member groups */
MemberGroupList *memberGroupList;
MemberGroupDict *memberGroupDict;
};
class NamespaceList : public QList<NamespaceDef>
......
......@@ -267,6 +267,7 @@ FORALL1(SectionTypes a1,a1)
FORALL1(bool a1,a1)
FORALL2(bool a1,int a2,a1,a2)
FORALL2(bool a1,bool a2,a1,a2)
FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4)
#endif
FORALL2(int a1,bool a2,a1,a2)
FORALL1(IndexSections a1,a1)
......@@ -277,7 +278,6 @@ FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3)
FORALL3(uchar a1,uchar a2,uchar a3,a1,a2,a3)
FORALL4(const char *a1,const char *a2,const char *a3,const char *a4,a1,a2,a3,a4)
FORALL4(const char *a1,const char *a2,const char *a3,bool a4,a1,a2,a3,a4)
FORALL4(const char *a1,const char *a2,const char *a3,int a4,a1,a2,a3,a4)
......
......@@ -478,6 +478,7 @@ class OutputList : public OutputDocInterface
FORALLPROTO1(bool);
FORALLPROTO2(bool,int);
FORALLPROTO2(bool,bool);
FORALLPROTO4(const char *,const char *,const char *,int);
#endif
FORALLPROTO2(int,bool);
FORALLPROTO2(const char *,const char *);
......@@ -488,7 +489,6 @@ class OutputList : public OutputDocInterface
FORALLPROTO3(ClassDiagram &,const char *,const char *);
FORALLPROTO4(const char *,const char *,const char *,const char *);
FORALLPROTO4(const char *,const char *,const char *,bool);
FORALLPROTO4(const char *,const char *,const char *,int);
OutputList(const OutputList &ol);
QList<OutputGenerator> *outputs;
......
......@@ -721,7 +721,7 @@ QCString removeIdsAndMarkers(const char *s)
p++;
inNum=TRUE;
}
else if (c=='d') // identifier starting with a `d'
else if (c=='d' && !inNum) // identifier starting with a `d'
{
if (strncmp(p,"defined ",8)==0 || strncmp(p,"defined(",8)==0)
// defined keyword
......@@ -745,7 +745,7 @@ QCString removeIdsAndMarkers(const char *s)
{
result+=c;
char lc=tolower(c);
if (lc!='l' && lc!='u') inNum=FALSE;
if (!isId(lc) && lc!='.' && lc!='-' && lc!='+') inNum=FALSE;
p++;
}
}
......
......@@ -177,7 +177,6 @@ static void initParser()
isTypedef = FALSE;
autoGroupStack.clear();
insideTryBlock = FALSE;
insideIDL = FALSE;
autoGroupStack.setAutoDelete(TRUE);
lastDefGroup.groupname.resize(0);
}
......@@ -379,6 +378,7 @@ static void setContext()
QCString fileName = yyFileName;
insideIDL = fileName.right(4)==".idl";
insideJava = fileName.right(5)==".java";
//printf("setContext(%s) insideIDL=%d\n",yyFileName,insideIDL);
}
static void prependScope()
......
......@@ -22,6 +22,7 @@
#include "qtbc.h"
#include <qlist.h>
#include <qdict.h>
#include <qintdict.h>
#define AUTORESIZE 1
......@@ -63,6 +64,7 @@ const uint SDict_primes[] =
#endif
template<class T> class SDict;
template<class T> class SIntDict;
/*! internal wrapper class that redirects compareItems() to the
* dictionary
......@@ -270,4 +272,210 @@ class SDict
};
/*! internal wrapper class that redirects compareItems() to the
* dictionary
*/
template<class T>
class SIntList : public QList<T>
{
public:
SIntList(SIntDict<T> *owner) : m_owner(owner) {}
~SIntList() {}
int compareItems(GCI item1,GCI item2)
{
return m_owner->compareItems(item1,item2);
}
private:
SIntDict<T> *m_owner;
};
/*! Ordered dictionary of elements of type T.
* Internally uses a QList<T> and a QIntDict<T>.
*/
template<class T>
class SIntDict
{
private:
SIntList<T> *m_list;
QIntDict<T> *m_dict;
int m_sizeIndex;
public:
/*! Create an ordered dictionary.
* \param size The size of the dictionary. Should be a prime number for
* best distribution of elements.
*/
SIntDict(int size) : m_sizeIndex(0)
{
m_list = new SIntList<T>(this);
#if AUTORESIZE
while ((uint)size>SDict_primes[m_sizeIndex]) m_sizeIndex++;
m_dict = new QIntDict<T>(SDict_primes[m_sizeIndex]);
#else
m_dict = new QIntDict<T>(size);
#endif
}
/*! Destroys the dictionary */
virtual ~SIntDict()
{
delete m_list;
delete m_dict;
}
/*! Appends a compound to the dictionary. The element is owned by the
* dictionary.
* \param key The unique key to use to quicky find the item later on.
* \param d The compound to add.
* \sa find()
*/
void append(int key,const T *d)
{
m_list->append(d);
m_dict->insert(key,d);
#if AUTORESIZE
if (m_dict->size()>SDict_primes[m_sizeIndex])
{
m_dict->resize(SDict_primes[++m_sizeIndex]);
}
#endif
}
/*! Remove an item from the dictionary */
bool remove(int key)
{
T *item = m_dict->take(key);
return item ? m_list->remove(item) : FALSE;
}
/*! Sorts the members of the dictionary. First appending a number
* of members and then sorting them is faster (O(NlogN) than using
* inSort() for each member (O(N^2)).
*/
void sort()
{
m_list->sort();
}
/*! Inserts a compound into the dictionary in a sorted way.
* \param key The unique key to use to quicky find the item later on.
* \param d The compound to add.
* \sa find()
*/
void inSort(int key,const T *d)
{
m_list->inSort(d);
m_dict->insert(key,d);
#if AUTORESIZE
if (m_dict->size()>SDict_primes[m_sizeIndex])
{
m_dict->resize(SDict_primes[++m_sizeIndex]);
}
#endif
}
/*! Indicates whether or not the dictionary owns its elements */
void setAutoDelete(bool val)
{
m_list->setAutoDelete(val);
}
/*! Looks up a compound given its key.
* \param key The key to identify this element.
* \return The requested compound or zero if it cannot be found.
* \sa append()
*/
T *find(int key)
{
return m_dict->find(key);
}
/*! Equavalent to find(). */
T *operator[](int key) const
{
return m_dict->find(key);
}
/*! Returns the item at position \a i in the sorted dictionary */
T *at(uint i)
{
return m_list->at(i);
}
/*! Function that is used to compare two items when sorting.
* Overload this to properly sort items.
* \sa inSort()
*/
virtual int compareItems(GCI item1,GCI item2)
{
return item1!=item2;
}
/*! Clears the dictionary. Will delete items if setAutoDelete() was
* set to \c TRUE.
* \sa setAutoDelete
*/
void clear()
{
m_list->clear();
m_dict->clear();
}
/*! Returns the number of items stored in the dictionary
*/
int count()
{
return m_list->count();
}
class Iterator; // first forward declare
friend class Iterator; // then make it a friend
/*! Simple iterator for SDict. It iterates in the order in which the
* elements are stored.
*/
class Iterator
{
public:
/*! Create an iterator given the dictionary. */
Iterator(const SIntDict<T> &dict)
{
m_li = new QListIterator<T>(*dict.m_list);
}
/*! Destroys the dictionary */
virtual ~Iterator()
{
delete m_li;
}
/*! Set the iterator to the first element in the list.
* \return The first compound, or zero if the list was empty.
*/
T *toFirst() const
{
return m_li->toFirst();
}
/*! Set the iterator to the last element in the list.
* \return The first compound, or zero if the list was empty.
*/
T *toLast() const
{
return m_li->toLast();
}
/*! Returns the current compound */
T *current() const
{
return m_li->current();
}
/*! Moves the iterator to the next element.
* \return the new "current" element, or zero if the iterator was
* already pointing at the last element.
*/
T *operator++()
{
return m_li->operator++();
}
/*! Moves the iterator to the previous element.
* \return the new "current" element, or zero if the iterator was
* already pointing at the first element.
*/
T *operator--()
{
return m_li->operator--();
}
private:
QListIterator<T> *m_li;
};
};
#endif
......@@ -11,13 +11,17 @@
* input used in their production; they are not affected by this license.
*
* Brazilian Portuguese version by
* Fabio "FJTC" Jun Takada Chino <chino@grad.icmc.sc.usp.br>
* Version: 1.2.8.2 (2001/07/24)
* Fabio "FJTC" Jun Takada Chino <chino@icmc.sc.usp.br>
* http://www.icmc.sc.usp.br/~chino
* Version: 1.2.11 (2001/11/23)
*
* News:
* - Everything was revised.
*/
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
class TranslatorBrazilian: public TranslatorAdapter_1_2_11
class TranslatorBrazilian: public Translator
{
public:
......@@ -61,7 +65,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
{ return "(Note que estes não são funções membros.)"; }
{ return "(Note que estas não são funções membros.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
......@@ -102,15 +106,15 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! used as the title of the "list of all members" page of a class */
virtual QCString trMemberList()
{ return "Lista de Membros"; }
{ return "Lista dos Membros"; }
/*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers()
{ return "Esta é a lista completa dos membros da "; }
{ return "Esta é a lista de todos os membros da "; }
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
{ return ", incluindo todos os membros herdados."; }
{ return ", incluindo os membros herdados."; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
......@@ -118,7 +122,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="Gerado automaticamente por Doxygen";
if (s) result+=(QCString)" para "+s;
result+=" a partir do código-fonte.";
result+=" a partir de seu código-fonte.";
return result;
}
......@@ -207,7 +211,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
{ return "Esta lista de hierarquia é parcialmente ordenada em ordem alfabética:"; }
{ return "Esta lista de hierarquia está parcialmente ordenada em ordem alfabética:"; }
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
......@@ -235,7 +239,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Aqui está a lista de todos os membros de classes ";
QCString result="Esta é lista de todos os membros das classes ";
if (!extractAll) result+="documentados ";
result+="com links para ";
if (extractAll)
......@@ -248,7 +252,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll)
{
QCString result="Aqui esta a lista de ";
QCString result="Esta é a lista de ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="tadas as funções, variáveis, definições, enumerações e definições de tipos ";
......@@ -271,25 +275,25 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is an introduction to the page with the list of all header files. */
virtual QCString trHeaderFilesDescription()
{ return "Aqui estão os arquivos de cabeçalho que compõe a API:"; }
{ return "Estes são os arquivos de cabeçalho que compõe a API:"; }
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return "Aqui está a lista de todos os exemplos:"; }
{ return "Esta é a lista de todos os exemplos:"; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
{ return "Aqui está a lista de toda a documentação relacionadas:"; }
{ return "Esta é a lista de toda a documentação relacionadas:"; }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
{ return "Aqui está a lista de todos os médulos:"; }
{ return "Esta é a lista de todos os médulos:"; }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
virtual QCString trNoDescriptionAvailable()
{ return "Sem descriçãodisponível"; }
{ return "Sem descrição disponível"; }
// index titles (the project name is prepended for these)
......@@ -302,7 +306,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return "Índice de Módulos"; }
{ return "Índice dos Módulos"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
......@@ -363,7 +367,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "Manual de Referência"; }
{ return "Guia de Referência"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
......@@ -417,13 +421,13 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return "Protótipos de funções"; }
{ return "Protótipos das funções"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "Definições de tipos"; }
{ return "Definições dos tipos"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
......@@ -552,7 +556,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* friends of a class
*/
virtual QCString trFriends()
{ return "Amigos"; }
{ return "Amigas"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
......@@ -562,7 +566,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "Amigos e Funções Relacionadas"; }
{ return "Amigas e Funções Relacionadas"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -777,7 +781,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trSources()
{
return "Fontes";
return "Códigos-Fonte";
}
virtual QCString trDefinedAtLineInSourceFile()
{
......@@ -794,8 +798,9 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
virtual QCString trDeprecated()
{
/* This note is for brazilians.
Esta é uma boa tradução para "deprecated"?
/*
* This note is for brazilians only.
* Esta é uma boa tradução para "deprecated"?
*/
return "Descontinuada";
}
......@@ -935,7 +940,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Lista de tarefas futuras";
return "Lista de Tarefas Futuras";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1049,7 +1054,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Lista de Teste";
return "Lista de Testes";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1150,8 +1155,7 @@ class TranslatorBrazilian: public TranslatorAdapter_1_2_11
/*! Used as ansicpg for RTF file
*
* The following table shows the correlation of Charset name, Charset Value
and
* The following table shows the correlation of Charset name, Charset Value and
* <pre>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
......@@ -1298,5 +1302,16 @@ and
if (!singular) result+="es";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referências";
}
};
#endif
......@@ -20,10 +20,24 @@
* d2set@d2set.org).
*/
/******************************************************************************
* History of content
*
* Date | Description
* ============+=============================================================
* 2001-11-22 | Removed obsolet methods:
* | QCString latexBabelPackage()
* | QCString trAuthor()
* | QCString trAuthors()
* | QCString trFiles()
* | QCString trIncludeFile()
* | QCString trVerbatimText(const char *f)
* -------------+------------------------------------------------------------
*/
#ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_11
class TranslatorFrench : public Translator
{
public:
QCString idLanguage()
......@@ -46,9 +60,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
{
return "\\usepackage[french]{babel}\n";
}
/*! returns the name of the package that is included by LaTeX */
QCString latexBabelPackage()
{ return "french"; }
/*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset()
......@@ -126,14 +137,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trDefinedIn()
{ return "défini dans"; }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString trIncludeFile()
{ return "Fichier inclu"; }
QCString trVerbatimText(const char *f)
{ return (QCString)"Ce texte provient du fichier inclu "+f+"."; }
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
......@@ -351,10 +354,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trEnumerationValues()
{ return "Éléments énumérés"; }
/*! This is used in man pages as the author section. */
QCString trAuthor()
{ return "Auteur"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
......@@ -403,12 +402,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trCompounds()
{ return "Composants"; }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString trFiles()
{ return "Fichiers"; }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
......@@ -458,10 +451,6 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
QCString trDate()
{ return "Date"; }
/*! this text is generated when the \\author command is used. */
QCString trAuthors()
{ return "Auteur(s)"; }
/*! this text is generated when the \\return command is used. */
QCString trReturns()
{ return "Renvoie"; }
......@@ -1233,5 +1222,15 @@ class TranslatorFrench : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Références";
}
};
#endif
......@@ -22,6 +22,8 @@
* Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (since June 1999)
* Updates:
* 2001/11: corrected the translation fixing the issues reported by the translator.pl script
* translated new items used since version 1.2.11
* 2001/08: corrected the translation fixing the issues reported by the translator.pl script
* translated new items used since version 1.2.7
* 2001/05: adopted new translation mechanism (trough adapters),
......@@ -53,13 +55,13 @@
* tecnica (ad es "lista dei file" e non "lista dei files")
*
* Se avete suggerimenti sulla traduzione di alcuni termini o volete segnalare
* eventuali sviste potete scrivermi all'indirizzo: a.falappa@flashnet.it
* eventuali sviste potete scrivermi all'indirizzo: afalappa@interfree.it
*/
#ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_2_11
class TranslatorItalian : public Translator
{
public:
......@@ -1308,6 +1310,17 @@ class TranslatorItalian : public TranslatorAdapter_1_2_11
result+=(singular ? "e" : "i");
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Riferimenti";
}
};
#endif
......@@ -20,14 +20,41 @@
#include "translator_adapter.h"
class TranslatorKorean : public TranslatorAdapter_1_1_0
class TranslatorKorean : public Translator
{
public:
QCString idLanguage()
// --- Language control methods -------------------
/*! Used for identification of the language. The identification
* should not be translated. It should be replaced by the name
* of the language in English using lower-case characters only
* (e.g. "czech", "japanese", "russian", etc.). It should be equal to
* the identification used in language.cpp.
*/
virtual QCString idLanguage()
{ return "korean"; }
/*! returns the name of the package that is included by LaTeX */
QCString latexBabelPackage()
{ return ""; } // What is the correct value here?
/*! Used to get the LaTeX command(s) for the language support.
* This method should return string with commands that switch
* LaTeX to the desired language. For example
* <pre>"\\usepackage[german]{babel}\n"
* </pre>
* or
* <pre>"\\usepackage{polski}\n"
* "\\usepackage[latin2]{inputenc}\n"
* "\\usepackage[T1]{fontenc}\n"
* </pre>
*
* The English LaTeX does not use such commands. Because of this
* the empty string is returned in this implementation.
*/
virtual QCString latexLanguageSupportCommand()
{
// I'm not sure what this should be.
// When I figure it out, I'll update this.
return "";
}
/*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset()
......@@ -35,363 +62,411 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
return "euc-kr";
}
// --- Language translation methods -------------------
/*! used in the compound documentation before a list of related functions. */
QCString trRelatedFunctions()
virtual QCString trRelatedFunctions()
{ return "관련된 함수들"; }
/*! subscript for the related functions. */
QCString trRelatedSubscript()
virtual QCString trRelatedSubscript()
{ return "관련주석"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
QCString trDetailedDescription()
virtual QCString trDetailedDescription()
{ return "상세한 내용"; }
/*! header that is put before the list of typedefs. */
QCString trMemberTypedefDocumentation()
virtual QCString trMemberTypedefDocumentation()
{ return "멤버 타입정의 문서화"; }
/*! header that is put before the list of enumerations. */
QCString trMemberEnumerationDocumentation()
virtual QCString trMemberEnumerationDocumentation()
{ return "구성원(member) 열거 문서화"; }
/*! header that is put before the list of member functions. */
QCString trMemberFunctionDocumentation()
virtual QCString trMemberFunctionDocumentation()
{ return "멤버 함수 문서화"; }
/*! header that is put before the list of member attributes. */
QCString trMemberDataDocumentation()
{ return "멤서 데이타 문서화"; }
virtual QCString trMemberDataDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
// TODO: This need to be translated. -ryk11/22/01.
return "멤서 데이타 문서화";
}
else
{
return "멤서 데이타 문서화";
}
}
/*! this is the text of a link put after brief descriptions. */
QCString trMore()
virtual QCString trMore()
{ return "More..."; }
/*! put in the class documentation */
QCString trListOfAllMembers()
virtual QCString trListOfAllMembers()
{ return "모든 구성원들(members)의 명단"; }
/*! used as the title of the "list of all members" page of a class */
QCString trMemberList()
virtual QCString trMemberList()
{ return "구성원(member) 명단"; }
/*! this is the first part of a sentence that is followed by a class name */
QCString trThisIsTheListOfAllMembers()
{ return "완전한 구성원들(members)의 명단 " ; } // "This is the complete list of members for "
virtual QCString trThisIsTheListOfAllMembers()
{ return "완전한 구성원들(members)의 명단 " ; }
/*! this is the remainder of the sentence after the class name */
QCString trIncludingInheritedMembers()
{ return ", 상속받은 모든 구성원(members)들도 포함"; } // ", including all inherited members."
virtual QCString trIncludingInheritedMembers()
{ return ", 상속받은 모든 구성원(members)들도 포함"; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
QCString trGeneratedAutomatically(const char *s)
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="";
if (s) result+=(QCString)s+"에 ";
result+="source 코드로 부터 Doxygen에 의해 자동적으로 생성";
return result;
if (s) result+=(QCString)s+"에 ";
result += "source 코드로 부터 Doxygen에 의해 자동적으로 생성";
return result;
}
/*! put after an enum name in the list of all members */
QCString trEnumName()
virtual QCString trEnumName()
{ return "열거체 이름"; }
/*! put after an enum value in the list of all members */
QCString trEnumValue()
virtual QCString trEnumValue()
{ return "열거체 값"; }
/*! put after an undocumented member in the list of all members */
QCString trDefinedIn()
virtual QCString trDefinedIn()
{ return "에서 정의된"; }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString trVerbatimText(const char *f)
{ return (QCString)"이것은 "+f+" 포함 파일의 축약적인 문서이다"; }
// quick reference sections
/*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \group command).
* compounds or files (see the \\group command).
*/
QCString trModules()
virtual QCString trModules()
{ return "모듈들"; }
/*! This is put above each page as a link to the class hierarchy */
QCString trClassHierarchy()
virtual QCString trClassHierarchy()
{ return "클래스 계층(도)"; } // "클래스 조직" or "클래스 분류체계"
/*! This is put above each page as a link to the list of annotated classes */
QCString trCompoundList()
{ return "혼합 목록"; } //"혼합 목록", "합성(집합) 명단(리스트)"
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
//Alternate text: "혼합 목록", "합성(집합) 명단(리스트)"
return "혼합 목록";
}
else
{
//TODO: This needs to be translated. -ryk11/22/01.
return "혼합 목록";
}
}
/*! This is put above each page as a link to the list of documented files */
QCString trFileList()
virtual QCString trFileList()
{ return "파일 목록"; } //"파일 목록", "파일 리스트"
/*! This is put above each page as a link to the list of all verbatim headers */
QCString trHeaderFiles()
virtual QCString trHeaderFiles()
{ return "헤더 파일들"; }
/*! This is put above each page as a link to all members of compounds. */
QCString trCompoundMembers()
{ return "혼합 멤버들"; } // "합성(집합) 명단(멤버들)"
virtual QCString trCompoundMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
// TODO: This need to be translated. -ryk11/22/01.
return "혼합 멤버들";
}
else
{
// Alternate text: "합성(집합) 명단(멤버들)"
return "혼합 멤버들";
}
}
/*! This is put above each page as a link to all members of files. */
QCString trFileMembers()
{ return "파일 멤버들"; }
virtual QCString trFileMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
// TODO: This needs to be translated. -ryk11/22/01.
return "파일 멤버들";
}
else
{
return "파일 멤버들";
}
}
/*! This is put above each page as a link to all related pages. */
QCString trRelatedPages()
virtual QCString trRelatedPages()
{ return "관련된 페이지들"; }
/*! This is put above each page as a link to all examples. */
QCString trExamples()
virtual QCString trExamples()
{ return "예제들"; }
/*! This is put above each page as a link to the search engine. */
QCString trSearch()
virtual QCString trSearch()
{ return "검색"; }
/*! This is an introduction to the class hierarchy. */
QCString trClassHierarchyDescription()
virtual QCString trClassHierarchyDescription()
{ return "이 상속 목록은 완전하지는 않지만 알파벳순으로 분류되었습니다.";}
/*! This is an introduction to the list with all files. */
QCString trFileListDescription(bool extractAll)
virtual QCString trFileListDescription(bool extractAll)
{
QCString result="이것은 간략한 설명을 가진 모든 "; // "Here is a list of all "
if (!extractAll) result+="문서화된 "; // "documented "
result+="파일들에 대한 목록입니다."; // "files with brief descriptions:"
QCString result="이것은 간략한 설명을 가진 모든 ";
if (!extractAll) result+="문서화된 ";
result+="파일들에 대한 목록입니다.";
return result;
}
/*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription()
{ return "이것은 간략한 설명을 가진 클래스들, "
"구조체들, 공용체들, 그리고 인터페이스들입니다.";
virtual QCString trCompoundListDescription()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
// TODO: This needs to be translated. -ryk11/22/01.
return "이것은 간략한 설명을 가진 클래스들, "
"구조체들, 공용체들, 그리고 인터페이스들입니다.";
}
else
{
return "이것은 간략한 설명을 가진 클래스들, "
"구조체들, 공용체들, 그리고 인터페이스들입니다.";
}
}
/*! This is an introduction to the page with all class members. */
QCString trCompoundMembersDescription(bool extractAll)
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="이곳에 모든 리스트가 있습니다"; //"Here is a list of all "
if (!extractAll) result+="문서화된 "; //"documented "
result+="링크가 된 클래스 멤버들 "; //"class members with links to "
QCString result="이곳에 모든 리스트가 있습니다";
if (!extractAll)
{
result+="문서화된 ";
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
// TODO: This need to be translated. -ryk11/22/01.
result+="링크가 된 클래스 멤버들 ";
}
else
{
result+="링크가 된 클래스 멤버들 ";
}
if (extractAll)
result+="각각의 멤버를 위한 클래스 문서:"; //"the class documentation for each member:"
result+="각각의 멤버를 위한 클래스 문서:";
else
result+="이하로 속한 클래스들:"; //"the classes they belong to:"
result+="이하로 속한 클래스들:";
return result;
}
/*! This is an introduction to the page with all file members. */
QCString trFileMembersDescription(bool extractAll)
virtual QCString trFileMembersDescription(bool extractAll)
{
QCString result="이곳에 모든 리스트가 있습니다";
if (!extractAll) result+="문서화된 ";
result+="링크가 된 파일 멤버들 ";
if (extractAll)
result+="각 멤버들에 대한 파일 문서화"; // "the file documentation for each member:"
result+="각 멤버들에 대한 파일 문서화";
else
result+="그것들이 속해있는 파일들"; // "the files they belong to:"
result+="그것들이 속해있는 파일들";
return result;
}
/*! This is an introduction to the page with the list of all header files. */
QCString trHeaderFilesDescription()
{ return "이것은 API를 구성하는 헤더 파일들입니다."; } // "Here are the header files that make up the API:"
virtual QCString trHeaderFilesDescription()
{ return "이것은 API를 구성하는 헤더 파일들입니다."; }
/*! This is an introduction to the page with the list of all examples */
QCString trExamplesDescription()
{ return "이것은 모든 예제들의 목록입니다."; } // "Here is a list of all examples:"
virtual QCString trExamplesDescription()
{ return "이것은 모든 예제들의 목록입니다."; }
/*! This is an introduction to the page with the list of related pages */
QCString trRelatedPagesDescription()
virtual QCString trRelatedPagesDescription()
{ return "이것은 모든 관련된 문서화 페이지들의 목록입니다."; }
// "Here is a list of all related documentation pages:"
/*! This is an introduction to the page with the list of class/file groups */
QCString trModulesDescription()
{ return "이것은 모든 모듈들의 목록입니다."; } // "Here is a list of all modules:"
virtual QCString trModulesDescription()
{ return "이것은 모든 모듈들의 목록입니다."; }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
QCString trNoDescriptionAvailable()
{ return "유용한 설명이 없습니다."; } // "No description available"
virtual QCString trNoDescriptionAvailable()
{ return "유용한 설명이 없습니다."; }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
QCString trDocumentation()
virtual QCString trDocumentation()
{ return "문서화"; }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
QCString trModuleIndex()
virtual QCString trModuleIndex()
{ return "모듈 색인"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
QCString trHierarchicalIndex()
{ return "분류체계 색인"; } // "조직 색인", "계층적 인덱스"
virtual QCString trHierarchicalIndex()
{ return "분류체계 색인"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
QCString trCompoundIndex()
{ return "합성 인덱스"; } // "혼합 색인"
virtual QCString trCompoundIndex()
{ return "합성 인덱스"; }
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
QCString trFileIndex()
virtual QCString trFileIndex()
{ return "파일 색인"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
QCString trModuleDocumentation()
virtual QCString trModuleDocumentation()
{ return "모듈 문서화"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
*/
QCString trClassDocumentation()
virtual QCString trClassDocumentation()
{ return "클래스 문서화"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
*/
QCString trFileDocumentation()
virtual QCString trFileDocumentation()
{ return "파일 문서화"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
QCString trExampleDocumentation()
virtual QCString trExampleDocumentation()
{ return "예제 문서화"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
QCString trPageDocumentation()
virtual QCString trPageDocumentation()
{ return "페이지 문서화"; }
/*! This is used in LaTeX as the title of the document */
QCString trReferenceManual()
{ return "참고서"; } // "참고서","참고 매뉴얼", "참조 메뉴얼"
virtual QCString trReferenceManual()
{ return "참고서"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
QCString trDefines()
virtual QCString trDefines()
{ return "정의들"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
QCString trFuncProtos()
virtual QCString trFuncProtos()
{ return "함수 원형들"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
QCString trTypedefs()
virtual QCString trTypedefs()
{ return "타입 정의들"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
QCString trEnumerations()
virtual QCString trEnumerations()
{ return "Enumerations"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
QCString trFunctions()
virtual QCString trFunctions()
{ return "함수들"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trVariables()
virtual QCString trVariables()
{ return "변수들"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trEnumerationValues()
virtual QCString trEnumerationValues()
{ return "열거체 값들"; }
/*! This is used in man pages as the author section. */
QCString trAuthor()
{ return "저자"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
QCString trDefineDocumentation()
virtual QCString trDefineDocumentation()
{ return "정의 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
QCString trFunctionPrototypeDocumentation()
virtual QCString trFunctionPrototypeDocumentation()
{ return "함수 원형 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
QCString trTypedefDocumentation()
virtual QCString trTypedefDocumentation()
{ return "타입 정의 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
QCString trEnumerationTypeDocumentation()
virtual QCString trEnumerationTypeDocumentation()
{ return "열거체 타입 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
QCString trEnumerationValueDocumentation()
virtual QCString trEnumerationValueDocumentation()
{ return "열거체 값 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
QCString trFunctionDocumentation()
virtual QCString trFunctionDocumentation()
{ return "함수 문서화"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
QCString trVariableDocumentation()
virtual QCString trVariableDocumentation()
{ return "변수 문서화"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
QCString trCompounds()
virtual QCString trCompounds()
{ return "혼합들"; }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString trFiles()
{ return "파일들"; }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
QCString trGeneratedAt(const char *date,const char *projName)
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result="";
if (projName) result+=(QCString)projName+"에 대해 ";
......@@ -400,74 +475,71 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
}
/*! This is part of the sentence used in the standard footer of each page.
*/
QCString trWrittenBy()
virtual QCString trWrittenBy()
{
return "written by"; // "에 의해 쓰여진?"
return "written by";
}
/*! this text is put before a class diagram */
QCString trClassDiagram(const char *clName)
virtual QCString trClassDiagram(const char *clName)
{
return (QCString)clName+"에 대한 상속 도표"; // "Inheritance diagram for "+clName
return (QCString)clName+"에 대한 상속 도표";
}
/*! this text is generated when the \\internal command is used. */
QCString trForInternalUseOnly()
virtual QCString trForInternalUseOnly()
{ return "내부 사용만을 위해"; }
/*! this text is generated when the \\reimp command is used. */
QCString trReimplementedForInternalReasons()
virtual QCString trReimplementedForInternalReasons()
{ return "내부적 이유를 위해 재구현된: API가 영향을 받지않았다."; }
// "Reimplemented for internal reasons; the API is not affected."
/*! this text is generated when the \\warning command is used. */
QCString trWarning()
virtual QCString trWarning()
{ return "경고"; }
/*! this text is generated when the \\bug command is used. */
QCString trBugsAndLimitations()
virtual QCString trBugsAndLimitations()
{ return "버그들과 한계들"; }
/*! this text is generated when the \\version command is used. */
QCString trVersion()
virtual QCString trVersion()
{ return "버전"; }
/*! this text is generated when the \\date command is used. */
QCString trDate()
virtual QCString trDate()
{ return "날짜"; }
/*! this text is generated when the \\author command is used. */
QCString trAuthors()
{ return "저자(들)"; }
/*! this text is generated when the \\return command is used. */
QCString trReturns()
virtual QCString trReturns()
{ return "반환"; }
/*! this text is generated when the \\sa command is used. */
QCString trSeeAlso()
virtual QCString trSeeAlso()
{ return "참조하시요"; }
/*! this text is generated when the \\param command is used. */
QCString trParameters()
virtual QCString trParameters()
{ return "매개변수들"; }
/*! this text is generated when the \\exception command is used. */
QCString trExceptions()
virtual QCString trExceptions()
{ return "예외들"; }
/*! this text is used in the title page of a LaTeX document. */
QCString trGeneratedBy()
virtual QCString trGeneratedBy()
{ return "에 의해 생성된"; }
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
/*! used as the title of page containing all the index of all namespaces. */
QCString trNamespaceList()
virtual QCString trNamespaceList()
{ return "이름공간 목록"; }
/*! used as an introduction to the namespace list */
QCString trNamespaceListDescription(bool extractAll)
virtual QCString trNamespaceListDescription(bool extractAll)
{
QCString result="이것은 모든 간략한 설명을 가진 ";
if (!extractAll) result+="문서화된 ";
......@@ -478,7 +550,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
QCString trFriends()
virtual QCString trFriends()
{ return "프렌드"; }
//////////////////////////////////////////////////////////////////////////
......@@ -496,7 +568,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
//////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
QCString trCompoundReference(const char *clName,
virtual QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
{
......@@ -515,7 +587,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
}
/*! used as the title of the HTML page of a file */
QCString trFileReference(const char *fileName)
virtual QCString trFileReference(const char *fileName)
{
QCString result=fileName;
result+=" 파일 참조";
......@@ -523,39 +595,38 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
}
/*! used as the title of the HTML page of a namespace */
QCString trNamespaceReference(const char *namespaceName)
virtual QCString trNamespaceReference(const char *namespaceName)
{
QCString result=namespaceName;
result+=" 이름 공간 참조";
return result;
}
/* these are for the member sections of a class, struct or union */
QCString trPublicMembers()
virtual QCString trPublicMembers()
{ return "공용 메소드"; }
QCString trPublicSlots()
virtual QCString trPublicSlots()
{ return "공용 Slots"; }
QCString trSignals()
virtual QCString trSignals()
{ return "신호"; }
QCString trStaticPublicMembers()
virtual QCString trStaticPublicMembers()
{ return "정적 공용 메소드"; }
QCString trProtectedMembers()
virtual QCString trProtectedMembers()
{ return "프로텍티드 메소드"; }
QCString trProtectedSlots()
virtual QCString trProtectedSlots()
{ return "Protected Slots"; }
QCString trStaticProtectedMembers()
virtual QCString trStaticProtectedMembers()
{ return "정적 프로텍티드 메소드"; }
QCString trPrivateMembers()
virtual QCString trPrivateMembers()
{ return "프라이베이트 메소드"; }
QCString trPrivateSlots()
virtual QCString trPrivateSlots()
{ return "Private Slots"; }
QCString trStaticPrivateMembers()
virtual QCString trStaticPrivateMembers()
{ return "정적 프라이베이트 메소드"; }
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
QCString trWriteList(int numEntries)
virtual QCString trWriteList(int numEntries)
{
QCString result;
int i;
......@@ -580,7 +651,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
QCString trInheritsList(int numEntries)
virtual QCString trInheritsList(int numEntries)
{
return trWriteList(numEntries)+" 들을 상속하다.";
}
......@@ -588,7 +659,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! used in class documentation to produce a list of super classes,
* if class diagrams are disabled.
*/
QCString trInheritedByList(int numEntries)
virtual QCString trInheritedByList(int numEntries)
{
return trWriteList(numEntries)+"에 의해 상속된.";
}
......@@ -596,7 +667,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
QCString trReimplementedFromList(int numEntries)
virtual QCString trReimplementedFromList(int numEntries)
{
return trWriteList(numEntries)+"으로부터 재구현된.";
}
......@@ -604,17 +675,17 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
QCString trReimplementedInList(int numEntries)
virtual QCString trReimplementedInList(int numEntries)
{
return trWriteList(numEntries)+"에서 재구현된.";
}
/*! This is put above each page as a link to all members of namespaces. */
QCString trNamespaceMembers()
virtual QCString trNamespaceMembers()
{ return "이름공간 멤버들"; }
/*! This is an introduction to the page with all namespace members */
QCString trNamespaceMemberDescription(bool extractAll)
virtual QCString trNamespaceMemberDescription(bool extractAll)
{
QCString result="이것은 모든 ";
if (!extractAll) result+="문서화된 ";
......@@ -629,13 +700,13 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
QCString trNamespaceIndex()
virtual QCString trNamespaceIndex()
{ return "이름공간 색인"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
QCString trNamespaceDocumentation()
virtual QCString trNamespaceDocumentation()
{ return "이름공간 문서화"; }
//////////////////////////////////////////////////////////////////////////
......@@ -645,7 +716,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! This is used in the documentation before the list of all
* namespaces in a file.
*/
QCString trNamespaces()
virtual QCString trNamespaces()
{ return "이름공간"; }
//////////////////////////////////////////////////////////////////////////
......@@ -655,7 +726,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
......@@ -677,7 +748,7 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
QCString trAlphabeticalList()
virtual QCString trAlphabeticalList()
{ return "알파벳순서의 목록"; }
//////////////////////////////////////////////////////////////////////////
......@@ -685,44 +756,44 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
QCString trReturnValues()
virtual QCString trReturnValues()
{ return "반환값"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString trMainPage()
virtual QCString trMainPage()
{ return "주요 페이지"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
QCString trPageAbbreviation()
virtual QCString trPageAbbreviation()
{ return "페이지"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
QCString trSources()
virtual QCString trSources()
{
return "출처";
}
QCString trDefinedAtLineInSourceFile()
virtual QCString trDefinedAtLineInSourceFile()
{
return "파일 @1. 의 @0 번째 라인에서 정의"; // "Definition at line @0 of file @1."
return "파일 @1. 의 @0 번째 라인에서 정의";
}
QCString trDefinedInSourceFile()
virtual QCString trDefinedInSourceFile()
{
return "파일 @0. 에서 정의"; // "Definition in file @0."
return "파일 @0. 에서 정의";
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991205
//////////////////////////////////////////////////////////////////////////
QCString trDeprecated()
virtual QCString trDeprecated()
{
return "Deprecated"; // "비난받은(??)","반대하는"
return "Deprecated";
}
//////////////////////////////////////////////////////////////////////////
......@@ -730,71 +801,515 @@ class TranslatorKorean : public TranslatorAdapter_1_1_0
//////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */
QCString trCollaborationDiagram(const char *clName)
virtual QCString trCollaborationDiagram(const char *clName)
{
return (QCString)clName+"에 대한 원조 도표:";
}
/*! this text is put before an include dependency graph */
QCString trInclDepGraph(const char *fName)
virtual QCString trInclDepGraph(const char *fName)
{
return (QCString)fName+"에 대한 include 의존 그래프";
}
/*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation()
virtual QCString trConstructorDocumentation()
{
return "생성자 & 소멸자 문서화";
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode()
virtual QCString trGotoSourceCode()
{
return "이 파일에 대한 소스 코드로 가시오";
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString trGotoDocumentation()
virtual QCString trGotoDocumentation()
{
return "이 파일의 문서화로 가시오";
}
/*! Text for the \\pre command */
QCString trPrecondition()
virtual QCString trPrecondition()
{
return "전제 조건";
}
/*! Text for the \\post command */
QCString trPostcondition()
virtual QCString trPostcondition()
{
return "후미 조건"; // "후치조건"
return "후미 조건"; //Alternate: "후치조건"
}
/*! Text for the \\invariant command */
QCString trInvariant()
virtual QCString trInvariant()
{
return "변하지 않는";
}
/*! Text shown before a multi-line variable/enum initialization */
QCString trInitialValue()
virtual QCString trInitialValue()
{
return "초기화기";
}
/*! Text used the source code in the file index */
QCString trCode()
virtual QCString trCode()
{
return "코드";
}
QCString trGraphicalHierarchy()
virtual QCString trGraphicalHierarchy()
{
return "도표의 클래스 분류체계"; // "도표의 클래스 조직"
}
QCString trGotoGraphicalHierarchy()
virtual QCString trGotoGraphicalHierarchy()
{
return "도표의 클래스 분류체계로 가시오"; // "도표의 클래스 조직으로 가시오"
}
QCString trGotoTextualHierarchy()
virtual QCString trGotoTextualHierarchy()
{
return "문자의 클래스 분류체계로 가시오"; // "문자의 클래스 조직으로 가시오"
}
QCString trPageIndex()
virtual QCString trPageIndex()
{
return "페이지 색인";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
virtual QCString trNote()
{
return "Note"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trPublicTypes()
{
return "Public Types"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Data Fields"; // TODO: Need to be translated. -ryk11/22/01.
}
else
{
return "Public Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
}
virtual QCString trStaticPublicAttribs()
{
return "Static Public Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trProtectedTypes()
{
return "Protected Types"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trProtectedAttribs()
{
return "Protected Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trStaticProtectedAttribs()
{
return "Static Protected Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trPrivateTypes()
{
return "Private Types"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trPrivateAttribs()
{
return "Private Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trStaticPrivateAttribs()
{
return "Static Private Attributes"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \\todo item */
virtual QCString trTodo()
{
return "Todo"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Todo List"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.4
//////////////////////////////////////////////////////////////////////////
virtual QCString trReferencedBy()
{
return "Referenced by"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trRemarks()
{
return "Remarks"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trAttention()
{
return "Attention"; // TODO: Need to be translated. -ryk11/22/01.
}
virtual QCString trInclByDepGraph()
{
// TODO: Need to be translated. -ryk11/22/01.
return "This graph shows which files directly or "
"indirectly include this file:";
}
virtual QCString trSince()
{
return "Since"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return "Graph Legend"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! page explaining how the dot graph's should be interpreted
* The %A in the text below are to prevent link to classes called "A".
*/
virtual QCString trLegendDocs()
{
// TODO: Need to be translated. -ryk11/22/01.
return
"This page explains how to interpret the graphs that are generated "
"by doxygen.<p>\n"
"Consider the following example:\n"
"\\code\n"
"/*! Invisible class because of truncation */\n"
"class Invisible { };\n\n"
"/*! Truncated class, inheritance relation is hidden */\n"
"class Truncated : public Invisible { };\n\n"
"/* Class not documented with doxygen comments */\n"
"class Undocumented { };\n\n"
"/*! Class that is inherited using public inheritance */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! A template class */\n"
"template<class T> class Templ { };\n\n"
"/*! Class that is inherited using protected inheritance */\n"
"class ProtectedBase { };\n\n"
"/*! Class that is inherited using private inheritance */\n"
"class PrivateBase { };\n\n"
"/*! Class that is used by the Inherited class */\n"
"class Used { };\n\n"
"/*! Super class that inherits a number of other classes */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
" public Templ<int>\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 240 this will result in the following graph:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"The boxes in the above graph have the following meaning:\n"
"<ul>\n"
"<li>%A filled black box represents the struct or class for which the "
"graph is generated.\n"
"<li>%A box with a black border denotes a documented struct or class.\n"
"<li>%A box with a grey border denotes an undocumented struct or class.\n"
"<li>%A box with a red border denotes a documented struct or class for"
"which not all inheritance/containment relations are shown. %A graph is "
"truncated if it does not fit within the specified boundaries.\n"
"</ul>\n"
"The arrows have the following meaning:\n"
"<ul>\n"
"<li>%A dark blue arrow is used to visualize a public inheritance "
"relation between two classes.\n"
"<li>%A dark green arrow is used for protected inheritance.\n"
"<li>%A dark red arrow is used for private inheritance.\n"
"<li>%A purple dashed arrow is used if a class is contained or used "
"by another class. The arrow is labeled with the variable(s) "
"through which the pointed class or struct is accessible.\n"
"<li>%A yellow dashed arrow denotes a relation between a template instance and "
"the template class it was instantiated from. The arrow is labeled with "
"the template parameters of the instance.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return "legend"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return "Test"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Test List"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.1
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
return "DCOP Methods"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.2
//////////////////////////////////////////////////////////////////////////
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
return "Properties"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
return "Property Documentation"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.4
//////////////////////////////////////////////////////////////////////////
/*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces()
{
return "Interfaces"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Data Structures"; // TODO: Need to be translated. -ryk11/22/01.
}
else
{
return "Classes"; // TODO: Need to be translated. -ryk11/22/01.
}
}
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
return (QCString)"Package "+name; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Title of the package index page */
virtual QCString trPackageList()
{
return "Package List"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return "Here are the packages with brief descriptions (if available):"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
return "Packages"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation()
{
return "Package Documentation"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
return "Value:"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return "Bug"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
return "Bug List"; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.6
//////////////////////////////////////////////////////////////////////////
/*! Used as ansicpg for RTF file
*
* The following table shows the correlation of Charset name, Charset Value and
* <pre>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
* ------------------------------------------------------
* DEFAULT_CHARSET 1 (x01)
* SYMBOL_CHARSET 2 (x02)
* OEM_CHARSET 255 (xFF)
* ANSI_CHARSET 0 (x00) 1252
* RUSSIAN_CHARSET 204 (xCC) 1251
* EE_CHARSET 238 (xEE) 1250
* GREEK_CHARSET 161 (xA1) 1253
* TURKISH_CHARSET 162 (xA2) 1254
* BALTIC_CHARSET 186 (xBA) 1257
* HEBREW_CHARSET 177 (xB1) 1255
* ARABIC _CHARSET 178 (xB2) 1256
* SHIFTJIS_CHARSET 128 (x80) 932
* HANGEUL_CHARSET 129 (x81) 949
* GB2313_CHARSET 134 (x86) 936
* CHINESEBIG5_CHARSET 136 (x88) 950
* </pre>
*
*/
virtual QCString trRTFansicp()
{
return "1252";
}
/*! Used as ansicpg for RTF fcharset
* \see trRTFansicp() for a table of possible values.
*/
virtual QCString trRTFCharSet()
{
return "0";
}
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
return "Index"; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trClass(bool first_capital, bool singular)
{
QCString result((first_capital ? "Class" : "class"));
if (!singular) result+="es";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trFile(bool first_capital, bool singular)
{
QCString result((first_capital ? "File" : "file"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "Namespace" : "namespace"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result((first_capital ? "Group" : "group"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result((first_capital ? "Page" : "page"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trMember(bool first_capital, bool singular)
{
QCString result((first_capital ? "Member" : "member"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trField(bool first_capital, bool singular)
{
QCString result((first_capital ? "Field" : "field"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.7
//////////////////////////////////////////////////////////////////////////
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular)
{
QCString result((first_capital ? "Author" : "author"));
if (!singular) result+="s";
return result; // TODO: Need to be translated. -ryk11/22/01.
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "References"; // TODO: Need to be translated. -ryk11/22/01.
}
};
#endif
......@@ -18,7 +18,7 @@
#ifndef TRANSLATOR_NL_H
#define TRANSLATOR_NL_H
class TranslatorDutch : public TranslatorAdapter_1_2_11
class TranslatorDutch : public Translator
{
public:
QCString idLanguage()
......@@ -964,6 +964,17 @@ class TranslatorDutch : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Gebruikt";
}
};
#endif
......@@ -18,16 +18,18 @@
*
* VERSION HISTORY
* ---------------
* 002 19 november 2001
* ! Updated for doxygen v1.2.12
* 001 20 july 2001
* - Updated for doxygen v1.2.8.1
* ! Updated for doxygen v1.2.8.1
* 000 ?
* - Initial translation for doxygen v1.1.5
* + Initial translation for doxygen v1.1.5
*/
#ifndef TRANSLATOR_PT_H
#define TRANSLATOR_PT_H
class TranslatorPortuguese : public TranslatorAdapter_1_2_11
class TranslatorPortuguese : public Translator
{
public:
......@@ -1348,5 +1350,17 @@ class TranslatorPortuguese : public TranslatorAdapter_1_2_11
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referências";
}
};
#endif
......@@ -21,7 +21,7 @@
#define TRANSLATOR_SI_H
class TranslatorSlovene : public TranslatorAdapter_1_2_11
class TranslatorSlovene : public Translator
{
public:
QCString idLanguage()
......@@ -981,7 +981,16 @@ class TranslatorSlovene : public TranslatorAdapter_1_2_11
if (!singular) result+="ji";
return result;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Reference";
}
};
#endif
......
......@@ -1275,6 +1275,8 @@ void stripIrrelevantConstVolatile(QCString &s)
int i;
if (s=="const") { s.resize(0); return; }
if (s=="volatile") { s.resize(0); return; }
// strip occurrences of const
i = s.find("const ");
if (i!=-1)
{
......@@ -1284,6 +1286,8 @@ void stripIrrelevantConstVolatile(QCString &s)
s=s.left(i)+s.right(s.length()-i-6);
}
}
// strip occurrences of volatile
i = s.find("volatile ");
if (i!=-1)
{
......@@ -1295,22 +1299,6 @@ void stripIrrelevantConstVolatile(QCString &s)
}
}
#if 0 // should be done differently
static QCString resolveTypeDefs(const QCString &s)
{
QCString result;
static QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*");
int p=0,l,i;
while ((i=re.match(s,p,&l))!=-1)
{
result += s.mid(p,i-p);
result += resolveTypeDef(s.mid(i,l));
p=i+l;
}
result+=s.right(s.length()-p);
return result;
}
#endif
// a bit of debug support for matchArguments
#define MATCH
......@@ -1485,6 +1473,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
// otherwise we assume that a name starts at the current position.
while (srcPos<srcAType.length() && isId(srcAType.at(srcPos))) srcPos++;
while (dstPos<dstAType.length() && isId(dstAType.at(dstPos))) dstPos++;
// if nothing more follows for both types then we assume we have
// found a match. Note that now `signed int' and `signed' match, but
// seeing that int is not a name can only be done by looking at the
......@@ -3108,8 +3097,7 @@ const char *getOverloadDocs()
"function only in what argument(s) it accepts.";
}
void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
MemberGroupList *memberGroupList)
void addMembersToMemberGroup(MemberList *ml,MemberGroupSDict *memberGroupSDict)
{
MemberListIterator mli(*ml);
MemberDef *md;
......@@ -3123,12 +3111,11 @@ void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
QCString *pDocs = Doxygen::memberDocDict[groupId];
if (pGrpHeader)
{
MemberGroup *mg = memberGroupDict->find(groupId);
MemberGroup *mg = memberGroupSDict->find(groupId);
if (mg==0)
{
mg = new MemberGroup(groupId,*pGrpHeader,pDocs ? pDocs->data() : 0);
memberGroupDict->insert(groupId,mg);
memberGroupList->append(mg);
memberGroupSDict->append(groupId,mg);
}
md = ml->take(index);
mg->insertMember(md);
......
......@@ -39,8 +39,7 @@ class BaseClassList;
class GroupDef;
class NamespaceList;
class ClassList;
class MemberGroupList;
class MemberGroupDict;
class MemberGroupSDict;
class Definition;
struct TagInfo;
......@@ -149,8 +148,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile=FALSE);
QCString convertToHtml(const char *s);
QCString convertToXML(const char *s);
const char * getOverloadDocs();
void addMembersToMemberGroup(MemberList *ml,MemberGroupDict *memberGroupDict,
MemberGroupList *memberGroupList);
void addMembersToMemberGroup(MemberList *ml,MemberGroupSDict *memberGroupSDict);
bool extractClassNameFromType(const QCString &type,int &pos,
QCString &name,QCString &templSpec);
QCString substituteTemplateArgumentsInString(
......
......@@ -771,7 +771,7 @@ class XMLGenerator : public OutputDocInterface
friend void writeXMLCodeBlock(QTextStream &t,FileDef *fd);
};
void writeXMLDocBlock(QTextStream &t,
static void writeXMLDocBlock(QTextStream &t,
const QCString &fileName,
int lineNr,
const QCString &scope,
......@@ -810,19 +810,19 @@ void writeXMLCodeBlock(QTextStream &t,FileDef *fd)
void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
static void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
{
// + declaration
// - reimplements
// - reimplementedBy
// - exceptions
// - const/volatile specifiers
// + declaration/definition arg lists
// + reimplements
// + reimplementedBy
// + exceptions
// + const/volatile specifiers
// - examples
// + source definition
// - source references
// - source referenced by
// - include code
// + source references
// + source referenced by
// - body code
if (md->memberType()==MemberDef::EnumValue) return;
......@@ -852,7 +852,7 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
case MemberDef::Slot: memType="slot"; isFunc=TRUE; break;
}
t << memType << "\" id=\"";
t << def->getOutputFileBase()
t << md->getOutputFileBase()
<< "_1" // encoded `:' character (see util.cpp:convertNameToFile)
<< md->anchor();
t << "\"";
......@@ -871,8 +871,19 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
case Protected: t << "protected"; break;
case Private: t << "private"; break;
}
t << "\">" << endl;
t << "\"";
if (isFunc)
{
ArgumentList *al = md->argumentList();
t << " const=\"";
if (al && al->constSpecifier) t << "yes"; else t << "no";
t << "\" volatile=\"";
if (al && al->volatileSpecifier) t << "yes"; else t << "no";
t << "\"";
}
t << ">" << endl;
if (md->memberType()!=MemberDef::Define &&
md->memberType()!=MemberDef::Enumeration
)
......@@ -885,7 +896,27 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
t << " <name>";
writeXMLString(t,md->name());
t << "</name>" << endl;
MemberDef *rmd = md->reimplements();
if (rmd)
{
t << " <reimplements id=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
<< rmd->name() << "</reimplements>";
}
MemberList *rbml = md->reimplementedBy();
if (rbml)
{
MemberListIterator mli(*rbml);
for (mli.toFirst();(rmd=mli.current());++mli)
{
t << " <reimplementedby id=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
<< rmd->name() << "</reimplementedby>";
}
}
if (isFunc) //function
{
ArgumentList *declAl = new ArgumentList;
......@@ -958,7 +989,14 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
linkifyText(TextGeneratorXMLImpl(t),scopeName,md->name(),md->initializer());
t << "</initializer>" << endl;
}
// TODO: exceptions, const volatile
if (md->excpString())
{
t << " <exceptions>";
linkifyText(TextGeneratorXMLImpl(t),scopeName,md->name(),md->excpString());
t << "</exception>" << endl;
}
if (md->memberType()==MemberDef::Enumeration) // enum
{
if (md->enumFieldList())
......@@ -994,7 +1032,7 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
<< md->getDefLine() << "\"/>" << endl;
}
printf("md->getReferencesMembers()=%p\n",md->getReferencesMembers());
//printf("md->getReferencesMembers()=%p\n",md->getReferencesMembers());
if (md->getReferencesMembers())
{
MemberSDict::Iterator mdi(*md->getReferencesMembers());
......@@ -1051,43 +1089,48 @@ void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
t << " </memberdef>" << endl;
}
void generateXMLClassSection(ClassDef *cd,QTextStream &t,MemberList *ml,const char *kind)
static void generateXMLSection(Definition *d,QTextStream &t,
MemberList *ml,const char *kind,const char *header=0)
{
if (ml->count()>0)
if (ml->count()==0) return; // empty list
t << " <sectiondef kind=\"" << kind << "\">" << endl;
if (header)
{
t << " <sectiondef kind=\"" << kind << "\">" << endl;
//t << " <memberlist>" << endl;
MemberListIterator mli(*ml);
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
generateXMLForMember(md,t,cd);
}
//t << " </memberlist>" << endl;
t << " </sectiondef>" << endl;
t << " <header>" << convertToXML(header) << "</header>" << endl;
}
MemberListIterator mli(*ml);
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
generateXMLForMember(md,t,d);
}
t << " </sectiondef>" << endl;
}
void generateXMLForClass(ClassDef *cd,QTextStream &t)
static void generateXMLForClass(ClassDef *cd,QTextStream &t)
{
// + brief description
// + detailed description
// - template arguments
// - include files
// - include file
// - member groups
// + inheritance diagram
// + list of direct super classes
// + list of direct sub classes
// - list of inner classes
// + collaboration diagram
// - list of all members
// + user defined member sections
// + standard member sections
// + detailed member documentation
// - examples
// - examples using the class
if (cd->isReference()) return; // skip external references.
if (cd->isReference()) return; // skip external references.
if (cd->name().find('@')!=-1) return; // skip anonymous compounds.
if (cd->templateMaster()!=0) return; // skip generated template instances.
if (cd->templateMaster()!=0) return; // skip generated template instances.
t << " <compounddef id=\""
<< cd->getOutputFileBase() << "\" kind=\""
<< cd->compoundTypeString() << "\">" << endl;
......@@ -1144,43 +1187,38 @@ void generateXMLForClass(ClassDef *cd,QTextStream &t)
t << "\"/>" << endl;
}
}
int numMembers =
cd->pubTypes.count()+cd->pubMembers.count()+cd->pubAttribs.count()+
cd->pubSlots.count()+cd->signals.count()+cd->dcopMethods.count()+
cd->pubStaticMembers.count()+
cd->pubStaticAttribs.count()+cd->proTypes.count()+cd->proMembers.count()+
cd->proAttribs.count()+cd->proSlots.count()+cd->proStaticMembers.count()+
cd->proStaticAttribs.count()+cd->priTypes.count()+cd->priMembers.count()+
cd->priAttribs.count()+cd->priSlots.count()+cd->priStaticMembers.count()+
cd->priStaticAttribs.count()+cd->friends.count()+cd->related.count();
if (numMembers>0)
MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
//t << " <sectionlist>" << endl;
generateXMLClassSection(cd,t,&cd->pubTypes,"public-type");
generateXMLClassSection(cd,t,&cd->pubMembers,"public-func");
generateXMLClassSection(cd,t,&cd->pubAttribs,"public-attrib");
generateXMLClassSection(cd,t,&cd->pubSlots,"public-slot");
generateXMLClassSection(cd,t,&cd->signals,"signal");
generateXMLClassSection(cd,t,&cd->dcopMethods,"dcop-func");
generateXMLClassSection(cd,t,&cd->properties,"property");
generateXMLClassSection(cd,t,&cd->pubStaticMembers,"public-static-func");
generateXMLClassSection(cd,t,&cd->pubStaticAttribs,"public-static-attrib");
generateXMLClassSection(cd,t,&cd->proTypes,"protected-type");
generateXMLClassSection(cd,t,&cd->proMembers,"protected-func");
generateXMLClassSection(cd,t,&cd->proAttribs,"protected-attrib");
generateXMLClassSection(cd,t,&cd->proSlots,"protected-slot");
generateXMLClassSection(cd,t,&cd->proStaticMembers,"protected-static-func");
generateXMLClassSection(cd,t,&cd->proStaticAttribs,"protected-static-attrib");
generateXMLClassSection(cd,t,&cd->priTypes,"private-type");
generateXMLClassSection(cd,t,&cd->priMembers,"private-func");
generateXMLClassSection(cd,t,&cd->priAttribs,"private-attrib");
generateXMLClassSection(cd,t,&cd->priSlots,"private-slot");
generateXMLClassSection(cd,t,&cd->priStaticMembers,"private-static-func");
generateXMLClassSection(cd,t,&cd->priStaticAttribs,"private-static-attrib");
generateXMLClassSection(cd,t,&cd->friends,"signal");
generateXMLClassSection(cd,t,&cd->related,"related");
//t << " </sectionlist>" << endl;
generateXMLSection(cd,t,mg->members(),"user-defined",mg->header());
}
generateXMLSection(cd,t,&cd->pubTypes,"public-type");
generateXMLSection(cd,t,&cd->pubMembers,"public-func");
generateXMLSection(cd,t,&cd->pubAttribs,"public-attrib");
generateXMLSection(cd,t,&cd->pubSlots,"public-slot");
generateXMLSection(cd,t,&cd->signals,"signal");
generateXMLSection(cd,t,&cd->dcopMethods,"dcop-func");
generateXMLSection(cd,t,&cd->properties,"property");
generateXMLSection(cd,t,&cd->pubStaticMembers,"public-static-func");
generateXMLSection(cd,t,&cd->pubStaticAttribs,"public-static-attrib");
generateXMLSection(cd,t,&cd->proTypes,"protected-type");
generateXMLSection(cd,t,&cd->proMembers,"protected-func");
generateXMLSection(cd,t,&cd->proAttribs,"protected-attrib");
generateXMLSection(cd,t,&cd->proSlots,"protected-slot");
generateXMLSection(cd,t,&cd->proStaticMembers,"protected-static-func");
generateXMLSection(cd,t,&cd->proStaticAttribs,"protected-static-attrib");
generateXMLSection(cd,t,&cd->priTypes,"private-type");
generateXMLSection(cd,t,&cd->priMembers,"private-func");
generateXMLSection(cd,t,&cd->priAttribs,"private-attrib");
generateXMLSection(cd,t,&cd->priSlots,"private-slot");
generateXMLSection(cd,t,&cd->priStaticMembers,"private-static-func");
generateXMLSection(cd,t,&cd->priStaticAttribs,"private-static-attrib");
generateXMLSection(cd,t,&cd->friends,"signal");
generateXMLSection(cd,t,&cd->related,"related");
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,cd->getDefFileName(),cd->getDefLine(),cd->name(),0,cd->briefDescription());
t << " </briefdescription>" << endl;
......@@ -1207,41 +1245,38 @@ void generateXMLForClass(ClassDef *cd,QTextStream &t)
t << " </compounddef>" << endl;
}
void generateXMLSection(Definition *d,QTextStream &t,MemberList *ml,const char *kind)
static void generateXMLForNamespace(NamespaceDef *nd,QTextStream &t)
{
if (ml->count()>0)
{
t << " <sectiondef kind=\"" << kind << "\">" << endl;
MemberListIterator mli(*ml);
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
generateXMLForMember(md,t,d);
}
t << " </sectiondef>" << endl;
}
}
// - contained class definitions
// - contained namespace definitions
// - member groups
// + normal members
// + brief desc
// + detailed desc
// + location
// - files containing (parts of) the namespace definition
void generateXMLForNamespace(NamespaceDef *nd,QTextStream &t)
{
if (nd->isReference()) return; // skip external references
t << " <compounddef id=\""
<< nd->getOutputFileBase() << "\" kind=\"namespace\">" << endl;
t << " <compoundname>";
writeXMLString(t,nd->name());
t << "</compoundname>" << endl;
int numMembers = nd->decDefineMembers.count()+nd->decProtoMembers.count()+
nd->decTypedefMembers.count()+nd->decEnumMembers.count()+
nd->decFuncMembers.count()+nd->decVarMembers.count();
if (numMembers>0)
MemberGroupSDict::Iterator mgli(*nd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
generateXMLSection(nd,t,&nd->decDefineMembers,"define");
generateXMLSection(nd,t,&nd->decProtoMembers,"prototype");
generateXMLSection(nd,t,&nd->decTypedefMembers,"typedef");
generateXMLSection(nd,t,&nd->decEnumMembers,"enum");
generateXMLSection(nd,t,&nd->decFuncMembers,"func");
generateXMLSection(nd,t,&nd->decVarMembers,"var");
generateXMLSection(nd,t,mg->members(),"user-defined",mg->header());
}
generateXMLSection(nd,t,&nd->decDefineMembers,"define");
generateXMLSection(nd,t,&nd->decProtoMembers,"prototype");
generateXMLSection(nd,t,&nd->decTypedefMembers,"typedef");
generateXMLSection(nd,t,&nd->decEnumMembers,"enum");
generateXMLSection(nd,t,&nd->decFuncMembers,"func");
generateXMLSection(nd,t,&nd->decVarMembers,"var");
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,nd->getDefFileName(),nd->getDefLine(),0,0,nd->briefDescription());
t << " </briefdescription>" << endl;
......@@ -1254,26 +1289,87 @@ void generateXMLForNamespace(NamespaceDef *nd,QTextStream &t)
t << " </compounddef>" << endl;
}
void generateXMLForFile(FileDef *fd,QTextStream &t)
static void generateXMLForFile(FileDef *fd,QTextStream &t)
{
// + includes files
// + includedby files
// + include graph
// + included by graph
// - contained class definitions
// - contained namespace definitions
// - member groups
// + normal members
// + brief desc
// + detailed desc
// + source code
// + location
// - number of lines
if (fd->isReference()) return; // skip external references
t << " <compounddef id=\""
<< fd->getOutputFileBase() << "\" kind=\"file\">" << endl;
t << " <compoundname>";
writeXMLString(t,fd->name());
t << "</compoundname>" << endl;
int numMembers = fd->decDefineMembers.count()+fd->decProtoMembers.count()+
fd->decTypedefMembers.count()+fd->decEnumMembers.count()+
fd->decFuncMembers.count()+fd->decVarMembers.count();
if (numMembers>0)
QListIterator<IncludeInfo> ili1(*fd->includeFileList());
IncludeInfo *inc;
for (ili1.toFirst();(inc=ili1.current());++ili1)
{
t << " <includes";
if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
{
t << " id=\"" << inc->fileDef->getOutputFileBase() << "\"";
}
t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
t << inc->includeName;
t << "</includes>" << endl;
}
QListIterator<IncludeInfo> ili2(*fd->includedByFileList());
for (ili2.toFirst();(inc=ili2.current());++ili2)
{
t << " <includedby";
if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
{
t << " id=\"" << inc->fileDef->getOutputFileBase() << "\"";
}
t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
t << inc->includeName;
t << "</includedby>" << endl;
}
DotInclDepGraph incDepGraph(fd,FALSE);
if (!incDepGraph.isTrivial())
{
t << " <incdepgraph>" << endl;
incDepGraph.writeXML(t);
t << " </incdepgraph>" << endl;
}
DotInclDepGraph invIncDepGraph(fd,TRUE);
if (!invIncDepGraph.isTrivial())
{
t << " <invincdepgraph>" << endl;
invIncDepGraph.writeXML(t);
t << " </invincdepgraph>" << endl;
}
MemberGroupSDict::Iterator mgli(*fd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
{
generateXMLSection(fd,t,&fd->decDefineMembers,"define");
generateXMLSection(fd,t,&fd->decProtoMembers,"prototype");
generateXMLSection(fd,t,&fd->decTypedefMembers,"typedef");
generateXMLSection(fd,t,&fd->decEnumMembers,"enum");
generateXMLSection(fd,t,&fd->decFuncMembers,"func");
generateXMLSection(fd,t,&fd->decVarMembers,"var");
generateXMLSection(fd,t,mg->members(),"user-defined",mg->header());
}
generateXMLSection(fd,t,&fd->decDefineMembers,"define");
generateXMLSection(fd,t,&fd->decProtoMembers,"prototype");
generateXMLSection(fd,t,&fd->decTypedefMembers,"typedef");
generateXMLSection(fd,t,&fd->decEnumMembers,"enum");
generateXMLSection(fd,t,&fd->decFuncMembers,"func");
generateXMLSection(fd,t,&fd->decVarMembers,"var");
t << " <briefdescription>" << endl;
writeXMLDocBlock(t,fd->getDefFileName(),fd->getDefLine(),0,0,fd->briefDescription());
t << " </briefdescription>" << endl;
......@@ -1283,15 +1379,21 @@ void generateXMLForFile(FileDef *fd,QTextStream &t)
t << " <programlisting>" << endl;
writeXMLCodeBlock(t,fd);
t << " </programlisting>" << endl;
t << " <location file=\""
<< fd->getDefFileName() << "\" line=\""
<< fd->getDefLine() << "\"/>" << endl;
t << " <location file=\"" << fd->getDefFileName() << "\"/>" << endl;
t << " </compounddef>" << endl;
}
void generateXML()
{
// + classes
// + namespaces
// + files
// - packages
// - groups
// - related pages
QCString outputDirectory = Config_getString("OUTPUT_DIRECTORY");
if (outputDirectory.isEmpty())
{
......@@ -1356,6 +1458,12 @@ void generateXML()
{
generateXMLForClass(cd,t);
}
NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
for (nli.toFirst();(nd=nli.current());++nli)
{
generateXMLForNamespace(nd,t);
}
FileNameListIterator fnli(Doxygen::inputNameList);
FileName *fn;
for (;(fn=fnli.current());++fnli)
......
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