summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/classdef.cpp8
-rw-r--r--src/config.l25
-rw-r--r--src/doc.l5
-rw-r--r--src/dot.cpp103
-rw-r--r--src/dot.h2
-rw-r--r--src/doxygen.cpp13
-rw-r--r--src/htmlgen.cpp12
-rw-r--r--src/logos.cpp4
-rw-r--r--src/memberdef.cpp18
-rw-r--r--src/memberdef.h2
-rw-r--r--src/memberlist.cpp2
-rw-r--r--src/rtfgen.cpp10
-rw-r--r--src/scanner.l5
-rw-r--r--src/translator_de.h43
-rw-r--r--src/xmlgen.cpp45
15 files changed, 195 insertions, 102 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 396d979..d37ac01 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1271,17 +1271,11 @@ void ClassDef::writeMemberList(OutputList &ol)
MemberDef *md=mi->memberDef;
ClassDef *cd=md->getClassDef();
Protection prot = mi->prot;
+ Specifier virt=md->virtualness();
//printf("%s: Member %s of class %s md->protection()=%d mi->prot=%d prot=%d inherited=%d\n",
// name().data(),md->name().data(),cd->name().data(),md->protection(),mi->prot,prot,mi->inherited);
- Specifier virt=md->virtualness();
- MemberDef *rmd=md->reimplements();
- while (rmd && virt==Normal)
- {
- virt = rmd->virtualness()==Normal ? Normal : Virtual;
- rmd = rmd->reimplements();
- }
if (cd && !md->name().isEmpty() && md->name()[0]!='@')
{
diff --git a/src/config.l b/src/config.l
index 702f652..14db2c1 100644
--- a/src/config.l
+++ b/src/config.l
@@ -963,6 +963,20 @@ void Config::check()
}
s=aliasList.next();
}
+
+ // check dot image format
+ QCString &dotImageFormat=Config_getEnum("DOT_IMAGE_FORMAT");
+ dotImageFormat=dotImageFormat.stripWhiteSpace();
+ if (dotImageFormat.isEmpty())
+ {
+ dotImageFormat = "gif";
+ }
+ else if (dotImageFormat!="gif" && dotImageFormat!="png" && dotImageFormat!="jpg")
+ {
+ config_err("Invalid value for DOT_IMAGE_FORMAT: `%s'. Using the default.\n",dotImageFormat.data());
+ dotImageFormat = "gif";
+ }
+
// check dot path
QCString &dotPath = Config_getString("DOT_PATH");
@@ -2248,6 +2262,17 @@ void Config::create()
TRUE
);
cb->addDependency("HAVE_DOT");
+ ce = addEnum(
+ "DOT_IMAGE_FORMAT",
+ "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images \n"
+ "generated by dot. Possible values are gif, jpg, and png\n"
+ "If left blank gif will be used. \n",
+ "gif"
+ );
+ ce->addValue("gif");
+ ce->addValue("jpg");
+ ce->addValue("png");
+ ce->addDependency("HAVE_DOT");
cs = addString(
"DOT_PATH",
"The tag DOT_PATH can be used to specify the path where the dot tool can be \n"
diff --git a/src/doc.l b/src/doc.l
index bcef896..24b3b5f 100644
--- a/src/doc.l
+++ b/src/doc.l
@@ -727,12 +727,15 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
switch(type)
{
case IT_Html:
+ if (!Config_getBool("GENERATE_HTML")) return result;
outputDir = Config_getString("HTML_OUTPUT");
break;
case IT_Latex:
+ if (!Config_getBool("GENERATE_LATEX")) return result;
outputDir = Config_getString("LATEX_OUTPUT");
break;
case IT_RTF:
+ if (!Config_getBool("GENERATE_RTF")) return result;
outputDir = Config_getString("RTF_OUTPUT");
break;
}
@@ -884,7 +887,7 @@ static void checkArgName(const QCString &name)
return;
}
}
- printf("member type=%d\n",memberDef->memberType());
+ //printf("member type=%d\n",memberDef->memberType());
QCString scope=memberDef->getScopeString();
if (!scope.isEmpty()) scope+="::"; else scope="";
warn(memberDef->docFile(),memberDef->docLine(),
diff --git a/src/dot.cpp b/src/dot.cpp
index af77df0..3c8360d 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -336,7 +336,7 @@ void DotNode::writeBox(QTextStream &t,
t << " Node" << m_number << " [shape=\"box\",label=\""
<< convertLabel(m_label)
<< "\",fontsize=10,height=0.2,width=0.4";
- if (format==GIF) t << ",fontname=\"doxfont\"";
+ if (format==BITMAP) t << ",fontname=\"Helvetica\"";
t << ",color=\"" << labCol << "\"";
if (m_isRoot)
{
@@ -369,7 +369,7 @@ void DotNode::writeArrow(QTextStream &t,
{
t << ",label=\"" << ei->m_label << "\"";
}
- if (format==GIF) t << ",fontname=\"doxfont\"";
+ if (format==BITMAP) t << ",fontname=\"Helvetica\"";
t << "];" << endl;
}
@@ -687,10 +687,11 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
for (dnli.toFirst();(n=dnli.current());++dnli)
{
QCString baseName;
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
baseName.sprintf("inherit_graph_%d",count++);
baseName = convertNameToFile(baseName);
QCString dotName=baseName+".dot";
- QCString gifName=baseName+".gif";
+ QCString imgName=baseName+"."+ imgExt;
QCString mapName=baseName+".map";
QFile f(dotName);
@@ -703,14 +704,15 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
DotNode *node;
for (;(node=dnli2.current());++dnli2)
{
- if (node->m_subgraphId==n->m_subgraphId) node->write(t,GIF,FALSE,TRUE);
+ if (node->m_subgraphId==n->m_subgraphId) node->write(t,BITMAP,FALSE,TRUE);
}
t << "}" << endl;
f.close();
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s\" -o \"%s\"",dotName.data(),gifName.data());
- //printf("Running: dot -Tgif %s -o %s\n",dotName.data(),gifName.data());
+ dotArgs.sprintf("-T%s \"%s\" -o \"%s\"",
+ imgExt.data(), dotName.data(),imgName.data());
+ //printf("Running: dot -T%s %s -o %s\n",imgExt.data(),dotName.data(),imgName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -726,7 +728,7 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
return;
}
QCString mapLabel = convertNameToFile(n->m_label);
- out << "<tr><td><img src=\"" << gifName << "\" border=\"0\" usemap=\"#"
+ out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" usemap=\"#"
<< mapLabel << "_map\"></td></tr>" << endl;
out << "<map name=\"" << mapLabel << "_map\">" << endl;
convertMapFile(out,mapName);
@@ -1294,11 +1296,12 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
findMaximalDotGraph(m_startNode,m_maxDistance,baseName,
thisDir,format,!isTBRank,m_graphType==Inheritance);
- if (format==GIF) // run dot to create a .gif image
+ if (format==BITMAP) // run dot to create a bitmap image
{
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"",
- baseName.data(),baseName.data());
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"",
+ imgExt.data(),baseName.data(),baseName.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Error: Problems running dot. Check your installation!\n");
@@ -1316,7 +1319,8 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
return baseName;
}
QCString mapLabel = convertNameToFile(m_startNode->m_label+"_"+mapName);
- out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
+ out << "<p><center><img src=\"" << baseName << "."
+ << imgExt << "\" border=\"0\" usemap=\"#"
<< mapLabel << "\" alt=\"";
switch (m_graphType)
{
@@ -1520,12 +1524,13 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
findMaximalDotGraph(m_startNode,m_maxDistance,baseName,thisDir,format,
FALSE,FALSE,!m_inverse);
- if (format==GIF)
+ if (format==BITMAP)
{
- // run dot to create a .gif image
+ // run dot to create a bitmap image
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif \"%s.dot\" -o \"%s.gif\"",
- baseName.data(),baseName.data());
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s.%s\"",
+ imgExt.data(),baseName.data(),baseName.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -1545,8 +1550,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
return baseName;
}
- out << "<p><center><img src=\"" << baseName << ".gif\" border=\"0\" usemap=\"#"
- << mapName << "_map\" alt=\"";
+ out << "<p><center><img src=\"" << baseName << "."
+ << imgExt << "\" border=\"0\" usemap=\"#"
+ << mapName << "_map\" alt=\"";
if (m_inverse) out << "Included by dependency graph"; else out << "Include dependency graph";
out << "\">";
out << "</center>" << endl;
@@ -1633,43 +1639,25 @@ void generateGraphLegend(const char *path)
return;
}
QTextStream dotText(&dotFile);
-#if 0
- dotText << "digraph inheritance\n";
- dotText << "{\n";
- dotText << " Node7 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
- dotText << " Node8 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node8 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_publicbase" << htmlFileExtension << "\"];\n";
- dotText << " Node9 -> Node8 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node9 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$class_truncated" << htmlFileExtension << "\"];\n";
- dotText << " Node11 -> Node7 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node11 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_protectedbase" << htmlFileExtension << "\"];\n";
- dotText << " Node12 -> Node7 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node12 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_privatebase" << htmlFileExtension << "\"];\n";
- dotText << " Node13 -> Node7 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node13 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n";
- dotText << " Node14 -> Node7 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n";
- dotText << " Node14 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$class_used" << htmlFileExtension << "\"];\n";
- dotText << "}\n";
-#endif
dotText << "digraph inheritance\n";
dotText << "{\n";
- dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
- dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n";
- dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n";
- dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n";
- dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n";
- dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"grey75\"];\n";
- dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"doxfont\"];\n";
- dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
- dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"doxfont\"];\n";
- dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
- dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"doxfont\"];\n";
- dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"doxfont\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n";
+ dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",style=\"filled\" fontcolor=\"white\"];\n";
+ dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPublicBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"red\",URL=\"$classTruncated" << htmlFileExtension << "\"];\n";
+ dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classProtectedBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classPrivateBase" << htmlFileExtension << "\"];\n";
+ dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"grey75\"];\n";
+ dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"Helvetica\"];\n";
+ dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
+ dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"Helvetica\"];\n";
+ dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classTempl" << htmlFileExtension << "\"];\n";
+ dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"Helvetica\"];\n";
+ dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"Helvetica\",color=\"black\",URL=\"$classUsed" << htmlFileExtension << "\"];\n";
dotText << "}\n";
dotFile.close();
@@ -1683,9 +1671,10 @@ void generateGraphLegend(const char *path)
// go to the html output directory (i.e. path)
QDir::setCurrent(d.absPath());
- // run dot to generate the a .gif image from the graph
+ // run dot to generate the a bitmap image from the graph
QCString dotArgs(4096);
- dotArgs.sprintf("-Tgif graph_legend.dot -o graph_legend.gif");
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ dotArgs.sprintf("-T%s graph_legend.dot -o graph_legend.%s",imgExt.data(),imgExt.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -1700,9 +1689,11 @@ void writeDotGraphFromFile(const char *inFile,const char *outFile,
GraphOutputFormat format)
{
QCString dotArgs(4096);
- if (format==GIF)
+ QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ if (format==BITMAP)
{
- dotArgs.sprintf("-Tgif \"%s\" -o \"%s.gif\"",inFile,outFile);
+ dotArgs.sprintf("-T%s \"%s\" -o \"%s.%s\"",imgExt.data(),
+ inFile,outFile,imgExt.data());
}
else // format==EPS
{
diff --git a/src/dot.h b/src/dot.h
index 59d5caa..9096584 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -27,7 +27,7 @@ class QTextStream;
class DotNodeList;
class ClassSDict;
-enum GraphOutputFormat { GIF , EPS };
+enum GraphOutputFormat { BITMAP , EPS };
struct EdgeInfo
{
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index dd39762..1168e25 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * $Id$
+ *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
@@ -1294,9 +1294,14 @@ static MemberDef *addVariableToFile(
MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{
- if ((nd==0 && md->getFileDef() &&
- root->fileName==md->getFileDef()->absFilePath())
- || (nd!=0 && md->getNamespaceDef()==nd))
+ if (
+ ((nd==0 && md->getFileDef() &&
+ root->fileName==md->getFileDef()->absFilePath()
+ )
+ || (nd!=0 && md->getNamespaceDef()==nd)
+ )
+ && !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables
+ )
// variable already in the scope
{
addMemberDocs(root,md,def,0,FALSE);
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 35002c5..747902d 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -755,8 +755,6 @@ void HtmlGenerator::startMemberDescription()
DBG_HTML(t << "<!-- startMemberDescription -->" << endl)
if (Config_getBool("HTML_ALIGN_MEMBERS"))
{
- //t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
- // "<td></td><td><font size=-1><em>";
t << "<tr><td>&nbsp;</td><td><font size=-1><em>";
}
else
@@ -922,9 +920,11 @@ void HtmlGenerator::startDotFile(const char *name,bool hasCaption)
"/"
#endif
+baseName;
- writeDotGraphFromFile(name,outName,GIF);
+ writeDotGraphFromFile(name,outName,BITMAP);
t << "<div align=\"center\">" << endl;
- t << "<img src=\"" << baseName << ".gif\" alt=\"" << baseName << "\">" << endl;
+ t << "<img src=\"" << baseName << "."
+ << Config_getEnum("DOT_IMAGE_FORMAT") << "\" alt=\""
+ << baseName << "\">" << endl;
if (hasCaption)
{
t << "<p><strong>";
@@ -1068,7 +1068,7 @@ void HtmlGenerator::startDotGraph()
void HtmlGenerator::endDotGraph(DotClassGraph &g)
{
- g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT"));
+ g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT"));
}
void HtmlGenerator::startInclDepGraph()
@@ -1077,7 +1077,7 @@ void HtmlGenerator::startInclDepGraph()
void HtmlGenerator::endInclDepGraph(DotInclDepGraph &g)
{
- g.writeGraph(t,GIF,Config_getString("HTML_OUTPUT"));
+ g.writeGraph(t,BITMAP,Config_getString("HTML_OUTPUT"));
}
void HtmlGenerator::writeGraphicalHierarchy(DotGfxHierarchyTable &g)
diff --git a/src/logos.cpp b/src/logos.cpp
index 293f1bd..56ae8bd 100644
--- a/src/logos.cpp
+++ b/src/logos.cpp
@@ -3180,7 +3180,7 @@ void writeSearchButton(const char *dir)
void writeDoxFont(const char *dir)
{
- QCString fileName=(QCString)dir+"/doxfont.ttf";
+ QCString fileName=(QCString)dir+"/Helvetica.ttf";
QFile f(fileName);
if (f.open(IO_WriteOnly))
f.writeBlock((char *)doxfont_data,doxfont_len);
@@ -3194,5 +3194,5 @@ void writeDoxFont(const char *dir)
void removeDoxFont(const char *dir)
{
QDir d(dir);
- d.remove("doxfont.ttf");
+ d.remove("Helvetica.ttf");
}
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 303d8f3..69bcf9f 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1114,12 +1114,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
}
Specifier lvirt=virtualness();
- MemberDef *rmd=reimplements();
- while (rmd && lvirt==Normal)
- {
- lvirt = rmd->virtualness()==Normal ? Normal : Virtual;
- rmd = rmd->reimplements();
- }
if (protection()!=Public || lvirt!=Normal ||
isFriend() || isRelated() || isExplicit() ||
@@ -1725,3 +1719,15 @@ void MemberDef::setSectionList(Definition *d, MemberList *sl)
classSectionSDict->append((int)d,sl);
}
+Specifier MemberDef::virtualness() const
+{
+ Specifier v = virt;
+ MemberDef *rmd = reimplements();
+ while (rmd && v==Normal)
+ {
+ v = rmd->virtualness()==Normal ? Normal : Virtual;
+ rmd = rmd->reimplements();
+ }
+ return v;
+}
+
diff --git a/src/memberdef.h b/src/memberdef.h
index acbcb8c..78818b9 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -99,7 +99,7 @@ class MemberDef : public Definition
// direct kind info
Protection protection() const { return prot; }
- Specifier virtualness() const { return virt; }
+ Specifier virtualness() const;
MemberType memberType() const { return mtype; }
// convenience methods
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index 228232e..ffc5631 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -449,7 +449,7 @@ void MemberList::writeDeclarations(OutputList &ol,
{
//printf("Member group has docs!\n");
ol.startMemberGroupDocs();
- parseDoc(ol,"<generated>",1,0,0,mg->documentation());
+ parseDoc(ol,"<generated>",1,0,0,mg->documentation()+"\n");
ol.endMemberGroupDocs();
}
ol.startMemberGroup();
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index bd09fc6..d83711a 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -2275,7 +2275,7 @@ void RTFGenerator::startDotFile(const char *name,bool)
"/"
#endif
+baseName;
- writeDotGraphFromFile(name,outName,GIF);
+ writeDotGraphFromFile(name,outName,BITMAP);
newParagraph();
t << "{" << endl;
t << Rtf_Style_Reset << endl;
@@ -2631,13 +2631,13 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
newParagraph();
QCString fileName =
- g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
+ g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),TRUE,FALSE);
// display the file
t << "{" << endl;
t << Rtf_Style_Reset << endl;
t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
- t << fileName << ".gif";
+ t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
}
@@ -2650,13 +2650,13 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{
newParagraph();
- QCString fileName = g.writeGraph(t,GIF,Config_getString("RTF_OUTPUT"),FALSE);
+ QCString fileName = g.writeGraph(t,BITMAP,Config_getString("RTF_OUTPUT"),FALSE);
// display the file
t << "{" << endl;
t << Rtf_Style_Reset << endl;
t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
- t << fileName << ".gif";
+ t << fileName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
t << "}" << endl;
}
diff --git a/src/scanner.l b/src/scanner.l
index b644c96..e3ca3da 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -2090,6 +2090,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN( CopyArgComment );
}
}
+<CopyArgComment>^{B}*"*"+/{BN}+
<CopyArgComment>[^\n\*]+ { fullArgString+=yytext; }
<CopyArgComment>"*/" { fullArgString+=yytext;
if (lastCopyArgChar!=0)
@@ -3445,7 +3446,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCode>"//" {
*pSkipDoc+=yytext;
}
-<SkipCode>"/*" {
+<SkipCode>"/*"|"*/" {
*pSkipDoc+=yytext;
}
<SkipCode>[^ \<\*\t\/\\\n]+ {
@@ -3571,7 +3572,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(lastFormulaContext);
}
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
-<ExampleDoc,PageDoc,ClassDocBrief,SkipCode,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
+<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs();
//printf("current->section=%x\n",current->section);
if (YY_START==SkipCode) // premature end of code block
diff --git a/src/translator_de.h b/src/translator_de.h
index 082ac9d..7eaf6c0 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -58,15 +58,17 @@
// - trCompoundReference(), trLegendDocs() updated
// - Removed some TODO's
//
+// 2002/02/13 Oliver Brandt (o.brandt@tu-bs.de)
+// - Updated for "new since 1.2.13" version
+// - Removed some TODO's
+//
// Todo:
-// - translation of all Config_getBool("OPTIMIZE_OUTPUT_FOR_C")
-// strings (see translator_en.h)
// - see FIXME
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
-class TranslatorGerman : public TranslatorAdapter_1_2_13
+class TranslatorGerman : public Translator
{
public:
@@ -123,7 +125,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
/* header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
- { return "Dokumentation der Datenelemente"; }
+ { /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
+ return "Dokumentation der Datenelemente";
+ }
/* this is the text of a link put after brief descriptions. */
virtual QCString trMore()
@@ -215,6 +219,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
/* This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
+ /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
{ return "Datei-Elemente"; }
/* This is put above each page as a link to all related pages. */
@@ -340,11 +345,9 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
* annotated compound index.
*/
virtual QCString trCompoundIndex()
+ /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
{
- if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- return "Datenstruktur-Verzeichnis";
- else
- return "Datenstruktur-Verzeichnis";
+ return "Datenstruktur-Verzeichnis";
}
/* This is used in LaTeX as the title of the chapter with the
@@ -1341,7 +1344,7 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global")); // FIXME
- if (!singular) result+="s";
+ if (!singular) result+="";
return result;
}
@@ -1368,7 +1371,27 @@ class TranslatorGerman : public TranslatorAdapter_1_2_13
virtual QCString trReferences()
{
return "Benutzt";
- }
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.13
+//////////////////////////////////////////////////////////////////////////
+ /* used in member documentation blocks to produce a list of
+ * members that are implemented by this one.
+ */
+ virtual QCString trImplementedFromList(int numEntries)
+ {
+ return "Implementiert " + trWriteList(numEntries) + ".";
+ }
+
+ /* used in member documentation blocks to produce a list of
+ * all members that implement this abstract member.
+ */
+ virtual QCString trImplementedInList(int numEntries)
+ {
+ return "Implementiert in " + trWriteList(numEntries) + ".";
+ }
+
};
#endif
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 5a4a9d3..9273f63 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1309,6 +1309,50 @@ static void writeTemplateLists(Definition *d,QTextStream &t)
}
}
+static void writeListOfAllMember(ClassDef *cd,QTextStream &t)
+{
+ t << " <listofallmembers>" << endl;
+ MemberNameInfoSDict::Iterator mnii(*cd->memberNameInfoSDict());
+ MemberNameInfo *mni;
+ for (mnii.toFirst();(mni=mnii.current());++mnii)
+ {
+ MemberNameInfoIterator mii(*mni);
+ MemberInfo *mi;
+ for (mii.toFirst();(mi=mii.current());++mii)
+ {
+ MemberDef *md=mi->memberDef;
+ ClassDef *cd=md->getClassDef();
+ Definition *d=md->getGroupDef();
+ if (d==0) d = cd;
+ Protection prot = mi->prot;
+ Specifier virt=md->virtualness();
+ t << " <member refid=\"" << d->getOutputFileBase() << "_" <<
+ md->anchor() << "\" prot=\"";
+ switch (prot)
+ {
+ case Public: t << "public"; break;
+ case Protected: t << "protected"; break;
+ case Private: t << "private"; break;
+ }
+ t << "\" virt=\"";
+ switch(virt)
+ {
+ case Normal: t << "non-virtual"; break;
+ case Virtual: t << "virtual"; break;
+ case Pure: t << "pure-virtual"; break;
+ }
+ t << "\"";
+ if (!mi->ambiguityResolutionScope.isEmpty())
+ {
+ t << " ambiguityscope=\"" << mi->ambiguityResolutionScope << "\"";
+ }
+ t << "><scope>" << cd->name() << "</scope><name>" <<
+ md->name() << "</name></member>" << endl;
+ }
+ }
+ t << " </listofallmembers>" << endl;
+}
+
static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
{
// + brief description
@@ -1415,6 +1459,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
}
}
writeTemplateLists(cd,t);
+ writeListOfAllMember(cd,t);
MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)