summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-05-17 20:19:03 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-05-17 20:19:03 (GMT)
commit6e92a0d3db80c3d93a35efbe52d45c73b8303e45 (patch)
tree5c4df5008d6c8033ded1f60fbb87461e666c8f1c /src
parent53da67394cd52ea7301f306ad766107b38ffd2ae (diff)
downloadDoxygen-6e92a0d3db80c3d93a35efbe52d45c73b8303e45.zip
Doxygen-6e92a0d3db80c3d93a35efbe52d45c73b8303e45.tar.gz
Doxygen-6e92a0d3db80c3d93a35efbe52d45c73b8303e45.tar.bz2
Release-1.3.7-20040517
Diffstat (limited to 'src')
-rw-r--r--src/config.l1
-rw-r--r--src/definition.cpp6
-rw-r--r--src/docparser.cpp5
-rw-r--r--src/docparser.h13
-rw-r--r--src/dot.cpp86
-rw-r--r--src/doxygen.cpp45
-rw-r--r--src/doxygen.pro.in1
-rw-r--r--src/filedef.cpp26
-rw-r--r--src/htmldocvisitor.cpp2
-rw-r--r--src/htmlgen.h2
-rw-r--r--src/index.cpp33
-rw-r--r--src/lang_cfg.h1
-rw-r--r--src/language.cpp9
-rw-r--r--src/latexgen.h2
-rw-r--r--src/mangen.h2
-rw-r--r--src/memberdef.cpp18
-rw-r--r--src/outputgen.h2
-rw-r--r--src/outputlist.cpp9
-rw-r--r--src/outputlist.h7
-rw-r--r--src/rtfdocvisitor.cpp264
-rw-r--r--src/rtfdocvisitor.h1
-rw-r--r--src/rtfgen.cpp40
-rw-r--r--src/rtfgen.h10
-rw-r--r--src/rtfstyle.cpp4
-rw-r--r--src/translator_cz.h24
-rw-r--r--src/translator_lt.h1546
-rw-r--r--src/translator_ru.h2
-rw-r--r--src/util.cpp31
28 files changed, 1943 insertions, 249 deletions
diff --git a/src/config.l b/src/config.l
index f757a3d..7db22c9 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1356,7 +1356,6 @@ void Config::create()
"cause performance problems for the file system. \n",
FALSE
);
- cb->addDependency("GENERATE_HTML");
ce = addEnum(
"OUTPUT_LANGUAGE",
"The OUTPUT_LANGUAGE tag is used to specify the language in which all \n"
diff --git a/src/definition.cpp b/src/definition.cpp
index 9bf6acd..6581847 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -355,10 +355,6 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef)
{
- ol.disable(OutputGenerator::RTF);
- ol.newParagraph();
- ol.enableAll();
-
QCString refText = theTranslator->trDefinedAtLineInSourceFile();
int lineMarkerPos = refText.find("@0");
int fileMarkerPos = refText.find("@1");
@@ -462,11 +458,11 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
initParseCodeContext();
//printf("Read:\n`%s'\n\n",codeFragment.data());
if (definitionType()==TypeMember) setParameterList((MemberDef *)this);
- ol.newParagraph();
ol.startCodeFragment();
parseCode(ol,scopeName,codeFragment,FALSE,0,
m_bodyDef,actualStart,actualEnd,TRUE);
ol.endCodeFragment();
+ ol.newParagraph();
}
}
ol.popGeneratorState();
diff --git a/src/docparser.cpp b/src/docparser.cpp
index d6fcee9..16bbb58 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -4807,7 +4807,8 @@ void DocRoot::parse()
DocNode *validatingParseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef *md,
const char *input,bool indexWords,
- bool isExample, const char *exampleName)
+ bool isExample, const char *exampleName,
+ bool singleLine)
{
//printf("validatingParseDoc(%s,%s)\n",ctx?ctx->name().data():"<none>",
@@ -4923,7 +4924,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
doctokenizerYYinit(input,g_fileName);
// build abstract syntax tree
- DocRoot *root = new DocRoot;
+ DocRoot *root = new DocRoot(md!=0,singleLine);
root->parse();
if (Debug::isFlagSet(Debug::PrintTree))
diff --git a/src/docparser.h b/src/docparser.h
index ff13c46..da57809 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -51,13 +51,16 @@ void initDocParser();
* search index.
* @param isExample TRUE if the documentation belongs to an example.
* @param exampleName Base name of the example file (0 if isExample is FALSE).
+ * @param singleLine Output should be presented on a single line, so without
+ * starting a new paragraph at the end.
* @returns Root node of the abstract syntax tree. Ownership of the
* pointer is handed over to the caller.
*/
DocNode *validatingParseDoc(const char *fileName,int startLine,
Definition *context, MemberDef *md,
const char *input,bool indexWords,
- bool isExample,const char *exampleName=0);
+ bool isExample,const char *exampleName=0,
+ bool singleLine=FALSE);
/*! Main entry point for parsing simple text fragments. These
* fragments are limited to words, whitespace and symbols.
@@ -1185,11 +1188,17 @@ class DocText : public CompAccept<DocText>, public DocNode
class DocRoot : public CompAccept<DocRoot>, public DocNode
{
public:
- DocRoot() {}
+ DocRoot(bool indent,bool sl) : m_indent(indent), m_singleLine(sl) {}
Kind kind() const { return Kind_Root; }
DocNode *parent() const { return 0; }
void accept(DocVisitor *v) { CompAccept<DocRoot>::accept(this,v); }
void parse();
+ bool indent() const { return m_indent; }
+ bool singleLine() const { return m_singleLine; }
+
+ private:
+ bool m_indent;
+ bool m_singleLine;
};
diff --git a/src/dot.cpp b/src/dot.cpp
index 1429645..c9f54d0 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -35,7 +35,7 @@
//--------------------------------------------------------------------
-static const int maxCmdLine = 4096;
+static const int maxCmdLine = 40960;
/*! mapping from protection levels to color names */
static const char *edgeColorMap[] =
@@ -981,9 +981,10 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
f.close();
QCString dotArgs(maxCmdLine);
- 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());
+ dotArgs.sprintf("\"%s\" -T%s -o \"%s\" -Timap -o \"%s\"",
+ dotName.data(), imgExt.data(), imgName.data(), mapName.data());
+ //printf("Running: dot %s -T%s -o %s -Timap -o %s\n",
+ // dotName.data(),imgExt.data(),imgName.data(),mapName.data());
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -991,14 +992,6 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
return;
}
checkDotResult(imgName);
- dotArgs.sprintf("-Timap \"%s\" -o \"%s\"",dotName.data(),mapName.data());
- //printf("Running: dot -Timap %s -o %s\n",dotName.data(),mapName.data());
- if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
- {
- err("Problems running dot. Check your installation!\n");
- out << "</table>" << endl;
- return;
- }
if (Config_getBool("DOT_CLEANUP")) thisDir.remove(dotName);
}
// write image and map in a table row
@@ -1673,8 +1666,14 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
{
QCString dotArgs(maxCmdLine);
QCString imgName = baseName+"."+imgExt;
- dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"",
- imgExt.data(),baseName.data(),imgName.data());
+ dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
+ baseName.data(),imgExt.data(),imgName.data());
+ if (generateImageMap)
+ {
+ // run dot also to create an image map
+ dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
+ baseName.data());
+ }
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Error: Problems running dot. Check your installation!\n");
@@ -1682,17 +1681,6 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
return baseName;
}
checkDotResult(imgName);
- if (generateImageMap)
- {
- // run dot again to create an image map
- dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",baseName.data(),baseName.data());
- if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
- {
- err("Error: Problems running dot. Check your installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
- }
}
else if (format==EPS) // run dot to create a .eps image
{
@@ -1942,8 +1930,14 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
// run dot to create a bitmap image
QCString dotArgs(maxCmdLine);
QCString imgName=baseName+"."+imgExt;
- dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"",
- imgExt.data(),baseName.data(),imgName.data());
+ dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
+ baseName.data(),imgExt.data(),imgName.data());
+ if (generateImageMap)
+ {
+ // run dot also to create an image map
+ dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
+ baseName.data());
+ }
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -1951,21 +1945,6 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
return baseName;
}
checkDotResult(imgName);
-
- if (generateImageMap)
- {
- // run dot again to create an image map
- dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",
- baseName.data(),baseName.data());
- if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
- {
- err("Problems running dot. Check your installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
-
- //thisDir.remove(baseName+".map");
- }
}
else if (format==EPS)
{
@@ -2128,8 +2107,14 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
// run dot to create a bitmap image
QCString dotArgs(maxCmdLine);
QCString imgName=baseName+"."+imgExt;
- dotArgs.sprintf("-T%s \"%s.dot\" -o \"%s\"",
- imgExt.data(),baseName.data(),imgName.data());
+ dotArgs.sprintf("\"%s.dot\" -T%s -o \"%s\"",
+ baseName.data(),imgExt.data(),imgName.data());
+ if (generateImageMap)
+ {
+ // run dot also to create an image map
+ dotArgs+=QCString(maxCmdLine).sprintf(" -Timap -o \"%s.map\"",
+ baseName.data());
+ }
if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
{
err("Problems running dot. Check your installation!\n");
@@ -2137,19 +2122,6 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
return baseName;
}
checkDotResult(imgName);
-
- if (generateImageMap)
- {
- // run dot again to create an image map
- dotArgs.sprintf("-Timap \"%s.dot\" -o \"%s.map\"",
- baseName.data(),baseName.data());
- if (iSystem(Config_getString("DOT_PATH")+"dot",dotArgs)!=0)
- {
- err("Problems running dot. Check your installation!\n");
- QDir::setCurrent(oldDir);
- return baseName;
- }
- }
}
else if (format==EPS)
{
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index ba10bb9..a91a64e 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -1608,8 +1608,8 @@ static MemberDef *addVariableToFile(
if (
((nd==0 && md->getFileDef() &&
root->fileName==md->getFileDef()->absFilePath()
- )
- || (nd!=0 && md->getNamespaceDef()==nd)
+ ) // both variable names in the same file
+ || (nd!=0 && md->getNamespaceDef()==nd) // both in same namespace
)
&& !md->isDefine() // function style #define's can be "overloaded" by typedefs or variables
)
@@ -1658,15 +1658,17 @@ static MemberDef *addVariableToFile(
md->addSectionsToDefinition(root->anchors);
md->setFromAnonymousScope(fromAnnScope);
md->setFromAnonymousMember(fromAnnMemb);
- //md->setIndentDepth(indentDepth);
- md->setBodySegment(root->bodyLine,root->endBodyLine);
md->setInitializer(root->initializer);
md->setMaxInitLines(root->initLines);
md->setMemberGroupId(root->mGrpId);
- md->setBodyDef(fd);
md->setDefinition(def);
md->enableCallGraph(root->callGraph);
md->setExplicitExternal(root->explicitExternal);
+ if (!root->explicitExternal)
+ {
+ md->setBodySegment(root->bodyLine,root->endBodyLine);
+ md->setBodyDef(fd);
+ }
addMemberToGroups(root,md);
md->setRefItems(root->sli);
@@ -1956,7 +1958,7 @@ static void buildVarList(Entry *root)
int si=scope.find('@');
//int anonyScopes = 0;
bool added=FALSE;
- if (si!=-1)
+ if (si!=-1) // anonymous scope
{
QCString pScope;
ClassDef *pcd=0;
@@ -1994,19 +1996,6 @@ static void buildVarList(Entry *root)
//printf("Inserting member in global scope %s!\n",scope.data());
addVariableToFile(root,mtype,scope,name,FALSE,/*0,*/0);
}
- //if (mtype==MemberDef::Typedef)
- //{
- // static QRegExp r("[a-z_A-Z][a-z_A-Z0-9]*");
- // int i,l;
- // if ((i=r.match(type,8,&l))!=-1)
- // {
- // //printf(">>> inserting typedef `%s'->`%s'\n",type.mid(i,l).data(),name.data());
- // if (getClass(type.mid(i,l))!=0)
- // {
- // typedefDict.insert(name,new QCString(type.mid(i,l)));
- // }
- // }
- //}
}
nextMember:
EntryListIterator eli(*root->sublist);
@@ -3091,11 +3080,18 @@ static void findUsedClassesForClass(Entry *root,
{
//printf("Found used class %s\n",usedClassName.data());
// the name could be a type definition, resolve it
- // TODO: recursive typedef resolution
QCString typeName = resolveTypeDef(masterCd,usedClassName);
- //printf("Found resolved class %s\n",typeName.data());
+ //printf("*** Found resolved class %s for %s\n",typeName.data(),usedClassName.data());
+
+ if (!typeName.isEmpty()) // if we could resolve the typedef, use
+ // the result as the class name.
+ {
+ usedClassName=typeName;
+ }
- int si=usedClassName.findRev("::");
+ int sp=usedClassName.find('<');
+ if (sp==-1) sp=0;
+ int si=usedClassName.findRev("::",sp);
if (si!=-1)
{
// replace any namespace aliases
@@ -8381,8 +8377,9 @@ void generateOutput()
Doxygen::tagFile << "<tagfile>" << endl;
}
- if (Config_getBool("GENERATE_HTML")) writeDoxFont(Config_getString("HTML_OUTPUT"));
- if (Config_getBool("GENERATE_RTF")) writeDoxFont(Config_getString("RTF_OUTPUT"));
+ if (Config_getBool("GENERATE_HTML")) writeDoxFont(Config_getString("HTML_OUTPUT"));
+ if (Config_getBool("GENERATE_LATEX")) writeDoxFont(Config_getString("LATEX_OUTPUT"));
+ if (Config_getBool("GENERATE_RTF")) writeDoxFont(Config_getString("RTF_OUTPUT"));
//statistics();
diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in
index 26de635..8e8d273 100644
--- a/src/doxygen.pro.in
+++ b/src/doxygen.pro.in
@@ -35,5 +35,6 @@ TARGET = doxygen
unix:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
win32:TARGETDEPS = ..\lib\doxygen.lib ..\lib\doxycfg.lib
win32-g++:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
+win32-mingw:TARGETDEPS = ../lib/libdoxygen.a ../lib/libdoxycfg.a
OBJECTS_DIR = ../objects
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 0c00968..33c418c 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -235,28 +235,31 @@ void FileDef::writeDocumentation(OutputList &ol)
<< "</filename>" << endl;
}
- ol.startTextBlock();
if (Config_getBool("DETAILS_AT_TOP"))
{
+ ol.startTextBlock();
writeDetailedDocumentation(ol);
- ol.newParagraph();
+ ol.endTextBlock();
}
- else if (briefDescription())
+ else if (!briefDescription().isEmpty())
{
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE);
- ol.writeString(" \n");
+ //ol.writeString(" \n");
ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details");
ol.parseText(theTranslator->trMore());
ol.endTextLink();
ol.enableAll();
+
+ ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
+ ol.disable(OutputGenerator::RTF);
ol.newParagraph();
- ol.enable(OutputGenerator::Man);
+ ol.popGeneratorState();
}
ol.writeSynopsis();
- if (Config_getBool("SHOW_INCLUDE_FILES"))
+ if (Config_getBool("SHOW_INCLUDE_FILES") && includeList->count()>0)
{
ol.startTextBlock(TRUE);
QListIterator<IncludeInfo> ili(*includeList);
@@ -323,12 +326,7 @@ void FileDef::writeDocumentation(OutputList &ol)
if (isIDLorJava)
ol.docify(";");
ol.endTypewriter();
- ol.disable(OutputGenerator::RTF);
ol.lineBreak();
- ol.enableAll();
- ol.disableAllBut(OutputGenerator::RTF);
- ol.newParagraph();
- ol.enableAll();
}
ol.endTextBlock();
}
@@ -339,12 +337,14 @@ void FileDef::writeDocumentation(OutputList &ol)
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),FALSE);
if (!incDepGraph.isTrivial())
{
+ ol.startTextBlock();
ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.startInclDepGraph();
ol.parseText(theTranslator->trInclDepGraph(name()));
ol.endInclDepGraph(incDepGraph);
ol.enableAll();
+ ol.endTextBlock(TRUE);
}
//incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase());
}
@@ -355,12 +355,14 @@ void FileDef::writeDocumentation(OutputList &ol)
DotInclDepGraph incDepGraph(this,Config_getInt("MAX_DOT_GRAPH_DEPTH"),TRUE);
if (!incDepGraph.isTrivial())
{
+ ol.startTextBlock();
ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.startInclDepGraph();
ol.parseText(theTranslator->trInclByDepGraph());
ol.endInclDepGraph(incDepGraph);
ol.enableAll();
+ ol.endTextBlock(TRUE);
}
//incDepGraph.writeGraph(Config_getString("HTML_OUTPUT"),fd->getOutputFileBase());
}
@@ -376,8 +378,6 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.enableAll();
}
- ol.endTextBlock();
-
ol.startMemberSections();
if (namespaceSDict->count()>0)
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index 62460df..bfb0958 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -249,6 +249,7 @@ void HtmlDocVisitor::visit(DocInclude *inc)
m_t << "<pre><div class=\"fragment\">";
parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile());
m_t << "</div></pre>";
+ break;
case DocInclude::IncWithLines:
{
m_t << "<pre><div class=\"fragment\">";
@@ -258,7 +259,6 @@ void HtmlDocVisitor::visit(DocInclude *inc)
m_t << "</div></pre>";
}
break;
- break;
case DocInclude::DontInclude:
break;
case DocInclude::HtmlInclude:
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 29d7385..e63030a 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -190,7 +190,7 @@ class HtmlGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &g);
void startTextBlock(bool) {}
- void endTextBlock() {}
+ void endTextBlock(bool) {}
void lastIndexPage() {}
void startMemberDocPrefixItem();
diff --git a/src/index.cpp b/src/index.cpp
index afc0f1d..6473f9a 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -961,35 +961,6 @@ void writeFileIndex(OutputList &ol)
fullName.prepend(path);
}
- // --------------- LaTeX/RTF only -------------------------
-#if 0
- if (doc)
- {
- ol.pushGeneratorState();
- ol.disable(OutputGenerator::Html);
- ol.writeStartAnnoItem("file",
- fd->getOutputFileBase(),
- path,
- fd->name()
- );
- if (!fd->briefDescription().isEmpty())
- {
- ol.docify(" (");
- parseDoc(ol,fd->absFilePath(),1,
- 0,0,
- abbreviate(fd->briefDescription(),fd->name()));
- ol.docify(")");
- }
- ol.writeEndAnnoItem(fd->getOutputFileBase());
- ol.popGeneratorState();
- }
-#endif
- // --------------------------------------------------------
-
- // ----------------- HTML only ----------------------------
- //ol.pushGeneratorState();
- //ol.disableAllBut(OutputGenerator::Html);
- //ol.writeListItem();
ol.startIndexKey();
ol.docify(path);
if (doc)
@@ -1041,7 +1012,9 @@ void writeFileIndex(OutputList &ol)
fd,0,
abbreviate(fd->briefDescription(),fd->name()),
FALSE, // index words
- FALSE // isExample
+ FALSE, // isExample
+ 0, // example name
+ TRUE // single line
);
//ol.docify(")");
}
diff --git a/src/lang_cfg.h b/src/lang_cfg.h
index 01180c6..085c2a0 100644
--- a/src/lang_cfg.h
+++ b/src/lang_cfg.h
@@ -27,3 +27,4 @@
#define LANG_TW
#define LANG_SR
#define LANG_CA
+#define LANG_LT
diff --git a/src/language.cpp b/src/language.cpp
index c73b68c..8cc1214 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -112,6 +112,9 @@
//#ifdef LANG_JS
//#include "translator_js.h"
//#endif
+#ifdef LANG_LT
+#include "translator_lt.h"
+#endif
#endif
#define L_EQUAL(a) !stricmp(langName,a)
@@ -307,6 +310,12 @@ bool setTranslator(const char *langName)
theTranslator=new TranslatorCatalan;
}
#endif
+#ifdef LANG_LT
+ else if (L_EQUAL("lithuanian"))
+ {
+ theTranslator=new TranslatorLithuanian;
+ }
+#endif
#endif // ENGLISH_ONLY
else // use the default language (i.e. english)
{
diff --git a/src/latexgen.h b/src/latexgen.h
index 49705d2..08f3ad0 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -266,7 +266,7 @@ class LatexGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &) {}
void startTextBlock(bool) {}
- void endTextBlock() {}
+ void endTextBlock(bool) {}
void startMemberDocPrefixItem() {}
void endMemberDocPrefixItem() {}
diff --git a/src/mangen.h b/src/mangen.h
index b7d43bb..ac5bbe5 100644
--- a/src/mangen.h
+++ b/src/mangen.h
@@ -232,7 +232,7 @@ class ManGenerator : public OutputGenerator
void writeGraphicalHierarchy(DotGfxHierarchyTable &) {}
void startTextBlock(bool) {}
- void endTextBlock() {}
+ void endTextBlock(bool) {}
void lastIndexPage() {}
void startMemberDocPrefixItem() {}
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index fd4ff55..ce37bac 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1507,17 +1507,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (!detailed.isEmpty())
{
ol.parseDoc(docFile(),docLine(),getOuterScope()?getOuterScope():container,this,detailed+"\n",TRUE,FALSE);
- ol.pushGeneratorState();
if (!m_inbodyDocs.isEmpty())
{
ol.newParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE);
}
- ol.disableAllBut(OutputGenerator::RTF);
- ol.newParagraph();
- ol.popGeneratorState();
}
- else if(!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") ||
+ else if (!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") ||
!Config_getBool("BRIEF_MEMBER_DESC")))
{
if (!m_inbodyDocs.isEmpty())
@@ -1525,10 +1521,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.newParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,m_inbodyDocs+"\n",TRUE,FALSE);
}
- ol.pushGeneratorState();
- ol.disableAllBut(OutputGenerator::RTF);
- ol.newParagraph();
- ol.popGeneratorState();
}
@@ -1678,9 +1670,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.parseText(reimplFromLine.right(
reimplFromLine.length()-markerPos-2)); // text right from marker
- ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
- ol.enableAll();
}
else
{
@@ -1761,9 +1751,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
index=newIndex+matchLen;
}
ol.parseText(reimplInLine.right(reimplInLine.length()-index));
- ol.disableAllBut(OutputGenerator::RTF);
ol.newParagraph();
- ol.enableAll();
}
}
// write the list of examples that use this member
@@ -1781,10 +1769,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
writeSourceReffedBy(ol,cname);
writeInlineCode(ol,cname);
- ol.disableAllBut(OutputGenerator::RTF);
- ol.newParagraph();
- ol.enableAll();
-
if ((m_hasCallGraph || Config_getBool("CALL_GRAPH"))
&& isFunction() && Config_getBool("HAVE_DOT")
)
diff --git a/src/outputgen.h b/src/outputgen.h
index 6a86831..214ffaf 100644
--- a/src/outputgen.h
+++ b/src/outputgen.h
@@ -342,7 +342,7 @@ class OutputGenerator : public BaseOutputDocInterface
//virtual void endQuickIndexItem() = 0;
virtual void writeQuickLinks(bool compact,HighlightedItem hli) = 0;
virtual void startTextBlock(bool) = 0;
- virtual void endTextBlock() = 0;
+ virtual void endTextBlock(bool) = 0;
virtual void lastIndexPage() = 0;
virtual void startMemberDocPrefixItem() = 0;
virtual void endMemberDocPrefixItem() = 0;
diff --git a/src/outputlist.cpp b/src/outputlist.cpp
index eaa7811..261355e 100644
--- a/src/outputlist.cpp
+++ b/src/outputlist.cpp
@@ -132,7 +132,8 @@ void OutputList::popGeneratorState()
void OutputList::parseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef * md,
const QCString &docStr,bool indexWords,
- bool isExample,const char *exampleName)
+ bool isExample,const char *exampleName,
+ bool singleLine)
{
int count=0;
if (docStr.isEmpty()) return;
@@ -149,12 +150,14 @@ void OutputList::parseDoc(const char *fileName,int startLine,
if (docStr.at(docStr.length()-1)=='\n')
{
root = validatingParseDoc(fileName,startLine,
- ctx,md,docStr,indexWords,isExample,exampleName);
+ ctx,md,docStr,indexWords,isExample,exampleName,
+ singleLine);
}
else
{
root = validatingParseDoc(fileName,startLine,
- ctx,md,docStr+"\n",indexWords,isExample,exampleName);
+ ctx,md,docStr+"\n",indexWords,isExample,exampleName,
+ singleLine);
}
og=outputs->first();
diff --git a/src/outputlist.h b/src/outputlist.h
index c24950f..68a8c10 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -62,7 +62,8 @@ class OutputList : public OutputDocInterface
void parseDoc(const char *fileName,int startLine,
Definition *ctx,MemberDef *md,const QCString &docStr,
- bool indexWords,bool isExample,const char *exampleName=0);
+ bool indexWords,bool isExample,const char *exampleName=0,
+ bool singleLine=FALSE);
void parseText(const QCString &textStr);
@@ -321,8 +322,8 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::writeGraphicalHierarchy,g); }
void startTextBlock(bool dense=FALSE)
{ forall(&OutputGenerator::startTextBlock,dense); }
- void endTextBlock()
- { forall(&OutputGenerator::endTextBlock); }
+ void endTextBlock(bool paraBreak=FALSE)
+ { forall(&OutputGenerator::endTextBlock,paraBreak); }
void lastIndexPage()
{ forall(&OutputGenerator::lastIndexPage); }
void startMemberDocPrefixItem()
diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp
index 2f2dd25..a878abc 100644
--- a/src/rtfdocvisitor.cpp
+++ b/src/rtfdocvisitor.cpp
@@ -28,8 +28,13 @@
#include "message.h"
#include <qfileinfo.h>
+
+#define DBG_RTF(x) m_t << x
+//#define DBG_RTF(x) do {} while(0)
+
RTFDocVisitor::RTFDocVisitor(QTextStream &t,BaseCodeDocInterface &ci)
- : DocVisitor(DocVisitor_RTF), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_indentLevel(1)
+ : DocVisitor(DocVisitor_RTF), m_t(t), m_ci(ci), m_insidePre(FALSE),
+ m_hide(FALSE), m_indentLevel(0), m_lastIsPara(FALSE)
{
}
@@ -49,7 +54,7 @@ void RTFDocVisitor::incIndentLevel()
void RTFDocVisitor::decIndentLevel()
{
- if (m_indentLevel>1) m_indentLevel--;
+ if (m_indentLevel>0) m_indentLevel--;
}
//--------------------------------------
@@ -59,20 +64,25 @@ void RTFDocVisitor::decIndentLevel()
void RTFDocVisitor::visit(DocWord *w)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocWord)}\n");
filter(w->word());
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocLinkedWord *w)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocLinkedWord)}\n");
startLink(w->ref(),w->file(),w->anchor());
filter(w->word());
endLink(w->ref());
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocWhiteSpace *w)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocWhiteSpace)}\n");
if (m_insidePre)
{
m_t << w->chars();
@@ -81,11 +91,13 @@ void RTFDocVisitor::visit(DocWhiteSpace *w)
{
m_t << " ";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocSymbol *s)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocSymbol)}\n");
switch(s->symbol())
{
case DocSymbol::BSlash: m_t << "\\\\"; break;
@@ -202,11 +214,13 @@ void RTFDocVisitor::visit(DocSymbol *s)
default:
err("Error: unknown symbol found\n");
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocURL *u)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocURL)}\n");
if (Config_getBool("RTF_HYPERLINKS"))
{
m_t << "{\\field "
@@ -230,23 +244,30 @@ void RTFDocVisitor::visit(DocURL *u)
filter(u->url());
m_t << "}";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocLineBreak *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocLineBreak)}\n");
m_t << "\\par\n";
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visit(DocHorRuler *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocHorRuler)}\n");
m_t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visit(DocStyleChange *s)
{
if (m_hide) return;
+ m_lastIsPara=FALSE;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocStyleChange)}\n");
switch (s->style())
{
case DocStyleChange::Bold:
@@ -284,6 +305,7 @@ void RTFDocVisitor::visit(DocStyleChange *s)
m_t << "\\par" << endl;
m_t << "}" << endl;
}
+ m_lastIsPara=TRUE;
break;
case DocStyleChange::Div: /* HTML only */ break;
case DocStyleChange::Span: /* HTML only */ break;
@@ -293,6 +315,7 @@ void RTFDocVisitor::visit(DocStyleChange *s)
void RTFDocVisitor::visit(DocVerbatim *s)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocVerbatim)}\n");
switch(s->type())
{
case DocVerbatim::Code: // fall though
@@ -340,11 +363,13 @@ void RTFDocVisitor::visit(DocVerbatim *s)
}
break;
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocAnchor *anc)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocAnchor)}\n");
QString anchor;
if (!anc->file().isEmpty())
{
@@ -360,11 +385,13 @@ void RTFDocVisitor::visit(DocAnchor *anc)
}
m_t << "{\\bkmkstart " << rtfFormatBmkStr(anchor) << "}" << endl;
m_t << "{\\bkmkend " << rtfFormatBmkStr(anchor) << "}" << endl;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocInclude *inc)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocInclude)}\n");
switch(inc->type())
{
case DocInclude::IncWithLines:
@@ -400,12 +427,14 @@ void RTFDocVisitor::visit(DocInclude *inc)
m_t << "}" << endl;
break;
}
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visit(DocIncOperator *op)
{
//printf("DocIncOperator: type=%d first=%d, last=%d text=`%s'\n",
// op->type(),op->isFirst(),op->isLast(),op->text().data());
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocIncOperator)}\n");
if (op->isFirst())
{
if (!m_hide)
@@ -432,10 +461,12 @@ void RTFDocVisitor::visit(DocIncOperator *op)
m_t << "\\par" << endl;
m_t << "}" << endl;
}
+ m_lastIsPara=TRUE;
}
else
{
if (!m_hide) m_t << endl;
+ m_lastIsPara=FALSE;
}
}
@@ -443,13 +474,17 @@ void RTFDocVisitor::visit(DocFormula *f)
{
if (m_hide) return;
// TODO: do something sensible here, like including a bitmap
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocFormula)}\n");
m_t << f->text();
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visit(DocIndexEntry *i)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visit(DocIndexEntry)}\n");
m_t << "{\\xe \\v " << i->entry() << "}" << endl;
+ m_lastIsPara=FALSE;
}
//--------------------------------------
@@ -459,24 +494,27 @@ void RTFDocVisitor::visit(DocIndexEntry *i)
void RTFDocVisitor::visitPre(DocAutoList *l)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocAutoList)}\n");
m_t << "{" << endl;
- incIndentLevel();
rtf_listItemInfo[m_indentLevel].isEnum = l->isEnumList();
rtf_listItemInfo[m_indentLevel].number = 1;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocAutoList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocAutoList)}\n");
m_t << "\\par" << endl;
m_t << "}" << endl;
- decIndentLevel();
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocAutoListItem *)
{
if (m_hide) return;
- m_t << "\\par" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocAutoListItem)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
m_t << rtf_Style_Reset;
if (rtf_listItemInfo[m_indentLevel].isEnum)
{
@@ -488,40 +526,62 @@ void RTFDocVisitor::visitPre(DocAutoListItem *)
{
m_t << getStyle("ListBullet") << endl;
}
+ incIndentLevel();
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocAutoListItem *)
{
+ decIndentLevel();
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocAutoListItem)}\n");
}
void RTFDocVisitor::visitPre(DocPara *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocPara)}\n");
}
void RTFDocVisitor::visitPost(DocPara *p)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocPara)}\n");
if (!p->isLast() && // omit <p> for last paragraph
!(p->parent() && // and for parameter sections
p->parent()->kind()==DocNode::Kind_ParamSect
)
- ) m_t << "\\par" << endl;
+ )
+ {
+ m_t << "\\par" << endl;
+ m_lastIsPara=TRUE;
+ }
}
-void RTFDocVisitor::visitPre(DocRoot *)
+void RTFDocVisitor::visitPre(DocRoot *r)
{
+ if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocRoot)}\n");
+ if (r->indent()) incIndentLevel();
+ m_t << "{" << rtf_Style["BodyText"]->reference << endl;
}
-void RTFDocVisitor::visitPost(DocRoot *)
+void RTFDocVisitor::visitPost(DocRoot *r)
{
+ if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocRoot)}\n");
+ if (!m_lastIsPara && !r->singleLine()) m_t << "\\par" << endl;
+ m_t << "}";
+ m_lastIsPara=TRUE;
+ if (r->indent()) decIndentLevel();
}
void RTFDocVisitor::visitPre(DocSimpleSect *s)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSimpleSect)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
m_t << "{"; // start desc
- m_t << "{\\b "; // start bold
- m_t << "\\par" << endl;
+ //m_t << "{\\b "; // start bold
+ m_t << "{" << rtf_Style["Heading5"]->reference << endl;
switch(s->type())
{
case DocSimpleSect::See:
@@ -560,65 +620,80 @@ void RTFDocVisitor::visitPre(DocSimpleSect *s)
// special case 1: user defined title
if (s->type()!=DocSimpleSect::User && s->type()!=DocSimpleSect::Rcs)
{
- m_t << ":}"; // end bold
+ m_t << ":";
m_t << "\\par" << endl;
+ m_t << "}"; // end bold
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue");
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocSimpleSect *)
{
if (m_hide) return;
- m_t << "\\par" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSimpleSect)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
decIndentLevel();
m_t << "}"; // end desc
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocTitle *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocTitle)}\n");
}
void RTFDocVisitor::visitPost(DocTitle *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocTitle)}\n");
m_t << "}"; // end bold
m_t << "\\par" << endl;
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue");
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPre(DocSimpleList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSimpleSect)}\n");
m_t << "{" << endl;
- incIndentLevel();
rtf_listItemInfo[m_indentLevel].isEnum = FALSE;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocSimpleList *)
{
if (m_hide) return;
- decIndentLevel();
- m_t << "\\par" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSimpleSect)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
m_t << "}" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocSimpleListItem *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSimpleListItem)}\n");
m_t << "\\par" << rtf_Style_Reset << getStyle("ListBullet") << endl;
+ m_lastIsPara=FALSE;
+ incIndentLevel();
}
void RTFDocVisitor::visitPost(DocSimpleListItem *)
{
+ decIndentLevel();
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSimpleListItem)}\n");
}
void RTFDocVisitor::visitPre(DocSection *s)
{
if (m_hide) return;
- m_t << "\\par" << endl <<
- "{{" // start section
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSection)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
+ m_t << "{{" // start section
<< rtf_Style_Reset;
QString heading;
int level = QMIN(s->level()+1,4);
@@ -631,33 +706,39 @@ void RTFDocVisitor::visitPre(DocSection *s)
m_t << "{\\tc\\tcl" << level << " \\v ";
filter(s->title());
m_t << "}" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPost(DocSection *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSection)}\n");
m_t << "}" << endl; // end section
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlList *l)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlList)}\n");
m_t << "{" << endl;
- incIndentLevel();
rtf_listItemInfo[m_indentLevel].isEnum = l->type()==DocHtmlList::Ordered;
rtf_listItemInfo[m_indentLevel].number = 1;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlList)}\n");
m_t << "\\par" << endl << "}" << endl;
- decIndentLevel();
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlListItem *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlListItem)}\n");
m_t << "\\par" << endl;
m_t << rtf_Style_Reset;
if (rtf_listItemInfo[m_indentLevel].isEnum)
@@ -670,92 +751,101 @@ void RTFDocVisitor::visitPre(DocHtmlListItem *)
{
m_t << getStyle("ListBullet") << endl;
}
+ incIndentLevel();
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlListItem *)
{
+ decIndentLevel();
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlListItem)}\n");
}
-//void RTFDocVisitor::visitPre(DocHtmlPre *)
-//{
-// m_t << "{" << endl;
-// m_t << "\\par" << endl;
-// m_t << rtf_Style_Reset << getStyle("CodeExample");
-// m_insidePre=TRUE;
-//}
-
-//void RTFDocVisitor::visitPost(DocHtmlPre *)
-//{
-// m_insidePre=FALSE;
-// m_t << "\\par" << endl;
-// m_t << "}" << endl;
-//}
-
void RTFDocVisitor::visitPre(DocHtmlDescList *)
{
if (m_hide) return;
- m_t << "{" << endl;
- m_t << rtf_Style_Reset << getStyle("ListContinue");
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlDescList)}\n");
+ //m_t << "{" << endl;
+ //m_t << rtf_Style_Reset << getStyle("ListContinue");
+ //m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlDescList *)
{
if (m_hide) return;
- m_t << "}" << endl;
- m_t << "\\par" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlDescList)}\n");
+ //m_t << "}" << endl;
+ //m_t << "\\par" << endl;
+ //m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlDescTitle *)
{
if (m_hide) return;
- m_t << "\\par" << endl;
- m_t << "{\\b ";
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlDescTitle)}\n");
+ //m_t << "\\par" << endl;
+ //m_t << "{\\b ";
+ m_t << "{" << rtf_Style["Heading5"]->reference << endl;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlDescTitle *)
{
if (m_hide) return;
- m_t << "}" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlDescTitle)}\n");
m_t << "\\par" << endl;
+ m_t << "}" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlDescData *)
{
+ if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlDescData)}\n");
+ incIndentLevel();
+ m_t << "{" << rtf_Style_Reset << getStyle("DescContinue");
}
void RTFDocVisitor::visitPost(DocHtmlDescData *)
{
+ if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlDescData)}\n");
+ m_t << "\\par" << endl;
+ m_t << "}" << endl;
+ decIndentLevel();
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlTable *)
{
if (m_hide) return;
- m_t << "\\par" << endl;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlTable)}\n");
+ if (!m_lastIsPara) m_t << "\\par" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPost(DocHtmlTable *)
{
if (m_hide) return;
- //if (!t->hasCaption())
- //{
- // m_t << endl;
- // m_t << "\\pard \\widctlpar\\intbl\\adjustright" << endl;
- // m_t << "{\\row }" << endl;
- //}
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlTable)}\n");
m_t << "\\pard" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHtmlCaption *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlCaption)}\n");
}
void RTFDocVisitor::visitPost(DocHtmlCaption *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlCaption)}\n");
}
void RTFDocVisitor::visitPre(DocHtmlRow *r)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlRow)}\n");
uint i,columnWidth=rtf_pageWidth/r->numCells();
m_t << "\\trowd \\trgaph108\\trleft-108"
"\\trbrdrt\\brdrs\\brdrw10 "
@@ -774,31 +864,39 @@ void RTFDocVisitor::visitPre(DocHtmlRow *r)
"\\cellx" << ((i+1)*columnWidth) << endl;
}
m_t << "\\pard \\widctlpar\\intbl\\adjustright" << endl;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlRow *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlRow)}\n");
m_t << endl;
m_t << "\\pard \\widctlpar\\intbl\\adjustright" << endl;
m_t << "{\\row }" << endl;
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPre(DocHtmlCell *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlCell)}\n");
m_t << "{";
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlCell *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlCell)}\n");
m_t << "\\cell }";
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPre(DocInternal *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocInternal)}\n");
m_t << "{"; // start desc
m_t << "{\\b "; // start bold
m_t << theTranslator->trForInternalUseOnly();
@@ -806,19 +904,23 @@ void RTFDocVisitor::visitPre(DocInternal *)
m_t << "\\par" << endl;
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue");
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocInternal *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocInternal)}\n");
m_t << "\\par" << endl;
decIndentLevel();
m_t << "}"; // end desc
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocHRef *href)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHRef)}\n");
if (Config_getBool("RTF_HYPERLINKS"))
{
m_t << "{\\field "
@@ -834,11 +936,13 @@ void RTFDocVisitor::visitPre(DocHRef *href)
{
m_t << "{\\f2 ";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHRef *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHRef)}\n");
if (Config_getBool("RTF_HYPERLINKS"))
{
m_t << "}"
@@ -849,11 +953,13 @@ void RTFDocVisitor::visitPost(DocHRef *)
{
m_t << "}";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPre(DocHtmlHeader *header)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocHtmlHeader)}\n");
m_t << "{" // start section
<< rtf_Style_Reset;
QString heading;
@@ -863,18 +969,22 @@ void RTFDocVisitor::visitPre(DocHtmlHeader *header)
m_t << rtf_Style[heading]->reference;
// make table of contents entry
m_t << "{\\tc\\tcl \\v " << level << "}";
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocHtmlHeader *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocHtmlHeader)}\n");
m_t << "\\par" << endl;
m_t << "}" << endl; // end section
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocImage *img)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocImage)}\n");
if (img->type()==DocImage::Rtf)
{
m_t << "\\par" << endl;
@@ -884,7 +994,7 @@ void RTFDocVisitor::visitPre(DocImage *img)
m_t << img->name();
m_t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
m_t << "}" << endl;
-
+ m_lastIsPara=TRUE;
}
else // other format -> skip
{
@@ -896,11 +1006,13 @@ void RTFDocVisitor::visitPre(DocImage *img)
void RTFDocVisitor::visitPost(DocImage *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocImage)}\n");
popEnabled();
}
void RTFDocVisitor::visitPre(DocDotFile *df)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocDotFile)}\n");
writeDotFile(df->file());
// hide caption since it is not supported at the moment
@@ -910,24 +1022,28 @@ void RTFDocVisitor::visitPre(DocDotFile *df)
void RTFDocVisitor::visitPost(DocDotFile *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocDotFile)}\n");
popEnabled();
}
void RTFDocVisitor::visitPre(DocLink *lnk)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocLink)}\n");
startLink(lnk->ref(),lnk->file(),lnk->anchor());
}
void RTFDocVisitor::visitPost(DocLink *lnk)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocLink)}\n");
endLink(lnk->ref());
}
void RTFDocVisitor::visitPre(DocRef *ref)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocRef)}\n");
if (!ref->file().isEmpty()) startLink(ref->ref(),ref->file(),ref->anchor());
if (!ref->hasLinkText()) filter(ref->targetTitle());
}
@@ -935,6 +1051,7 @@ void RTFDocVisitor::visitPre(DocRef *ref)
void RTFDocVisitor::visitPost(DocRef *ref)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocRef)}\n");
if (!ref->file().isEmpty()) endLink(ref->ref());
m_t << " ";
}
@@ -942,31 +1059,38 @@ void RTFDocVisitor::visitPost(DocRef *ref)
void RTFDocVisitor::visitPre(DocSecRefItem *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSecRefItem)}\n");
}
void RTFDocVisitor::visitPost(DocSecRefItem *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSecRefItem)}\n");
}
void RTFDocVisitor::visitPre(DocSecRefList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocSecRefList)}\n");
m_t << "{" << endl;
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("LatexTOC") << endl;
m_t << "\\par" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPost(DocSecRefList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocSecRefList)}\n");
decIndentLevel();
m_t << "\\par" << endl;
m_t << "}";
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocLanguage *l)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocLanguage)}\n");
QString langId = Config_getEnum("OUTPUT_LANGUAGE");
if (l->id().lower()!=langId.lower())
{
@@ -977,6 +1101,7 @@ void RTFDocVisitor::visitPre(DocLanguage *l)
void RTFDocVisitor::visitPost(DocLanguage *l)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocLanguage)}\n");
QString langId = Config_getEnum("OUTPUT_LANGUAGE");
if (l->id().lower()!=langId.lower())
{
@@ -987,9 +1112,11 @@ void RTFDocVisitor::visitPost(DocLanguage *l)
void RTFDocVisitor::visitPre(DocParamSect *s)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocParamSect)}\n");
m_t << "{"; // start param list
- m_t << "\\par" << endl;
- m_t << "{\\b "; // start bold
+ if (!m_lastIsPara) m_t << "\\par" << endl;
+ //m_t << "{\\b "; // start bold
+ m_t << "{" << rtf_Style["Heading5"]->reference << endl;
switch(s->type())
{
case DocParamSect::Param:
@@ -1001,15 +1128,18 @@ void RTFDocVisitor::visitPre(DocParamSect *s)
default:
ASSERT(0);
}
- m_t << ":}" << endl;
+ m_t << ":";
m_t << "\\par" << endl;
+ m_t << "}" << endl;
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue");
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPost(DocParamSect *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocParamSect)}\n");
//m_t << "\\par" << endl;
decIndentLevel();
m_t << "}" << endl;
@@ -1018,6 +1148,7 @@ void RTFDocVisitor::visitPost(DocParamSect *)
void RTFDocVisitor::visitPre(DocParamList *pl)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocParamList)}\n");
m_t << "{\\i ";
QStrListIterator li(pl->parameters());
const char *s;
@@ -1028,20 +1159,24 @@ void RTFDocVisitor::visitPre(DocParamList *pl)
filter(s);
}
m_t << "} ";
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPost(DocParamList *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocParamList)}\n");
m_t << "\\par" << endl;
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocXRefItem *x)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocXRefItem)}\n");
m_t << "{"; // start param list
- m_t << "{\\b "; // start bold
- m_t << "\\par" << endl;
+ //m_t << "{\\b "; // start bold
+ m_t << "{" << rtf_Style["Heading5"]->reference << endl;
if (Config_getBool("RTF_HYPERLINKS"))
{
QString refName;
@@ -1074,47 +1209,57 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
{
filter(x->title());
}
- m_t << ":}"; // end bold
+ m_t << ":";
m_t << "\\par" << endl;
+ m_t << "}"; // end bold
incIndentLevel();
m_t << rtf_Style_Reset << getStyle("DescContinue");
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::visitPost(DocXRefItem *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocXRefItem)}\n");
m_t << "\\par" << endl;
decIndentLevel();
m_t << "}" << endl; // end xref item
+ m_lastIsPara=TRUE;
}
void RTFDocVisitor::visitPre(DocInternalRef *ref)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocInternalRef)}\n");
startLink("",ref->file(),ref->anchor());
}
void RTFDocVisitor::visitPost(DocInternalRef *)
{
if (m_hide) return;
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocInternalRef)}\n");
endLink("");
m_t << " ";
}
void RTFDocVisitor::visitPre(DocCopy *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocCopy)}\n");
}
void RTFDocVisitor::visitPost(DocCopy *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocCopy)}\n");
}
void RTFDocVisitor::visitPre(DocText *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPre(DocText)}\n");
}
void RTFDocVisitor::visitPost(DocText *)
{
+ DBG_RTF("{\\comment RTFDocVisitor::visitPost(DocText)}\n");
}
static char* getMultiByte(int c)
@@ -1194,6 +1339,7 @@ void RTFDocVisitor::startLink(const QString &ref,const QString &file,const QStri
{
m_t << "{\\b ";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::endLink(const QString &ref)
@@ -1206,6 +1352,7 @@ void RTFDocVisitor::endLink(const QString &ref)
{
m_t << "}";
}
+ m_lastIsPara=FALSE;
}
void RTFDocVisitor::pushEnabled()
@@ -1231,13 +1378,14 @@ void RTFDocVisitor::writeDotFile(const QString &fileName)
}
QString outDir = Config_getString("RTF_OUTPUT");
writeDotGraphFromFile(fileName,outDir,baseName,BITMAP);
- m_t << "\\par" << endl;
+ if (!m_lastIsPara) m_t << "\\par" << endl;
m_t << "{" << endl;
- m_t << rtf_Style_Reset << endl;
- m_t << "\\par\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
+ m_t << rtf_Style_Reset;
+ m_t << "\\pard \\qc {\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE ";
m_t << baseName << "." << Config_getEnum("DOT_IMAGE_FORMAT");
m_t << " \\\\d \\\\*MERGEFORMAT}{\\fldrslt IMAGE}}\\par" << endl;
m_t << "}" << endl;
+ m_lastIsPara=TRUE;
}
diff --git a/src/rtfdocvisitor.h b/src/rtfdocvisitor.h
index a46c14a..83c5abe 100644
--- a/src/rtfdocvisitor.h
+++ b/src/rtfdocvisitor.h
@@ -154,6 +154,7 @@ class RTFDocVisitor : public DocVisitor
bool m_hide;
int m_indentLevel;
QStack<bool> m_enabled;
+ bool m_lastIsPara;
};
#endif
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 4f024d8..17958b9 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -37,8 +37,8 @@
#include "rtfdocvisitor.h"
#include "docparser.h"
-//#define DBG_RTF(x) x;
-#define DBG_RTF(x)
+#define DBG_RTF(x) x;
+//#define DBG_RTF(x)
static QCString dateToRTFDateString()
{
@@ -1328,7 +1328,7 @@ void RTFGenerator::startTitle()
void RTFGenerator::startGroupHeader()
{
DBG_RTF(t <<"{\\comment startGroupHeader}" << endl)
- newParagraph();
+ //newParagraph();
t << rtf_Style_Reset;
t << rtf_Style["Heading3"]->reference;
t << endl;
@@ -1426,12 +1426,10 @@ void RTFGenerator::startIndent()
DBG_RTF(t << "{\\comment (startIndent) }" << endl)
t << "{" << endl;
t << rtf_Style_Reset << rtf_CList_DepthStyle() << endl;
- //styleStack.push(style);
}
void RTFGenerator::endIndent()
{
- //const char *style = /* rtf_CList_DepthStyle(); */
t << "}" << endl;
decrementIndentLevel();
}
@@ -1762,14 +1760,14 @@ void RTFGenerator::startCodeFragment()
{
DBG_RTF(t << "{\\comment (startCodeFragment) }" << endl)
t << "{" << endl;
- newParagraph();
+ //newParagraph();
t << rtf_Style_Reset << rtf_Code_DepthStyle();
//styleStack.push(rtf_Style_CodeExample);
}
void RTFGenerator::endCodeFragment()
{
- newParagraph();
+ //newParagraph();
//styleStack.pop();
//printf("RTFGenerator::endCodeFrament() top=%s\n",styleStack.top());
//t << rtf_Style_Reset << styleStack.top() << endl;
@@ -1967,9 +1965,9 @@ void RTFGenerator::startTextBlock(bool dense)
}
}
-void RTFGenerator::endTextBlock()
+void RTFGenerator::endTextBlock(bool paraBreak)
{
- newParagraph();
+ if (paraBreak) newParagraph();
DBG_RTF(t << "{\\comment endTextBlock}" << endl)
t << "}" << endl;
//m_omitParagraph = TRUE;
@@ -2448,3 +2446,27 @@ void RTFGenerator::printDoc(DocNode *n)
delete visitor;
}
+void RTFGenerator::rtfwriteRuler_doubleline()
+{
+ DBG_RTF(t << "{\\comment (rtfwriteRuler_doubleline)}" << endl)
+ t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl;
+}
+
+void RTFGenerator::rtfwriteRuler_emboss()
+{
+ DBG_RTF(t << "{\\comment (rtfwriteRuler_emboss)}" << endl)
+ t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl;
+}
+
+void RTFGenerator::rtfwriteRuler_thick()
+{
+ DBG_RTF(t << "{\\comment (rtfwriteRuler_thick)}" << endl)
+ t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl;
+}
+
+void RTFGenerator::rtfwriteRuler_thin()
+{
+ DBG_RTF(t << "{\\comment (rtfwriteRuler_thin)}" << endl)
+ t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl;
+}
+
diff --git a/src/rtfgen.h b/src/rtfgen.h
index ee4d767..8cfbed5 100644
--- a/src/rtfgen.h
+++ b/src/rtfgen.h
@@ -235,7 +235,7 @@ class RTFGenerator : public OutputGenerator
void endMemberGroup(bool);
void startTextBlock(bool dense);
- void endTextBlock();
+ void endTextBlock(bool);
void lastIndexPage();
void startMemberDocPrefixItem() {}
@@ -287,10 +287,10 @@ class RTFGenerator : public OutputGenerator
void beginRTFDocument();
void beginRTFChapter();
void beginRTFSection();
- void rtfwriteRuler_doubleline() { t << "{\\pard\\widctlpar\\brdrb\\brdrdb\\brdrw15\\brsp20 \\adjustright \\par}" << endl; };
- void rtfwriteRuler_emboss() { t << "{\\pard\\widctlpar\\brdrb\\brdremboss\\brdrw15\\brsp20 \\adjustright \\par}" << endl; };
- void rtfwriteRuler_thick() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw75\\brsp20 \\adjustright \\par}" << endl; };
- void rtfwriteRuler_thin() { t << "{\\pard\\widctlpar\\brdrb\\brdrs\\brdrw5\\brsp20 \\adjustright \\par}" << endl; };
+ void rtfwriteRuler_doubleline();
+ void rtfwriteRuler_emboss();
+ void rtfwriteRuler_thick();
+ void rtfwriteRuler_thin();
void writeRTFReference(const char *label);
char *getMultiByte(int c);
};
diff --git a/src/rtfstyle.cpp b/src/rtfstyle.cpp
index 997038f..908ac24 100644
--- a/src/rtfstyle.cpp
+++ b/src/rtfstyle.cpp
@@ -58,6 +58,10 @@ Rtf_Style_Default rtf_Style_Default[] =
"\\s4\\sb240\\sa60\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
"\\sbasedon0 \\snext0 heading 4;}{\\*\\cs10 \\additive Default Paragraph Font"
},
+ { "Heading5",
+ "\\s5\\sb90\\sa30\\keepn\\widctlpar\\adjustright \\b\\f1\\fs20\\cgrid ",
+ "\\sbasedon0 \\snext0 heading 5;}{\\*\\cs10 \\additive Default Paragraph Font"
+ },
{ "Title",
"\\s15\\qc\\sb240\\sa60\\widctlpar\\outlinelevel0\\adjustright \\b\\f1\\fs32\\kerning28\\cgrid ",
"\\sbasedon0 \\snext15 Title"
diff --git a/src/translator_cz.h b/src/translator_cz.h
index 9ccc00e..37a847b 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -18,7 +18,8 @@
#ifndef TRANSLATOR_CZ_H
#define TRANSLATOR_CZ_H
-
+// $Id$
+//
// The first translation from English to Czech was started by
// Vlastimil Havran (1999--2000). The prototype version of Czech strings
// with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz),
@@ -125,7 +126,9 @@
// 2002/10/15 - The new trEvents() and trEventDocumentation() implemented.
// 2003/04/28 - Five new methods "since 1.3" implemented.
// 2003/06/10 - Two new methods "since 1.3.1" implemented.
-// 2003/08/13 - Four new "since 1.3.3" implemented.
+// 2003/08/13 - Four new methods "since 1.3.3" implemented.
+// 2004/02/26 - trLegendDocs() updated.
+// 2004/02/27 - Text inside the trCallGraph() corrected.
// Todo
// ----
@@ -1184,8 +1187,6 @@ class TranslatorCzech : public Translator
"/*! Tųķda, u které došlo k oųezįnķ grafu. Vztah dģdičnosti "
"je skryt. */\n"
"class Truncated : public Invisible { };\n\n"
- "/* Tųķda, kterį nenķ dokumentovįna komentįųi programu doxygen. */\n"
- "class Undocumented { };\n\n"
"/*! Bįzovį tųķda dģdģnį veųejnģ (public inheritance). */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Bįzovį tųķda, použitį pro chrįnģné dģdģnķ "
@@ -1194,6 +1195,10 @@ class TranslatorCzech : public Translator
"/*! Bįzovį tųķda, využitį pro privįtnķ dģdģnķ "
"(private inheritance). */\n"
"class PrivateBase { };\n\n"
+ "/* Tųķda, kterį nenķ dokumentovįna komentįųi programu doxygen. */\n"
+ "class Undocumented { };\n\n"
+ "/*! Šablona tųķdy. */\n"
+ "template<class T> class Templ { };\n\n"
"/*! Tųķda, kterį je využķvįna tųķdou Inherited. */\n"
"class Used { };\n\n"
"/*! Odvozenį tųķda, kterį rłznżm zpłsobem dģdķ z vķce bįzovżch "
@@ -1201,7 +1206,8 @@ class TranslatorCzech : public Translator
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
- " public Undocumented\n"
+ " public Undocumented,\n"
+ " public Templ<int>\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
@@ -1223,7 +1229,7 @@ class TranslatorCzech : public Translator
"strukturu nebo tųķdu, pro kterou\n"
"nejsou zobrazeny všechny vztahy dģdičnosti nebo obsaženķ. "
"Graf je oųezįn v pųķpadģ, kdy jej\n"
- "nenķ možné umķstit do vymezenżch hranic.\n"
+ "nenķ možné umķstit do vymezeného prostoru.\n"
"</ul>\n"
"Šipky (tj. hrany grafu) majķ nįsledujķcķ vżznam:\n"
"<ul>\n"
@@ -1238,6 +1244,10 @@ class TranslatorCzech : public Translator
"nebo kdy je použķvįna jinou tųķdou. Je označena identifikįtorem "
"jedné nebo vķce promģnżch, pųes které\n"
"je tųķda nebo struktura zpųķstupnģna.\n"
+ "<li>Žlutį šipka kreslenį čįrkovanģ vyjadųuje vztah mezi instancķ šablony "
+ "a šablonou tųķdy, na zįkladģ které byla\n"
+ "instance šablony vytvoųena. V popisu šipky jsou uvedeny pųķslušné"
+ " parametry šablony.\n"
"</ul>\n");
return decode(result);
@@ -1597,7 +1607,7 @@ class TranslatorCzech : public Translator
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
- return decode("Graf volįnķ této funkce:");
+ return decode("Graf volįnķ pro tuto funkci:");
}
//////////////////////////////////////////////////////////////////////////
diff --git a/src/translator_lt.h b/src/translator_lt.h
new file mode 100644
index 0000000..a965a4a
--- /dev/null
+++ b/src/translator_lt.h
@@ -0,0 +1,1546 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2004 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+/* Translation from English to Lithanian by Tomas Simonaitis, Mindaugas Radzius and Aidas Berukstis
+ * (haden@homelan.lt/mindaugasradzius@takas.lt/aidasber@takas.lt)
+ * We tried to keep meaning close to original,
+ * if you have any suggestions drop us an email
+ * -------------------------------------------
+ * Project start :13.May.2k4
+ * Last Doxygen version covered : 1.3.6
+ * Last revision :
+ *
+*/
+
+#ifndef TRANSLATOR_LT_H
+#define TRANSLATOR_LT_H
+
+
+class TranslatorLithuanian : public Translator
+{
+ public:
+
+ // --- 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 "lithuanian"; }
+
+ /*! 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()
+ {
+ return "";
+ }
+
+ /*! return the language charset. This will be used for the HTML output */
+ virtual QCString idLanguageCharset()
+ {
+ return "iso-8859-13";
+ }
+
+ // --- Language translation methods -------------------
+
+ /*! used in the compound documentation before a list of related functions. */
+ virtual QCString trRelatedFunctions()
+ { return "Susiję Funkcijos"; }
+
+ /*! subscript for the related functions. */
+ virtual QCString trRelatedSubscript()
+ { return "Atkreipkite dėmesį, čią ne metodai"; }
+
+ /*! header that is put before the detailed description of files, classes and namespaces. */
+ virtual QCString trDetailedDescription()
+ { return "Smulkus aprašymas"; }
+
+ /*! header that is put before the list of typedefs. */
+ virtual QCString trMemberTypedefDocumentation()
+ { return "Tipo Aprašymo Dokumentacija"; }
+
+ /*! header that is put before the list of enumerations. */
+ virtual QCString trMemberEnumerationDocumentation()
+ { return "Išvardinimo Dokumentacija"; }
+
+ /*! header that is put before the list of member functions. */
+ virtual QCString trMemberFunctionDocumentation()
+ { return "Metodų Dokumentacija"; }
+
+ /*! header that is put before the list of member attributes. */
+ virtual QCString trMemberDataDocumentation()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Lauko aprašymas";
+ }
+ else
+ {
+ return "Atributų Dokumentacija";
+ }
+ }
+
+ /*! this is the text of a link put after brief descriptions. */
+ virtual QCString trMore()
+ { return "Daugiau..."; }
+
+ /*! put in the class documentation */
+ virtual QCString trListOfAllMembers()
+ { return "Visų narių sąrašas."; }
+
+ /*! used as the title of the "list of all members" page of a class */
+ virtual QCString trMemberList()
+ { return "Narių sąrašas"; }
+
+ /*! this is the first part of a sentence that is followed by a class name */
+ virtual QCString trThisIsTheListOfAllMembers()
+ { return "Tai galutinis narių sąrašas "; }
+
+ /*! this is the remainder of the sentence after the class name */
+ virtual QCString trIncludingInheritedMembers()
+ { return ", įtraukiant visus paveldėtus narius."; }
+
+ /*! this is put at the author sections at the bottom of man pages.
+ * parameter s is name of the project name.
+ */
+ virtual QCString trGeneratedAutomatically(const char *s)
+ { QCString result="Automatiškai sugeneruota Doxygen įrankiu";
+ if (s) result+=(QCString)" "+s;
+ result+=" iš programos kodo.";
+ return result;
+ }
+
+ /*! put after an enum name in the list of all members */
+ virtual QCString trEnumName()
+ { return "išvardinimo vardas"; }
+
+ /*! put after an enum value in the list of all members */
+ virtual QCString trEnumValue()
+ { return "išvardinimo reikšmė"; }
+
+ /*! put after an undocumented member in the list of all members */
+ virtual QCString trDefinedIn()
+ { return "apibrėžta"; }
+
+ // 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).
+ */
+ virtual QCString trModules()
+ { return "Moduliai"; }
+
+ /*! This is put above each page as a link to the class hierarchy */
+ virtual QCString trClassHierarchy()
+ { return "Klasių hierarchija"; }
+
+ /*! This is put above each page as a link to the list of annotated classes */
+ virtual QCString trCompoundList()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Struktūros";
+ }
+ else
+ {
+ return "Klasės";
+ }
+ }
+
+ /*! This is put above each page as a link to the list of documented files */
+ virtual QCString trFileList()
+ { return "Failai"; }
+
+ /*! This is put above each page as a link to the list of all verbatim headers */
+ virtual QCString trHeaderFiles()
+ { return "Antraščių Failai"; }
+
+ /*! This is put above each page as a link to all members of compounds. */
+ virtual QCString trCompoundMembers()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Laukai";
+ }
+ else
+ {
+ return "Klasių Nariai";
+ }
+ }
+
+ /*! This is put above each page as a link to all members of files. */
+ virtual QCString trFileMembers()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Globalūs Nariai";
+ }
+ else
+ {
+ return "Globalūs Nariai";
+ }
+ }
+
+ /*! This is put above each page as a link to all related pages. */
+ virtual QCString trRelatedPages()
+ { return "Susiję Puslapiai"; }
+
+ /*! This is put above each page as a link to all examples. */
+ virtual QCString trExamples()
+ { return "Pavyzdžiai"; }
+
+ /*! This is put above each page as a link to the search engine. */
+ virtual QCString trSearch()
+ { return "Paieška"; }
+
+ /*! This is an introduction to the class hierarchy. */
+ virtual QCString trClassHierarchyDescription()
+ { return "Šis paveldėjimo sąrašas yra beveik surikiuotas "
+ "abėcėlės tvarka:";
+ }
+
+ /*! This is an introduction to the list with all files. */
+ virtual QCString trFileListDescription(bool extractAll)
+ {
+ QCString result="Visų ";
+ if (!extractAll) result+="dokumentuotų ";
+ result+="failų sąrašas su trumpais aprašymais:";
+ return result;
+ }
+
+ /*! This is an introduction to the annotated compound list. */
+ virtual QCString trCompoundListDescription()
+ {
+
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų struktūros su trumpais aprašymais:";
+ }
+ else
+ {
+ return "Klasės, struktūros, "
+ "sąjungos ir sąsajos su trumpais aprašymais:";
+ }
+ }
+
+ /*! This is an introduction to the page with all class members. */
+ virtual QCString trCompoundMembersDescription(bool extractAll)
+ {
+ QCString result="Visų ";
+ if (!extractAll)
+ {
+ result+="dokumentuotų ";
+ }
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="struktūrų ir sąjungų laukų sąrašas";
+ }
+ else
+ {
+ result+="klasių nariai";
+ }
+ result+=" su ryšiais į ";
+ if (!extractAll)
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="struktūrų/sąjungų kiekvieno lauko dokumentaciją:";
+ }
+ else
+ {
+ result+="klasės dokumentacija kiekvienam nariui:";
+ }
+ }
+ else
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="struktūros/sąjungos, kurios priklauso:";
+ }
+ else
+ {
+ result+="klasės, kurios priklauso:";
+ }
+ }
+ return result;
+ }
+
+ /*! This is an introduction to the page with all file members. */
+ virtual QCString trFileMembersDescription(bool extractAll)
+ {
+ QCString result="Sąrašas visų ";
+ if (!extractAll) result+="dokumentuotų ";
+
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="funkcijų, kintamųjų, apibrėžimų, išvardinimų, ir tipų apibrėžimų";
+ }
+ else
+ {
+ result+="globalių narių";
+ }
+ result+=" su ryšiais į ";
+ if (extractAll)
+ result+="failus, kuriems jie priklauso:";
+ else
+ result+="dokumentacija:";
+ return result;
+ }
+
+ /*! This is an introduction to the page with the list of all header files. */
+ virtual QCString trHeaderFilesDescription()
+ { return "Antraščių failai, kurie sudaro API:"; }
+
+ /*! This is an introduction to the page with the list of all examples */
+ virtual QCString trExamplesDescription()
+ { return "Visų pavyzdžių sąrašas:"; }
+
+ /*! This is an introduction to the page with the list of related pages */
+ virtual QCString trRelatedPagesDescription()
+ { return "Visų susijusių dokumentacijos puslapių sąrašas:"; }
+
+ /*! This is an introduction to the page with the list of class/file groups */
+ virtual QCString trModulesDescription()
+ { return "Visų modulių sąrašas:"; }
+
+ /*! This sentences is used in the annotated class/file lists if no brief
+ * description is given.
+ */
+ virtual QCString trNoDescriptionAvailable()
+ { return "Aprašymo nėra"; }
+
+ // index titles (the project name is prepended for these)
+
+
+ /*! This is used in HTML as the title of index.html. */
+ virtual QCString trDocumentation()
+ { return "Dokumentacija"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all groups.
+ */
+ virtual QCString trModuleIndex()
+ { return "Modulio Indeksas"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * class hierarchy.
+ */
+ virtual QCString trHierarchicalIndex()
+ { return "Hierarchijos Indeksas"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index.
+ */
+ virtual QCString trCompoundIndex()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Struktūros Indeksas";
+ }
+ else
+ {
+ return "Klasės Indeksas";
+ }
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * list of all files.
+ */
+ virtual QCString trFileIndex()
+ { return "Failo Indeksas"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all groups.
+ */
+ virtual QCString trModuleDocumentation()
+ { return "Modulio Dokumentacija"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all classes, structs and unions.
+ */
+ virtual QCString trClassDocumentation()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Struktūros Dokumentacija";
+ }
+ else
+ {
+ return "Klasės Dokumentacija";
+ }
+ }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all files.
+ */
+ virtual QCString trFileDocumentation()
+ { return "Failo Dokumentacija"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all examples.
+ */
+ virtual QCString trExampleDocumentation()
+ { return "Pavyzdžio Dokumentacija"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all related pages.
+ */
+ virtual QCString trPageDocumentation()
+ { return "Puslapio Dokumentacija"; }
+
+ /*! This is used in LaTeX as the title of the document */
+ virtual QCString trReferenceManual()
+ { return "Informacinis Vadovas"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of defines
+ */
+ virtual QCString trDefines()
+ { return "Apibrėžimai"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of function prototypes
+ */
+ virtual QCString trFuncProtos()
+ { return "Funkcijų Prototipai"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of typedefs
+ */
+ virtual QCString trTypedefs()
+ { return "Tipų apibrėžimai"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of enumerations
+ */
+ virtual QCString trEnumerations()
+ { return "Išvardinimai"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) functions
+ */
+ virtual QCString trFunctions()
+ { return "Funkcijos"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ virtual QCString trVariables()
+ { return "Kintamieji"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ virtual QCString trEnumerationValues()
+ { return "Išvardinimų reikšmės"; }
+
+ /*! This is used in the documentation of a file before the list of
+ * documentation blocks for defines
+ */
+ virtual QCString trDefineDocumentation()
+ { return "Apibrėžimų Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for function prototypes
+ */
+ virtual QCString trFunctionPrototypeDocumentation()
+ { return "Funkcijų Prototipų Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for typedefs
+ */
+ virtual QCString trTypedefDocumentation()
+ { return "Tipų apibrėžimų Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration types
+ */
+ virtual QCString trEnumerationTypeDocumentation()
+ { return "Išvardinimo Tipo Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration values
+ */
+ virtual QCString trEnumerationValueDocumentation()
+ { return "Išvardinimo Reikšmių Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for functions
+ */
+ virtual QCString trFunctionDocumentation()
+ { return "Funkcijos Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for variables
+ */
+ virtual QCString trVariableDocumentation()
+ { return "Kintamojo Dokumentacija"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds
+ */
+ virtual QCString trCompounds()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų struktųros";
+ }
+ else
+ {
+ return "Klasės";
+ }
+ }
+
+ /*! This is used in the standard footer of each page and indicates when
+ * the page was generated
+ */
+ virtual QCString trGeneratedAt(const char *date,const char *projName)
+ {
+ QCString result=(QCString)"Sugeneruota "+date;/*FIXME*/
+ if (projName) result+=(QCString)" "+projName;/*FIXME*/
+ result+=(QCString)" ";/*FIXME*/
+ return result;
+ }
+ /*! This is part of the sentence used in the standard footer of each page.
+ */
+ virtual QCString trWrittenBy()
+ {
+ return "parašyta";
+ }
+
+ /*! this text is put before a class diagram */
+ virtual QCString trClassDiagram(const char *clName)
+ {
+ return (QCString)"Paveldimumo diagrama "+clName+":"; /*FIXME*/
+ }
+
+ /*! this text is generated when the \\internal command is used. */
+ virtual QCString trForInternalUseOnly()
+ { return "Tiktai vidiniam naudojimui."; }
+
+ /*! this text is generated when the \\reimp command is used. */
+ virtual QCString trReimplementedForInternalReasons()
+ { return "Reimplemented for internal reasons; the API is not affected."; }/*FIXME*/
+
+ /*! this text is generated when the \\warning command is used. */
+ virtual QCString trWarning()
+ { return "Įspėjimas"; }
+
+ /*! this text is generated when the \\bug command is used. */
+ virtual QCString trBugsAndLimitations()
+ { return "Klaidos ir apribojimai"; }
+
+ /*! this text is generated when the \\version command is used. */
+ virtual QCString trVersion()
+ { return "Versija"; }
+
+ /*! this text is generated when the \\date command is used. */
+ virtual QCString trDate()
+ { return "Data"; }
+
+ /*! this text is generated when the \\return command is used. */
+ virtual QCString trReturns()
+ { return "Gražina"; }
+
+ /*! this text is generated when the \\sa command is used. */
+ virtual QCString trSeeAlso()
+ { return "Taip pat žiūrėti"; }
+
+ /*! this text is generated when the \\param command is used. */
+ virtual QCString trParameters()
+ { return "Parametrai"; }
+
+ /*! this text is generated when the \\exception command is used. */
+ virtual QCString trExceptions()
+ { return "Išimtys"; }
+
+ /*! this text is used in the title page of a LaTeX document. */
+ virtual QCString trGeneratedBy()
+ { return "Sugeneruota"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990307
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used as the title of page containing all the index of all namespaces. */
+ virtual QCString trNamespaceList()
+ { return "Varų Srities Sąrašas"; }
+
+ /*! used as an introduction to the namespace list */
+ virtual QCString trNamespaceListDescription(bool extractAll)
+ {
+ QCString result="Sąrašas visų ";
+ if (!extractAll) result+="dokumentuotų ";
+ result+="vardų sričių su trumpais aprašymais:";
+ return result;
+ }
+
+ /*! used in the class documentation as a header before the list of all
+ * friends of a class
+ */
+ virtual QCString trFriends()
+ { return "Draugai"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990405
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in the class documentation as a header before the list of all
+ * related classes
+ */
+ virtual QCString trRelatedFunctionDocumentation()
+ { return "Draugiškų Ir Susijusių Funkcijų Dokumentacija"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990425
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used as the title of the HTML page of a class/struct/union */
+ virtual QCString trCompoundReference(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Klasė"; break;
+ case ClassDef::Struct: result+=" Struktūra"; break;
+ case ClassDef::Union: result+=" Sąjunga"; break;
+ case ClassDef::Interface: result+=" Sąsaja"; break;
+ case ClassDef::Protocol: result+=" Protokolas"; break;
+ case ClassDef::Category: result+=" Kategorija"; break;
+ case ClassDef::Exception: result+=" Išimtis"; break;
+ }
+ if (isTemplate) result+=" Šablonas";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a file */
+ virtual QCString trFileReference(const char *fileName)
+ {
+ QCString result=fileName;
+ result+=" Failo Nuoroda";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a namespace */
+ virtual QCString trNamespaceReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" Vardų Srities Nuoroda";
+ return result;
+ }
+
+ virtual QCString trPublicMembers()
+ { return "Vieši Metodai"; }
+ virtual QCString trPublicSlots()
+ { return "Vieši Slotai"; } /*FIXME*/
+ virtual QCString trSignals()
+ { return "Signalai"; }
+ virtual QCString trStaticPublicMembers()
+ { return "Statiniai Vieši Metodai"; }
+ virtual QCString trProtectedMembers()
+ { return "Apsaugoti Metodai"; }
+ virtual QCString trProtectedSlots()
+ { return "Apsaugoti Slotai"; }/*FIXME*/
+ virtual QCString trStaticProtectedMembers()
+ { return "Statiniai Apsaugoti Metodai"; }
+ virtual QCString trPrivateMembers()
+ { return "Privatatūs Metodai"; }
+ virtual QCString trPrivateSlots()
+ { return "Privatūs Slotai"; }/*FIXME*/
+ virtual QCString trStaticPrivateMembers()
+ { return "Statiniai Privatūs Metodai"; }
+
+ /*! this function is used to produce a comma-separated list of items.
+ * use generateMarker(i) to indicate where item i should be put.
+ */
+ virtual QCString trWriteList(int numEntries)
+ {
+ QCString result;
+ int i;
+ // the inherits list contain `numEntries' classes
+ for (i=0;i<numEntries;i++)
+ {
+ // use generateMarker to generate placeholders for the class links!
+ result+=generateMarker(i); // generate marker for entry i in the list
+ // (order is left to right)
+
+ if (i!=numEntries-1) // not the last entry, so we need a separator
+ {
+ if (i<numEntries-2) // not the fore last entry
+ result+=", ";
+ else // the fore last entry
+ result+=", ir ";
+ }
+ }
+ return result;
+ }
+
+ /*! used in class documentation to produce a list of base classes,
+ * if class diagrams are disabled.
+ */
+ virtual QCString trInheritsList(int numEntries)
+ {
+ return "Paveldi "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in class documentation to produce a list of super classes,
+ * if class diagrams are disabled.
+ */
+ virtual QCString trInheritedByList(int numEntries)
+ {
+ return "Paveldėta "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * members that are hidden by this one.
+ */
+ virtual QCString trReimplementedFromList(int numEntries)
+ {
+ return "Perkrauna metodą iš "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * all member that overwrite the implementation of this member.
+ */
+ virtual QCString trReimplementedInList(int numEntries)
+ {
+ return "Metodas perkraunamas "+trWriteList(numEntries)+".";
+ }
+
+ /*! This is put above each page as a link to all members of namespaces. */
+ virtual QCString trNamespaceMembers()
+ { return "Vardų Srities Nariai"; }
+
+ /*! This is an introduction to the page with all namespace members */
+ virtual QCString trNamespaceMemberDescription(bool extractAll)
+ {
+ QCString result="Sąrašas visų ";
+ if (!extractAll) result+="dokumentuotų ";
+ result+="vardų srities narių su nuorodomis į ";
+ if (extractAll)
+ result+="vardų srities dokumentaciją kiekvienam nariui:";
+ else
+ result+="vardų sritis, kurioms jos priklauso:";
+ return result;
+ }
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all namespaces.
+ */
+ virtual QCString trNamespaceIndex()
+ { return "Vardų Srities Indeksas"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all namespaces.
+ */
+ virtual QCString trNamespaceDocumentation()
+ { return "Vardų Srities Dokumentacija"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990522
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used in the documentation before the list of all
+ * namespaces in a file.
+ */
+ virtual QCString trNamespaces()
+ { return "Vardų Sritys"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990728
+//////////////////////////////////////////////////////////////////////////
+
+ /*! 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.
+ */
+ virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Class", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"Dokumentacija ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="šiai klasei"; break;
+ case ClassDef::Struct: result+="šiai struktūrai"; break;
+ case ClassDef::Union: result+="šiai sąjungai"; break;
+ case ClassDef::Interface: result+="šiai sąsajai"; break;
+ case ClassDef::Protocol: result+="šiam protocolui"; break;
+ case ClassDef::Category: result+="šiai kategorijai"; break;
+ case ClassDef::Exception: result+="šiai išimčiai"; break;
+ }
+ result+=" sugeneruota iš ";
+ if (single) result+="šio failo:"; else result+="šių failų:";
+ return result;
+ }
+
+ /*! This is in the (quick) index as a link to the alphabetical compound
+ * list.
+ */
+ virtual QCString trAlphabeticalList()
+ { return "Abėcėlinis Sąrašas"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990901
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used as the heading text for the retval command. */
+ virtual QCString trReturnValues()
+ { return "Gražinamos reikšmės"; }
+
+ /*! This is in the (quick) index as a link to the main page (index.html)
+ */
+ virtual QCString trMainPage()
+ { return "Pagrindinis Puslapis"; }
+
+ /*! This is used in references to page that are put in the LaTeX
+ * documentation. It should be an abbreviation of the word page.
+ */
+ virtual QCString trPageAbbreviation()
+ { return "psl."; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-991003
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trSources()
+ {
+ return "Šaltiniai";/*FIXME cia gali buti ir programos tekstai*/
+ }
+ virtual QCString trDefinedAtLineInSourceFile()
+ {
+ return "Apibrėžimas failo @1 eilutėje @0.";
+ }
+ virtual QCString trDefinedInSourceFile()
+ {
+ return "Apibrėžimas faile @0.";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-991205
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trDeprecated()
+ {
+ return "Smerktina";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.0.0
+//////////////////////////////////////////////////////////////////////////
+
+ /*! this text is put before a collaboration diagram */
+ virtual QCString trCollaborationDiagram(const char *clName)
+ {
+ return (QCString)"Bendradarbiavimo diagrama "+clName+":";/*FIXME*/
+ }
+ /*! this text is put before an include dependency graph */
+ virtual QCString trInclDepGraph(const char *fName)
+ {
+ return (QCString)"Įtraukimo priklausomybių diagrama "+fName+":";/*FIXME*/
+ }
+ /*! header that is put before the list of constructor/destructors. */
+ virtual QCString trConstructorDocumentation()
+ {
+ return "Konstruktoriaus ir Destruktoriaus Dokumentacija";
+ }
+ /*! Used in the file documentation to point to the corresponding sources. */
+ virtual QCString trGotoSourceCode()
+ {
+ return "Eiti į šio failo programos kodą.";
+ }
+ /*! Used in the file sources to point to the corresponding documentation. */
+ virtual QCString trGotoDocumentation()
+ {
+ return "Eiti į šio failo dokumentaciją.";
+ }
+ /*! Text for the \\pre command */
+ virtual QCString trPrecondition()
+ {
+ return "Išakstinė sąlyga";
+ }
+ /*! Text for the \\post command */
+ virtual QCString trPostcondition()
+ {
+ return "Postcondition";/*FIXME*/
+ }
+ /*! Text for the \\invariant command */
+ virtual QCString trInvariant()
+ {
+ return "Pastovus";
+ }
+ /*! Text shown before a multi-line variable/enum initialization */
+ virtual QCString trInitialValue()
+ {
+ return "Pradinė reikšmė:";
+ }
+ /*! Text used the source code in the file index */
+ virtual QCString trCode()
+ {
+ return "tekstas";/*FIXME*/
+ }
+ virtual QCString trGraphicalHierarchy()
+ {
+ return "Grafinė Klasės Hierarchija";
+ }
+ virtual QCString trGotoGraphicalHierarchy()
+ {
+ return "Eiti į grafinę klasės hierarchiją";
+ }
+ virtual QCString trGotoTextualHierarchy()
+ {
+ return "Eiti į tekstinę klasės hierarchiją";
+ }
+ virtual QCString trPageIndex()
+ {
+ return "Puslapio Indeksas";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.0
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trNote()
+ {
+ return "Pastaba";
+ }
+ virtual QCString trPublicTypes()
+ {
+ return "Vieši Tipai";
+ }
+ virtual QCString trPublicAttribs()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Laukai";
+ }
+ else
+ {
+ return "Vieši Atributai";
+ }
+ }
+ virtual QCString trStaticPublicAttribs()
+ {
+ return "Statiniai Vieši Atributai";
+ }
+ virtual QCString trProtectedTypes()
+ {
+ return "Apsaugoti Tipai";
+ }
+ virtual QCString trProtectedAttribs()
+ {
+ return "Apsaugoti Atributai";
+ }
+ virtual QCString trStaticProtectedAttribs()
+ {
+ return "Statiniai Apsaugoti Atributai";
+ }
+ virtual QCString trPrivateTypes()
+ {
+ return "Privatūs Tipai";
+ }
+ virtual QCString trPrivateAttribs()
+ {
+ return "Privatūs Atributai";
+ }
+ virtual QCString trStaticPrivateAttribs()
+ {
+ return "Statiniai Privatūs Atributai";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a \\todo item */
+ virtual QCString trTodo()
+ {
+ return "Daryti";
+ }
+ /*! Used as the header of the todo list */
+ virtual QCString trTodoList()
+ {
+ return "Tolimesni Darbai";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.4
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trReferencedBy()
+ {
+ return "Naudojamas";
+ }
+ virtual QCString trRemarks()
+ {
+ return "Pastabos";
+ }
+ virtual QCString trAttention()
+ {
+ return "Attention";
+ }
+ virtual QCString trInclByDepGraph()
+ {
+ return "Šis grafas rodo, kuris failas tiesiogiai ar "
+ "netiesiogiai įtraukia šį failą:";
+ }
+ virtual QCString trSince()
+ {
+ return "Nuo";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.5
+//////////////////////////////////////////////////////////////////////////
+
+ /*! title of the graph legend page */
+ virtual QCString trLegendTitle()
+ {
+ return "Grafo Legenda";
+ }
+ /*! 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()
+ {
+ return
+ "Šis puslapis paaiškina, kaip interpretuoti sugeneruotus grafus "
+ "su Doxygen įrankiu.<p>\n"
+ "Panagrinėkite pavyzdį:\n"
+ "\\kodo pradžia\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 alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></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 "legenda";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.0
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a test item */
+ virtual QCString trTest()
+ {
+ return "Testas";
+ }
+ /*! Used as the header of the test list */
+ virtual QCString trTestList()
+ {
+ return "Testo Sąrašas";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a section header for KDE-2 IDL methods */
+ virtual QCString trDCOPMethods()
+ {
+ return "DCOP Metodai";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.2
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a section header for IDL properties */
+ virtual QCString trProperties()
+ {
+ return "Savybės";
+ }
+ /*! Used as a section header for IDL property documentation */
+ virtual QCString trPropertyDocumentation()
+ {
+ return "Savybės Dokumentacija";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.4
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used for Java interfaces in the summary section of Java packages */
+ virtual QCString trInterfaces()
+ {
+ return "Sąsajos";
+ }
+ /*! Used for Java classes in the summary section of Java packages */
+ virtual QCString trClasses()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Duomenų Struktūros";
+ }
+ else
+ {
+ return "Klasės";
+ }
+ }
+ /*! Used as the title of a Java package */
+ virtual QCString trPackage(const char *name)
+ {
+ return (QCString)"Paketas "+name;
+ }
+ /*! Title of the package index page */
+ virtual QCString trPackageList()
+ {
+ return "Paketo Sąrašas";
+ }
+ /*! The description of the package index page */
+ virtual QCString trPackageListDescription()
+ {
+ return "Paketai su trumpu aprašymu:";
+ }
+ /*! The link name in the Quick links header for each page */
+ virtual QCString trPackages()
+ {
+ return "Paketai";
+ }
+ /*! Used as a chapter title for Latex & RTF output */
+ virtual QCString trPackageDocumentation()
+ {
+ return "Paketo Dokumentacija";
+ }
+ /*! Text shown before a multi-line define */
+ virtual QCString trDefineValue()
+ {
+ return "Reikšmė:";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.5
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a \\bug item */
+ virtual QCString trBug()
+ {
+ return "Klaida";
+ }
+ /*! Used as the header of the bug list */
+ virtual QCString trBugList()
+ {
+ return "Klaidų Sąrašas";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// 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 "Indeksas";
+ }
+
+ /*! 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 ? "Klasė" : "klasė"));
+ if (!singular) result+="s";
+ return result;
+ }
+
+ /*! 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 ? "Faila" : "faila"));
+ if (!singular) result+="i";
+ else result+="s";
+ return result;
+ }
+
+ /*! 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 ? "Vardų srit" : "vardų srit"));
+ if (!singular) result+="ys";
+ else result+="is";
+ return result;
+ }
+
+ /*! 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 ? "Grupė" : "grupė"));
+ if (!singular) result+="s";
+ return result;
+ }
+
+ /*! 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 ? "Puslapi" : "puslapi"));
+ if (!singular) result+="ai";
+ else result+="s";
+ return result;
+ }
+
+ /*! 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 ? "Nar" : "nar"));
+ if (!singular) result+="iai";
+ else result+="ys";
+ return result;
+ }
+
+ /*! 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 ? "Lauka" : "lauka"));
+ if (!singular) result+="i";
+ else result+="s";
+ return result;
+ }
+
+ /*! 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";
+ else result+="us";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// 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 ? "Autori" : "autori"));
+ if (!singular) result+="ai";
+ else result+="us";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.11
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is put before the list of members referenced by a member
+ */
+ virtual QCString trReferences()
+ {
+ return "Ryšiai";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// 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 "Realizuoja "+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 "Realizuota "+trWriteList(numEntries)+".";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.16
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in RTF documentation as a heading for the Table
+ * of Contents.
+ */
+ virtual QCString trRTFTableOfContents()
+ {
+ return "Turinys";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.17
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as the header of the list of item that have been
+ * flagged deprecated
+ */
+ virtual QCString trDeprecatedList()
+ {
+ return "Smerktinumų Sąrašas";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.18
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a header for declaration section of the events found in
+ * a C# program
+ */
+ virtual QCString trEvents()
+ {
+ return "Įvykiai";
+ }
+ /*! Header used for the documentation section of a class' events. */
+ virtual QCString trEventDocumentation()
+ {
+ return "Įvykio Dokumentacija";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a heading for a list of Java class types with package scope.
+ */
+ virtual QCString trPackageTypes()
+ {
+ return "Paketo Tipai";
+ }
+ /*! Used as a heading for a list of Java class functions with package
+ * scope.
+ */
+ virtual QCString trPackageMembers()
+ {
+ return "Paketo Funkcijos";
+ }
+ /*! Used as a heading for a list of static Java class functions with
+ * package scope.
+ */
+ virtual QCString trStaticPackageMembers()
+ {
+ return "Statinės Paketo Funkcijos";
+ }
+ /*! Used as a heading for a list of Java class variables with package
+ * scope.
+ */
+ virtual QCString trPackageAttribs()
+ {
+ return "Paketo Atributai";
+ }
+ /*! Used as a heading for a list of static Java class variables with
+ * package scope.
+ */
+ virtual QCString trStaticPackageAttribs()
+ {
+ return "Statiniai Paketo Atributai";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "Visi";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "Funkcijos kvietimo grafas:";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! When the search engine is enabled this text is put in the header
+ * of each page before the field where one can enter the text to search
+ * for.
+ */
+ virtual QCString trSearchForIndex()
+ {
+ return "Ieškoti";
+ }
+ /*! This string is used as the title for the page listing the search
+ * results.
+ */
+ virtual QCString trSearchResultsTitle()
+ {
+ return "Paieškos Rezultatai";
+ }
+ /*! This string is put just before listing the search results. The
+ * text can be different depending on the number of documents found.
+ * Inside the text you can put the special marker $num to insert
+ * the number representing the actual number of search results.
+ * The @a numDocuments parameter can be either 0, 1 or 2, where the
+ * value 2 represents 2 or more matches. HTML markup is allowed inside
+ * the returned string.
+ */
+ virtual QCString trSearchResults(int numDocuments)
+ {
+ if (numDocuments==0)
+ {
+ return "Atsiprašome, jokių dokumentų nerasta pagal Jūsų užklausą.";
+ }
+ else if (numDocuments==1)
+ {
+ return "Surasta <b>1</b> dokumentas, atitinkantis Jūsų užklausą.";
+ }
+ else
+ {
+ return "Surasti <b>$num</b> dokumentų, atitinkančių Jūsų užklausą. "
+ "Pirmiausiai rodomi labiausiai tenkinantys užklausą.";
+ }
+ }
+ /*! This string is put before the list of matched words, for each search
+ * result. What follows is the list of words that matched the query.
+ */
+ virtual QCString trSearchMatches()
+ {
+ return "Atitikmenys:";
+ }
+
+};
+
+#endif
diff --git a/src/translator_ru.h b/src/translator_ru.h
index db45e08..5f8ac1d 100644
--- a/src/translator_ru.h
+++ b/src/translator_ru.h
@@ -638,7 +638,7 @@ class TranslatorRussian : public Translator
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return decode("äĻĖÕĶÅĪŌĮĆÉŃ ŠĻ ÄŅÕŚŲŃĶ ĖĢĮÓÓĮ É ĘÕĪĖĆÉŃĶ ĻŌĪĻĪĻÓŃŻÉČÓŃ"
+ { return decode("äĻĖÕĶÅĪŌĮĆÉŃ ŠĻ ÄŅÕŚŲŃĶ ĖĢĮÓÓĮ É ĘÕĪĖĆÉŃĶ ĻŌĪĻĪĻÓŃŻÉĶÓŃ"
" Ė ĖĢĮÓÓÕ"); }
//////////////////////////////////////////////////////////////////////////
diff --git a/src/util.cpp b/src/util.cpp
index ca30377..e223da2 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -60,7 +60,16 @@ extern char **environ;
//------------------------------------------------------------------------
-static QCache<ClassDef*> g_lookupCache(20000,20000);
+struct LookupInfo
+{
+ LookupInfo(ClassDef *cd=0,MemberDef *td=0,QCString ts="")
+ : classDef(cd), typeDef(td), templSpec(ts) {}
+ ClassDef *classDef;
+ MemberDef *typeDef;
+ QCString templSpec;
+};
+
+static QCache<LookupInfo> g_lookupCache(20000,20000);
// object that automatically initializes the cache at startup
class CacheInitializer
@@ -448,7 +457,6 @@ int guessSection(const char *name)
return 0;
}
-// TODO: remove this!
QCString resolveTypeDef(Definition *context,const QCString &qualifiedName,
Definition **typedefContext)
{
@@ -639,6 +647,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe
}
type=type.stripWhiteSpace(); // strip leading and trailing whitespace
ClassDef *result = getResolvedClassRec(md->getOuterScope(),fileScope,type,0,0);
+ //printf("type=%s result=%p\n",type.data(),result);
if (result==0)
{
// try unspecialized version if type is template
@@ -1025,16 +1034,21 @@ ClassDef *getResolvedClassRec(Definition *scope,
// scope, the name to search for and the explicit scope prefix. The speedup
// achieved by this simple cache can be enormous.
QCString key=scope->name()+"+"+name+"+"+explicitScopePart;
- ClassDef **pval=g_lookupCache.find(key);
+ LookupInfo *pval=g_lookupCache.find(key);
//printf("Searching for %s result=%p\n",key.data(),pval);
if (pval)
{
- return *pval;
+ if (pTemplSpec) *pTemplSpec=pval->templSpec;
+ if (pTypeDef) *pTypeDef=pval->typeDef;
+ //printf("] cachedMatch=%s\n",
+ // pval->classDef?pval->classDef->name().data():"<none>");
+ //if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data());
+ return pval->classDef;
}
else // not found yet; we already add a 0 to avoid the possibility of
// endless recursion.
{
- g_lookupCache.insert(key,new ClassDef*(0));
+ g_lookupCache.insert(key,new LookupInfo);
}
ClassDef *bestMatch=0;
@@ -1114,14 +1128,17 @@ ClassDef *getResolvedClassRec(Definition *scope,
pval=g_lookupCache.find(key);
if (pval)
{
- *pval=bestMatch;
+ pval->classDef = bestMatch;
+ pval->typeDef = bestTypedef;
+ pval->templSpec = bestTemplSpec;
}
else
{
- g_lookupCache.insert(key,new ClassDef*(bestMatch));
+ g_lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec));
}
//printf("] bestMatch=%s distance=%d\n",
// bestMatch?bestMatch->name().data():"<none>",minDistance);
+ //if (pTemplSpec) printf("templSpec=%s\n",pTemplSpec->data());
return bestMatch;
}