summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/classdef.cpp79
-rw-r--r--src/classdef.h9
-rw-r--r--src/code.l2
-rw-r--r--src/constexp.l6
-rw-r--r--src/cppvalue.cpp1
-rw-r--r--src/definition.cpp7
-rw-r--r--src/doc.l2
-rw-r--r--src/dot.cpp10
-rw-r--r--src/dot.h1
-rw-r--r--src/doxygen.cpp1
-rw-r--r--src/doxysearch.cpp13
-rw-r--r--src/filedef.cpp50
-rw-r--r--src/filedef.h9
-rw-r--r--src/groupdef.cpp30
-rw-r--r--src/groupdef.h42
-rw-r--r--src/memberdef.cpp8
-rw-r--r--src/membergroup.h12
-rw-r--r--src/namespacedef.cpp61
-rw-r--r--src/namespacedef.h9
-rw-r--r--src/outputlist.cpp2
-rw-r--r--src/outputlist.h2
-rw-r--r--src/pre.l4
-rw-r--r--src/scanner.l2
-rw-r--r--src/sortdict.h208
-rw-r--r--src/translator_br.h73
-rw-r--r--src/translator_fr.h51
-rw-r--r--src/translator_it.h17
-rw-r--r--src/translator_kr.h893
-rw-r--r--src/translator_nl.h13
-rw-r--r--src/translator_pt.h20
-rw-r--r--src/translator_si.h11
-rw-r--r--src/util.cpp29
-rw-r--r--src/util.h6
-rw-r--r--src/xmlgen.cpp322
34 files changed, 1449 insertions, 556 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 4b1b949..a65e76b 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -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)
{
diff --git a/src/classdef.h b/src/classdef.h
index c2b6274..bdfe4d9 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -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;
diff --git a/src/code.l b/src/code.l
index c56385a..804a507 100644
--- a/src/code.l
+++ b/src/code.l
@@ -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);
diff --git a/src/constexp.l b/src/constexp.l
index 92b3da4..a1bf69e 100644
--- a/src/constexp.l
+++ b/src/constexp.l
@@ -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;
}
diff --git a/src/cppvalue.cpp b/src/cppvalue.cpp
index be1018a..55373a8 100644
--- a/src/cppvalue.cpp
+++ b/src/cppvalue.cpp
@@ -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);
}
diff --git a/src/definition.cpp b/src/definition.cpp
index 56b3edf..1125569 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -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);
diff --git a/src/doc.l b/src/doc.l
index 539a4cc..8499513 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -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\*\&]*")"
diff --git a/src/dot.cpp b/src/dot.cpp
index fae5b93..9849426 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -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)
diff --git a/src/dot.h b/src/dot.h
index 99a51be..796f6e4 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -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);
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 571cc41..a5f40ac 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -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;
}
diff --git a/src/doxysearch.cpp b/src/doxysearch.cpp
index 3b5b227..90ac247 100644
--- a/src/doxysearch.cpp
+++ b/src/doxysearch.cpp
@@ -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);
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 56b9fa2..32d14d0 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -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)
{
diff --git a/src/filedef.h b/src/filedef.h
index 77c8aa8..906e208 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -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;
};
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index ec43b56..50d846b 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -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)
{
diff --git a/src/groupdef.h b/src/groupdef.h
index 458d314..8a0088f 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -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>
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 8ed96af..4253ce5 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -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()
diff --git a/src/membergroup.h b/src/membergroup.h
index 63b047b..c67f960 100644
--- a/src/membergroup.h
+++ b/src/membergroup.h
@@ -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:
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index 9e2692d..25b6bad 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -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)
{
diff --git a/src/namespacedef.h b/src/namespacedef.h
index ef82d9c..93ade90 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -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>
diff --git a/src/outputlist.cpp b/src/outputlist.cpp
index 34c67c7..7611b6a 100644
--- a/src/outputlist.cpp
+++ b/src/outputlist.cpp
@@ -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)
diff --git a/src/outputlist.h b/src/outputlist.h
index 8a49235..8f3152a 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -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;
diff --git a/src/pre.l b/src/pre.l
index 84501e1..2ddb120 100644
--- a/src/pre.l
+++ b/src/pre.l
@@ -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++;
}
}
diff --git a/src/scanner.l b/src/scanner.l
index 93cac98..04bb08f 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -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()
diff --git a/src/sortdict.h b/src/sortdict.h
index b716d33..7675724 100644
--- a/src/sortdict.h
+++ b/src/sortdict.h
@@ -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
diff --git a/src/translator_br.h b/src/translator_br.h
index 6c60bae..dca4523 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -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
diff --git a/src/translator_fr.h b/src/translator_fr.h
index 490e45c..584995b 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -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
diff --git a/src/translator_it.h b/src/translator_it.h
index 1744c4b..a4933e9 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -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
diff --git a/src/translator_kr.h b/src/translator_kr.h
index 18b63c9..53f250d 100644
--- a/src/translator_kr.h
+++ b/src/translator_kr.h
@@ -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
diff --git a/src/translator_nl.h b/src/translator_nl.h
index e5a749a..c757351 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -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
diff --git a/src/translator_pt.h b/src/translator_pt.h
index 08c1e82..4f3ffa8 100644
--- a/src/translator_pt.h
+++ b/src/translator_pt.h
@@ -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
diff --git a/src/translator_si.h b/src/translator_si.h
index 831cb3f..ea073b5 100644
--- a/src/translator_si.h
+++ b/src/translator_si.h
@@ -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
diff --git a/src/util.cpp b/src/util.cpp
index adb3172..0baf3f7 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -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);
diff --git a/src/util.h b/src/util.h
index f5c2dfe..5ba2ad8 100644
--- a/src/util.h
+++ b/src/util.h
@@ -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(
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 361b68c..0c3a5da 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -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)