Commit 26ded37d authored by dimitri's avatar dimitri

Release-1.2.1-20000829

parent 8726fc64
DOXYGEN Version 1.2.1 DOXYGEN Version 1.2.1-20000829
Please read the installation section of the manual for instructions. Please read the installation section of the manual for instructions.
-------- --------
Dimitri van Heesch (13 August 2000) Dimitri van Heesch (29 August 2000)
DOXYGEN Version 1.2.1 DOXYGEN Version 1.2.1-20000829
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at ...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (13 August 2000) Dimitri van Heesch (29 August 2000)
1.2.1 1.2.1-20000829
...@@ -813,6 +813,20 @@ void checkConfig() ...@@ -813,6 +813,20 @@ void checkConfig()
s=Config::includePath.next(); s=Config::includePath.next();
} }
// check aliases
s=Config::aliasList.first();
while (s)
{
QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*[ \t]*=");
QCString alias=s;
alias=alias.stripWhiteSpace();
if (alias.find(re)!=0)
{
err("Illegal alias format `%s'. Use \"name=value\"\n",alias.data());
}
s=Config::aliasList.next();
}
// check dot path // check dot path
if (!Config::dotPath.isEmpty()) if (!Config::dotPath.isEmpty())
{ {
......
...@@ -1014,6 +1014,18 @@ void init() ...@@ -1014,6 +1014,18 @@ void init()
"disable (NO) the test list. This list is created by putting \\test \n" "disable (NO) the test list. This list is created by putting \\test \n"
"commands in the documentation.\n" "commands in the documentation.\n"
); );
ConfigList::add( "aliasList",
"ALIASES",
"",
"list of aliases",
"This tag can be used to specify a number of aliases that acts \n"
"as commands in the documentation. An alias has the form \"\\name=value\". \n"
"For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n"
"put the command \\sideeffect (or @sideeffect) in the documentation, which \n"
"will result in a user defined paragraph with heading \"Side Effects:\". \n"
"You can put \\n's in the value part of an alias to insert newlines. \n"
"Predefined commands cannot be overwritten using aliases. \n"
);
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
ConfigInfo::add( "Messages","configuration options related to warning and progress messages"); ConfigInfo::add( "Messages","configuration options related to warning and progress messages");
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
......
...@@ -282,7 +282,7 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -282,7 +282,7 @@ Doxygen. Unrecognized commands are treated as normal text.
(either global or as a member of a class). This command is needed if a (either global or as a member of a class). This command is needed if a
comment block is \e not located before the function declaration comment block is \e not located before the function declaration
or definition. A full function declaration should be specified after the or definition. A full function declaration should be specified after the
\fn command. The argument ends at the end of the line. \\fn command. The argument ends at the end of the line.
\par Example: \par Example:
\verbinclude func.h \verbinclude func.h
......
...@@ -39,12 +39,12 @@ You should use the \\mainpage command inside a comment block like this: ...@@ -39,12 +39,12 @@ You should use the \\mainpage command inside a comment block like this:
In order for global functions, variables, enums, typedefs, and defines In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are to be documented you should document the file in which these commands are
located using a comment block containing a \file (or @file) located using a comment block containing a \\file (or \@file)
command. command.
Alternatively, you can put all members in a group (or module) Alternatively, you can put all members in a group (or module)
using the \ingroup command and then document the group using a comment using the \\ingroup command and then document the group using a comment
block containing the \defgroup command. block containing the \\defgroup command.
<li><b>How can I avoid that some code fragment is parsed by Doxyen?</b> <li><b>How can I avoid that some code fragment is parsed by Doxyen?</b>
<p> <p>
......
...@@ -111,7 +111,7 @@ ...@@ -111,7 +111,7 @@
special <code>//!</code> C++ line comments. special <code>//!</code> C++ line comments.
<li>Unrelated members can now be documented. A page containing a <li>Unrelated members can now be documented. A page containing a
list of these members is generated. list of these members is generated.
<li>Added an <code>\include</code> command to insert blocks of source code <li>Added an <code>\\include</code> command to insert blocks of source code
into the documentation. into the documentation.
<li>Warnings are generated for members that are undocumented. <li>Warnings are generated for members that are undocumented.
<li>You can now specify your own HTML headers and footers for the <li>You can now specify your own HTML headers and footers for the
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
documentation, because of possible ambiguities or lack of documentation, because of possible ambiguities or lack of
information about the context in which the code fragment is found. information about the context in which the code fragment is found.
<li>It is not possible to insert a non-member function f in a class A <li>It is not possible to insert a non-member function f in a class A
using the \relates command, if class A already has a member with name f using the \\relates command, if class A already has a member with name f
and the same argument list. and the same argument list.
<li>There is only very limited support for member specialization at the <li>There is only very limited support for member specialization at the
moment. It only works if there is a specialized template class as moment. It only works if there is a specialized template class as
......
Name: doxygen Name: doxygen
Version: 1.2.1 Version: 1.2.1-20000829
Summary: documentation system for C, C++ and IDL Summary: documentation system for C, C++ and IDL
Release: 1 Release: 1
Source0: doxygen-%{version}.src.tar.gz Source0: doxygen-%{version}.src.tar.gz
......
...@@ -1200,9 +1200,11 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -1200,9 +1200,11 @@ void ClassDef::writeMemberList(OutputList &ol)
ol.writeString(")"); ol.writeString(")");
memberWritten=TRUE; memberWritten=TRUE;
} }
if ((protect!=Public || md->isStatic() || virt!=Normal || if ((protect!=Public || virt!=Normal ||
md->isFriend() || md->isRelated() || md->isFriend() || md->isRelated() || md->isExplicit() ||
md->getMemberSpecifiers()!=0 md->isMutable() || (md->isInline() && Config::inlineInfoFlag) ||
md->isSignal() || md->isSlot() ||
md->isStatic()
) )
&& memberWritten) && memberWritten)
{ {
......
...@@ -447,7 +447,9 @@ static bool getLink(const char *className, ...@@ -447,7 +447,9 @@ static bool getLink(const char *className,
{ {
md->addSourceReference(g_currentMemberDef); md->addSourceReference(g_currentMemberDef);
} }
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data()); //printf("d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getOutputFileBase().data(),d->name().data(),md->name().data());
//printf("g_classVar=`%s' type=`%s'\n",g_classVar ? g_classVar->name().data() : "none",md->typeString());
writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(), writeMultiLineCodeLink(result,d->getReference(),d->getOutputFileBase(),
md->anchor(),text ? text : memberName); md->anchor(),text ? text : memberName);
return TRUE; return TRUE;
...@@ -559,8 +561,36 @@ static void generateMemberLink(OutputList &ol,const char *varName, ...@@ -559,8 +561,36 @@ static void generateMemberLink(OutputList &ol,const char *varName,
ClassDef *vcd = getResolvedClass(g_classScope); ClassDef *vcd = getResolvedClass(g_classScope);
if (vcd && vcd->isLinkable()) if (vcd && vcd->isLinkable())
{ {
//printf("Found class for variable `%s'\n",varName); //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName);
MemberName *vmn=memberNameDict[varName]; MemberName *vmn=memberNameDict[varName];
if (vmn==0)
{
int vi;
QCString vn=varName;
QCString scope;
if ((vi=vn.findRev("::"))!=-1) // explicit scope A::b(), probably static member
{
ClassDef *jcd = getClass(vn.left(vi));
vn=vn.right(vn.length()-vi-2);
vmn=memberNameDict[vn];
//printf("Trying name `%s' scope=%s\n",vn.data(),scope.data());
MemberNameIterator vmni(*vmn);
MemberDef *vmd;
for (;(vmd=vmni.current());++vmni)
{
if ((vmd->isVariable() || vmd->isFunction()) &&
vmd->getClassDef()==jcd)
{
//printf("Found variable type=%s\n",vmd->typeString());
ClassDef *mcd=stripClassName(vmd->typeString());
if (mcd && mcd->isLinkable())
{
if (generateClassMemberLink(ol,mcd,memName)) return;
}
}
}
}
}
if (vmn) if (vmn)
{ {
//printf("There is a variable with name `%s'\n",varName); //printf("There is a variable with name `%s'\n",varName);
......
/* This file was generated by configgen on Sat Aug 12 16:16:35 2000 /* This file was generated by configgen on Fri Aug 25 21:22:11 2000
* from config_templ.h * from config_templ.h
* *
* DO NOT EDIT! * DO NOT EDIT!
...@@ -68,6 +68,7 @@ struct Config ...@@ -68,6 +68,7 @@ struct Config
static QStrList sectionFilterList; // list of section filters that are enabled static QStrList sectionFilterList; // list of section filters that are enabled
static bool generateTodoList; // do we want a todo list? static bool generateTodoList; // do we want a todo list?
static bool generateTestList; // do we want a test list? static bool generateTestList; // do we want a test list?
static QStrList aliasList; // list of aliases
static bool quietFlag; // generate progress messages flag static bool quietFlag; // generate progress messages flag
static bool warningFlag; // generate warnings flag static bool warningFlag; // generate warnings flag
static bool warningUndocFlag; // generate undocumented warnings static bool warningUndocFlag; // generate undocumented warnings
......
/* This file was generated by configgen on Sun Aug 13 14:05:26 2000 /* This file was generated by configgen on Fri Aug 25 21:22:11 2000
* from config_templ.l * from config_templ.l
* *
* DO NOT EDIT! * DO NOT EDIT!
...@@ -105,6 +105,7 @@ int Config::tabSize = 8; ...@@ -105,6 +105,7 @@ int Config::tabSize = 8;
QStrList Config::sectionFilterList; QStrList Config::sectionFilterList;
bool Config::generateTodoList = TRUE; bool Config::generateTodoList = TRUE;
bool Config::generateTestList = TRUE; bool Config::generateTestList = TRUE;
QStrList Config::aliasList;
bool Config::quietFlag = FALSE; bool Config::quietFlag = FALSE;
bool Config::warningFlag = TRUE; bool Config::warningFlag = TRUE;
bool Config::warningUndocFlag = TRUE; bool Config::warningUndocFlag = TRUE;
...@@ -361,6 +362,8 @@ static void readIncludeFile(const char *incName) ...@@ -361,6 +362,8 @@ static void readIncludeFile(const char *incName)
<Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; } <Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; }
<Start>"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; } <Start>"GENERATE_TODOLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTodoList; }
<Start>"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; } <Start>"GENERATE_TESTLIST"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateTestList; }
<Start>"ALIASES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::aliasList; l->clear(); elemStr=""; }
<Start>"ALIASES"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::aliasList; elemStr=""; }
<Start>"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; } <Start>"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
<Start>"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; } <Start>"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; }
<Start>"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; } <Start>"WARN_IF_UNDOCUMENTED"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningUndocFlag; }
...@@ -595,6 +598,14 @@ void dumpConfig() ...@@ -595,6 +598,14 @@ void dumpConfig()
} }
printf("generateTodoList=`%d'\n",Config::generateTodoList); printf("generateTodoList=`%d'\n",Config::generateTodoList);
printf("generateTestList=`%d'\n",Config::generateTestList); printf("generateTestList=`%d'\n",Config::generateTestList);
{
char *is=Config::aliasList.first();
while (is)
{
printf("aliasList=`%s'\n",is);
is=Config::aliasList.next();
}
}
printf("# configuration options related to warning and progress messages\n"); printf("# configuration options related to warning and progress messages\n");
printf("quietFlag=`%d'\n",Config::quietFlag); printf("quietFlag=`%d'\n",Config::quietFlag);
printf("warningFlag=`%d'\n",Config::warningFlag); printf("warningFlag=`%d'\n",Config::warningFlag);
...@@ -817,6 +828,7 @@ void Config::init() ...@@ -817,6 +828,7 @@ void Config::init()
Config::sectionFilterList.clear(); Config::sectionFilterList.clear();
Config::generateTodoList = TRUE; Config::generateTodoList = TRUE;
Config::generateTestList = TRUE; Config::generateTestList = TRUE;
Config::aliasList.clear();
Config::quietFlag = FALSE; Config::quietFlag = FALSE;
Config::warningFlag = TRUE; Config::warningFlag = TRUE;
Config::warningUndocFlag = TRUE; Config::warningUndocFlag = TRUE;
...@@ -1308,6 +1320,20 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -1308,6 +1320,20 @@ void writeTemplateConfig(QFile *f,bool sl)
writeBoolValue(t,Config::generateTestList); writeBoolValue(t,Config::generateTestList);
t << "\n"; t << "\n";
if (!sl) if (!sl)
{
t << "\n";
t << "# This tag can be used to specify a number of aliases that acts \n";
t << "# as commands in the documentation. An alias has the form \"\\name=value\". \n";
t << "# For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n";
t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n";
t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n";
t << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n";
}
t << "ALIASES = ";
writeStringList(t,Config::aliasList);
t << "\n";
if (!sl)
{ {
t << "\n"; t << "\n";
} }
...@@ -2374,6 +2400,7 @@ void substituteEnvironmentVars() ...@@ -2374,6 +2400,7 @@ void substituteEnvironmentVars()
substEnvVarsInString( Config::outputLanguage ); substEnvVarsInString( Config::outputLanguage );
substEnvVarsInStrList( Config::stripFromPath ); substEnvVarsInStrList( Config::stripFromPath );
substEnvVarsInStrList( Config::sectionFilterList ); substEnvVarsInStrList( Config::sectionFilterList );
substEnvVarsInStrList( Config::aliasList );
substEnvVarsInString( Config::warnFormat ); substEnvVarsInString( Config::warnFormat );
substEnvVarsInStrList( Config::inputSources ); substEnvVarsInStrList( Config::inputSources );
substEnvVarsInStrList( Config::filePatternList ); substEnvVarsInStrList( Config::filePatternList );
...@@ -2636,6 +2663,20 @@ void checkConfig() ...@@ -2636,6 +2663,20 @@ void checkConfig()
s=Config::includePath.next(); s=Config::includePath.next();
} }
// check aliases
s=Config::aliasList.first();
while (s)
{
QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*[ \t]*=");
QCString alias=s;
alias=alias.stripWhiteSpace();
if (alias.find(re)!=0)
{
err("Illegal alias format `%s'. Use \"name=value\"\n",alias.data());
}
s=Config::aliasList.next();
}
// check dot path // check dot path
if (!Config::dotPath.isEmpty()) if (!Config::dotPath.isEmpty())
{ {
......
...@@ -1246,7 +1246,7 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path, ...@@ -1246,7 +1246,7 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
} }
void ClassDiagram::writeImageMap(QTextStream &t,const char *path, void ClassDiagram::writeImage(QTextStream &t,const char *path,
const char *fileName, bool generateMap) const char *fileName, bool generateMap)
{ {
uint baseRows=base->computeRows(); uint baseRows=base->computeRows();
......
...@@ -123,7 +123,7 @@ class ClassDiagram ...@@ -123,7 +123,7 @@ class ClassDiagram
~ClassDiagram(); ~ClassDiagram();
void writeFigure(QTextStream &t,const char *path, void writeFigure(QTextStream &t,const char *path,
const char *file); const char *file);
void writeImageMap(QTextStream &t,const char *path, void writeImage(QTextStream &t,const char *path,
const char *file,bool generateMap=TRUE); const char *file,bool generateMap=TRUE);
private: private:
TreeDiagram *base; TreeDiagram *base;
......
...@@ -90,6 +90,7 @@ static bool inAttentionBlock; ...@@ -90,6 +90,7 @@ static bool inAttentionBlock;
static bool inParBlock; static bool inParBlock;
static QCString sectionRef; static QCString sectionRef;
static bool insideVerbatim = FALSE; static bool insideVerbatim = FALSE;
static bool insidePre = FALSE;
static int depthIf; static int depthIf;
//static int currentListIndentLevel; //static int currentListIndentLevel;
static QStack<char> currentListIndent; static QStack<char> currentListIndent;
...@@ -486,10 +487,15 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated) ...@@ -486,10 +487,15 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
int indent=0; int indent=0;
for (i=0;i<dashPos;i++) for (i=0;i<dashPos;i++)
{ {
//printf("Parsed[%d]=%d\n",i,marker[i]);
if (marker[i]=='\t') if (marker[i]=='\t')
{ {
indent+=Config::tabSize - (indent%Config::tabSize); indent+=Config::tabSize - (indent%Config::tabSize);
} }
else if (marker[i]=='\n')
{
indent=0;
}
else else
{ {
indent++; indent++;
...@@ -599,6 +605,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type) ...@@ -599,6 +605,7 @@ static QCString findAndCopyImage(const char *fileName,ImageTypes type)
QCString result; QCString result;
bool ambig; bool ambig;
FileDef *fd; FileDef *fd;
//printf("Search for %s\n",fileName);
if ((fd=findFileDef(imageNameDict,fileName,ambig))) if ((fd=findFileDef(imageNameDict,fileName,ambig)))
{ {
QFile inImage(QString(fd->absFilePath().data())); QFile inImage(QString(fd->absFilePath().data()));
...@@ -944,7 +951,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -944,7 +951,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
} }
<DocScan>{CMD}"endlink"/[^a-z_A-Z0-9] { warn(yyFileName,yyLineNr, <DocScan>{CMD}"endlink"/[^a-z_A-Z0-9] { warn(yyFileName,yyLineNr,
"Warning: \\endlink without \\link " "Warning: \\endlink without \\link "
"in documentation." "in documentation of this entity."
); );
} }
<DocScan>{CMD}"addindex"{B}+ { <DocScan>{CMD}"addindex"{B}+ {
...@@ -1460,10 +1467,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1460,10 +1467,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeObjectLink(0,internalRefFile,internalRefAnchor,text); outDoc->writeObjectLink(0,internalRefFile,internalRefAnchor,text);
BEGIN(DocScan); BEGIN(DocScan);
} }
<DocScan>{CMD}"ref" { <DocScan>{CMD}"ref"/{BN} {
BEGIN(DocRefName); BEGIN(DocRefName);
} }
<DocScan>{CMD}"refitem" { <DocScan>{CMD}"refitem"/{BN} {
BEGIN(DocRefItem); BEGIN(DocRefItem);
} }
<DocScan>{CMD}"if"/{BN} { <DocScan>{CMD}"if"/{BN} {
...@@ -1476,7 +1483,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1476,7 +1483,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: documentation block contains \\endif without " "Warning: documentation block contains \\endif without "
"matching \\if found in documentation." "matching \\if found in documentation of this entity."
); );
} }
else else
...@@ -1515,7 +1522,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1515,7 +1522,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
} }
else if (!generateLink(*outDoc,className,yytext,TRUE,0)) else if (!generateLink(*outDoc,className,yytext,TRUE,0))
{ {
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",yytext); warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",yytext);
//outDoc->writeBoldString(" unknown reference! "); //outDoc->writeBoldString(" unknown reference! ");
} }
BEGIN(DocScan); BEGIN(DocScan);
...@@ -1548,7 +1555,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1548,7 +1555,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
} }
else if (!generateLink(*outDoc,className,sectionRef,TRUE,text)) else if (!generateLink(*outDoc,className,sectionRef,TRUE,text))
{ {
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",sectionRef.data()); warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",sectionRef.data());
outDoc->writeBoldString(" unknown reference! "); outDoc->writeBoldString(" unknown reference! ");
} }
BEGIN(DocScan); BEGIN(DocScan);
...@@ -1566,7 +1573,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1566,7 +1573,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
} }
else else
{ {
warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s!",sectionRef.data()); warn(yyFileName,yyLineNr,"Warning: reference to unknown section %s in the documentation of this entity!",sectionRef.data());
outDoc->writeBoldString(" unknown reference! "); outDoc->writeBoldString(" unknown reference! ");
} }
BEGIN(DocScan); BEGIN(DocScan);
...@@ -1623,10 +1630,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1623,10 +1630,10 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
BEGIN(DocScan); BEGIN(DocScan);
} }
<DocImage>[a-z_A-Z0-9\.\-]+ { <DocImage>[a-z_A-Z0-9\.\-]+ {
warn(yyFileName,yyLineNr,"Warning: %s is an unsupported output format for \\image",yytext); warn(yyFileName,yyLineNr,"Warning: %s is an unsupported output format for \\image in the documentation of the entity",yytext);
} }
<DocImage,DocHtmlImageName,DocLatexImageName>\n { <DocImage,DocHtmlImageName,DocLatexImageName>\n {
warn(yyFileName,yyLineNr,"Warning: invalid \\image command found!"); warn(yyFileName,yyLineNr,"Warning: invalid \\image command found in the documentation of this entity!");
outDoc->enableAll(); outDoc->enableAll();
BEGIN(DocScan); BEGIN(DocScan);
} }
...@@ -1637,7 +1644,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1637,7 +1644,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
} }
<DocScan>{CMD}"endcode"/[^a-z_A-Z0-9] { <DocScan>{CMD}"endcode"/[^a-z_A-Z0-9] {
warn(yyFileName,yyLineNr,"Warning: \\endcode without \\code " warn(yyFileName,yyLineNr,"Warning: \\endcode without \\code "
"in the documentation."); "in the documentation of this entity.");
} }
<DocScan,DocRefName>{ID}"<"[^>\ \t\n]*">"("::"{ID})+"("?[a-z_A-Z0-9,:\<\> \t\*\&]*")"? { <DocScan,DocRefName>{ID}"<"[^>\ \t\n]*">"("::"{ID})+"("?[a-z_A-Z0-9,:\<\> \t\*\&]*")"? {
...@@ -1775,8 +1782,18 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1775,8 +1782,18 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
/*restoreOutputListState();*/ /*restoreOutputListState();*/
outDoc->popGeneratorState(); outDoc->popGeneratorState();
} }
<DocScan>"<"{PRE}{ATTR}">" { outDoc->startPreFragment(); } <DocScan>"<"{PRE}{ATTR}">" {
<DocScan>"</"{PRE}{ATTR}">" { outDoc->endPreFragment(); } if (insidePre)
{
warn(yyFileName,yyLineNr,"Warning in the documentation of this entity:\nNested <pre> found in the documentation of this entity!");
}
outDoc->startPreFragment();
insidePre=TRUE;
}
<DocScan>"</"{PRE}{ATTR}">" {
outDoc->endPreFragment();
insidePre=FALSE;
}
<DocScan>"<"{SUB}{ATTR}">" { outDoc->startSubscript(); } <DocScan>"<"{SUB}{ATTR}">" { outDoc->startSubscript(); }
<DocScan>"</"{SUB}{ATTR}">" { outDoc->endSubscript(); } <DocScan>"</"{SUB}{ATTR}">" { outDoc->endSubscript(); }
<DocScan>"<"{SUP}{ATTR}">" { outDoc->startSuperscript(); } <DocScan>"<"{SUP}{ATTR}">" { outDoc->startSuperscript(); }
...@@ -1792,13 +1809,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1792,13 +1809,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty()) if (currentListIndent.isEmpty())
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: more </ol> tags than <ol> tags in the documentation." "Warning in the documentation of this entity:\nMore </ol> tags than <ol> tags in the documentation of this entity."
); );
} }
else if (currentListIndent.top()!="O") else if (currentListIndent.top()!="O")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: </ol> tag does not end a <ol> tag in the documentation." "Warning in the documentation of this entity:\nThe </ol> tag does not end a <ol> tag."
); );
} }
else else
...@@ -1814,13 +1831,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1814,13 +1831,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty()) if (currentListIndent.isEmpty())
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: more </ul> tags than <ul> tags in the documentation." "Warning in the documentation of this entity:\nMore </ul> tags than <ul> tags."
); );
} }
else if (currentListIndent.top()!="U") else if (currentListIndent.top()!="U")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: </ul> tag does not end a <ul> tag in the documentation." "Warning in the documentation of this entity:\nThe </ul> tag does not end a <ul> tag."
); );
} }
else else
...@@ -1834,7 +1851,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1834,7 +1851,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()=="D") currentListIndent.top()=="D")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: The <li> tag can only be used inside a <ul> ... </ul> or a <ol> ... </ol> block." "Warning in the documentation of this entity:\nThe <li> tag can only be used inside a <ul> ... </ul> or a <ol> ... </ol> block."
); );
} }
else else
...@@ -1855,13 +1872,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1855,13 +1872,13 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
if (currentListIndent.isEmpty()) if (currentListIndent.isEmpty())
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: more </dl> tags than <dl> tags in the documentation." "Warning in the documentation of this entity:\nMore </dl> tags than <dl> tags in the documentation."
); );
} }
else if (currentListIndent.top()!="D") else if (currentListIndent.top()!="D")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: </dl> tag does not end a <dl> tag in the documentation." "Warning in the documentation of this entity:\nThe </dl> tag does not end a <dl> tag in the documentation."
); );
} }
else else
...@@ -1875,7 +1892,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1875,7 +1892,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()!="D") currentListIndent.top()!="D")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: The <dt> tag can only be used inside a <dl> ... </dl> block." "Warning in the documentation of this entity:\nThe <dt> tag can only be used inside a <dl> ... </dl> block."
); );
} }
else else
...@@ -1889,7 +1906,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1889,7 +1906,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
currentListIndent.top()!="D") currentListIndent.top()!="D")
{ {
warn(yyFileName,yyLineNr, warn(yyFileName,yyLineNr,
"Warning: The <dd> tag can only be used inside a <dl> ... </dl> block." "Warning in the documentation of this entity:\nThe <dd> tag can only be used inside a <dl> ... </dl> block."
); );
} }
else else
...@@ -1935,7 +1952,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -1935,7 +1952,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
<DocScan>{CMD}("\\"|"@"|"<"|">"|"&"|"$"|"#"|"%") { <DocScan>{CMD}("\\"|"@"|"<"|">"|"&"|"$"|"#"|"%") {
outDoc->docify(&yytext[1]); outDoc->docify(&yytext[1]);
} }
<DocScan>"%"[a-zA-Z_0-9\-]+ { <DocScan,DocEmphasis,DocBold,DocCode>"%"[a-zA-Z_0-9\-]+ {
outDoc->docify(yytext+1); outDoc->docify(yytext+1);
} }
<DocEmphasis>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" { <DocEmphasis>[a-z_A-Z][a-z_A-Z:0-9<>&\-=^%~!\[\]()|\*/]*"("[a-z_A-Z0-9,:\<\> \t\*\&]*")" {
...@@ -2012,7 +2029,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -2012,7 +2029,7 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->newParagraph(); outDoc->newParagraph();
} }
if (inBlock()) endBlock(); if (inBlock()) endBlock();
addListItemMarker(strrchr(yytext,'\n')+1,dashPos,isEnumerated); addListItemMarker(yytext,dashPos+1,isEnumerated);
} }
<DocScan>({B}*"\n"){2,}{B}* { // new paragraph <DocScan>({B}*"\n"){2,}{B}* { // new paragraph
if (insideArgumentList) if (insideArgumentList)
...@@ -2034,8 +2051,33 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") ...@@ -2034,8 +2051,33 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeChar(' '); outDoc->writeChar(' ');
} }
<DocScan>\n?{B}* { <DocScan>\n?{B}* {
if (insidePre)
{
outDoc->docify(yytext);
}
else
{
outDoc->writeChar(' '); outDoc->writeChar(' ');
} }
}
<DocScan>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
outDoc->docify(yytext);
}
<DocScan>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=aliasDict[yytext+1];
if (pValue)
{
int i,l=pValue->length();
for (i=l-1;i>=0;i--)
{
unput(pValue->at(i));
}
}
else
{
warn(yyFileName,yyLineNr,"Warning in the documentation of this entity:\nUnknown command `%s' found.",yytext);
}
}
<DocCode,DocEmphasis,DocBold,DocScan,Text>[a-z_A-Z0-9]+ { <DocCode,DocEmphasis,DocBold,DocScan,Text>[a-z_A-Z0-9]+ {
outDoc->docify(yytext); outDoc->docify(yytext);
} }
......
...@@ -1043,13 +1043,27 @@ static void findMaximalDotGraph(DotNode *root, ...@@ -1043,13 +1043,27 @@ static void findMaximalDotGraph(DotNode *root,
QCString DotClassGraph::diskName() const QCString DotClassGraph::diskName() const
{ {
return m_diskName + "_coll_graph"; QString result=m_diskName.copy();
switch (m_graphType)
{
case Implementation:
result+="_coll_graph";
break;
case Interface:
result+="_intf_graph";
break;
case Inheritance:
result+="_inherit_graph";
break;
}
return result;
} }
void DotClassGraph::writeGraph(QTextStream &out, void DotClassGraph::writeGraph(QTextStream &out,
GraphOutputFormat format, GraphOutputFormat format,
const char *path, const char *path,
bool isTBRank) bool isTBRank,
bool generateImageMap)
{ {
QDir d(path); QDir d(path);
// store the original directory // store the original directory
...@@ -1094,6 +1108,8 @@ void DotClassGraph::writeGraph(QTextStream &out, ...@@ -1094,6 +1108,8 @@ void DotClassGraph::writeGraph(QTextStream &out,
QDir::setCurrent(oldDir); QDir::setCurrent(oldDir);
return; return;
} }
if (generateImageMap)
{
// run dot again to create an image map // run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"", dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data()); Config::dotPath.data(),baseName.data(),baseName.data());
...@@ -1120,9 +1136,10 @@ void DotClassGraph::writeGraph(QTextStream &out, ...@@ -1120,9 +1136,10 @@ void DotClassGraph::writeGraph(QTextStream &out,
out << "\"></center>" << endl; out << "\"></center>" << endl;
out << "<map name=\"" << m_startNode->m_label << "_" << mapName << "\">" << endl; out << "<map name=\"" << m_startNode->m_label << "_" << mapName << "\">" << endl;
convertMapFile(out,baseName+".map"); convertMapFile(out,baseName+".map");
out << "</map><p>" << endl; out << "</map>" << endl;
thisDir.remove(baseName+".map"); thisDir.remove(baseName+".map");
} }
}
else if (format==EPS) // run dot to create a .eps image else if (format==EPS) // run dot to create a .eps image
{ {
QCString dotCmd(4096); QCString dotCmd(4096);
...@@ -1251,12 +1268,16 @@ DotInclDepGraph::~DotInclDepGraph() ...@@ -1251,12 +1268,16 @@ DotInclDepGraph::~DotInclDepGraph()
QCString DotInclDepGraph::diskName() const QCString DotInclDepGraph::diskName() const
{ {
return m_diskName + "_incldep"; QCString result=m_diskName.copy();
if (m_inverse) result+="_dep";
result+="_incl";
return result;
} }
void DotInclDepGraph::writeGraph(QTextStream &out, void DotInclDepGraph::writeGraph(QTextStream &out,
GraphOutputFormat format, GraphOutputFormat format,
const char *path const char *path,
bool generateImageMap
) )
{ {
QDir d(path); QDir d(path);
...@@ -1292,6 +1313,8 @@ void DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -1292,6 +1313,8 @@ void DotInclDepGraph::writeGraph(QTextStream &out,
return; return;
} }
if (generateImageMap)
{
// run dot again to create an image map // run dot again to create an image map
dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"", dotCmd.sprintf("%sdot -Timap \"%s.dot\" -o \"%s.map\"",
Config::dotPath.data(),baseName.data(),baseName.data()); Config::dotPath.data(),baseName.data(),baseName.data());
...@@ -1309,9 +1332,10 @@ void DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -1309,9 +1332,10 @@ void DotInclDepGraph::writeGraph(QTextStream &out,
out << "</center>" << endl; out << "</center>" << endl;
out << "<map name=\"" << mapName << "_map\">" << endl; out << "<map name=\"" << mapName << "_map\">" << endl;
convertMapFile(out,baseName+".map"); convertMapFile(out,baseName+".map");
out << "</map><p>" << endl; out << "</map>" << endl;
thisDir.remove(baseName+".map"); thisDir.remove(baseName+".map");
} }
}
else if (format==EPS) else if (format==EPS)
{ {
// run dot to create a .eps image // run dot to create a .eps image
......
...@@ -120,7 +120,7 @@ class DotClassGraph ...@@ -120,7 +120,7 @@ class DotClassGraph
~DotClassGraph(); ~DotClassGraph();
bool isTrivial() const; bool isTrivial() const;
void writeGraph(QTextStream &t,GraphOutputFormat f,const char *path, void writeGraph(QTextStream &t,GraphOutputFormat f,const char *path,
bool TBRank=TRUE); bool TBRank=TRUE,bool imageMap=TRUE);
QCString diskName() const; QCString diskName() const;
private: private:
...@@ -141,7 +141,8 @@ class DotInclDepGraph ...@@ -141,7 +141,8 @@ class DotInclDepGraph
public: public:
DotInclDepGraph(FileDef *fd,bool inverse=FALSE); DotInclDepGraph(FileDef *fd,bool inverse=FALSE);
~DotInclDepGraph(); ~DotInclDepGraph();
void writeGraph(QTextStream &t, GraphOutputFormat f,const char *path); void writeGraph(QTextStream &t, GraphOutputFormat f,const char *path,
bool writeImageMap=TRUE);
bool isTrivial() const; bool isTrivial() const;
QCString diskName() const; QCString diskName() const;
......
...@@ -84,6 +84,7 @@ MemberNameDict functionNameDict(10007); // all functions ...@@ -84,6 +84,7 @@ MemberNameDict functionNameDict(10007); // all functions
//StringDict substituteDict(1009); // class name substitutes //StringDict substituteDict(1009); // class name substitutes
SectionDict sectionDict(257); // all page sections SectionDict sectionDict(257); // all page sections
StringDict excludeNameDict(1009); // sections StringDict excludeNameDict(1009); // sections
StringDict aliasDict(257); // aliases
FileNameDict *inputNameDict; // sections FileNameDict *inputNameDict; // sections
FileNameDict *includeNameDict; // include names FileNameDict *includeNameDict; // include names
FileNameDict *exampleNameDict; // examples FileNameDict *exampleNameDict; // examples
...@@ -1081,8 +1082,9 @@ static MemberDef *addVariableToClass( ...@@ -1081,8 +1082,9 @@ static MemberDef *addVariableToClass(
MemberName *mn=memberNameDict[name]; MemberName *mn=memberNameDict[name];
if (mn) if (mn)
{ {
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
while (md) MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{ {
if (md->getClassDef()==cd && root->type==md->typeString()) if (md->getClassDef()==cd && root->type==md->typeString())
// member already in the scope // member already in the scope
...@@ -1090,7 +1092,6 @@ static MemberDef *addVariableToClass( ...@@ -1090,7 +1092,6 @@ static MemberDef *addVariableToClass(
addMemberDocs(root,md,def,0,FALSE); addMemberDocs(root,md,def,0,FALSE);
return md; return md;
} }
md=mn->next();
} }
} }
// new member variable, typedef or enum value // new member variable, typedef or enum value
...@@ -1212,8 +1213,9 @@ static MemberDef *addVariableToFile( ...@@ -1212,8 +1213,9 @@ static MemberDef *addVariableToFile(
MemberName *mn=functionNameDict[name]; MemberName *mn=functionNameDict[name];
if (mn) if (mn)
{ {
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
while (md) MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni)
{ {
QCString nscope=removeAnnonymousScopes(scope); QCString nscope=removeAnnonymousScopes(scope);
NamespaceDef *nd=0; NamespaceDef *nd=0;
...@@ -1228,7 +1230,6 @@ static MemberDef *addVariableToFile( ...@@ -1228,7 +1230,6 @@ static MemberDef *addVariableToFile(
md->setRefItems(root->todoId,root->testId); md->setRefItems(root->todoId,root->testId);
return md; return md;
} }
md=mn->next();
} }
} }
// new global variable, enum value or typedef // new global variable, enum value or typedef
...@@ -1690,8 +1691,9 @@ static void buildMemberList(Entry *root) ...@@ -1690,8 +1691,9 @@ static void buildMemberList(Entry *root)
if ((mn=functionNameDict[rname])) if ((mn=functionNameDict[rname]))
{ {
//printf("--> function %s already found!\n",rname.data()); //printf("--> function %s already found!\n",rname.data());
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
while (md && !found) MemberDef *md;
for (mni.toFirst();((md=mni.current()) && !found);++mni)
{ {
NamespaceDef *nd = md->getNamespaceDef(); NamespaceDef *nd = md->getNamespaceDef();
NamespaceDef *rnd = 0; NamespaceDef *rnd = 0;
...@@ -1709,7 +1711,7 @@ static void buildMemberList(Entry *root) ...@@ -1709,7 +1711,7 @@ static void buildMemberList(Entry *root)
) )
{ {
// see if we need to create a new member // see if we need to create a new member
found=nsName==rnsName && // members are in the same namespace found=nsName==rnsName || // members are in the same namespace
((fd!=0 && // no external reference ((fd!=0 && // no external reference
fd->absFilePath()==root->fileName // prototype in the same file fd->absFilePath()==root->fileName // prototype in the same file
) || ) ||
...@@ -1735,7 +1737,6 @@ static void buildMemberList(Entry *root) ...@@ -1735,7 +1737,6 @@ static void buildMemberList(Entry *root)
} }
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
} }
md=mn->next();
} }
} }
if (!found) /* global function is unique with respect to the file */ if (!found) /* global function is unique with respect to the file */
...@@ -2680,9 +2681,10 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2680,9 +2681,10 @@ static bool findUnrelatedFunction(Entry *root,
{ {
Debug::print(Debug::FindMembers,0,"3. Found function scope\n"); Debug::print(Debug::FindMembers,0,"3. Found function scope\n");
//int count=0; //int count=0;
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
MemberDef *md;
bool found=FALSE; bool found=FALSE;
while (md) for (mni.toFirst();(md=mni.current()) && !found;++mni)
{ {
bool ambig; bool ambig;
NamespaceDef *nd=md->getNamespaceDef(); NamespaceDef *nd=md->getNamespaceDef();
...@@ -2716,7 +2718,6 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2716,7 +2718,6 @@ static bool findUnrelatedFunction(Entry *root,
found=TRUE; found=TRUE;
} }
} }
md=mn->next();
} }
if (!found) // no match if (!found) // no match
{ {
...@@ -2727,11 +2728,9 @@ static bool findUnrelatedFunction(Entry *root, ...@@ -2727,11 +2728,9 @@ static bool findUnrelatedFunction(Entry *root,
if (mn->count()>0) if (mn->count()>0)
{ {
warn_cont("Possible candidates:\n"); warn_cont("Possible candidates:\n");
md=mn->first(); for (mni.toFirst();(md=mni.current());++mni)
while (md)
{ {
warn_cont(" %s\n",md->declaration()); warn_cont(" %s\n",md->declaration());
md=mn->next();
} }
} }
} }
...@@ -3185,7 +3184,6 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3185,7 +3184,6 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
if (!className.isEmpty()) // class name is valid if (!className.isEmpty()) // class name is valid
{ {
int count=0; int count=0;
//MemberDef *md=mn->first(); // for each member with that name
MemberNameIterator mni(*mn); MemberNameIterator mni(*mn);
MemberDef *md; MemberDef *md;
for (mni.toFirst();(md=mni.current());++mni) for (mni.toFirst();(md=mni.current());++mni)
...@@ -3328,37 +3326,22 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3328,37 +3326,22 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
int candidates=0; int candidates=0;
if (mn->count()>0) if (mn->count()>0)
{ {
md=mn->first(); for (mni.toFirst();(md=mni.current());++mni)
while (md)
{ {
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
if (cd!=0 && cd->name()==className) candidates++; if (cd!=0 && cd->name()==className) candidates++;
md=mn->next();
} }
} }
if (candidates>0) if (candidates>0)
{ {
warn_cont("Possible candidates:\n"); warn_cont("Possible candidates:\n");
md=mn->first(); for (mni.toFirst();(md=mni.current());++mni)
while (md)
{ {
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
if (cd!=0 && cd->name()==className) if (cd!=0 && cd->name()==className)
{ {
warn_cont(" %s",md->declaration()); warn_cont(" %s\n",md->declaration());
#if 0
if (cd->name().at(0)!='@')
{
warn_cont(" in class %s",cd->name().data());
}
if (!md->getDefFileName().isEmpty() && md->getDefLine()!=-1)
{
warn_cont(" defined at line %d of file %s",md->getDefLine(),md->getDefFileName().data());
}
#endif
warn_cont("\n");
} }
md=mn->next();
} }
} }
} }
...@@ -3368,18 +3351,18 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl ...@@ -3368,18 +3351,18 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl
// for unique overloaded member we allow the class to be // for unique overloaded member we allow the class to be
// omitted, this is to be Qt compatable. Using this should // omitted, this is to be Qt compatable. Using this should
// however be avoided, because it is error prone // however be avoided, because it is error prone
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
MemberDef *md=mni.toFirst();
ASSERT(md); ASSERT(md);
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
ASSERT(cd); ASSERT(cd);
QCString className=cd->name().copy(); QCString className=cd->name().copy();
md=mn->next(); ++mni;
bool unique=TRUE; bool unique=TRUE;
while (md) for (;(md=mni.current());++mni)
{ {
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
if (className!=cd->name()) unique=FALSE; if (className!=cd->name()) unique=FALSE;
md=mn->next();
} }
if (unique) if (unique)
{ {
...@@ -3812,8 +3795,12 @@ static void findEnums(Entry *root) ...@@ -3812,8 +3795,12 @@ static void findEnums(Entry *root)
if (!e->name.isEmpty() && (fmn=(*mnd)[e->name])) if (!e->name.isEmpty() && (fmn=(*mnd)[e->name]))
// get list of members with the same name as the field // get list of members with the same name as the field
{ {
MemberDef *fmd=fmn->first(); MemberNameIterator fmni(*fmn);
while (fmd) // search for the scope with the right name MemberDef *fmd;
for (fmni.toFirst();
(fmd=fmni.current()) && fmd->isEnumValue();
++fmni
) // search for the scope with the right name
{ {
if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@') if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@')
{ {
...@@ -3842,7 +3829,6 @@ static void findEnums(Entry *root) ...@@ -3842,7 +3829,6 @@ static void findEnums(Entry *root)
fmd->setEnumScope(md); // cross ref with enum name fmd->setEnumScope(md); // cross ref with enum name
} }
} }
fmd=fmn->next();
} }
} }
} }
...@@ -3900,8 +3886,9 @@ static void findEnumDocumentation(Entry *root) ...@@ -3900,8 +3886,9 @@ static void findEnumDocumentation(Entry *root)
MemberName *mn=memberNameDict[name]; MemberName *mn=memberNameDict[name];
if (mn) if (mn)
{ {
MemberDef *md=mn->first(); MemberNameIterator mni(*mn);
while (md && !found) MemberDef *md;
for (mni.toFirst();(md=mni.current()) && !found;++mni)
{ {
ClassDef *cd=md->getClassDef(); ClassDef *cd=md->getClassDef();
if (cd && cd->name()==className) if (cd && cd->name()==className)
...@@ -3927,7 +3914,6 @@ static void findEnumDocumentation(Entry *root) ...@@ -3927,7 +3914,6 @@ static void findEnumDocumentation(Entry *root)
md->addSectionsToDefinition(root->anchors); md->addSectionsToDefinition(root->anchors);
found=TRUE; found=TRUE;
} }
md=mn->next();
} }
} }
else else
...@@ -3939,7 +3925,7 @@ static void findEnumDocumentation(Entry *root) ...@@ -3939,7 +3925,7 @@ static void findEnumDocumentation(Entry *root)
{ {
MemberDef *md; MemberDef *md;
MemberName *mn=functionNameDict[name]; MemberName *mn=functionNameDict[name];
if (mn && (md=mn->first())) if (mn && (md=mn->getFirst()))
{ {
md->setDocumentation(root->doc); md->setDocumentation(root->doc);
md->setBriefDescription(root->brief); md->setBriefDescription(root->brief);
...@@ -3981,16 +3967,16 @@ static void findDEV(const MemberNameList &mnl) ...@@ -3981,16 +3967,16 @@ static void findDEV(const MemberNameList &mnl)
{ {
if (md->isEnumerate()) // member is an enum if (md->isEnumerate()) // member is an enum
{ {
QList<MemberDef> *fmdl = md->enumFieldList(); MemberList *fmdl = md->enumFieldList();
int documentedEnumValues=0; int documentedEnumValues=0;
if (fmdl) // enum has values if (fmdl) // enum has values
{ {
MemberDef *fmd=fmdl->first(); MemberListIterator fmni(*fmdl);
MemberDef *fmd;
// for each enum value // for each enum value
while (fmd) for (fmni.toFirst();(fmd=fmni.current());++fmni)
{ {
if (fmd->isLinkableInProject()) documentedEnumValues++; if (fmd->isLinkableInProject()) documentedEnumValues++;
fmd=fmdl->next();
} }
} }
// at least one enum value is documented // at least one enum value is documented
...@@ -4016,17 +4002,18 @@ static void findDocumentedEnumValues() ...@@ -4016,17 +4002,18 @@ static void findDocumentedEnumValues()
static void computeMemberRelations() static void computeMemberRelations()
{ {
MemberName *mn=memberNameList.first(); MemberNameListIterator mnli(memberNameList);
while (mn) // for each member name MemberName *mn;
for ( ; (mn=mnli.current()) ; ++mnli ) // for each member name
{ {
MemberNameIterator mdi(*mn); MemberNameIterator mdi(*mn);
for ( ; mdi.current() ; ++mdi) // for each member with a specific arg list MemberDef *md;
for ( ; (md=mdi.current()) ; ++mdi ) // for each member with a specific arg list
{ {
MemberDef *md=mdi.current();
MemberNameIterator bmdi(*mn); MemberNameIterator bmdi(*mn);
for ( ; bmdi.current() ; ++bmdi) // for each other member with that signature MemberDef *bmd;
for ( ; (bmd=bmdi.current()) ; ++bmdi ) // for each other member with that signature
{ {
MemberDef *bmd=bmdi.current();
ClassDef *bmcd = bmd->getClassDef(); ClassDef *bmcd = bmd->getClassDef();
ClassDef *mcd = md->getClassDef(); ClassDef *mcd = md->getClassDef();
//printf("Check relation between `%s'::`%s' and `%s'::`%s'\n", //printf("Check relation between `%s'::`%s' and `%s'::`%s'\n",
...@@ -4060,7 +4047,6 @@ static void computeMemberRelations() ...@@ -4060,7 +4047,6 @@ static void computeMemberRelations()
} }
} }
} }
mn=memberNameList.next();
} }
} }
...@@ -4108,11 +4094,13 @@ static void generateFileSources() ...@@ -4108,11 +4094,13 @@ static void generateFileSources()
if (inputNameList.count()>0) if (inputNameList.count()>0)
{ {
FileName *fn=inputNameList.first(); FileNameListIterator fnli(inputNameList);
while (fn) FileName *fn;
for (;(fn=fnli.current());++fnli)
{ {
FileDef *fd=fn->first(); FileNameIterator fni(*fn);
while (fd) FileDef *fd;
for (;(fd=fni.current());++fni)
{ {
bool src = !fd->isReference() && bool src = !fd->isReference() &&
(fd->generateSource() || Config::sourceBrowseFlag); (fd->generateSource() || Config::sourceBrowseFlag);
...@@ -4121,9 +4109,7 @@ static void generateFileSources() ...@@ -4121,9 +4109,7 @@ static void generateFileSources()
msg("Generating code for file %s...\n",fd->name().data()); msg("Generating code for file %s...\n",fd->name().data());
fd->writeSource(*outputList); fd->writeSource(*outputList);
} }
fd=fn->next();
} }
fn=inputNameList.next();
} }
} }
} }
...@@ -4136,11 +4122,13 @@ static void generateFileDocs() ...@@ -4136,11 +4122,13 @@ static void generateFileDocs()
if (inputNameList.count()>0) if (inputNameList.count()>0)
{ {
FileName *fn=inputNameList.first(); FileNameListIterator fnli(inputNameList);
while (fn) FileName *fn;
for (fnli.toFirst();(fn=fnli.current());++fnli)
{ {
FileDef *fd=fn->first(); FileNameIterator fni(*fn);
while (fd) FileDef *fd;
for (fni.toFirst();(fd=fni.current());++fni)
{ {
bool doc = fd->isLinkableInProject(); bool doc = fd->isLinkableInProject();
if (doc) if (doc)
...@@ -4149,9 +4137,7 @@ static void generateFileDocs() ...@@ -4149,9 +4137,7 @@ static void generateFileDocs()
fd->writeDocumentation(*outputList); fd->writeDocumentation(*outputList);
} }
fd=fn->next();
} }
fn=inputNameList.next();
} }
} }
} }
...@@ -5729,6 +5715,38 @@ int main(int argc,char **argv) ...@@ -5729,6 +5715,38 @@ int main(int argc,char **argv)
s=Config::expandAsDefinedList.next(); s=Config::expandAsDefinedList.next();
} }
// add aliases to a dictionary
aliasDict.setAutoDelete(TRUE);
s=Config::aliasList.first();
while (s)
{
if (aliasDict[s]==0)
{
QCString alias=s;
int i=alias.find('=');
if (i>0)
{
QCString name=alias.left(i).stripWhiteSpace();
QCString value=alias.right(alias.length()-i-1);
value=substitute(value,"\\n","\n");
//printf("Alias: found name=`%s' value=`%s'\n",name.data(),value.data());
if (!name.isEmpty())
{
QCString *dn=aliasDict[name];
if (dn==0) // insert new alias
{
aliasDict.insert(name,new QCString(value));
}
else // overwrite previous alias
{
*dn=value;
}
}
}
}
s=Config::aliasList.next();
}
BufStr input(inputSize+1); // Add one byte extra for \0 termination BufStr input(inputSize+1); // Add one byte extra for \0 termination
// read and preprocess all input files // read and preprocess all input files
......
...@@ -99,6 +99,7 @@ extern FormulaList formulaList; ...@@ -99,6 +99,7 @@ extern FormulaList formulaList;
extern FormulaDict formulaDict; extern FormulaDict formulaDict;
extern FormulaDict formulaNameDict; extern FormulaDict formulaNameDict;
extern StringDict tagDestinationDict; extern StringDict tagDestinationDict;
extern StringDict aliasDict;
extern QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading extern QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
extern QIntDict<QCString> memberDocDict; // dictionary of the member groups heading extern QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
extern QDict<void> expandAsDefinedDict; extern QDict<void> expandAsDefinedDict;
......
...@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \ ...@@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_nl.h translator_se.h translator_cz.h translator_fr.h \ translator_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.h \ translator_it.h formula.h debug.h membergroup.h htmlhelp.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \ translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
reflist.h page.h sortdict.h reflist.h page.h sortdict.h translator_hu.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \ SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \ memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \ entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
......
...@@ -577,7 +577,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d, ...@@ -577,7 +577,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d,
<< " border=\"0\"></center>" << endl << " border=\"0\"></center>" << endl
<< "<map name=\"" << name << "_map\">" << endl; << "<map name=\"" << name << "_map\">" << endl;
d.writeImageMap(t,dir,fileName); d.writeImage(t,dir,fileName);
} }
void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue) void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue)
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "translator_hr.h" #include "translator_hr.h"
#include "translator_pl.h" #include "translator_pl.h"
#include "translator_pt.h" #include "translator_pt.h"
#include "translator_hu.h"
#endif #endif
#define L_EQUAL(a) !stricmp(langName,a) #define L_EQUAL(a) !stricmp(langName,a)
...@@ -100,6 +101,10 @@ bool setTranslator(const char *langName) ...@@ -100,6 +101,10 @@ bool setTranslator(const char *langName)
{ {
theTranslator=new TranslatorPortuguese; theTranslator=new TranslatorPortuguese;
} }
else if (L_EQUAL("hungarian"))
{
theTranslator=new TranslatorHungarian;
}
#endif #endif
else // use the default language (i.e. english) else // use the default language (i.e. english)
{ {
......
...@@ -108,7 +108,7 @@ class LatexGenerator : public OutputGenerator ...@@ -108,7 +108,7 @@ class LatexGenerator : public OutputGenerator
void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ } void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ }
void writeAnchor(const char *fileName,const char *name); void writeAnchor(const char *fileName,const char *name);
void startCodeFragment() { t << "\\small\\begin{verbatim}"; } void startCodeFragment() { t << "\\footnotesize\\begin{verbatim}"; }
void endCodeFragment() { t << "\\end{verbatim}\\normalsize " << endl; } void endCodeFragment() { t << "\\end{verbatim}\\normalsize " << endl; }
void startPreFragment() { t << "\\small\\begin{alltt}"; } void startPreFragment() { t << "\\small\\begin{alltt}"; }
void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl; } void endPreFragment() { t << "\\end{alltt}\\normalsize " << endl; }
......
...@@ -972,10 +972,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -972,10 +972,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
rmd = rmd->reimplements(); rmd = rmd->reimplements();
} }
if (isStatic() || protection()!=Public || if (protection()!=Public || lvirt!=Normal ||
lvirt!=Normal || isSignal() || isFriend() || isFriend() || isRelated() || isExplicit() ||
isRelated() || isSlot() || isMutable() || (isInline() && Config::inlineInfoFlag) ||
getMemberSpecifiers()!=0 isSignal() || isSlot() ||
isStatic()
) )
{ {
// write the member specifier list // write the member specifier list
......
...@@ -1737,7 +1737,7 @@ void RTFGenerator::endClassDiagram(ClassDiagram &d, ...@@ -1737,7 +1737,7 @@ void RTFGenerator::endClassDiagram(ClassDiagram &d,
newParagraph(); newParagraph();
// create a gif file // create a gif file
d.writeImageMap(t,dir,fileName,FALSE); d.writeImage(t,dir,fileName,FALSE);
// display the file // display the file
t << "{" << endl; t << "{" << endl;
...@@ -2160,11 +2160,8 @@ void RTFGenerator::startDotGraph() ...@@ -2160,11 +2160,8 @@ void RTFGenerator::startDotGraph()
void RTFGenerator::endDotGraph(DotClassGraph &g) void RTFGenerator::endDotGraph(DotClassGraph &g)
{ {
newParagraph(); newParagraph();
DBG_RTF(t <<"{\\comment This would be an image map..." << endl)
g.writeGraph(t,GIF,Config::rtfOutputDir); g.writeGraph(t,GIF,Config::rtfOutputDir,TRUE,FALSE);
t << "}" << endl;
// display the file // display the file
t << "{" << endl; t << "{" << endl;
...@@ -2182,11 +2179,8 @@ void RTFGenerator::startInclDepGraph() ...@@ -2182,11 +2179,8 @@ void RTFGenerator::startInclDepGraph()
void RTFGenerator::endInclDepGraph(DotInclDepGraph &g) void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
{ {
newParagraph(); newParagraph();
DBG_RTF(t <<"{\\comment This would be an image map..." << endl)
g.writeGraph(t,GIF,Config::rtfOutputDir); g.writeGraph(t,GIF,Config::rtfOutputDir,FALSE);
t << "}" << endl;
//QCString diskName = g.diskName(); //QCString diskName = g.diskName();
......
...@@ -13,10 +13,16 @@ ...@@ -13,10 +13,16 @@
* Documents produced by Doxygen are derivative works derived from the * Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license. * input used in their production; they are not affected by this license.
* *
*/ */
// translation by Boris Bralo <boris.bralo@zg.tel.hr> // translation by Boris Bralo <boris.bralo@zg.tel.hr>
// Updates:
// --------
// 2000/08/20
// - Better handling of ISO-8859-2/ WIN 1250 stuff based on (actualy stolen from :-)) Czech translations
// implemented by Petr Prikryl (prikrylp@skil.cz).
// As opposed to Czech translation this one assumes that Doxygen strings are written in Linux ( it's true,
// I don't have QT pro licence ) , and uses ISOToWin function when built in WIN32
//
#ifndef TRANSLATOR_HR_H #ifndef TRANSLATOR_HR_H
#define TRANSLATOR_HR_H #define TRANSLATOR_HR_H
...@@ -24,249 +30,333 @@ ...@@ -24,249 +30,333 @@
class TranslatorCroatian : public Translator class TranslatorCroatian : public Translator
{ {
private:
/*! to avoid macro redefinition from translator_cz.h */
/* Speed loss is actualy less than in Czech version due to
fewer QCString copying.
*/
inline QCString& decode(const QCString& sInput)
{
#ifdef _WIN32
return ISOToWin(sInput);
#else
return const_cast<QCString&>(sInput);
#endif
}
/*! returns the string converted from windows-1250 to iso-8859-2 */
QCString WinToISO(const QCString& sInput)
{
// The conversion table for characters >127
//
static const char WinToISOTab[] = {
'\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
'\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC',
'\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97',
'\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC',
'\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7',
'\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF',
'\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7',
'\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF',
'\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
'\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
'\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
'\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
'\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
'\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
'\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D',
'\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
'\0'
};
QCString result;
int len = sInput.length();
for (int i = 0; i < len; ++i)
{
unsigned int c = sInput[i];
result += (c > 127) ? WinToISOTab[c & 0x7F] : c;
}
return result;
}
/*! returns the string converted from iso-8859-2 to windows-1250 */
QCString ISOToWin(const QCString& sInput)
{
// The conversion table for characters >127
//
static const char ISOToWinTab[] = {
'\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87',
'\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F',
'\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97',
'\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F',
'\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7',
'\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF',
'\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7',
'\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF',
'\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7',
'\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF',
'\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7',
'\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF',
'\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7',
'\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF',
'\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7',
'\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF',
'\0'
};
QCString result;
int len = sInput.length();
for (int i = 0; i < len; ++i)
{
unsigned int c = sInput[i];
result += (c > 127) ? ISOToWinTab[c & 0x7F] : c;
}
return result;
}
public: public:
QCString idLanguage() QCString idLanguage()
{ return "croatian"; } { return "croatian"; }
QCString latexBabelPackage()
{ return "croatian"; }
QCString idLanguageCharset() QCString idLanguageCharset()
{
#ifdef _WIN32 #ifdef _WIN32
return "windows-1250"; { return "windows-1250"; }
#else #else
return "iso-8859-2"; { return "iso-8859-2"; }
#endif #endif
} QCString latexBabelPackage()
{ return "croatian"; }
QCString trRelatedFunctions() QCString trRelatedFunctions()
{ return "Povezane funkcije"; } { return decode("Povezane funkcije"); }
QCString trRelatedSubscript() QCString trRelatedSubscript()
{ return "(To nisu member funkcije.)"; } { return decode("(To nisu member funkcije.)"); }
QCString trDetailedDescription() QCString trDetailedDescription()
{ return "Detaljno objanjenje"; } { return decode("Detaljno objanjenje"); }
QCString trMemberTypedefDocumentation() QCString trMemberTypedefDocumentation()
{ return "Dokumentacija <code> typedef </code> lanova"; } { return decode("Dokumentacija typedef lanova"); }
QCString trMemberEnumerationDocumentation() QCString trMemberEnumerationDocumentation()
{ return "Dokumentacija <code> enum </code> lanova"; } { return decode("Dokumentacija enum lanova"); }
QCString trEnumerationValueDocumentation() QCString trEnumerationValueDocumentation()
{ return "Dokumentacija <code> enum </code> vrijednosti"; } { return decode("Dokumentacija enum vrijednosti"); }
QCString trMemberFunctionDocumentation() QCString trMemberFunctionDocumentation()
{ return "Dokumentacija funkcija"; } { return decode("Dokumentacija funkcija"); }
QCString trMemberDataDocumentation() QCString trMemberDataDocumentation()
{ return "Documentacija varijabli"; } { return decode("Documentacija varijabli"); }
QCString trGeneratedFrom(const char *s,bool single) QCString trGeneratedFrom(const char *s,bool single)
{ {
QCString result=(QCString)"Dokumentacija za "+s+ QCString result= decode("Dokumentacija za ")+s+
"je generirana iz "; decode("je generirana iz ");
if (single) result+="datoteke :"; else result+="slijedeih datoteka:"; if (single)
result+= decode("datoteke :");
else
result+= decode("slijedeih datoteka:");
return result; return result;
} }
QCString trMore() QCString trMore()
{ return "Opirnije..."; } { return decode("Opirnije..."); }
QCString trListOfAllMembers() QCString trListOfAllMembers()
{ return "Popis svih lanova."; } { return decode("Popis svih lanova."); }
QCString trMemberList() QCString trMemberList()
{ return "Popis lanova."; } { return decode("Popis lanova."); }
QCString trThisIsTheListOfAllMembers() QCString trThisIsTheListOfAllMembers()
{ return "Ovo je popis svih lanova"; } { return decode("Ovo je popis svih lanova"); }
QCString trIncludingInheritedMembers() QCString trIncludingInheritedMembers()
{ return ", ukljuujui naslijeene lanove."; } { return decode(", ukljuujui naslijeene lanove."); }
QCString trGeneratedAutomatically(const char *s) QCString trGeneratedAutomatically(const char *s)
{ QCString result="generirano automatski Doxygen-om"; { QCString result=decode("generirano automatski Doxygen-om");
if (s) result+=(QCString)" za "+s; if (s) result+=(QCString)decode(" za ")+s;
result+=" iz programskog koda."; result+=decode(" iz programskog koda.");
return result; return result;
} }
QCString trEnumName() QCString trEnumName()
{ return "enum ime"; } { return decode("enum ime"); }
QCString trEnumValue() QCString trEnumValue()
{ return "enum vrijednost"; } { return decode("enum vrijednost"); }
QCString trDefinedIn() QCString trDefinedIn()
{ return "definirano u"; } { return decode("definirano u"); }
QCString trVerbatimText(const char *f) QCString trVerbatimText(const char *f)
{ return (QCString)"Ovo je citirani tekst iz include datoteke "+f+"."; } { return (QCString)decode("Ovo je citirani tekst iz include datoteke ")+f+"."; }
QCString trModules() QCString trModules()
{ return "Moduli"; } { return decode("Moduli"); }
QCString trClassHierarchy() QCString trClassHierarchy()
{ return "Stablo klasa"; } { return decode("Stablo klasa"); }
QCString trCompoundList() QCString trCompoundList()
{ return "Sve klase"; } { return decode("Sve klase"); }
QCString trFileList() QCString trFileList()
{ return "Popis datoteka"; } { return decode("Popis datoteka"); }
QCString trHeaderFiles() QCString trHeaderFiles()
{ return "Header datoteke"; } { return decode("Header datoteke"); }
QCString trCompoundMembers() QCString trCompoundMembers()
{ return "Svi lanovi"; } { return decode("Svi lanovi"); }
QCString trFileMembers() QCString trFileMembers()
{ return "lanovi(memberi) u datoteci"; } { return decode("lanovi(memberi) u datoteci"); }
QCString trRelatedPages() QCString trRelatedPages()
{ return "Povezane stranice"; } { return decode("Povezane stranice"); }
QCString trExamples() QCString trExamples()
{ return "Primjeri"; } { return decode("Primjeri"); }
QCString trSearch() QCString trSearch()
{ return "Trai"; } { return decode("Trai"); }
QCString trClassHierarchyDescription() QCString trClassHierarchyDescription()
{ return "Stablo naslijeivanja je posloeno " { return decode("Stablo naslijeivanja je posloeno "
"priblino po abecedi:"; "priblino po abecedi:");
} }
QCString trFileListDescription(bool extractAll) QCString trFileListDescription(bool extractAll)
{ {
QCString result="Popis svih "; QCString result=decode("Popis svih ");
if (!extractAll) result+="dokumentiranih "; if (!extractAll) result+=decode("dokumentiranih ");
result+="datoteka, s kratkim opisom:"; result+=decode("datoteka, s kratkim opisom:");
return result; return result;
} }
QCString trCompoundListDescription() QCString trCompoundListDescription()
{ return "Popis svih klasa, unija i struktura " { return decode("Popis svih klasa, unija i struktura "
"s kratkim opisom :"; "s kratkim opisom :");
} }
QCString trCompoundMembersDescription(bool extractAll) QCString trCompoundMembersDescription(bool extractAll)
{ {
QCString result="Popis svih "; QCString result=decode("Popis svih ");
if (!extractAll) result+="dokumentiranih "; if (!extractAll) result+=decode("dokumentiranih ");
result+="lanova klasa s linkovima na "; result+=decode("lanova klasa s linkovima na ");
if (extractAll) result+="dokumentaciju svakog lana:"; if (extractAll) result+=decode("dokumentaciju svakog lana:");
else result+="dokumentaciju klase :"; else result+=decode("dokumentaciju klase :");
return result; return result;
} }
QCString trFileMembersDescription(bool extractAll) QCString trFileMembersDescription(bool extractAll)
{ {
QCString result="Popis svih "; QCString result=decode("Popis svih ");
if (!extractAll) result+="dokumentiranih "; if (!extractAll) result+=decode("dokumentiranih ");
result+="lanova s linkovima na "; result+=decode("lanova s linkovima na ");
if (extractAll) result+="dokumentaciju datoteke u kojima se nalaze:"; if (extractAll) result+=decode("dokumentaciju datoteke u kojima se nalaze:");
else result+="datoteke u kojima se nalaze:"; else result+=decode("datoteke u kojima se nalaze:");
return result; return result;
} }
QCString trHeaderFilesDescription() QCString trHeaderFilesDescription()
{ return "Popis header datoteka koje ine API :"; } { return decode("Popis header datoteka koje ine API :"); }
QCString trExamplesDescription() QCString trExamplesDescription()
{ return "Popis primjera :"; } { return decode("Popis primjera :"); }
QCString trRelatedPagesDescription() QCString trRelatedPagesDescription()
{ return "Popis povezanih stranica:"; } { return decode("Popis povezanih stranica:"); }
QCString trModulesDescription() QCString trModulesDescription()
{ return "Popis svih modula:"; } { return decode("Popis svih modula:"); }
QCString trNoDescriptionAvailable() QCString trNoDescriptionAvailable()
{ return "Opis nije dostupan"; } { return decode("Opis nije dostupan"); }
QCString trDocumentation() QCString trDocumentation()
{ return "Dokumentacija"; } { return decode("Dokumentacija"); }
QCString trModuleIndex() QCString trModuleIndex()
{ return "Indeks modula"; } { return decode("Indeks modula"); }
QCString trHierarchicalIndex() QCString trHierarchicalIndex()
{ return "Hijerarhijski indeks"; } { return decode("Hijerarhijski indeks"); }
QCString trCompoundIndex() QCString trCompoundIndex()
{ return "Skupni indeks"; } { return decode("Skupni indeks"); }
QCString trFileIndex() QCString trFileIndex()
{ return "Indeks datoteka"; } { return decode("Indeks datoteka"); }
QCString trModuleDocumentation() QCString trModuleDocumentation()
{ return "Dokumentacija modula"; } { return decode("Dokumentacija modula"); }
QCString trClassDocumentation() QCString trClassDocumentation()
{ return "Dokumentacija klasa"; } { return decode("Dokumentacija klasa"); }
QCString trFileDocumentation() QCString trFileDocumentation()
{ return "Dokumentacija datoteka"; } { return decode("Dokumentacija datoteka"); }
QCString trExampleDocumentation() QCString trExampleDocumentation()
{ return "Dokumentacija primjera"; } { return decode("Dokumentacija primjera"); }
QCString trPageDocumentation() QCString trPageDocumentation()
{ return "Dokumentacija za povezane stranice"; } { return decode("Dokumentacija za povezane stranice"); }
QCString trReferenceManual() QCString trReferenceManual()
{ return "Prirunik"; } { return decode("Prirunik"); }
QCString trDefines() QCString trDefines()
{ return "Define-ovi"; } { return decode("Define-ovi"); }
QCString trFuncProtos() QCString trFuncProtos()
{ return "Prototipi funkcija"; } { return decode("Prototipi funkcija"); }
QCString trTypedefs() QCString trTypedefs()
{ return "Typedef-ovi"; } { return decode("Typedef-ovi"); }
QCString trEnumerations() QCString trEnumerations()
{ return "Enumeracije"; } { return decode("Enumeracije"); }
QCString trFunctions() QCString trFunctions()
{ return "Funkcije"; } { return decode("Funkcije"); }
QCString trVariables() QCString trVariables()
{ return "Varijable"; } { return decode("Varijable"); }
QCString trEnumerationValues() QCString trEnumerationValues()
{ return "Vrijednosti enum-ova"; } { return decode("Vrijednosti enum-ova"); }
QCString trAuthor() QCString trAuthor()
{ return "autor"; } { return decode("autor"); }
QCString trDefineDocumentation() QCString trDefineDocumentation()
{ return "Dokumentacija define-a"; } { return decode("Dokumentacija define-a"); }
QCString trFunctionPrototypeDocumentation() QCString trFunctionPrototypeDocumentation()
{ return "Dokumentacija prototipa funkcije"; } { return decode("Dokumentacija prototipa funkcije"); }
QCString trTypedefDocumentation() QCString trTypedefDocumentation()
{ return "Dokumentacija typedef-a"; } { return decode("Dokumentacija typedef-a"); }
QCString trEnumerationTypeDocumentation() QCString trEnumerationTypeDocumentation()
{ return "Dokumentacija enum tipa"; } { return decode("Dokumentacija enum tipa"); }
QCString trFunctionDocumentation() QCString trFunctionDocumentation()
{ return "Dokumentacije funkcijs"; } { return decode("Dokumentacije funkcijs"); }
QCString trVariableDocumentation() QCString trVariableDocumentation()
{ return "Dokumentacija varijable"; } { return decode("Dokumentacija varijable"); }
QCString trCompounds() QCString trCompounds()
{ return "Strukture"; } { return decode("Strukture"); }
QCString trFiles() QCString trFiles()
{ return "Datoteke"; } { return decode("Datoteke"); }
QCString trGeneratedAt(const char *date,const char *projName) QCString trGeneratedAt(const char *date,const char *projName)
{ {
QCString result=(QCString)"Generirano "+date; QCString result=(QCString)decode("Generirano ")+date;
if (projName) result+=(QCString)" projekt: "+projName; if (projName) result+=(QCString)decode(" projekt: ")+projName;
result+=(QCString)" generator: "; result+=(QCString)decode(" generator: ");
return result; return result;
} }
QCString trWrittenBy() QCString trWrittenBy()
{ {
return "napisao "; return decode("napisao ");
} }
QCString trClassDiagram(const char *clName) QCString trClassDiagram(const char *clName)
{ {
return (QCString)"Dijagram klasa za "+clName; return decode("Dijagram klasa za ")+clName;
} }
QCString trForInternalUseOnly() QCString trForInternalUseOnly()
{ return "Iskljuivo za internu uporabu."; } { return decode("Iskljuivo za internu uporabu."); }
QCString trReimplementedForInternalReasons() QCString trReimplementedForInternalReasons()
{ return "Reimplementirano zbog internih razloga; " { return decode("Reimplementirano zbog internih razloga; "
"Nema utjecaja na API."; "Nema utjecaja na API.");
} }
QCString trWarning() QCString trWarning()
{ return "Upozorenje"; } { return decode("Upozorenje"); }
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
{ return "Greke i ogranienja"; } { return decode("Greke i ogranienja"); }
QCString trVersion() QCString trVersion()
{ return "Verzija"; } { return decode("Verzija"); }
QCString trDate() QCString trDate()
{ return "Datum"; } { return decode("Datum"); }
QCString trAuthors() QCString trAuthors()
{ return "Autor(i)"; } { return decode("Autor(i)"); }
QCString trReturns() QCString trReturns()
{ return "Povratne vrijednosti"; } { return decode("Povratne vrijednosti"); }
QCString trSeeAlso() QCString trSeeAlso()
{ return "Vidi takoer"; } { return decode("Vidi takoer"); }
QCString trParameters() QCString trParameters()
{ return "Parametri"; } { return decode("Parametri"); }
QCString trExceptions() QCString trExceptions()
{ return "Iznimke"; } { return decode("Iznimke"); }
QCString trGeneratedBy() QCString trGeneratedBy()
{ return "Generirao"; } { return decode("Generirao"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990307 // new since 0.49-990307
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
QCString trNamespaceList() QCString trNamespaceList()
{ return "Popis namespace-ova"; } { return decode("Popis namespace-ova"); }
QCString trNamespaceListDescription(bool extractAll) QCString trNamespaceListDescription(bool extractAll)
{ {
QCString result="Popis svih "; QCString result=decode("Popis svih ");
if (!extractAll) result+="dokumentiranih "; if (!extractAll) result+=decode("dokumentiranih ");
result+="namespace-ova s kratkim opisom:"; result+=decode("namespace-ova s kratkim opisom:");
return result; return result;
} }
QCString trFriends() QCString trFriends()
{ return "Friend-ovi "; } { return decode("Friend-ovi "); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
QCString trRelatedFunctionDocumentation() QCString trRelatedFunctionDocumentation()
{ return "Dokumentacija povezanih funkcija"; } { return decode("Dokumentacija povezanih funkcija"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
...@@ -277,14 +367,14 @@ class TranslatorCroatian : public Translator ...@@ -277,14 +367,14 @@ class TranslatorCroatian : public Translator
bool /*isTemplate*/) bool /*isTemplate*/)
// used as the title of the HTML page of a class/struct/union // used as the title of the HTML page of a class/struct/union
{ {
QCString result="Opis "; QCString result=decode("Opis ");
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+=" klase "; break; case ClassDef::Class: result+=decode(" klase "); break;
case ClassDef::Struct: result+=" strukture "; break; case ClassDef::Struct: result+=decode(" strukture "); break;
case ClassDef::Union: result+=" unije "; break; case ClassDef::Union: result+=decode(" unije "); break;
case ClassDef::Interface: result+=" suelja (interface) "; break; case ClassDef::Interface: result+=decode(" suelja (interface) "); break;
case ClassDef::Exception: result+=" iznimke (exception) "; break; case ClassDef::Exception: result+=decode(" iznimke (exception) "); break;
} }
result += (QCString)clName; result += (QCString)clName;
...@@ -293,14 +383,14 @@ class TranslatorCroatian : public Translator ...@@ -293,14 +383,14 @@ class TranslatorCroatian : public Translator
QCString trFileReference(const char *fileName) QCString trFileReference(const char *fileName)
// used as the title of the HTML page of a file // used as the title of the HTML page of a file
{ {
QCString result="Opis datoteke "; QCString result=decode("Opis datoteke ");
result+=fileName; result+=fileName;
return result; return result;
} }
QCString trNamespaceReference(const char *namespaceName) QCString trNamespaceReference(const char *namespaceName)
// used as the title of the HTML page of a namespace // used as the title of the HTML page of a namespace
{ {
QCString result ="Opis namespace-a "; QCString result =decode("Opis namespace-a ");
result+=namespaceName; result+=namespaceName;
return result; return result;
...@@ -308,25 +398,25 @@ class TranslatorCroatian : public Translator ...@@ -308,25 +398,25 @@ class TranslatorCroatian : public Translator
// these are for the member sections of a class, struct or union // these are for the member sections of a class, struct or union
QCString trPublicMembers() QCString trPublicMembers()
{ return "Public lanovi"; } { return decode("Public lanovi"); }
QCString trPublicSlots() QCString trPublicSlots()
{ return "Public slotovi"; } { return decode("Public slotovi"); }
QCString trSignals() QCString trSignals()
{ return "Signali"; } { return decode("Signali"); }
QCString trStaticPublicMembers() QCString trStaticPublicMembers()
{ return "Static public lanovi"; } { return decode("Static public lanovi"); }
QCString trProtectedMembers() QCString trProtectedMembers()
{ return "Protected lanovi"; } { return decode("Protected lanovi"); }
QCString trProtectedSlots() QCString trProtectedSlots()
{ return "Protected slotovi"; } { return decode("Protected slotovi"); }
QCString trStaticProtectedMembers() QCString trStaticProtectedMembers()
{ return "Static protected lanovi"; } { return decode("Static protected lanovi"); }
QCString trPrivateMembers() QCString trPrivateMembers()
{ return "Private lanovi"; } { return decode("Private lanovi"); }
QCString trPrivateSlots() QCString trPrivateSlots()
{ return "Private slotovi"; } { return decode("Private slotovi"); }
QCString trStaticPrivateMembers() QCString trStaticPrivateMembers()
{ return "Static private lanovi"; } { return decode("Static private lanovi"); }
// end of member sections // end of member sections
QCString trWriteList(int numEntries) QCString trWriteList(int numEntries)
...@@ -357,50 +447,50 @@ class TranslatorCroatian : public Translator ...@@ -357,50 +447,50 @@ class TranslatorCroatian : public Translator
// used in class documentation to produce a list of base classes, // used in class documentation to produce a list of base classes,
// if class diagrams are disabled. // if class diagrams are disabled.
{ {
return "Naslijeuje od "+trWriteList(numEntries)+"."; return decode("Naslijeuje od "+trWriteList(numEntries)+".");
} }
QCString trInheritedByList(int numEntries) QCString trInheritedByList(int numEntries)
// used in class documentation to produce a list of super classes, // used in class documentation to produce a list of super classes,
// if class diagrams are disabled. // if class diagrams are disabled.
{ {
return "Naslijeena u "+trWriteList(numEntries)+"."; return decode("Naslijeena u "+trWriteList(numEntries)+".");
} }
QCString trReimplementedFromList(int numEntries) QCString trReimplementedFromList(int numEntries)
// used in member documentation blocks to produce a list of // used in member documentation blocks to produce a list of
// members that are hidden by this one. // members that are hidden by this one.
{ {
return "Reimplementirano od "+trWriteList(numEntries)+"."; return decode("Reimplementirano od "+trWriteList(numEntries)+".");
} }
QCString trReimplementedInList(int numEntries) QCString trReimplementedInList(int numEntries)
{ {
// used in member documentation blocks to produce a list of // used in member documentation blocks to produce a list of
// all member that overwrite the implementation of this member. // all member that overwrite the implementation of this member.
return "Reimplementacija u "+trWriteList(numEntries)+"."; return decode("Reimplementacija u "+trWriteList(numEntries)+".");
} }
QCString trNamespaceMembers() QCString trNamespaceMembers()
// This is put above each page as a link to all members of namespaces. // This is put above each page as a link to all members of namespaces.
{ return "Namespace lanovi"; } { return decode("Namespace lanovi"); }
QCString trNamespaceMemberDescription(bool extractAll) QCString trNamespaceMemberDescription(bool extractAll)
// This is an introduction to the page with all namespace members // This is an introduction to the page with all namespace members
{ {
QCString result="Lista svih "; QCString result=decode("Lista svih ");
if (!extractAll) result+="dokumentiranih "; if (!extractAll) result+=decode("dokumentiranih ");
result+="namespace lanova s linkovima na "; result+=decode("namespace lanova s linkovima na ");
if (extractAll) if (extractAll)
result+="namespace dokumentaciju svakog lana:"; result+=decode("namespace dokumentaciju svakog lana:");
else else
result+="namespace kojima pripadaju:"; result+=decode("namespace kojima pripadaju:");
return result; return result;
} }
QCString trNamespaceIndex() QCString trNamespaceIndex()
// This is used in LaTeX as the title of the chapter with the // This is used in LaTeX as the title of the chapter with the
// index of all namespaces. // index of all namespaces.
{ return "Indeks namespace-a"; } { return decode("Indeks namespace-a"); }
QCString trNamespaceDocumentation() QCString trNamespaceDocumentation()
// This is used in LaTeX as the title of the chapter containing // This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces. // the documentation of all namespaces.
{ return "Dokumentacija namespace-a"; } { return decode("Dokumentacija namespace-a"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990728 // new since 0.49-990728
...@@ -413,16 +503,16 @@ class TranslatorCroatian : public Translator ...@@ -413,16 +503,16 @@ class TranslatorCroatian : public Translator
bool single) bool single)
{ // here s is one of " Class", " Struct" or " Union" { // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file // single is true implies a single file
QCString result=(QCString)"Dokumentacija ove "; QCString result=(QCString)decode("Dokumentacija ove ");
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+="klase"; break; case ClassDef::Class: result+=decode("klase"); break;
case ClassDef::Struct: result+="strukture"; break; case ClassDef::Struct: result+=decode("strukture"); break;
case ClassDef::Union: result+="unije"; break; case ClassDef::Union: result+=decode("unije"); break;
case ClassDef::Interface: result+="suelja (interface)"; break; case ClassDef::Interface: result+=decode("suelja (interface)"); break;
case ClassDef::Exception: result+="iznimke (exception)"; break; case ClassDef::Exception: result+=decode("iznimke (exception)"); break;
} }
result+=" je generirana iz datotek"; result+=decode(" je generirana iz datotek");
if (single) result+="e :"; else result+="a :"; if (single) result+="e :"; else result+="a :";
return result; return result;
} }
...@@ -431,7 +521,7 @@ class TranslatorCroatian : public Translator ...@@ -431,7 +521,7 @@ class TranslatorCroatian : public Translator
* list. * list.
*/ */
QCString trAlphabeticalList() QCString trAlphabeticalList()
{ return "Abecedni popis"; } { return decode("Abecedni popis"); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901 // new since 0.49-990901
...@@ -439,18 +529,18 @@ class TranslatorCroatian : public Translator ...@@ -439,18 +529,18 @@ class TranslatorCroatian : public Translator
/*! This is used as the heading text for the retval command. */ /*! This is used as the heading text for the retval command. */
QCString trReturnValues() QCString trReturnValues()
{ return "Povratna vrijednost"; } { return decode("Povratna vrijednost"); }
/*! This is in the (quick) index as a link to the main page (index.html) /*! This is in the (quick) index as a link to the main page (index.html)
*/ */
QCString trMainPage() QCString trMainPage()
{ return "Glavna stranica"; } { return decode("Glavna stranica"); }
/*! This is used in references to page that are put in the LaTeX /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page. * documentation. It should be an abbreviation of the word page.
*/ */
QCString trPageAbbreviation() QCString trPageAbbreviation()
{ return "str."; } { return decode("str."); }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-991106 // new since 0.49-991106
...@@ -458,15 +548,15 @@ class TranslatorCroatian : public Translator ...@@ -458,15 +548,15 @@ class TranslatorCroatian : public Translator
QCString trSources() QCString trSources()
{ {
return "Izvorne datoteke"; return decode("Izvorne datoteke");
} }
QCString trDefinedAtLineInSourceFile() QCString trDefinedAtLineInSourceFile()
{ {
return "Definirano u liniji @0 datoteke @1."; return decode("Definirano u liniji @0 datoteke @1.");
} }
QCString trDefinedInSourceFile() QCString trDefinedInSourceFile()
{ {
return "Definirano u datoteci @0."; return decode("Definirano u datoteci @0.");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -475,7 +565,7 @@ class TranslatorCroatian : public Translator ...@@ -475,7 +565,7 @@ class TranslatorCroatian : public Translator
QCString trDeprecated() QCString trDeprecated()
{ {
return "Zastarjelo"; return decode("Zastarjelo");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -485,68 +575,68 @@ class TranslatorCroatian : public Translator ...@@ -485,68 +575,68 @@ class TranslatorCroatian : public Translator
/*! this text is put before a collaboration diagram */ /*! this text is put before a collaboration diagram */
QCString trCollaborationDiagram(const char *clName) QCString trCollaborationDiagram(const char *clName)
{ {
return (QCString)"Kolaboracijski dijagram za "+clName+":"; return decode( (QCString)"Kolaboracijski dijagram za "+clName+ ":");
} }
/*! this text is put before an include dependency graph */ /*! this text is put before an include dependency graph */
QCString trInclDepGraph(const char *fName) QCString trInclDepGraph(const char *fName)
{ {
return (QCString)"Graf include meuovisnosti za "+fName+":"; return decode((QCString)"Graf include meuovisnosti za "+fName+":");
} }
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation() QCString trConstructorDocumentation()
{ {
return "Dokumentacija konstruktora i destruktora "; return decode("Dokumentacija konstruktora i destruktora ");
} }
/*! Used in the file documentation to point to the corresponding sources. */ /*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode() QCString trGotoSourceCode()
{ {
return "Izvorni kod"; return decode("Izvorni kod");
} }
/*! Used in the file sources to point to the corresponding documentation. */ /*! Used in the file sources to point to the corresponding documentation. */
QCString trGotoDocumentation() QCString trGotoDocumentation()
{ {
return "Dokumenacija za ovu datoteku."; return decode("Dokumenacija za ovu datoteku.");
} }
/*! Text for the \pre command */ /*! Text for the \pre command */
QCString trPrecondition() QCString trPrecondition()
{ {
return "Preduvjeti"; return decode("Preduvjeti");
} }
/*! Text for the \post command */ /*! Text for the \post command */
QCString trPostcondition() QCString trPostcondition()
{ {
return "Postuvjeti"; return decode("Postuvjeti");
} }
/*! Text for the \invariant command */ /*! Text for the \invariant command */
QCString trInvariant() QCString trInvariant()
{ {
return "Invarijanta"; return decode("Invarijanta");
} }
/*! Text shown before a multi-line variable/enum initialization */ /*! Text shown before a multi-line variable/enum initialization */
QCString trInitialValue() QCString trInitialValue()
{ {
return "Poetna vrijednost:"; return decode("Poetna vrijednost:");
} }
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
QCString trCode() QCString trCode()
{ {
return "kod"; return decode("kod");
} }
QCString trGraphicalHierarchy() QCString trGraphicalHierarchy()
{ {
return "Grafiko stablo klasa"; return decode("Grafiko stablo klasa");
} }
QCString trGotoGraphicalHierarchy() QCString trGotoGraphicalHierarchy()
{ {
return "Grafiko stablo klasa"; return decode("Grafiko stablo klasa");
} }
QCString trGotoTextualHierarchy() QCString trGotoTextualHierarchy()
{ {
return "Tekstualno stablo klasa"; return decode("Tekstualno stablo klasa");
} }
QCString trPageIndex() QCString trPageIndex()
{ {
return "Indeks stranice"; return decode("Indeks stranice");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -555,43 +645,43 @@ class TranslatorCroatian : public Translator ...@@ -555,43 +645,43 @@ class TranslatorCroatian : public Translator
QCString trNote() QCString trNote()
{ {
return "Primjedba"; return decode("Primjedba");
} }
QCString trPublicTypes() QCString trPublicTypes()
{ {
return "Public tipovi"; return decode("Public tipovi");
} }
QCString trPublicAttribs() QCString trPublicAttribs()
{ {
return "Public atributi"; return decode("Public atributi");
} }
QCString trStaticPublicAttribs() QCString trStaticPublicAttribs()
{ {
return "Static public atributi"; return decode("Static public atributi");
} }
QCString trProtectedTypes() QCString trProtectedTypes()
{ {
return "Protected tipovi"; return decode("Protected tipovi");
} }
QCString trProtectedAttribs() QCString trProtectedAttribs()
{ {
return "Protected atributi"; return decode("Protected atributi");
} }
QCString trStaticProtectedAttribs() QCString trStaticProtectedAttribs()
{ {
return "Static protected atributi"; return decode("Static protected atributi");
} }
QCString trPrivateTypes() QCString trPrivateTypes()
{ {
return "Private tipovi"; return decode("Private tipovi");
} }
QCString trPrivateAttribs() QCString trPrivateAttribs()
{ {
return "Private atributi"; return decode("Private atributi");
} }
QCString trStaticPrivateAttribs() QCString trStaticPrivateAttribs()
{ {
return "Static private atributi"; return decode("Static private atributi");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.3 // new since 1.1.3
...@@ -600,12 +690,12 @@ class TranslatorCroatian : public Translator ...@@ -600,12 +690,12 @@ class TranslatorCroatian : public Translator
/*! Used as a marker that is put before a todo item */ /*! Used as a marker that is put before a todo item */
virtual QCString trTodo() virtual QCString trTodo()
{ {
return "Za uraditi"; return decode("Za uraditi");
} }
/*! Used as the header of the todo list */ /*! Used as the header of the todo list */
virtual QCString trTodoList() virtual QCString trTodoList()
{ {
return "Ostalo za uraditi"; return decode("Ostalo za uraditi");
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -614,31 +704,108 @@ class TranslatorCroatian : public Translator ...@@ -614,31 +704,108 @@ class TranslatorCroatian : public Translator
virtual QCString trReferencedBy() virtual QCString trReferencedBy()
{ {
return "Referencirano od"; return decode("Referencirano od");
} }
virtual QCString trRemarks() virtual QCString trRemarks()
{ {
return "Napomene"; return decode("Napomene");
} }
virtual QCString trAttention() virtual QCString trAttention()
{ {
#ifdef _WIN32 return decode("Panja");
return "Pa?nja";
#else
return "Panja";
#endif
} }
virtual QCString trInclByDepGraph() virtual QCString trInclByDepGraph()
{ {
return "Ovaj graf pokazuje koje datoteke izravno " return decode("Ovaj graf pokazuje koje datoteke izravno "
"ili neizravno ukljuuju ovu datoteku:"; "ili neizravno ukljuuju ovu datoteku:");
} }
virtual QCString trSince() virtual QCString trSince()
{ {
return "Od"; return decode("Od");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return decode("Legenda");
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
return
decode( "Ova stranica objanjava kako interpretirati grafikone koje je generirao "
"doxygen.<p>\n"
"Na primjer:\n"
"\\code\n"
"/*! Nevidljiva klasa (nee stati na graf date visine) */\n"
"class Invisible { };\n\n"
"/*! Odrezana klasa, inheritance je skriven (klase se vidi na grafu, ali ne i sve bazne klase) */\n"
"class Truncated : public Invisible { };\n\n"
"/* Nedokumentirana klasa */\n"
"class Undocumented { };\n\n"
"/*! Klasa koja je naslijeena public */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Klasa koje je naslijeena protected */\n"
"class ProtectedBase { };\n\n"
"/*! Klasa koje je naslijeena private */\n"
"class PrivateBase { };\n\n"
"/*! Klasa koja se koristi agregacijom */\n"
"class Used { };\n\n"
"/*! Super klasa koja naslijeuje/koristi ostale */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracijskoj datoteci "
"postavljen na 200 gornje veze e rezultirati grafikonom:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Pravokutnici imaju slijedee znaenje:\n"
"<ul>\n"
"<li>Puni crni predstavlja klasu za koji je generiran graf.\n"
"<li>Pravokutnik s crnim rubom predstavlja dokumentiranu klasu.\n"
"<li>Pravokutnik s sivim rubom predstavlja nedokumentiranu klasu.\n"
"<li>Pravokutnik s crvenim rubom predstavlja dokumentiranu klasu\n"
"Za koju nije prikazan graf naslijeivanja. Graf je odrezan "
"ako ne stane unutar odreenih granica."
"</ul>\n"
"Strelice imaju slijedee znaenje:\n"
"<ul>\n"
"<li>Tamnoplava strelica oznaava public naslijeivanje.\n"
"<li>Tamnozelena strelica oznaava protected naslijeivanje.\n"
"<li>Tamnocrvena strelica oznaava private naslijeivanje.\n"
"<li>Ljubiasta isprekidana strelica se koristi za agregate vezu. "
"Strelica je oznaena imenom varijable.\n"
"</ul>\n");
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return decode("legenda");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return "Test";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Test lista";
}
}; };
#endif #endif
/******************************************************************************
*
*
*
* Copyright (C) 1997-2000 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.
*
*/
#ifndef TRANSLATOR_HU_H
#define TRANSLATOR_HU_H
#include "translator.h"
class TranslatorHungarian : public Translator
{
public:
// --- Language contol methods -------------------
QCString idLanguage()
{ return "hungarian"; }
/*! Used to get the command(s) for the language support. This method
* was designed for languages which do not prefer babel package.
* If this methods returns empty string, then the latexBabelPackage()
* method is used to generate the command for using the babel package.
*/
QCString latexLanguageSupportCommand()
{
return "";
}
/*! returns the name of the package that is included by LaTeX */
QCString latexBabelPackage()
{ return ""; }
/*! return the language charset. This will be used for the HTML output */
QCString idLanguageCharset()
{
return "iso-8859-2";
}
// --- Language translation methods -------------------
/*! used in the compound documentation before a list of related functions. */
QCString trRelatedFunctions()
{ return "Kapcsolódó függvények"; }
/*! subscript for the related functions. */
QCString trRelatedSubscript()
{ return "(Figyelem! Ezek a függvények nem tagjai az osztálynak!)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
QCString trDetailedDescription()
{ return "Részletes leírás"; }
/*! header that is put before the list of typedefs. */
QCString trMemberTypedefDocumentation()
{ return "Osztálytag típusdefiníciók dokumentációja"; }
/*! header that is put before the list of enumerations. */
QCString trMemberEnumerationDocumentation()
{ return "Osztálytag enumerációk dokumentációja"; }
/*! header that is put before the list of member functions. */
QCString trMemberFunctionDocumentation()
{ return "Osztálytag függvények (metódusok) dokumentációja"; }
/*! header that is put before the list of member attributes. */
QCString trMemberDataDocumentation()
{ return "Osztálytag adatok dokumentációja"; }
/*! this is the text of a link put after brief descriptions. */
QCString trMore()
{ return "Részletek..."; }
/*! put in the class documentation */
QCString trListOfAllMembers()
{ return "Osztálytagok listája."; }
/*! used as the title of the "list of all members" page of a class */
QCString trMemberList()
{ return "Osztálytagok listája"; }
/*! this is the first part of a sentence that is followed by a class name */
QCString trThisIsTheListOfAllMembers()
{ return "A(z) "; }
/*! this is the remainder of the sentence after the class name */
QCString trIncludingInheritedMembers()
{ return " osztály tagjainak teljes listája, az örökölt tagokkal együtt."; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
QCString trGeneratedAutomatically(const char *s)
{ QCString result="Ezt a dokumentációt a Doxygen készítette";
if (s) result+=(QCString)" a(z) "+s+(QCString)" projekthez";
result+=" a forráskódból.";
return result;
}
/*! put after an enum name in the list of all members */
QCString trEnumName()
{ return "enumeráció neve"; }
/*! put after an enum value in the list of all members */
QCString trEnumValue()
{ return "enumeráció értéke"; }
/*! put after an undocumented member in the list of all members */
QCString trDefinedIn()
{ return "definiálva itt:"; }
/*! put as in introduction in the verbatim header file of a class.
* parameter f is the name of the include file.
*/
QCString trVerbatimText(const char *f)
{ return (QCString)"Ez a(z) "+f+" definíciós fájl pontos tartalma."; }
// 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).
*/
QCString trModules()
{ return "Modulok"; }
/*! This is put above each page as a link to the class hierarchy */
QCString trClassHierarchy()
{ return "Osztályhierarchia"; }
/*! This is put above each page as a link to the list of annotated classes */
QCString trCompoundList()
{ return "Összetevõk listája"; }
/*! This is put above each page as a link to the list of documented files */
QCString trFileList()
{ return "Fájlok listája"; }
/*! This is put above each page as a link to the list of all verbatim headers */
QCString trHeaderFiles()
{ return "Definíciós fájlok"; }
/*! This is put above each page as a link to all members of compounds. */
QCString trCompoundMembers()
{ return "Osztályok összetevõi"; }
/*! This is put above each page as a link to all members of files. */
QCString trFileMembers()
{ return "Fájlok elemei"; }
/*! This is put above each page as a link to all related pages. */
QCString trRelatedPages()
{ return "Kapcsolódó lapok"; }
/*! This is put above each page as a link to all examples. */
QCString trExamples()
{ return "Példák"; }
/*! This is put above each page as a link to the search engine. */
QCString trSearch()
{ return "Keresés"; }
/*! This is an introduction to the class hierarchy. */
QCString trClassHierarchyDescription()
{ return "Ez a leszármaztatási lista hozzávetõleg, "
"de nem szigorúan véve, ábécé sorrendbe rendezett:";
}
/*! This is an introduction to the list with all files. */
QCString trFileListDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="doumentált ";
result+="fájl listája rövid leírásokkal:";
return result;
}
/*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription()
{ return "Ez az osztályok, struktúrák, uniók és interfészek "
"listája rövid leírásokkal:";
}
/*! This is an introduction to the page with all class members. */
QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="osztály összetevõ listája ";
if (extractAll)
result+="hivatkozással a hozzájuk tartózó osztály dokumentációra:";
else
result+="az õket tartalmazó osztály megjelölésével:";
return result;
}
/*! This is an introduction to the page with all file members. */
QCString trFileMembersDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="fájl elem listája ";
if (extractAll)
result+="hivatkozással a hozzájuk tartózó fájl dokumentációra:";
else
result+="az õket tartalmazó fájl megjelölésével:";
return result;
}
/*! This is an introduction to the page with the list of all header files. */
QCString trHeaderFilesDescription()
{ return "Ezek a Programozói Interfészt (API) alkotó definíciós fájlok:"; }
/*! This is an introduction to the page with the list of all examples */
QCString trExamplesDescription()
{ return "Ez a példák listája:"; }
/*! This is an introduction to the page with the list of related pages */
QCString trRelatedPagesDescription()
{ return "Ez a kapcsolódó dokumentációk listája:"; }
/*! This is an introduction to the page with the list of class/file groups */
QCString trModulesDescription()
{ return "Ez a modulok listája:"; }
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
*/
QCString trNoDescriptionAvailable()
{ return "Nincs hozzá leírás"; }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
QCString trDocumentation()
{ return "Dokumentáció"; }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
QCString trModuleIndex()
{ return "Modul index"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
QCString trHierarchicalIndex()
{ return "Hierarchikus index"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
QCString trCompoundIndex()
{ return "Összetevõk indexe"; }
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
QCString trFileIndex()
{ return "Fájl index"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
QCString trModuleDocumentation()
{ return "Modul documentáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
*/
QCString trClassDocumentation()
{ return "Osztály documentatáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all files.
*/
QCString trFileDocumentation()
{ return "Fájl documentatáció"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
QCString trExampleDocumentation()
{ return "Példák documentatációja"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
QCString trPageDocumentation()
{ return "Kapcsolódó lapok documentációja"; }
/*! This is used in LaTeX as the title of the document */
QCString trReferenceManual()
{ return "Referencia kézikönyv"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
QCString trDefines()
{ return "Definíciók"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
QCString trFuncProtos()
{ return "Függvény prototípusok"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
QCString trTypedefs()
{ return "Típusdefiníciók"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
QCString trEnumerations()
{ return "Enumerációk"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
QCString trFunctions()
{ return "Függvények"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trVariables()
{ return "Változók"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
QCString trEnumerationValues()
{ return "Enumeráció értékek"; }
/*! This is used in man pages as the author section. */
QCString trAuthor()
{ return "Szerzõ"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
QCString trDefineDocumentation()
{ return "Definíciók dokumentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
QCString trFunctionPrototypeDocumentation()
{ return "Függvény prototípusok documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
QCString trTypedefDocumentation()
{ return "Típusdefiníciók documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
QCString trEnumerationTypeDocumentation()
{ return "Enumerációk documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
QCString trEnumerationValueDocumentation()
{ return "Enumeráció értékek documentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
QCString trFunctionDocumentation()
{ return "Függvények dokumentációja"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
QCString trVariableDocumentation()
{ return "Változók documentációja"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
QCString trCompounds()
{ return "Összetevõk"; }
/*! This is used in the documentation of a group before the list of
* links to documented files
*/
QCString trFiles()
{ return "Fájlok"; }
/*! This is used in the standard footer of each page and indicates when
* the page was generated
*/
QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result=(QCString)"";
if (projName) result+=(QCString)"Projekt: "+projName;
result+=(QCString)" Készült: "+date+" Készítette: ";
return result;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
QCString trWrittenBy()
{
return " melyet írt ";
}
/*! this text is put before a class diagram */
QCString trClassDiagram(const char *clName)
{
return clName+(QCString)" osztály származtatási diagramja";
}
/*! this text is generated when the \internal command is used. */
QCString trForInternalUseOnly()
{ return "CSAK BELSÕ HASZNÁLATRA!"; }
/*! this text is generated when the \reimp command is used. */
QCString trReimplementedForInternalReasons()
{ return "Belsõ okok miatt újraimplementálva, az API-t nem érinti."; }
/*! this text is generated when the \warning command is used. */
QCString trWarning()
{ return "Figyelmeztetés"; }
/*! this text is generated when the \bug command is used. */
QCString trBugsAndLimitations()
{ return "Hibák és korlátozások"; }
/*! this text is generated when the \version command is used. */
QCString trVersion()
{ return "Verzió"; }
/*! this text is generated when the \date command is used. */
QCString trDate()
{ return "Dátum"; }
/*! this text is generated when the \author command is used. */
QCString trAuthors()
{ return "Szerzõ(k)"; }
/*! this text is generated when the \return command is used. */
QCString trReturns()
{ return "Visszaadott érték"; }
/*! this text is generated when the \sa command is used. */
QCString trSeeAlso()
{ return "Lásd még"; }
/*! this text is generated when the \param command is used. */
QCString trParameters()
{ return "Paraméterek"; }
/*! this text is generated when the \exception command is used. */
QCString trExceptions()
{ return "Kivételek"; }
/*! this text is used in the title page of a LaTeX document. */
QCString trGeneratedBy()
{ return "Készítette"; }
// new since 0.49-990307
/*! used as the title of page containing all the index of all namespaces. */
QCString trNamespaceList()
{ return "Névtér lista"; }
/*! used as an introduction to the namespace list */
QCString trNamespaceListDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="névtér listája rövid leírásokkal:";
return result;
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
QCString trFriends()
{ return "Barátok"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all
* related classes
*/
QCString trRelatedFunctionDocumentation()
{ return "Barát és kapcsolódó függvények dokumentációja"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
/*! used as the title of the HTML page of a class/struct/union */
QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
{
QCString result=(QCString)clName;
switch(compType)
{
case ClassDef::Class: result+=" osztály"; break;
case ClassDef::Struct: result+=" struktúra"; break;
case ClassDef::Union: result+=" unió"; break;
case ClassDef::Interface: result+=" interfész"; break;
case ClassDef::Exception: result+=" kivétel"; break;
}
if (isTemplate) result+=" sablon";
result+=" referencia";
return result;
}
/*! used as the title of the HTML page of a file */
QCString trFileReference(const char *fileName)
{
QCString result=fileName;
result+=" fájl referencia";
return result;
}
/*! used as the title of the HTML page of a namespace */
QCString trNamespaceReference(const char *namespaceName)
{
QCString result=namespaceName;
result+=" névtér reference";
return result;
}
/*! \mgroup Class sections
* these are for the member sections of a class, struct or union
*/
QCString trPublicMembers()
{ return "Publikus metódusok"; }
QCString trPublicSlots()
{ return "Publikus adatok"; }
QCString trSignals()
{ return "Szignálok"; }
QCString trStaticPublicMembers()
{ return "Statikus publikus metódusok"; }
QCString trProtectedMembers()
{ return "Védett metódusok"; }
QCString trProtectedSlots()
{ return "Védett adatok"; }
QCString trStaticProtectedMembers()
{ return "Statikus védett metódusok"; }
QCString trPrivateMembers()
{ return "Privát metódusok"; }
QCString trPrivateSlots()
{ return "Privát adatok"; }
QCString trStaticPrivateMembers()
{ return "Statikus privát metódusok"; }
/*! \endmgroup */
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
QCString trWriteList(int numEntries)
{
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+=" és ";
}
}
return result;
}
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
QCString trInheritsList(int numEntries)
{
return "Szülõk osztályok: "+trWriteList(numEntries)+".";
}
/*! used in class documentation to produce a list of super classes,
* if class diagrams are disabled.
*/
QCString trInheritedByList(int numEntries)
{
return "Származtatott osztályok: "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
QCString trReimplementedFromList(int numEntries)
{
return "Újra implementálva ebbõl az osztályból: "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
QCString trReimplementedInList(int numEntries)
{
return "Újra implementálva ebben az osztályban: "+trWriteList(numEntries)+".";
}
/*! This is put above each page as a link to all members of namespaces. */
QCString trNamespaceMembers()
{ return "Névtér tagjai"; }
/*! This is an introduction to the page with all namespace members */
QCString trNamespaceMemberDescription(bool extractAll)
{
QCString result="Ez az összes ";
if (!extractAll) result+="dokumentált ";
result+="névtér tagjainak listája ";
if (extractAll)
result+="a hozzájuk tartozó dokumentációra való hivatkozással:";
else
result+="az öket tartalmazó névtérrel:";
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
QCString trNamespaceIndex()
{ return "Névtér index"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
QCString trNamespaceDocumentation()
{ return "Névtér documentáció"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
//////////////////////////////////////////////////////////////////////////
/*! This is used in the documentation before the list of all
* namespaces in a file.
*/
QCString trNamespaces()
{ return "Névterek"; }
//////////////////////////////////////////////////////////////////////////
// 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.
*/
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)"Ez a dokumentáció ";
switch(compType)
{
case ClassDef::Class: result+="az osztályról"; break;
case ClassDef::Struct: result+="a struktúráról"; break;
case ClassDef::Union: result+="az unióról"; break;
case ClassDef::Interface: result+="az interfészrõl"; break;
case ClassDef::Exception: result+="a kivételrõl"; break;
}
result+=" a következõ fájl";
if (!single) result+="ok";
result+=" alapján készült:";
return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
QCString trAlphabeticalList()
{ return "Ábécé rendes lista"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
QCString trReturnValues()
{ return "Visszaadott értékek"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
QCString trMainPage()
{ return "Kezdõ lap"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
QCString trPageAbbreviation()
{ return "o."; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
QCString trSources()
{
return "Források";
}
QCString trDefinedAtLineInSourceFile()
{
return "Definíció a(z) @1 fájl @0. sorában.";
}
QCString trDefinedInSourceFile()
{
return "Definíció a(z) @0 fájlban.";
}
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991205
//////////////////////////////////////////////////////////////////////////
QCString trDeprecated()
{
return "Ellenjavallt";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.0.0
//////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */
QCString trCollaborationDiagram(const char *clName)
{
return (QCString)"Együttmûködési diagram "+clName+" osztályhoz:";
}
/*! this text is put before an include dependency graph */
QCString trInclDepGraph(const char *fName)
{
return (QCString)"Definíciós fájl függési ábra "+fName+" fájlhoz:";
}
/*! header that is put before the list of constructor/destructors. */
QCString trConstructorDocumentation()
{
return "Konstruktor és destruktor dokumentáció";
}
/*! Used in the file documentation to point to the corresponding sources. */
QCString trGotoSourceCode()
{
return "Ugrás a fájl forrásához.";
}
/*! Used in the file sources to point to the corresponding documentation. */
QCString trGotoDocumentation()
{
return "Ugrás a fájl dokumentációjához.";
}
/*! Text for the \pre command */
QCString trPrecondition()
{
return "Elõfeltétel";
}
/*! Text for the \post command */
QCString trPostcondition()
{
return "Utófeltétel";
}
/*! Text for the \invariant command */
QCString trInvariant()
{
return "Invariáns";
}
/*! Text shown before a multi-line variable/enum initialization */
QCString trInitialValue()
{
return "Kezdõ érték:";
}
/*! Text used the source code in the file index */
QCString trCode()
{
return "forráskód";
}
QCString trGraphicalHierarchy()
{
return "Osztály-hierarchia grafikon";
}
QCString trGotoGraphicalHierarchy()
{
return "Ugrás az osztály-hierarchia grafikonhoz";
}
QCString trGotoTextualHierarchy()
{
return "Ugrás az osztály-hierarchia leíráshoz";
}
QCString trPageIndex()
{
return "Oldal index";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
QCString trNote()
{
return "Megjegyzés";
}
QCString trPublicTypes()
{
return "Publikus típusok";
}
QCString trPublicAttribs()
{
return "Publikus attribútumok";
}
QCString trStaticPublicAttribs()
{
return "Statikus publikus attribútumok";
}
QCString trProtectedTypes()
{
return "Védett típusok";
}
QCString trProtectedAttribs()
{
return "Védett attribútumok";
}
QCString trStaticProtectedAttribs()
{
return "Statikus védett attribútumok";
}
QCString trPrivateTypes()
{
return "Privát típusok";
}
QCString trPrivateAttribs()
{
return "Privát attribútumok";
}
QCString trStaticPrivateAttribs()
{
return "Statikus privát attribútumok";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a todo item */
QCString trTodo()
{
return "Tennivaló";
}
/*! Used as the header of the todo list */
QCString trTodoList()
{
return "Tennivalók listája";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.4
//////////////////////////////////////////////////////////////////////////
QCString trReferencedBy()
{
return "hivatkozás innen:";
}
QCString trRemarks()
{
return "Megjegyzések";
}
QCString trAttention()
{
return "Figyelem";
}
QCString trInclByDepGraph()
{
return "Ez az ábra azt mutatja, hogy mely fájlok ágyazzák be "
"közvetve vagy közvetlenül ezt a fájlt:";
}
QCString trSince()
{
return "Elõször bevezetve";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
QCString trLegendTitle()
{
return "Jelmagyarázat";
}
/*! page explaining how the dot graph's should be interpreted */
QCString trLegendDocs()
{
return
"Hogyan értelmezzük a DopxyGen által készített ábrákat?<p>\n"
"Vegyük a következõ példát:\n"
"\\code\n"
"/*! Nem látható osztály, nem fér ki, vágásra kerül */\n"
"class Invisible { };\n\n"
"/*! Származtatás rejtett */\n"
"class Truncated : public Invisible { };\n\n"
"/* Nem dokumentált osztály */\n"
"class Undocumented { };\n\n"
"/*! Publikus származtatásal levezetett osztály */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! Védett származtatásal levezetett osztály */\n"
"class ProtectedBase { };\n\n"
"/*! Privát származtatásal levezetett osztály */\n"
"class PrivateBase { };\n\n"
"/*! Osztály, melyet a származtatott osztály használ */\n"
"class Used { };\n\n"
"/*! Osztály, mely több másiknak leszármazottja */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Ha a konfigurációs fájl \\c MAX_DOT_GRAPH_HEIGHT elemének értékét "
"200-ra állítjuk, az eredmény a következõ ábra lesz:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Az ábrán levõ dobozok jelentése:\n"
"<ul>\n"
"<li>Kitöltött fekete doboz jelzi azt az osztályt vagy struktúrát,"
"amelyrõl az ábra szól.\n"
"<li>Fekete keret jelszi a dokumentált osztályokat vagy struktúrákat.\n"
"<li>Szürke keret jelzi a nem dokumentált osztályokat vagy struktúrákat.\n"
"<li>Piros keret jelzi azokat az osztályokat vagy struktúrákat, amelyeknél vágás miatt nem látható "
"az összes leszármaztatási kapcsolat. Egy ábra vágásra kerül, ha nem fér bele "
"a megadott tartományba."
"</ul>\n"
"A nyilak jelentése:\n"
"<ul>\n"
"<li>Sötétkék nyíl jelzi a publikus származtatást.\n"
"<li>Sötétzöld nyíl jelzi a védett származtatást.\n"
"<li>Sötétvörös nyíl jelzi a privát származtatást.\n"
"<li>Lila szaggatott nyíl jelzi, ha az osztály egy másikat használ vagy tartalmaz. "
"A nyíl felirata jelzi a változók nevét, amelyeken keresztül a másik osztály kapcsolódik.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
QCString trLegend()
{
return "Jelmagyarázat";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
QCString trTest()
{
return "Teszt";
}
/*! Used as the header of the test list */
QCString trTestList()
{
return "Teszt lista";
}
};
#endif
/****************************************************************************** /******************************************************************************
*
*
* *
* Copyright (C) 1997-2000 by Dimitri van Heesch. * Copyright (C) 1997-2000 by Dimitri van Heesch.
* *
* Initial Italian Translation by Ahmed Aldo Faisal * Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (June 1999) * Revised and completed by Alessandro Falappa (June 1999)
* Updates: * Updates:
* 2000/08: translated new items used since version 1.1.3, 1.1.4, 1.1.5 and 1.2.0
* 2000/03: translated new items used since version 1.0 and 1.1.0 * 2000/03: translated new items used since version 1.0 and 1.1.0
* 1999/19: entirely rewritten the translation to correct small variations due * 1999/19: entirely rewritten the translation to correct small variations due
* to feature additions and to conform to the layout of the latest * to feature additions and to conform to the layout of the latest
...@@ -179,8 +178,7 @@ class TranslatorItalian : public Translator ...@@ -179,8 +178,7 @@ class TranslatorItalian : public Translator
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription() QCString trCompoundListDescription()
{ return "Queste sono le classi, structs, " { return "Queste sono le classi, structs, unions e interfacce con una loro breve descrizione:";
"unions e interfacce con una loro breve descrizione:";
} }
/*! This is an introduction to the page with all class members. */ /*! This is an introduction to the page with all class members. */
...@@ -427,7 +425,7 @@ class TranslatorItalian : public Translator ...@@ -427,7 +425,7 @@ class TranslatorItalian : public Translator
/*! this text is generated when the \warning command is used. */ /*! this text is generated when the \warning command is used. */
QCString trWarning() QCString trWarning()
{ return "Attenzione"; } { return "Avvertimento"; }
/*! this text is generated when the \bug command is used. */ /*! this text is generated when the \bug command is used. */
QCString trBugsAndLimitations() QCString trBugsAndLimitations()
...@@ -728,7 +726,7 @@ class TranslatorItalian : public Translator ...@@ -728,7 +726,7 @@ class TranslatorItalian : public Translator
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.0.0 // new since 0.49-991205
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
QCString trDeprecated() QCString trDeprecated()
...@@ -737,7 +735,7 @@ class TranslatorItalian : public Translator ...@@ -737,7 +735,7 @@ class TranslatorItalian : public Translator
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.0 // new since 1.0.0
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! this text is put before a collaboration diagram */ /*! this text is put before a collaboration diagram */
...@@ -806,11 +804,15 @@ class TranslatorItalian : public Translator ...@@ -806,11 +804,15 @@ class TranslatorItalian : public Translator
{ {
return "Indice delle pagine"; return "Indice delle pagine";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
QCString trNote() QCString trNote()
{ {
return "Nota"; return "Nota";
} }
QCString trPublicTypes() QCString trPublicTypes()
{ {
return "Tipi pubblici"; return "Tipi pubblici";
...@@ -847,6 +849,127 @@ class TranslatorItalian : public Translator ...@@ -847,6 +849,127 @@ class TranslatorItalian : public Translator
{ {
return "Attributi privati statici"; return "Attributi privati statici";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.1.3
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a todo item */
virtual QCString trTodo()
{
return "Da Fare";
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Lista di cose da fare";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.4
//////////////////////////////////////////////////////////////////////////
virtual QCString trReferencedBy()
{
return "Referenziato da";
}
virtual QCString trRemarks()
{
return "Osservazioni";
}
virtual QCString trAttention()
{
return "Attenzione";
}
virtual QCString trInclByDepGraph()
{
return "Queato grafo mostra quali files includono direttamente o indirettamente questo file:";
}
virtual QCString trSince()
{
return "A partire da";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return "Legenda del grafo";
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
return
"Questa pagina spiega come interpretare i grafi generati da doxygen.<p>\n"
"Considerate l'esempio seguente:\n"
"\\code\n"
"/*! Invisible class because of truncation */\n"
"class Invisible { };\n\n"
"/*! Truncated class, inheritance relation is hidden */\n"
"class Truncated : public Invisible { };\n\n"
"/* Class not documented with doxygen comments */\n"
"class Undocumented { };\n\n"
"/*! Class that is inherited using public inheritance */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! 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"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Se il tag \\c MAX_DOT_GRAPH_HEIGHT nel file di configurazione "
"è impostato a 200 verrà prodotto il grafo seguente:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"I riquadri nel grafo qui sopra hanno il seguente significato:\n"
"<ul>\n"
"<li>Il riquadro nero pieno rappresenta la struct o la classe per la quale il grafo è stato generato.\n"
"<li>Un riquadro con un bordo nero denota una struct o una classe documentata.\n"
"<li>Un riquadro con un bordo grigio indica una struct o una classe non documentata.\n"
"<li>Un riquadro con un bordo rosso indica una struct o una classe per la quale non sono mostrate tutte le relazioni di ereditarietà/contenimento (un grafo viene troncato se non rientra nei limiti prestabiliti)."
"</ul>\n"
"Le frecce hanno il seguente significato:\n"
"<ul>\n"
"<li>Una freccia blu scuro indica una relazione di ereditarietà pubblica tra due classi.\n"
"<li>Una freccia verde indica un'ereditarietà protetta.\n"
"<li>Una freccia rossa indica un'ereditarietà privata.\n"
"<li>Una freccia viola tratteggiata indica che una classe è contenuta o usata da un'altra classe."
" La freccia viene etichettata con la o le variabili attraverso cui la struct o la classe puntata dalla freccia è accessibile.\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 "Test";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return "Lista dei test";
}
}; };
#endif #endif
...@@ -897,6 +897,94 @@ class TranslatorPolish : public Translator ...@@ -897,6 +897,94 @@ class TranslatorPolish : public Translator
{ {
return "Od"; return "Od";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
/*! title of the graph legend page */
QCString trLegendTitle()
{
return "Legenda Wykresu";
}
/*! page explaining how the dot graph's should be interpreted */
QCString trLegendDocs()
{
return
"Ta strona wyja¶nia jak interpretowaæ wykresy, które s± wygenerowane "
"przez doxygen.<p>\n"
"Rozwa¿ nastêpuj±cy przyk³ad:\n"
"\\code\n"
"/*! Klasa Niewidzialna z powodu okrojenia */\n"
"class Niewidzialna { };\n\n"
"/*! Klasa Okrojona, relacja dziedziczenia jest ukryta */\n"
"class Okrojona : public Niewidzialna { };\n\n"
"/* Klasa nie udokumentowana komentarzami doxygen */\n"
"class Nieudokumentowana { };\n\n"
"/*! Klasa, która jest dziedziczona publicznie */\n"
"class PublicznaBaza : public Okrojona { };\n\n"
"/*! Klasa, która jest dziedziczona przy u¿yciu dziedziczenia chronionego */\n"
"class ChronionaBaza { };\n\n"
"/*! Klasa, która jest dziedziczona prywatnie */\n"
"class PrywatnaBaza { };\n\n"
"/*! Klasa, która jest u¿yta przez klasê Dziedziczona */\n"
"class Uzyta { };\n\n"
"/*! Superklasa, która dziedziczy kilka innych klas */\n"
"class Dziedziczona : public PublicznaBaza,\n"
" protected ChronionaBaza,\n"
" private PrywatnaBaza,\n"
" public Nieudokumentowana\n"
"{\n"
" private:\n"
" Uzyta *m_usedClass;\n"
"};\n"
"\\endcode\n"
"Je¶li znacznik \\c MAX_DOT_GRAPH_HEIGHT w pliku konfiguracji "
"jest ustawiony na 200, odniesie to rezultat w nastêpuj±cym wykresie:"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
"Pude³ka w powy¿szym wykresie maj± nastêpuj±ce znaczenie:\n"
"<ul>\n"
"<li>Wype³nione czarne pude³ko reprezentuje strukturê lub klasê dla "
"której zosta³ wygenerowany wykres.\n"
"<li>Pude³ko z czarn± obwolut± oznacza udokumentowan± strukturê lub klasê.\n"
"<li>Pude³ko z szar± obwolut± oznacza nieudokumentowan± strukturê lub klasê.\n"
"<li>Pude³ko z czerwon± obwolut± oznacza udokumentowan± strukturê lub klasê dla\n"
"której nie s± pokazane wszystkie relacje dziedziczenia/zawierania. Wykres jest "
"okrojony, je¶li nie mie¶ci siê w okre¶lonych brzegach."
"</ul>\n"
"Strza³ki maj± nastêpuj±ce znaczenie:\n"
"<ul>\n"
"<li>Ciemno niebieska strza³ka jest u¿ywana do wizualizacji relacji "
"dziedziczenia publicznego pomiêdzy dwiema klasami.\n"
"<li>Ciemno zielona strza³ka jest u¿ywana dla dziedziczenia chronionego.\n"
"<li>Ciemno czerwona strza³ka jest u¿ywana dla dziedziczenia prywatnego.\n"
"<li>Fioletowa przerywana strza³ka jest u¿ywana je¶li klasa jest zawarta "
"lub u¿yta przez inn± klasê. Strza³ka jest podpisana zmienn±(ymi) "
"przez które wskazywana klasa lub struktura jest dostêpna. \n"
"</ul>\n";
}
/*! text for the link to the legend page */
QCString trLegend()
{
return "legenda";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */
QCString trTest()
{
return "Test";
}
/*! Used as the header of the test list */
QCString trTestList()
{
return "Lista Testu";
}
}; };
#endif #endif
...@@ -871,8 +871,9 @@ void endFile(OutputList &ol,bool external) ...@@ -871,8 +871,9 @@ void endFile(OutputList &ol,bool external)
void setAnchors(char id,MemberList *ml,int groupId) void setAnchors(char id,MemberList *ml,int groupId)
{ {
int count=0; int count=0;
MemberDef *md=ml->first(); MemberListIterator mli(*ml);
while (md) MemberDef *md;
for (;(md=mli.current());++mli)
{ {
QCString anchor; QCString anchor;
if (groupId==-1) if (groupId==-1)
...@@ -881,7 +882,6 @@ void setAnchors(char id,MemberList *ml,int groupId) ...@@ -881,7 +882,6 @@ void setAnchors(char id,MemberList *ml,int groupId)
anchor.sprintf("%c%d_%d",id,groupId,count++); anchor.sprintf("%c%d_%d",id,groupId,count++);
//printf("Member %s anchor %s\n",md->name(),anchor.data()); //printf("Member %s anchor %s\n",md->name(),anchor.data());
md->setAnchor(anchor); md->setAnchor(anchor);
md=ml->next();
} }
} }
...@@ -1605,7 +1605,8 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1605,7 +1605,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
) )
{ {
//printf(" Found fcd=%p\n",fcd); //printf(" Found fcd=%p\n",fcd);
MemberDef *mmd=mn->first(); MemberListIterator mmli(*mn);
MemberDef *mmd;
int mdist=maxInheritanceDepth; int mdist=maxInheritanceDepth;
ArgumentList *argList=0; ArgumentList *argList=0;
if (args) if (args)
...@@ -1613,7 +1614,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1613,7 +1614,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
argList=new ArgumentList; argList=new ArgumentList;
stringToArgumentList(args,argList); stringToArgumentList(args,argList);
} }
while (mmd) for (mmli.toFirst();(mmd=mmli.current());++mmli)
{ {
if (mmd->isLinkable()) if (mmd->isLinkable())
{ {
...@@ -1631,7 +1632,6 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1631,7 +1632,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
} }
} }
} }
mmd=mn->next();
} }
if (argList) if (argList)
{ {
...@@ -1641,8 +1641,7 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1641,8 +1641,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
// no exact match found, but if args="()" an arbitrary member will do // no exact match found, but if args="()" an arbitrary member will do
{ {
//printf(" >Searching for arbitrary member\n"); //printf(" >Searching for arbitrary member\n");
mmd=mn->first(); for (mmli.toFirst();(mmd=mmli.current());++mmli)
while (mmd)
{ {
if (//(mmd->protection()!=Private || Config::extractPrivateFlag) && if (//(mmd->protection()!=Private || Config::extractPrivateFlag) &&
//( //(
...@@ -1664,7 +1663,6 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1664,7 +1663,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
md=mmd; md=mmd;
} }
} }
mmd=mn->next();
} }
} }
//printf(" >Succes=%d\n",mdist<maxInheritanceDepth); //printf(" >Succes=%d\n",mdist<maxInheritanceDepth);
...@@ -1711,15 +1709,13 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1711,15 +1709,13 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{ {
//printf("Function inside existing namespace `%s'\n",namespaceName.data()); //printf("Function inside existing namespace `%s'\n",namespaceName.data());
bool found=FALSE; bool found=FALSE;
MemberDef *mmd=mn->first(); MemberListIterator mmli(*mn);
while (mmd && !found) MemberDef *mmd;
for (mmli.toFirst();((mmd=mmli.current()) && !found);++mmli)
{ {
//printf("mmd->getNamespaceDef()=%p fnd=%p\n", //printf("mmd->getNamespaceDef()=%p fnd=%p\n",
// mmd->getNamespaceDef(),fnd); // mmd->getNamespaceDef(),fnd);
if (mmd->getNamespaceDef()==fnd && if (mmd->getNamespaceDef()==fnd && mmd->isLinkable())
//(mmd->isReference() || mmd->hasDocumentation())
mmd->isLinkable()
)
{ // namespace is found { // namespace is found
bool match=TRUE; bool match=TRUE;
ArgumentList *argList=0; ArgumentList *argList=0;
...@@ -1740,25 +1736,19 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1740,25 +1736,19 @@ bool getDefs(const QCString &scName,const QCString &memberName,
delete argList; argList=0; delete argList; argList=0;
} }
} }
mmd=mn->next();
} }
if (!found && !strcmp(args,"()")) if (!found && !strcmp(args,"()"))
// no exact match found, but if args="()" an arbitrary // no exact match found, but if args="()" an arbitrary
// member will do // member will do
{ {
MemberDef *mmd=mn->first(); for (mmli.toFirst();((mmd=mmli.current()) && !found);++mmli)
while (mmd && !found)
{ {
if (mmd->getNamespaceDef()==fnd && if (mmd->getNamespaceDef()==fnd && mmd->isLinkable())
//(mmd->isReference() || mmd->hasDocumentation())
mmd->isLinkable()
)
{ {
nd=fnd; nd=fnd;
md=mmd; md=mmd;
found=TRUE; found=TRUE;
} }
mmd=mn->next();
} }
} }
if (found) return TRUE; if (found) return TRUE;
...@@ -1766,8 +1756,8 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1766,8 +1756,8 @@ bool getDefs(const QCString &scName,const QCString &memberName,
else // no scope => global function else // no scope => global function
{ {
//printf("Function with global scope `%s' args=`%s'\n",namespaceName.data(),args); //printf("Function with global scope `%s' args=`%s'\n",namespaceName.data(),args);
md=mn->first(); MemberListIterator mli(*mn);
while (md) for (mli.toFirst();(md=mli.current());++mli)
{ {
if (md->isLinkable()) if (md->isLinkable())
{ {
...@@ -1798,7 +1788,6 @@ bool getDefs(const QCString &scName,const QCString &memberName, ...@@ -1798,7 +1788,6 @@ bool getDefs(const QCString &scName,const QCString &memberName,
} }
} }
} }
md=mn->next();
} }
if (!strcmp(args,"()")) if (!strcmp(args,"()"))
{ {
...@@ -2256,21 +2245,21 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig) ...@@ -2256,21 +2245,21 @@ FileDef *findFileDef(const FileNameDict *fnDict,const char *n,bool &ambig)
{ {
if (fn->count()==1) if (fn->count()==1)
{ {
return fn->first(); return fn->getFirst();
} }
else // file name alone is ambigious else // file name alone is ambigious
{ {
int count=0; int count=0;
FileDef *fd=fn->first(); FileNameIterator fni(*fn);
FileDef *fd;
FileDef *lastMatch=0; FileDef *lastMatch=0;
while (fd) for (fni.toFirst();(fd=fni.current());++fni)
{ {
if (path.isEmpty() || fd->getPath().right(path.length())==path) if (path.isEmpty() || fd->getPath().right(path.length())==path)
{ {
count++; count++;
lastMatch=fd; lastMatch=fd;
} }
fd=fn->next();
} }
ambig=(count>1); ambig=(count>1);
return lastMatch; return lastMatch;
...@@ -2295,14 +2284,14 @@ QCString showFileDefMatches(const FileNameDict *fnDict,const char *n) ...@@ -2295,14 +2284,14 @@ QCString showFileDefMatches(const FileNameDict *fnDict,const char *n)
FileName *fn; FileName *fn;
if ((fn=(*fnDict)[name])) if ((fn=(*fnDict)[name]))
{ {
FileDef *fd=fn->first(); FileNameIterator fni(*fn);
while (fd) FileDef *fd;
for (fni.toFirst();(fd=fni.current());++fni)
{ {
if (path.isEmpty() || fd->getPath().right(path.length())==path) if (path.isEmpty() || fd->getPath().right(path.length())==path)
{ {
result+=" "+fd->absFilePath()+"\n"; result+=" "+fd->absFilePath()+"\n";
} }
fd=fn->next();
} }
} }
return result; return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment