Commit b0cbd597 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3-rc3-20020215

parent 8fda55cd
DOXYGEN Version 1.3-rc3 DOXYGEN Version 1.3-rc3-20030215
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (01 February 2003) Dimitri van Heesch (15 February 2003)
DOXYGEN Version 1.3_rc3 DOXYGEN Version 1.3_rc3_20030215
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (01 February 2003) Dimitri van Heesch (dimitri@stack.nl) (15 February 2003)
1.3-rc3 1.3-rc3-20030215
...@@ -727,6 +727,12 @@ class ISection ...@@ -727,6 +727,12 @@ class ISection
virtual bool isProtected() const = 0; virtual bool isProtected() const = 0;
}; };
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator class ISectionIterator
{ {
public: public:
......
...@@ -727,6 +727,12 @@ class ISection ...@@ -727,6 +727,12 @@ class ISection
virtual bool isProtected() const = 0; virtual bool isProtected() const = 0;
}; };
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator class ISectionIterator
{ {
public: public:
......
...@@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent) ...@@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent)
m_members.setAutoDelete(TRUE); m_members.setAutoDelete(TRUE);
addEndHandler("sectiondef",this,&SectionHandler::endSection); addEndHandler("sectiondef",this,&SectionHandler::endSection);
addStartHandler("memberdef",this,&SectionHandler::startMember); addStartHandler("memberdef",this,&SectionHandler::startMember);
addStartHandler("header",this,&SectionHandler::startHeader);
addEndHandler("header",this,&SectionHandler::endHeader);
} }
SectionHandler::~SectionHandler() SectionHandler::~SectionHandler()
...@@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib) ...@@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib)
m_members.append(memHandler); m_members.append(memHandler);
} }
void SectionHandler::startHeader(const QXmlAttributes&)
{
m_header="";
m_curString="";
}
void SectionHandler::endHeader()
{
m_header = m_curString.stripWhiteSpace();
debug(2,"member header=`%s'\n",m_header.data());
}
void SectionHandler::initialize(CompoundHandler *ch) void SectionHandler::initialize(CompoundHandler *ch)
{ {
QListIterator<MemberHandler> mli(m_members); QListIterator<MemberHandler> mli(m_members);
......
...@@ -34,12 +34,14 @@ class SectionIterator : ...@@ -34,12 +34,14 @@ class SectionIterator :
}; };
class SectionHandler : public ISection, public BaseHandler<SectionHandler> class SectionHandler : public IUserDefined, public BaseHandler<SectionHandler>
{ {
public: public:
virtual void startMember(const QXmlAttributes& attrib); virtual void startMember(const QXmlAttributes& attrib);
virtual void startHeader(const QXmlAttributes& attrib);
virtual void startSection(const QXmlAttributes& attrib); virtual void startSection(const QXmlAttributes& attrib);
virtual void endSection(); virtual void endSection();
virtual void endHeader();
SectionHandler(IBaseHandler *parent); SectionHandler(IBaseHandler *parent);
virtual ~SectionHandler(); virtual ~SectionHandler();
...@@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler> ...@@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
void initialize(CompoundHandler *c); void initialize(CompoundHandler *c);
// IUserDefined implementation
virtual const IString *header() const
{
return &m_header;
}
private: private:
IBaseHandler *m_parent; IBaseHandler *m_parent;
SectionKind m_kind; SectionKind m_kind;
StringImpl m_kindString; StringImpl m_kindString;
StringImpl m_header;
QList<MemberHandler> m_members; QList<MemberHandler> m_members;
}; };
......
...@@ -565,6 +565,11 @@ int main(int argc,char **argv) ...@@ -565,6 +565,11 @@ int main(int argc,char **argv)
printf(" Section kind=%s\n",sec->kindString()->latin1()); printf(" Section kind=%s\n",sec->kindString()->latin1());
IMemberIterator *mli = sec->members(); IMemberIterator *mli = sec->members();
IMember *mem; IMember *mem;
if( sec->kind() == ISection::UserDefined )
{
IUserDefined *group = dynamic_cast<IUserDefined*>(sec);
printf(" Title=%s\n", group->header()->latin1() );
}
for (mli->toFirst();(mem=mli->current());mli->toNext()) for (mli->toFirst();(mem=mli->current());mli->toNext())
{ {
ILinkedTextIterator *lti = mem->type(); ILinkedTextIterator *lti = mem->type();
......
...@@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc ...@@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc
EOF EOF
fi fi
#if test "$f_platform" = "win32-g++"; then
# cat >> .tmakeconfig <<EOF
# TMAKE_LFLAGS += -D_WIN32
#EOF
#fi
if test "$f_english" = YES; then if test "$f_english" = YES; then
cat >> .tmakeconfig <<EOF cat >> .tmakeconfig <<EOF
TMAKE_CXXFLAGS += -DENGLISH_ONLY TMAKE_CXXFLAGS += -DENGLISH_ONLY
......
...@@ -417,6 +417,8 @@ function's detailed documentation block. ...@@ -417,6 +417,8 @@ function's detailed documentation block.
comments) as a brief description. This used to be the default behaviour. comments) as a brief description. This used to be the default behaviour.
The new default is to treat a multi-line C++ comment block as a detailed The new default is to treat a multi-line C++ comment block as a detailed
description. Set this tag to YES if you prefer the old behaviour instead. description. Set this tag to YES if you prefer the old behaviour instead.
Note that setting this tag to YES also means that rational rose comments
are not recognised any more.
\anchor cfg_details_at_top \anchor cfg_details_at_top
<dt>\c DETAILS_AT_TOP <dd> <dt>\c DETAILS_AT_TOP <dd>
......
...@@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already. ...@@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already.
This section is divided into the following sections: This section is divided into the following sections:
<ul> <ul>
<li>\ref install_src_unix "Compiling from source on Unix" <li>\ref install_src_unix "Compiling from source on Unix"
<li>\ref install_bin_unix "Installating the binaries on Unix" <li>\ref install_bin_unix "Installing the binaries on Unix"
<li>\ref unix_problems "Known compilation problems for Unix" <li>\ref unix_problems "Known compilation problems for Unix"
<li>\ref install_src_windows "Compiling from source on Windows" <li>\ref install_src_windows "Compiling from source on Windows"
<li>\ref install_bin_windows "Installating the binaries on Windows" <li>\ref install_bin_windows "Installing the binaries on Windows"
<li>\ref build_tools "Tools used to develop doxygen" <li>\ref build_tools "Tools used to develop doxygen"
</ul> </ul>
...@@ -158,7 +158,7 @@ Compilation is now done by performing the following steps: ...@@ -158,7 +158,7 @@ Compilation is now done by performing the following steps:
</ol> </ol>
\section install_bin_unix Installating the binaries on Unix \section install_bin_unix Installing the binaries on Unix
After the compilation of the source code do a <code>make install</code> After the compilation of the source code do a <code>make install</code>
to install doxygen. If you downloaded the binary distribution for Unix, to install doxygen. If you downloaded the binary distribution for Unix,
...@@ -540,7 +540,7 @@ Compilation is now done by performing the following steps: ...@@ -540,7 +540,7 @@ Compilation is now done by performing the following steps:
documentation can be generated. documentation can be generated.
</ol> </ol>
\section install_bin_windows Installating the binaries on Windows \section install_bin_windows Installing the binaries on Windows
There is no fancy installation procedure at the moment (if anyone can There is no fancy installation procedure at the moment (if anyone can
add it in a location independent way please let me know). add it in a location independent way please let me know).
......
...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means ...@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time. languages other than English (the default) at configuration time.
Currently (version 1.3-rc3), 28 languages Currently (version 1.2.14-20020317), 28 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish, Czech, Danish, Dutch, English, Finnish,
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3_rc3 Version: 1.3_rc3_20030215
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -128,6 +128,8 @@ ...@@ -128,6 +128,8 @@
#define _OS_UNIXWARE7_ #define _OS_UNIXWARE7_
#elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__) #elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__)
#define _OS_UNIXWARE7_ #define _OS_UNIXWARE7_
#elif defined(__CYGWIN__)
#define _OS_CYGWIN_
#else #else
#error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" #error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
#endif #endif
......
...@@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \ ...@@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \
INCLUDEPATH = . INCLUDEPATH = .
TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE
win32:TMAKE_CXXFLAGS += -DQT_NODLL win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:TMAKE_CXXFLAGS += -D_WIN32 -D__CYGWIN__ -DALL_STATIC win32-g++:TMAKE_CXXFLAGS += -D__CYGWIN__ -DALL_STATIC
OBJECTS_DIR = ../objects OBJECTS_DIR = ../objects
DESTDIR = ../lib DESTDIR = ../lib
...@@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" ...@@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType(); addType();
g_code->codify(yytext); g_code->codify(yytext);
} }
<ClassName>{ID} { <ClassName>{ID}("::"{ID})* {
g_curClassName=yytext; g_curClassName=yytext;
addType(); addType();
generateClassOrGlobalLink(*g_code,yytext); generateClassOrGlobalLink(*g_code,yytext);
......
...@@ -543,12 +543,19 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children, ...@@ -543,12 +543,19 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
return tok; return tok;
} }
while ((tok=doctokenizerYYlex()) && while ((tok=doctokenizerYYlex()) &&
tok!=TK_WHITESPACE && tok!=TK_WHITESPACE &&
tok!=TK_NEWPARA && tok!=TK_NEWPARA &&
tok!=TK_LISTITEM && tok!=TK_LISTITEM &&
tok!=TK_ENDLIST tok!=TK_ENDLIST
) )
{ {
static QRegExp specialChar("[.,|()\\[\\]:;\\?]");
if (tok==TK_WORD && g_token->name.length()==1 &&
g_token->name.find(specialChar)!=-1)
{
// special character that ends the markup command
return tok;
}
if (!defaultHandleToken(parent,tok,children)) if (!defaultHandleToken(parent,tok,children))
{ {
switch (tok) switch (tok)
...@@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children ...@@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
DBG((" name=%s",g_token->name.data())); DBG((" name=%s",g_token->name.data()));
} }
DBG(("\n")); DBG(("\n"));
reparsetoken:
QString tokenName = g_token->name; QString tokenName = g_token->name;
switch (tok) switch (tok)
{ {
...@@ -767,8 +775,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children ...@@ -767,8 +775,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,TRUE));
tok=handleStyleArgument(parent,children,tokenName); tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,FALSE));
children.append(new DocWhiteSpace(parent," ")); if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara; if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
} }
break; break;
case CMD_BOLD: case CMD_BOLD:
...@@ -776,8 +785,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children ...@@ -776,8 +785,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,TRUE));
tok=handleStyleArgument(parent,children,tokenName); tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,FALSE));
children.append(new DocWhiteSpace(parent," ")); if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara; if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
} }
break; break;
case CMD_CODE: case CMD_CODE:
...@@ -785,8 +795,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children ...@@ -785,8 +795,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,TRUE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,TRUE));
tok=handleStyleArgument(parent,children,tokenName); tok=handleStyleArgument(parent,children,tokenName);
children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,FALSE)); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,FALSE));
children.append(new DocWhiteSpace(parent," ")); if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," "));
if (tok==TK_NEWPARA) goto handlepara; if (tok==TK_NEWPARA) goto handlepara;
else if (tok==TK_WORD) goto reparsetoken;
} }
break; break;
case CMD_HTMLONLY: case CMD_HTMLONLY:
...@@ -1001,7 +1012,14 @@ handlepara: ...@@ -1001,7 +1012,14 @@ handlepara:
return FALSE; return FALSE;
break; break;
case TK_URL: case TK_URL:
children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); if (g_insideHtmlLink)
{
children.append(new DocWord(parent,g_token->name));
}
else
{
children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr));
}
break; break;
default: default:
return FALSE; return FALSE;
...@@ -1347,16 +1365,18 @@ void DocXRefItem::parse() ...@@ -1347,16 +1365,18 @@ void DocXRefItem::parse()
{ {
RefItem *item = refList->getRefItem(m_id); RefItem *item = refList->getRefItem(m_id);
ASSERT(item!=0); ASSERT(item!=0);
if (item)
m_file = refList->listName();
m_anchor = item->listAnchor;
m_title = refList->sectionTitle();
if (!item->text.isEmpty())
{ {
docParserPushContext(); m_file = refList->listName();
internalValidatingParseDoc(this,m_children,item->text); m_anchor = item->listAnchor;
docParserPopContext(); m_title = refList->sectionTitle();
if (!item->text.isEmpty())
{
docParserPushContext();
internalValidatingParseDoc(this,m_children,item->text);
docParserPopContext();
}
} }
} }
} }
...@@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName) ...@@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName)
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE));
retval=handleStyleArgument(this,m_children,cmdName); retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,FALSE));
m_children.append(new DocWhiteSpace(this," ")); if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break; break;
case CMD_BOLD: case CMD_BOLD:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE));
retval=handleStyleArgument(this,m_children,cmdName); retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,FALSE));
m_children.append(new DocWhiteSpace(this," ")); if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break; break;
case CMD_CODE: case CMD_CODE:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE));
retval=handleStyleArgument(this,m_children,cmdName); retval=handleStyleArgument(this,m_children,cmdName);
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,FALSE)); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,FALSE));
m_children.append(new DocWhiteSpace(this," ")); if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," "));
break; break;
case CMD_BSLASH: case CMD_BSLASH:
m_children.append(new DocSymbol(this,DocSymbol::BSlash)); m_children.append(new DocSymbol(this,DocSymbol::BSlash));
...@@ -4255,7 +4275,7 @@ reparsetoken: ...@@ -4255,7 +4275,7 @@ reparsetoken:
// the command ended normally, keep scanner for new tokens. // the command ended normally, keep scanner for new tokens.
retval = 0; retval = 0;
} }
else if (retval==TK_LISTITEM || retval==TK_ENDLIST) else if (retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_WORD)
{ {
tok = retval; tok = retval;
goto reparsetoken; goto reparsetoken;
......
...@@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives() ...@@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives()
{ {
fd->visited=FALSE; fd->visited=FALSE;
} }
fn=Doxygen::inputNameList.next();
} }
// then recursively add using directives found in #include files // then recursively add using directives found in #include files
// to files that have not been visited. // to files that have not been visited.
...@@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives() ...@@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives()
{ {
FileNameIterator fni(*fn); FileNameIterator fni(*fn);
FileDef *fd; FileDef *fd;
for (;(fd=fni.current());++fni) for (fni.toFirst();(fd=fni.current());++fni)
{ {
if (!fd->visited) fd->addIncludedUsingDirectives(); if (!fd->visited)
{
//printf("----- adding using directives for file %s\n",fd->name().data());
fd->addIncludedUsingDirectives();
}
} }
fn=Doxygen::inputNameList.next();
} }
} }
...@@ -4419,6 +4421,10 @@ static void findMember(Entry *root, ...@@ -4419,6 +4421,10 @@ static void findMember(Entry *root,
{ {
Debug::print(Debug::FindMembers,0, Debug::print(Debug::FindMembers,0,
"1. funcName=`%s'\n",funcName.data()); "1. funcName=`%s'\n",funcName.data());
if (funcName.left(9)=="operator ")
{
funcName = substitute(funcName,className+"::","");
}
if (!funcTempList.isEmpty()) // try with member specialization if (!funcTempList.isEmpty()) // try with member specialization
{ {
mn=Doxygen::memberNameSDict[funcName+funcTempList]; mn=Doxygen::memberNameSDict[funcName+funcTempList];
...@@ -4677,9 +4683,10 @@ static void findMember(Entry *root, ...@@ -4677,9 +4683,10 @@ static void findMember(Entry *root,
{ {
warn_cont("%s ",md->typeString()); warn_cont("%s ",md->typeString());
} }
warn_cont("%s::%s%s\n", QCString qScope = cd->qualifiedNameWithTemplateParameters();
cd->qualifiedNameWithTemplateParameters().data(), if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data());
md->name().data(),md->argsString()); if (md->argsString()) warn_cont("%s",md->argsString());
warn_cont("\n");
} }
} }
} }
......
...@@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib ...@@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib shell32.lib win32-borland:LIBS += qtools.lib shell32.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:TMAKE_CXXFLAGS += -D_WIN32
INCLUDEPATH += ../qtools INCLUDEPATH += ../qtools
OBJECTS_DIR = ../objects OBJECTS_DIR = ../objects
TARGET = ../bin/doxytag TARGET = ../bin/doxytag
...@@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local) ...@@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local)
void FileDef::addIncludedUsingDirectives() void FileDef::addIncludedUsingDirectives()
{ {
if (!visited) if (visited) return;
visited=TRUE;
//printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data());
NamespaceList nl;
if (includeList) // file contains #includes
{ {
visited=TRUE;
NamespaceList nl;
if (includeList) // file contains #includes
{ {
QListIterator<IncludeInfo> iii(*includeList); QListIterator<IncludeInfo> iii(*includeList);
IncludeInfo *ii; IncludeInfo *ii;
for (;(ii=iii.current());++iii) // foreach #include... for (iii.toFirst();(ii=iii.current());++iii) // foreach #include...
{ {
if (ii->fileDef) // ...that is a known file if (ii->fileDef && !ii->fileDef->visited) // ...that is a known file
{ {
// recurse into this file // recurse into this file
ii->fileDef->addIncludedUsingDirectives(); ii->fileDef->addIncludedUsingDirectives();
} }
} }
}
{
QListIterator<IncludeInfo> iii(*includeList);
IncludeInfo *ii;
// iterate through list from last to first // iterate through list from last to first
for (iii.toLast();(ii=iii.current());--iii) for (iii.toLast();(ii=iii.current());--iii)
{ {
if (ii->fileDef) if (ii->fileDef && ii->fileDef!=this)
{ {
NamespaceList *unl = ii->fileDef->usingDirList; NamespaceList *unl = ii->fileDef->usingDirList;
if (unl) if (unl)
...@@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives() ...@@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives()
{ {
// append each using directive found in a #include file // append each using directive found in a #include file
if (usingDirList==0) usingDirList = new NamespaceList; if (usingDirList==0) usingDirList = new NamespaceList;
//printf("Prepending used namespace %s to the list of file %s\n",
// nd->name().data(),name().data());
usingDirList->prepend(nd); usingDirList->prepend(nd);
} }
} }
} }
} }
} }
// add elements of nl to usingDirList
} }
//printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data());
} }
......
...@@ -111,7 +111,6 @@ HEADERS = bufstr.h \ ...@@ -111,7 +111,6 @@ HEADERS = bufstr.h \
translator_sr.h \ translator_sr.h \
translator_tw.h \ translator_tw.h \
translator_ua.h \ translator_ua.h \
treeview.h \
unistd.h \ unistd.h \
util.h \ util.h \
version.h \ version.h \
......
...@@ -16,8 +16,10 @@ ...@@ -16,8 +16,10 @@
#! #!
#$ IncludeTemplate("lib.t"); #$ IncludeTemplate("lib.t");
LEX = flex LEX = flex
YACC = bison YACC = bison
PERL = perl
INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;"
#${ #${
sub GenerateDep { sub GenerateDep {
...@@ -45,13 +47,13 @@ sub GenerateDep { ...@@ -45,13 +47,13 @@ sub GenerateDep {
#################### ####################
#$ GenerateDep("scanner.cpp","scanner.l"); #$ GenerateDep("scanner.cpp","scanner.l");
$(LEX) -PscanYY -t scanner.l >scanner.cpp $(LEX) -PscanYY -t scanner.l | $(INCBUFSIZE) >scanner.cpp
#$ GenerateDep("code.cpp","code.l"); #$ GenerateDep("code.cpp","code.l");
$(LEX) -PcodeYY -t code.l >code.cpp $(LEX) -PcodeYY -t code.l | $(INCBUFSIZE) >code.cpp
#$ GenerateDep("pre.cpp","pre.l"); #$ GenerateDep("pre.cpp","pre.l");
$(LEX) -PpreYY -t pre.l >pre.cpp $(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp
#$ GenerateDep("declinfo.cpp","declinfo.l"); #$ GenerateDep("declinfo.cpp","declinfo.l");
$(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp $(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp
...@@ -75,6 +77,6 @@ sub GenerateDep { ...@@ -75,6 +77,6 @@ sub GenerateDep {
$(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c $(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c
-rm ce_parse.c -rm ce_parse.c
treeview.h: treeview.js #treeview.h: treeview.js
cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h # cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h
...@@ -1623,7 +1623,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1623,7 +1623,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
g_defLitText+=' '; g_defLitText+=' ';
BEGIN(SkipCPPComment); BEGIN(SkipCPPComment);
} }
<SkipCComment>"*/" { <SkipCComment>[/]?"*/" {
if (yytext[0]=='/') outputChar('/');
outputChar('*');outputChar('/'); outputChar('*');outputChar('/');
if (--g_commentCount<=0) if (--g_commentCount<=0)
{ {
...@@ -1647,7 +1648,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1647,7 +1648,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<SkipCComment>. { <SkipCComment>. {
outputChar(*yytext); outputChar(*yytext);
} }
<RemoveCComment>"*/" { BEGIN(g_lastCContext); } <RemoveCComment>"*/" { BEGIN(g_lastCContext); }
<RemoveCComment>"//" <RemoveCComment>"//"
<RemoveCComment>"/*" <RemoveCComment>"/*"
<RemoveCComment>[^*\n]+ <RemoveCComment>[^*\n]+
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
/* ----------------------------------------------------------------- /* -----------------------------------------------------------------
* *
* statics * statics
...@@ -181,6 +181,7 @@ static void initParser() ...@@ -181,6 +181,7 @@ static void initParser()
insideTryBlock = FALSE; insideTryBlock = FALSE;
autoGroupStack.setAutoDelete(TRUE); autoGroupStack.setAutoDelete(TRUE);
lastDefGroup.groupname.resize(0); lastDefGroup.groupname.resize(0);
insideFormula = FALSE;
} }
static void initEntry() static void initEntry()
...@@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface <FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface
lineCount(); lineCount();
if (insideIDL || insideJava) if (insideIDL || insideJava || insideCS)
{ {
isTypedef=FALSE; isTypedef=FALSE;
current->section = Entry::INTERFACE_SEC; current->section = Entry::INTERFACE_SEC;
...@@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
<ReadFormulaShort>\n { <ReadFormulaShort>\n {
formulaText+=" "; formulaText+=" ";
yyLineNr++;
if (lastFormulaContext==LineDoc || if (lastFormulaContext==LineDoc ||
lastFormulaContext==AfterDocLine lastFormulaContext==AfterDocLine
) )
...@@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
insideFormula=FALSE; insideFormula=FALSE;
BEGIN(lastFormulaContext); BEGIN(lastFormulaContext);
} }
<ReadFormulaLong>\n { formulaText+=*yytext; } <ReadFormulaLong>\n { formulaText+=*yytext; yyLineNr++; }
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; } <ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" { <ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs(); checkDocs();
...@@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
} }
<ClassDocBrief>"<"{BR}{ATTR}">" <ClassDocBrief>"<"{BR}{ATTR}">"
<ClassDocBrief>{BS}/{SECTIONCMD} { <ClassDocBrief>{BS}/{SECTIONCMD} |
<ClassDocBrief>{B}*/{SECTIONCMD} {
current->brief=current->brief.stripWhiteSpace(); current->brief=current->brief.stripWhiteSpace();
BEGIN( lastBriefContext ); BEGIN( lastBriefContext );
} }
...@@ -4445,12 +4448,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -4445,12 +4448,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
} }
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->doc += yytext; current->doc += yytext;
yyLineNr++;
} }
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { <ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ {
current->brief += "-"; current->brief += "-";
} }
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { <ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->brief += "."; current->brief += "."; yyLineNr++;
} }
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/] <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/]
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ { <Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ {
......
/*-*- c-basic-offset: 2 -*-*/
/****************************************************************************** /******************************************************************************
* *
* *
* *
* Copyright (C) 1997-2003 by Dimitri van Heesch. * Copyright (C) 1997-2003 by Dimitri van Heesch.
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty. * for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details. * See the GNU General Public License for more details.
* *
...@@ -15,49 +16,93 @@ ...@@ -15,49 +16,93 @@
* *
*/ */
/* OBS! /*
Til danskere og andet godtfolk: * Danish translation by
Jeg har været i tvivl om (i hvert fald) følgende ord: * Erik Søe Sørensen <eriksoe@daimi.au.dk>
- Member *
- Compound * First version (not complete) for Doxygen 1.2.7
- Namespace * Extended and revised for Doxygen 1.3
- Interface */
Jeg har besluttet (indtil videre) at lade følgende ord stå som de er, /* Translator's notes:
da jeg selv overvejende bruger det engelske udtryk:
- Interface Oversættelseskonventioner:
- Typedef (Konventioner for konventioner:
- Union '?' angiver oversættelser, jeg har været i tvivl om
(union ved jeg ikke engang, hvad jeg skal kalde på dansk... '??' angiver tvivlsomme oversættelser
udover måske 'union') '..?' angiver ord, der endnu ikke er fundet en oversættelse til
'(do.)' angiver ord, der med vilje ikke er oversat, idet jeg selv
(Konstruktivt) input modtages med glæde! overvejende bruger det engelske udtryk
'(-> _) angiver ord, der er fundet en oversættelse til, men som jeg
vægrer mig ved at oversætte.
)
bug -> 'kendt fejl'
class -> klasse
compound -> 'sammensat type'
constructor -> konstruktør ?
destructor -> destruktør ?
event -> begivenhed ?
exception (-> undtagelse ?)
friend ..?
interface -> grænseflade ?
member -> medlem (TODO)
namespace -> (do.)
private -> privat
property -> egenskab?
protected -> beskyttet ??
public -> offentlig
slot ..?
source code -> kildekode
struct -> datastruktur
template (-> skabelon ?)
typedef -> typedefinition (?)
todo -> (do.)
union ..?
Specielle forbindelser:
'Inheritance diagram' -> Stamtræ (selvom Nedarvningsdiagram også gik an)
-----
(Konstruktivt) input modtages med glæde!
-- Erik Søe Sørensen <eriksoe@daimi.au.dk>
*/ */
#ifndef TRANSLATOR_DK_H #ifndef TRANSLATOR_DK_H
#define TRANSLATOR_DK_H #define TRANSLATOR_DK_H
class TranslatorDanish : public TranslatorAdapter_1_2_7 class TranslatorDanish : public Translator
{ {
public: public:
// --- Language control methods ------------------- // --- Language control methods -------------------
/*! Used for identification of the language. The identification /*! Used for identification of the language. The identification
* should not be translated. It should be replaced by the name * should not be translated. It should be replaced by the name
* of the language in English using lower-case characters only * of the language in English using lower-case characters only
* (e.g. "czech", "japanese", "russian", etc.). It should be equal to * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
* the identification used in language.cpp. * the identification used in language.cpp.
*/ */
virtual QCString idLanguage() virtual QCString idLanguage()
{ return "danish"; } { return "danish"; }
/*! Used to get the LaTeX command(s) for the language support. This method /*! Used to get the LaTeX command(s) for the language support.
* was designed for languages which do wish to use a babel package. * This method should return string with commands that switch
* LaTeX to the desired language. For example
* <pre>"\\usepackage[german]{babel}\n"
* </pre>
* or
* <pre>"\\usepackage{polski}\n"
* "\\usepackage[latin2]{inputenc}\n"
* "\\usepackage[T1]{fontenc}\n"
* </pre>
*/ */
virtual QCString latexLanguageSupportCommand() virtual QCString latexLanguageSupportCommand()
{ {
return "danish"; return
"\\usepackage[danish]{babel}\n"
"\\usepackage[latin1]{inputenc}\n"
"\\usepackage[T1]{fontenc}\n";
} }
/*! return the language charset. This will be used for the HTML output */ /*! return the language charset. This will be used for the HTML output */
...@@ -76,37 +121,37 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -76,37 +121,37 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trRelatedSubscript() virtual QCString trRelatedSubscript()
{ return "(Bemærk at disse ikke er medlems-funktioner.)"; } { return "(Bemærk at disse ikke er medlems-funktioner.)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */ /*! header that is put before the detailed description of files,
* classes and namespaces. */
virtual QCString trDetailedDescription() virtual QCString trDetailedDescription()
{ return "Detaljeret beskrivelse"; } { return "Detaljeret beskrivelse"; }
/*! header that is put before the list of typedefs. */ /*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation() virtual QCString trMemberTypedefDocumentation()
{ return "Dokumentation af medlems-typedefs"; } { return "Dokumentation af medlems-typedefinitioner"; }
/*! header that is put before the list of enumerations. */ /*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation() virtual QCString trMemberEnumerationDocumentation()
{ return "Dokumentation af medlems-enumerationer"; } { return "Dokumentation af medlems-enumerationer"; }
// medlems-enumerationer -> 'indeholdte enumerationer'
/*! header that is put before the list of member functions. */ /*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation() virtual QCString trMemberFunctionDocumentation()
{ return "Dokumentation af medlemsfunktioner"; } { return "Dokumentation af medlemsfunktioner"; }
/*! header that is put before the list of member attributes. */ /*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation() virtual QCString trMemberDataDocumentation()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ return "Felt-dokumentation";
return "Felt-dokumentation"; } else {
} return "Dokumentation af feltvariable";
else //medlems-data";
{
return "Dokumentation af medlems-data";
} }
} }
/*! this is the text of a link put after brief descriptions. */ /*! this is the text of a link put after brief descriptions. */
virtual QCString trMore() virtual QCString trMore()
{ return "Mere..."; } { return "Mere..."; }
/*! put in the class documentation */ /*! put in the class documentation */
...@@ -119,90 +164,85 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -119,90 +164,85 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! this is the first part of a sentence that is followed by a class name */ /*! this is the first part of a sentence that is followed by a class name */
virtual QCString trThisIsTheListOfAllMembers() virtual QCString trThisIsTheListOfAllMembers()
{ return "Dette er den komplette liste over medlemmer for "; } { return "Dette er den komplette liste over medlemmer i "; }
/*! this is the remainder of the sentence after the class name */ /*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers() virtual QCString trIncludingInheritedMembers()
{ return ", inklusive alle nedarvede medlemmer."; } { return ", inklusive alle nedarvede medlemmer."; }
/*! this is put at the author sections at the bottom of man pages. /*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name. * parameter s is name of the project name.
*/ */
virtual QCString trGeneratedAutomatically(const char *s) virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="Automatisk genereret af Doxygen"; { QCString result="Automatisk genereret af Doxygen";
if (s) result+=(QCString)" for "+s; if (s) result+=(QCString)" for "+s;
result+=" ud fra kildekoden."; result+=" ud fra kildekoden.";
return result; return result;
} }
/*! put after an enum name in the list of all members */ /*! put after an enum name in the list of all members */
virtual QCString trEnumName() virtual QCString trEnumName()
{ return "enum-navn"; } { return "enumerationsnavn"; }
/*! put after an enum value in the list of all members */ /*! put after an enum value in the list of all members */
virtual QCString trEnumValue() virtual QCString trEnumValue()
{ return "enum-værdi"; } { return "enumerationsværdi"; }
/*! put after an undocumented member in the list of all members */ /*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn() virtual QCString trDefinedIn()
{ return "defineret i"; } { return "defineret i"; }
// quick reference sections // quick reference sections
/*! This is put above each page as a link to the list of all groups of /*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \\group command). * compounds or files (see the \\group command).
*/ */
virtual QCString trModules() virtual QCString trModules()
{ return "Moduler"; } { return "Moduler"; }
/*! This is put above each page as a link to the class hierarchy */ /*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy() virtual QCString trClassHierarchy()
{ return "Klassehierarki"; } { return "Klassehierarki"; }
/*! This is put above each page as a link to the list of annotated classes */ /*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList() virtual QCString trCompoundList()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{
return "Datastrukturer"; return "Datastrukturer";
} } else {
else return "Oversigt over sammensatte typer";
{
return "Compound List";
} }
} }
/*! This is put above each page as a link to the list of documented files */ /*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList() virtual QCString trFileList()
{ return "Filliste"; } { return "Filoversigt"; }
/*! This is put above each page as a link to the list of all verbatim headers */ /*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles() virtual QCString trHeaderFiles()
{ return "Header-filer"; } { return "Headerfiler"; }
/*! This is put above each page as a link to all members of compounds. */ /*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers() virtual QCString trCompoundMembers()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{ {
return "Data-felter"; return "Data-felter";
} }
else else
{ {
return "Compound Members"; return "Felter i sammensatte typer";
} }
} }
/*! This is put above each page as a link to all members of files. */ /*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers() virtual QCString trFileMembers()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ return "Globale symboler";
return "Globale"; } else {
} return "Placering i filer"; // Fil-medlemmer"; //TODO
else //"Globale definitioner" ?
{
return "Fil-medlemmer";
} }
} }
...@@ -235,16 +275,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -235,16 +275,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription() virtual QCString trCompoundListDescription()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ return "Her er datastrukturerne med korte beskrivelser:";
return "Her er datastrukturerne med korte beskrivelser:"; } else {
} return "Her er klasserne, datastrukturerne, "
else "unionerne og grænsefladerne med korte beskrivelser:";
{
return "Her er klasserne, strukturerne, "
"unionerne og grænsefladerne med korte beskrivelser:";
} }
} }
...@@ -252,39 +289,26 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -252,39 +289,26 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trCompoundMembersDescription(bool extractAll) virtual QCString trCompoundMembersDescription(bool extractAll)
{ {
QCString result="Her er en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) if (!extractAll) {
{
result+="dokumenterede "; result+="dokumenterede ";
} }
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ result+="felter i datastrukturer og unioner";
result+="felter i strukturer og unioner"; } else {
}
else
{
result+="klassemedlemmer"; result+="klassemedlemmer";
} }
result+=" med links til "; result+=" med links til ";
if (!extractAll) if (!extractAll) {
{ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) result+="datastruktur/unions-dokumentationen for hvert felt:";
{ } else {
result+="struktur/unions-dokumentationen for hvert felt:";
}
else
{
result+="klassedokumentationen for hvert medlem:"; result+="klassedokumentationen for hvert medlem:";
} }
} } else {
else if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ result+="de datastrukturer/unioner, de hører til:";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) } else {
{ result+="de klasser, de hører til:";
result+="de strukturer/unioner de hører til:";
}
else
{
result+="de klasser de hører til:";
} }
} }
return result; return result;
...@@ -295,27 +319,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -295,27 +319,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
{ {
QCString result="Her er en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterede "; if (!extractAll) result+="dokumenterede ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{
result+="funktioner, variable, #defines, enumerationer " result+="funktioner, variable, #defines, enumerationer "
"og typedefinitioner"; "og typedefinitioner";
} } else {
else
{
result+="fil-medlemmer"; result+="fil-medlemmer";
} }
result+=" med links til "; result+=" med links til ";
if (extractAll) if (extractAll)
result+="de filer de hører til:"; result+="de filer, de tilhører:";
else else
result+="dokumentationen:"; result+="deres dokumentation:";
return result; return result;
} }
/*! This is an introduction to the page with the list of all header files. */ /*! This is an introduction to the page with the list of all header files. */
virtual QCString trHeaderFilesDescription() virtual QCString trHeaderFilesDescription()
{ return "Her er de headerfiler der udgør API'en:"; } { return "Her er de headerfiler, der udgør API'en:"; }
/*! This is an introduction to the page with the list of all examples */ /*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription() virtual QCString trExamplesDescription()
...@@ -330,50 +351,47 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -330,50 +351,47 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
{ return "Her er en liste over alle moduler:"; } { return "Her er en liste over alle moduler:"; }
/*! This sentences is used in the annotated class/file lists if no brief /*! This sentences is used in the annotated class/file lists if no brief
* description is given. * description is given.
*/ */
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
{ return "Ikke beskrevet"; } { return "Ikke beskrevet"; }
// index titles (the project name is prepended for these) // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */ /*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation() virtual QCString trDocumentation()
{ return "Dokumentation"; } { return "Dokumentation"; }
/*! 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 groups. * index of all groups.
*/ */
virtual QCString trModuleIndex() virtual QCString trModuleIndex()
{ return "Modul-index"; } { return "Modul-indeks"; }
/*! 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
* class hierarchy. * class hierarchy.
*/ */
virtual QCString trHierarchicalIndex() virtual QCString trHierarchicalIndex()
{ return "Hierarkisk index"; } { return "Hierarkisk indeks"; }
/*! 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
* annotated compound index. * annotated compound index.
*/ */
virtual QCString trCompoundIndex() virtual QCString trCompoundIndex()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{
return "Indeks over datastrukturer"; return "Indeks over datastrukturer";
} } else {
else return "Indeks over sammensatte typer";
{
return "Compound Index";
} }
} }
/*! 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
* list of all files. * list of all files.
*/ */
virtual QCString trFileIndex() virtual QCString trFileIndex()
{ return "Fil-index"; } { return "Fil-indeks"; }
/*! 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 groups. * the documentation of all groups.
...@@ -385,7 +403,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -385,7 +403,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* the documentation of all classes, structs and unions. * the documentation of all classes, structs and unions.
*/ */
virtual QCString trClassDocumentation() virtual QCString trClassDocumentation()
{ return "Klasse-dokumentation"; } {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Datastruktur-documentation";
} else {
return "Klasse-dokumentation";
}
}
/*! 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 files. * the documentation of all files.
...@@ -407,53 +431,49 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -407,53 +431,49 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! This is used in LaTeX as the title of the document */ /*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual() virtual QCString trReferenceManual()
{ return "Reference-manual"; } { return "Referencemanual"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of defines * list of defines
*/ */
virtual QCString trDefines() virtual QCString trDefines()
{ return "#Defines"; } { return "#Defines"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of function prototypes * list of function prototypes
*/ */
virtual QCString trFuncProtos() virtual QCString trFuncProtos()
{ return "Funktionsprototyper"; } { return "Funktionsprototyper"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of typedefs * list of typedefs
*/ */
virtual QCString trTypedefs() virtual QCString trTypedefs()
{ return "Typedefs"; } { return "Typedefinitioner"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of enumerations * list of enumerations
*/ */
virtual QCString trEnumerations() virtual QCString trEnumerations()
{ return "Enumerationer"; } { return "Enumerationer"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) functions * list of (global) functions
*/ */
virtual QCString trFunctions() virtual QCString trFunctions()
{ return "Funktioner"; } { return "Funktioner"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trVariables() virtual QCString trVariables()
{ return "Variabler"; } { return "Variable"; }
/*! This is used in the documentation of a file as a header before the /*! This is used in the documentation of a file as a header before the
* list of (global) variables * list of (global) variables
*/ */
virtual QCString trEnumerationValues() virtual QCString trEnumerationValues()
{ return "Enumerationsværdier"; } { return "Enumerationsværdier"; }
/*! This is used in man pages as the author section. */
virtual QCString trAuthor()
{ return "Forfatter"; }
/*! This is used in the documentation of a file before the list of /*! This is used in the documentation of a file before the list of
* documentation blocks for defines * documentation blocks for defines
...@@ -461,62 +481,59 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -461,62 +481,59 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trDefineDocumentation() virtual QCString trDefineDocumentation()
{ return "#Define-dokumentation"; } { return "#Define-dokumentation"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes * of documentation blocks for function prototypes
*/ */
virtual QCString trFunctionPrototypeDocumentation() virtual QCString trFunctionPrototypeDocumentation()
{ return "Funktionsprototype-dokumentation"; } { return "Dokumentation af funktionsprototyper"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs * of documentation blocks for typedefs
*/ */
virtual QCString trTypedefDocumentation() virtual QCString trTypedefDocumentation()
{ return "Typedef-dokumentation"; } { return "Dokumentation af typedefinitioner"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types * of documentation blocks for enumeration types
*/ */
virtual QCString trEnumerationTypeDocumentation() virtual QCString trEnumerationTypeDocumentation()
{ return "Dokumentation af enumerations-typer"; } { return "Dokumentation af enumerations-typer"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values * of documentation blocks for enumeration values
*/ */
virtual QCString trEnumerationValueDocumentation() virtual QCString trEnumerationValueDocumentation()
{ return "Dokumentation af enumerations-værdier"; } { return "Dokumentation af enumerations-værdier"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions * of documentation blocks for functions
*/ */
virtual QCString trFunctionDocumentation() virtual QCString trFunctionDocumentation()
{ return "Funktions-dokumentation"; } { return "Funktions-dokumentation"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables * of documentation blocks for variables
*/ */
virtual QCString trVariableDocumentation() virtual QCString trVariableDocumentation()
{ return "Variabel-dokumentation"; } { return "Variabel-dokumentation"; }
/*! This is used in the documentation of a file/namespace/group before /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds * the list of links to documented compounds
*/ */
virtual QCString trCompounds() virtual QCString trCompounds()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{ return "Datastrukturer";
return "Datastrukturer"; } else {
} return "Sammensatte typer";
else
{
return "Compounds";
} }
} }
/*! This is used in the standard footer of each page and indicates when /*! This is used in the standard footer of each page and indicates when
* the page was generated * the page was generated
*/ */
virtual QCString trGeneratedAt(const char *date,const char *projName) virtual QCString trGeneratedAt(const char *date,const char *projName)
{ {
QCString result=(QCString)"Genereret "+date; QCString result=(QCString)"Genereret "+date;
if (projName) result+=(QCString)" for "+projName; if (projName) result+=(QCString)" for "+projName;
result+=(QCString)" af"; result+=(QCString)" af";
...@@ -532,16 +549,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -532,16 +549,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! this text is put before a class diagram */ /*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName) virtual QCString trClassDiagram(const char *clName)
{ {
return (QCString)"Nedarvningsdiagram for "+clName+":"; return (QCString)"Stamtræ for "+clName+":";
} }
/*! this text is generated when the \\internal command is used. */ /*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly() virtual QCString trForInternalUseOnly()
{ return "Kun til intern brug."; } { return "Kun til intern brug."; }
/*! this text is generated when the \\reimp command is used. */ /*! this text is generated when the \\reimp command is used. */
virtual QCString trReimplementedForInternalReasons() virtual QCString trReimplementedForInternalReasons()
{ return "Metode overskrevet af interne grunde; " { return "Metoden er genimplementeret af interne grunde; "
"API'en er ikke påvirket."; } "API'en er ikke påvirket."; }
/*! this text is generated when the \\warning command is used. */ /*! this text is generated when the \\warning command is used. */
...@@ -560,10 +577,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -560,10 +577,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trDate() virtual QCString trDate()
{ return "Dato"; } { return "Dato"; }
/*! this text is generated when the \\author command is used. */
virtual QCString trAuthors()
{ return "Forfatter(e)"; }
/*! this text is generated when the \\return command is used. */ /*! this text is generated when the \\return command is used. */
virtual QCString trReturns() virtual QCString trReturns()
{ return "Returnerer"; } { return "Returnerer"; }
...@@ -579,7 +592,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -579,7 +592,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! this text is generated when the \\exception command is used. */ /*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions() virtual QCString trExceptions()
{ return "Exceptions"; } { return "Exceptions"; }
/*! this text is used in the title page of a LaTeX document. */ /*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy() virtual QCString trGeneratedBy()
{ return "Genereret af"; } { return "Genereret af"; }
...@@ -587,10 +600,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -587,10 +600,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990307 // new since 0.49-990307
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used as the title of page containing all the index of all namespaces. */ /*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return "Namespace-liste"; } { return "Oversigt over namespaces"; }
/*! used as an introduction to the namespace list */ /*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll) virtual QCString trNamespaceListDescription(bool extractAll)
...@@ -606,17 +619,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -606,17 +619,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
virtual QCString trFriends() virtual QCString trFriends()
{ return "Friends"; } { return "Friends"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990405 // new since 0.49-990405
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! used in the class documentation as a header before the list of all /*! used in the class documentation as a header before the list of all
* related classes * related classes
*/ */
virtual QCString trRelatedFunctionDocumentation() virtual QCString trRelatedFunctionDocumentation()
{ return "Friends og relateret funktions-dokumentation"; } //?? { return "Dokumentation af friends og af relaterede funktioner"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990425 // new since 0.49-990425
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -630,9 +643,9 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -630,9 +643,9 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+=" Klasse-"; break; case ClassDef::Class: result+=" Klasse-"; break;
case ClassDef::Struct: result+=" Struktur-"; break; case ClassDef::Struct: result+=" Datastruktur-"; break;
case ClassDef::Union: result+=" Union-"; break; case ClassDef::Union: result+=" Union-"; break;
case ClassDef::Interface: result+=" Interface-"; break; case ClassDef::Interface: result+=" Grænseflade-"; break;
case ClassDef::Exception: result+=" Exception-"; break; case ClassDef::Exception: result+=" Exception-"; break;
} }
if (isTemplate) result+="template-"; if (isTemplate) result+="template-";
...@@ -644,7 +657,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -644,7 +657,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trFileReference(const char *fileName) virtual QCString trFileReference(const char *fileName)
{ {
QCString result=fileName; QCString result=fileName;
result+=" Fil-reference"; result+=" filreference";
return result; return result;
} }
...@@ -652,31 +665,31 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -652,31 +665,31 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trNamespaceReference(const char *namespaceName) virtual QCString trNamespaceReference(const char *namespaceName)
{ {
QCString result=namespaceName; QCString result=namespaceName;
result+=" Namespace-reference"; result+=" namespace-reference";
return result; return result;
} }
virtual QCString trPublicMembers() virtual QCString trPublicMembers()
{ return "Public Methods"; } { return "Offentlige metoder"; }
virtual QCString trPublicSlots() virtual QCString trPublicSlots()
{ return "Public Slots"; } { return "Offentlige slots"; }
virtual QCString trSignals() virtual QCString trSignals()
{ return "Signals"; } { return "Signaler"; }
virtual QCString trStaticPublicMembers() virtual QCString trStaticPublicMembers()
{ return "Static Public Methods"; } { return "Statiske, offentlige metoder"; }
virtual QCString trProtectedMembers() virtual QCString trProtectedMembers()
{ return "Protected Methods"; } { return "Beskyttede metoder"; }
virtual QCString trProtectedSlots() virtual QCString trProtectedSlots()
{ return "Protected Slots"; } { return "Beskyttede slots"; }
virtual QCString trStaticProtectedMembers() virtual QCString trStaticProtectedMembers()
{ return "Static Protected Methods"; } { return "Statiske, beskyttede metoder"; }
virtual QCString trPrivateMembers() virtual QCString trPrivateMembers()
{ return "Private Methods"; } { return "Private metoder"; }
virtual QCString trPrivateSlots() virtual QCString trPrivateSlots()
{ return "Private Slots"; } { return "Private slots"; }
virtual QCString trStaticPrivateMembers() virtual QCString trStaticPrivateMembers()
{ return "Static Private Methods"; } { return "Statiske, private metoder"; }
/*! this function is used to produce a comma-separated list of items. /*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put. * use generateMarker(i) to indicate where item i should be put.
*/ */
...@@ -685,29 +698,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -685,29 +698,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
QCString result; QCString result;
int i; int i;
// the inherits list contain `numEntries' classes // the inherits list contain `numEntries' classes
for (i=0;i<numEntries;i++) for (i=0;i<numEntries;i++) {
{
// use generateMarker to generate placeholders for the class links! // use generateMarker to generate placeholders for the class links!
result+=generateMarker(i); // generate marker for entry i in the list result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right) // (order is left to right)
if (i!=numEntries-1) // not the last entry, so we need a separator if (i!=numEntries-1) { // not the last entry, so we need a separator
{ if (i<numEntries-2) // not the fore last entry
if (i<numEntries-2) // not the fore last entry
result+=", "; result+=", ";
else // the fore last entry else // the fore last entry
result+=", and "; result+=" og ";
} }
} }
return result; return result;
} }
/*! 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.
*/ */
virtual QCString trInheritsList(int numEntries) virtual QCString trInheritsList(int numEntries)
{ {
return "Inherits "+trWriteList(numEntries)+"."; return "Nedarver "+trWriteList(numEntries)+".";
} }
/*! used in class documentation to produce a list of super classes, /*! used in class documentation to produce a list of super classes,
...@@ -715,10 +726,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -715,10 +726,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
virtual QCString trInheritedByList(int numEntries) virtual QCString trInheritedByList(int numEntries)
{ {
return "Inherited by "+trWriteList(numEntries)+"."; return "Nedarvet af "+trWriteList(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.
*/ */
virtual QCString trReimplementedFromList(int numEntries) virtual QCString trReimplementedFromList(int numEntries)
...@@ -731,7 +742,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -731,7 +742,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
virtual QCString trReimplementedInList(int numEntries) virtual QCString trReimplementedInList(int numEntries)
{ {
return "Reimplemented in "+trWriteList(numEntries)+"."; return "Reimplementeret i "+trWriteList(numEntries)+".";
} }
/*! 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. */
...@@ -740,27 +751,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -740,27 +751,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! This is an introduction to the page with all namespace members */ /*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
{ {
QCString result="Her er en liste over alle "; QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterede "; if (!extractAll) result+="dokumenterede ";
result+="namespace-medlemmer med links til "; result+="namespace-medlemmer med links til ";
if (extractAll) if (extractAll)
result+="namespace-dokumentationen for hvert medlem:"; result+="namespace-dokumentationen for hvert medlem:";
else else
result+="de namespaces, de hører til:"; result+="det namespace, de hører til:";
return result; return result;
} }
/*! 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.
*/ */
virtual QCString trNamespaceIndex() virtual QCString trNamespaceIndex()
{ return "Namespace Index"; } { return "Namespace-indeks"; }
/*! 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.
*/ */
virtual QCString trNamespaceDocumentation() virtual QCString trNamespaceDocumentation()
{ return "Namespace Dokumentation"; } { return "Namespace-dokumentation"; }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 0.49-990522 // new since 0.49-990522
...@@ -783,17 +794,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -783,17 +794,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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)"The documentation for this "; QCString result=(QCString)"Dokumentationen for denne ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+="class"; break; case ClassDef::Class: result+="klasse"; break;
case ClassDef::Struct: result+="struct"; break; case ClassDef::Struct: result+="datastruktur"; break;
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break; case ClassDef::Interface: result+="grænseflade"; break;
case ClassDef::Exception: result+="exception"; break; case ClassDef::Exception: result+="exception"; break;
} }
result+=" was generated from the following file"; result+=" blev genereret ud fra følgende fil";
if (single) result+=":"; else result+="s:"; if (single) result+=":"; else result+="er:";
return result; return result;
} }
...@@ -816,7 +827,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -816,7 +827,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trMainPage() virtual QCString trMainPage()
{ return "Hovedside"; } { return "Hovedside"; }
/*! 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.
*/ */
virtual QCString trPageAbbreviation() virtual QCString trPageAbbreviation()
...@@ -828,7 +839,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -828,7 +839,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trSources() virtual QCString trSources()
{ {
return "Sources"; return "Kilder"; //??
} }
virtual QCString trDefinedAtLineInSourceFile() virtual QCString trDefinedAtLineInSourceFile()
{ {
...@@ -845,7 +856,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -845,7 +856,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trDeprecated() virtual QCString trDeprecated()
{ {
return "Deprecated"; return "Frarådes - fortidslevn"; // ?? - What is the context?
// "Ugleset" :)
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -865,7 +877,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -865,7 +877,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! header that is put before the list of constructor/destructors. */ /*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation() virtual QCString trConstructorDocumentation()
{ {
return "Constructor & Destructor dokumentation"; return "Dokumentation af konstruktører og destruktører";
// "Constructor & Destructor dokumentation";
} }
/*! Used in the file documentation to point to the corresponding sources. */ /*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode() virtual QCString trGotoSourceCode()
...@@ -880,12 +893,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -880,12 +893,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Text for the \\pre command */ /*! Text for the \\pre command */
virtual QCString trPrecondition() virtual QCString trPrecondition()
{ {
return "Precondition"; return "Forudsætninger (precondition)";
} }
/*! Text for the \\post command */ /*! Text for the \\post command */
virtual QCString trPostcondition() virtual QCString trPostcondition()
{ {
return "Postcondition"; return "Resultat (postcondition)";
} }
/*! Text for the \\invariant command */ /*! Text for the \\invariant command */
virtual QCString trInvariant() virtual QCString trInvariant()
...@@ -900,11 +913,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -900,11 +913,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Text used the source code in the file index */ /*! Text used the source code in the file index */
virtual QCString trCode() virtual QCString trCode()
{ {
return "code"; return "kildekode";
} }
virtual QCString trGraphicalHierarchy() virtual QCString trGraphicalHierarchy()
{ {
return "Grafiske klassehierarki"; return "Grafisk klassehierarki";
} }
virtual QCString trGotoGraphicalHierarchy() virtual QCString trGotoGraphicalHierarchy()
{ {
...@@ -916,59 +929,56 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -916,59 +929,56 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
} }
virtual QCString trPageIndex() virtual QCString trPageIndex()
{ {
return "Page Index"; return "Sideindeks";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.0 // new since 1.1.0
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
virtual QCString trNote() virtual QCString trNote()
{ {
return "Note"; return "Note";
} }
virtual QCString trPublicTypes() virtual QCString trPublicTypes()
{ {
return "Public Typer"; return "Offentlige typer";
} }
virtual QCString trPublicAttribs() virtual QCString trPublicAttribs()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{
return "Datafelter"; return "Datafelter";
} } else {
else return "Offentlige attributter";
{
return "Public Attributes";
} }
} }
virtual QCString trStaticPublicAttribs() virtual QCString trStaticPublicAttribs()
{ {
return "Static Public Attributes"; return "Statiske, offentlige attributter";
} }
virtual QCString trProtectedTypes() virtual QCString trProtectedTypes()
{ {
return "Protected Typer"; return "Beskyttede typer";
} }
virtual QCString trProtectedAttribs() virtual QCString trProtectedAttribs()
{ {
return "Protected Attributes"; return "Beskyttede attributter";
} }
virtual QCString trStaticProtectedAttribs() virtual QCString trStaticProtectedAttribs()
{ {
return "Static Protected Attributes"; return "Statiske, beskyttede attributter";
} }
virtual QCString trPrivateTypes() virtual QCString trPrivateTypes()
{ {
return "Private Types"; return "Private typer";
} }
virtual QCString trPrivateAttribs() virtual QCString trPrivateAttribs()
{ {
return "Private Attributes"; return "Private attributter";
} }
virtual QCString trStaticPrivateAttribs() virtual QCString trStaticPrivateAttribs()
{ {
return "Static Private Attributes"; return "Statiske, private attributter";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -983,7 +993,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -983,7 +993,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used as the header of the todo list */ /*! Used as the header of the todo list */
virtual QCString trTodoList() virtual QCString trTodoList()
{ {
return "Todo List"; return "Todo-liste";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1000,18 +1010,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1000,18 +1010,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
} }
virtual QCString trAttention() virtual QCString trAttention()
{ {
return "Attention"; return "OBS";
} }
virtual QCString trInclByDepGraph() virtual QCString trInclByDepGraph()
{ {
return "Denne graf viser, hvilke filer der direkte eller " return
"indirekte inkluderer denne fil:"; "Denne graf viser, hvilke filer der direkte eller "
"indirekte inkluderer denne fil:";
} }
virtual QCString trSince() virtual QCString trSince()
{ {
return "Siden"; return "Siden";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.1.5 // new since 1.1.5
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1022,60 +1033,71 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1022,60 +1033,71 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
return "Graf-forklaring"; return "Graf-forklaring";
} }
/*! page explaining how the dot graph's should be interpreted */ /*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs() virtual QCString trLegendDocs() //TODO
{ {
return return
"Denne side forklarer, hvordan man skal fortolke de grafer, " "Denne side forklarer, hvordan man skal fortolke de grafer, "
"der genereres af doxygen.<p>\n" "der genereres af doxygen.<p>\n"
"Consider the following example:\n" "Tag følgende eksempel:\n"
"\\code\n" "\\code\n"
"/*! Invisible class because of truncation */\n" "/*! Klasse der er usynlig pg.a. beskæring */\n"
"class Invisible { };\n\n" "class Invisible { };\n\n"
"/*! Truncated class, inheritance relation is hidden */\n" "/*! Beskåret klasse: nedarvningsrelation er skjult */\n"
"class Truncated : public Invisible { };\n\n" "class Truncated : public Invisible { };\n\n"
"/* Class not documented with doxygen comments */\n" "/* Klasse der ikke er dokumenteret med doxygen-kommentarer */\n"
"class Undocumented { };\n\n" "class Undocumented { };\n\n"
"/*! Class that is inherited using public inheritance */\n" "/*! Klasse der nedarves fra offentligt */\n"
"class PublicBase : public Truncated { };\n\n" "class PublicBase : public Truncated { };\n\n"
"/*! Class that is inherited using protected inheritance */\n" "/*! En template-klasse */\n"
"template<class T> class Templ { };\n\n"
"/*! Klasse der nedarves fra beskyttet */\n"
"class ProtectedBase { };\n\n" "class ProtectedBase { };\n\n"
"/*! Class that is inherited using private inheritance */\n" "/*! Klasse der nedarves fra privat */\n"
"class PrivateBase { };\n\n" "class PrivateBase { };\n\n"
"/*! Class that is used by the Inherited class */\n" "/*! Klasse der bruges af Inherited-klassen */\n"
"class Used { };\n\n" "class Used { };\n\n"
"/*! Super class that inherits a number of other classes */\n" "/*! Klasse der nedarver en masse andre klasser */\n"
"class Inherited : public PublicBase,\n" "class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n" " protected ProtectedBase,\n"
" private PrivateBase,\n" " private PrivateBase,\n"
" public Undocumented\n" " public Undocumented\n"
" public Templ<int>\n"
"{\n" "{\n"
" private:\n" " private:\n"
" Used *m_usedClass;\n" " Used *m_usedClass;\n"
"};\n" "};\n"
"\\endcode\n" "\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " "Hvis \\c MAX_DOT_GRAPH_HEIGHT i konfigurationsfilen "
"is set to 200 this will result in the following graph:" "er sat til 240, vil dette resultere i følgende graf:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "De forskellige slags kasser i ovenstående graf har følgende "
"betydninger:\n"
"<ul>\n" "<ul>\n"
"<li>A filled black box represents the struct or class for which the " "<li>%En udfyldt sort kasse repræsenterer den datastruktur eller "
"graph is generated.\n" "klasse, grafen er genereret for.\n"
"<li>A box with a black border denotes a documented struct or class.\n" "<li>%En kasse med sort kant betegner en dokumenteret datastruktur "
"<li>A box with a grey border denotes an undocumented struct or class.\n" " eller klasse.\n"
"<li>A box with a red border denotes a documented struct or class for\n" "<li>%En kasse med grå kant betegner en udokumenteret datastruktur "
"which not all inheritance/containment relations are shown. A graph is " " eller klasse.\n"
"truncated if it does not fit within the specified boundaries." "<li>%En kasse med rød kant betegner en dokumenteret datastruktur "
" eller klasse, for hvilken ikke alle "
"nedarvnings- og indeholdelses-relationer er vist. "
"%Grafer beskæres, hvis de fylder mere end de specificerede dimensioner.\n "
"</ul>\n" "</ul>\n"
"The arrows have the following meaning:\n" "Pilene har følgende betydninger:\n"
"<ul>\n" "<ul>\n"
"<li>A dark blue arrow is used to visualize a public inheritance " "<li>%En mørkeblå pil viser en offentlig nedarvningsrelation "
"relation between two classes.\n" "mellem to klasser.\n"
"<li>A dark green arrow is used for protected inheritance.\n" "<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n"
"<li>A dark red arrow is used for private inheritance.\n" "<li>%En mørkerød pil viser en privat nedarvningsrelation.\n"
"<li>A purple dashed arrow is used if a class is contained or used " "<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i "
"by another class. The arrow is labeled with the variable(s) " "eller benyttes af en anden klasse. "
"through which the pointed class or struct is accessible. \n" "Ved pilen står navnet på den eller de variable, gennem hvilke(n) "
"den klasse, pilen peger på, er tilgængelig.\n"
"<li>%En gul, stiplet pil viser forholdet mellem en template-instans "
"og den template-klasse, den er instantieret fra."
"Ved pilen står template-parametrene brugt ved instantieringen.\n"
"</ul>\n"; "</ul>\n";
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
...@@ -1083,11 +1105,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1083,11 +1105,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
{ {
return "forklaring til graf"; return "forklaring til graf";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.0 // new since 1.2.0
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a test item */ /*! Used as a marker that is put before a test item */
virtual QCString trTest() virtual QCString trTest()
{ {
...@@ -1116,12 +1138,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1116,12 +1138,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used as a section header for IDL properties */ /*! Used as a section header for IDL properties */
virtual QCString trProperties() virtual QCString trProperties()
{ {
return "Properties"; return "Egenskaber";
} }
/*! Used as a section header for IDL property documentation */ /*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation() virtual QCString trPropertyDocumentation()
{ {
return "Property-dokumentation"; return "Egenskabsdokumentation";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -1131,17 +1153,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1131,17 +1153,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used for Java interfaces in the summary section of Java packages */ /*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces() virtual QCString trInterfaces()
{ {
return "Interfaces"; return "Grænseflader";
} }
/*! Used for Java classes in the summary section of Java packages */ /*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses() virtual QCString trClasses()
{ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
{
return "Datastrukturer"; return "Datastrukturer";
} } else {
else
{
return "Klasser"; return "Klasser";
} }
} }
...@@ -1153,37 +1172,39 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1153,37 +1172,39 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Title of the package index page */ /*! Title of the package index page */
virtual QCString trPackageList() virtual QCString trPackageList()
{ {
return "Pakkeliste"; return "Pakkeoversigt";
} }
/*! The description of the package index page */ /*! The description of the package index page */
virtual QCString trPackageListDescription() virtual QCString trPackageListDescription()
{ {
return "Here are the packages with brief descriptions (if available):"; return
"Her er en liste over pakkerne, med korte beskrivelser "
"(hvor en sådan findes):";
} }
/*! The link name in the Quick links header for each page */ /*! The link name in the Quick links header for each page */
virtual QCString trPackages() virtual QCString trPackages()
{ {
return "Packages"; return "Pakker";
} }
/*! Used as a chapter title for Latex & RTF output */ /*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation() virtual QCString trPackageDocumentation()
{ {
return "Package Dokumentation"; return "Pakke-dokumentation";
} }
/*! Text shown before a multi-line define */ /*! Text shown before a multi-line define */
virtual QCString trDefineValue() virtual QCString trDefineValue()
{ {
return "Værdi:"; return "Værdi:";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// new since 1.2.5 // new since 1.2.5
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a \\bug item */ /*! Used as a marker that is put before a \\bug item */
virtual QCString trBug() virtual QCString trBug()
{ {
return "Fejl"; return "Kendte fejl";
} }
/*! Used as the header of the bug list */ /*! Used as the header of the bug list */
virtual QCString trBugList() virtual QCString trBugList()
...@@ -1195,12 +1216,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1195,12 +1216,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
// new since 1.2.6 // new since 1.2.6
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
/*! Used as ansicpg for RTF file */ /*! Used as ansicpg for RTF file
* (used table extract:)
* <pre>
* Charset Name Charset Value(hex) Codepage number
* ------------------------------------------------------
* ANSI_CHARSET 0 (x00) 1252
* </pre>
*/
virtual QCString trRTFansicp() virtual QCString trRTFansicp()
{ {
return "1252"; return "1252";
} }
/*! Used as ansicpg for RTF fcharset */ /*! Used as ansicpg for RTF fcharset */
virtual QCString trRTFCharSet() virtual QCString trRTFCharSet()
{ {
...@@ -1212,96 +1240,204 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1212,96 +1240,204 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
{ {
return "Indeks"; return "Indeks";
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trClass(bool first_capital, bool singular) virtual QCString trClass(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Klasse" : "klasse")); //QCString result(first_capital ? "Klasse" : "klasse");
if (first_capital) toupper(result.at(0)); //if (first_capital) result.at(0) = toupper(result.at(0));
if (!singular) result+="r"; //if (!singular) result+="r";
return result; //return result;
return createNoun(first_capital, singular, "klasse", "r");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trFile(bool first_capital, bool singular) virtual QCString trFile(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Fil" : "fil")); //QCString result((first_capital ? "Fil" : "fil"));
if (!singular) result+="er"; //if (!singular) result+="er";
return result; //return result;
return createNoun(first_capital, singular, "fil", "er");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trNamespace(bool first_capital, bool singular) virtual QCString trNamespace(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Namespace" : "namespace")); //QCString result((first_capital ? "Namespace" : "namespace"));
if (!singular) result+="s"; //if (!singular) result+="s";
return result; //return result;
return createNoun(first_capital, singular, "namespace", "s");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trGroup(bool first_capital, bool singular) virtual QCString trGroup(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Gruppe" : "gruppe")); //QCString result((first_capital ? "Gruppe" : "gruppe"));
if (!singular) result+="r"; //if (!singular) result+="r";
return result; //return result;
return createNoun(first_capital, singular, "gruppe", "r");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trPage(bool first_capital, bool singular) virtual QCString trPage(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Side" : "side")); //QCString result((first_capital ? "Side" : "side"));
if (!singular) result+="r"; //if (!singular) result+="r";
return result; //return result;
return createNoun(first_capital, singular, "side", "r");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trMember(bool first_capital, bool singular) virtual QCString trMember(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Medlem" : "medlem")); //QCString result((first_capital ? "Medlem" : "medlem"));
if (!singular) result+="mer"; //if (!singular) result+="mer";
return result; //return result;
return createNoun(first_capital, singular, "medlem", "mer");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trField(bool first_capital, bool singular) virtual QCString trField(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Felt" : "felt")); //QCString result((first_capital ? "Felt" : "felt"));
if (!singular) result+="er"; //if (!singular) result+="er";
return result; //return result;
return createNoun(first_capital, singular, "felt", "er");
} }
/*! This is used for translation of the word that will possibly /*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names * be followed by a single name or by a list of names
* of the category. * of the category.
*/ */
virtual QCString trGlobal(bool first_capital, bool singular) virtual QCString trGlobal(bool first_capital, bool singular)
{ {
QCString result((first_capital ? "Global" : "global")); //QCString result((first_capital ? "Global" : "global"));
if (!singular) result+="e"; //if (!singular) result+="e";
return result; //return result;
return createNoun(first_capital, singular, "global", "e");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.2.7
//////////////////////////////////////////////////////////////////////////
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular)
{
//QCString result((first_capital ? "Forfatter" : "forfatter"));
//if (!singular) result+="e";
//return result;
return createNoun(first_capital, singular, "forfatter", "e");
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual QCString trReferences()
{
return "Referencer";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.13
//////////////////////////////////////////////////////////////////////////
/*! used in member documentation blocks to produce a list of
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
{
return "Implementerer "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
* all members that implement this abstract member.
*/
virtual QCString trImplementedInList(int numEntries)
{
return "Implementeret i "+trWriteList(numEntries)+".";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.16
//////////////////////////////////////////////////////////////////////////
/*! used in RTF documentation as a heading for the Table
* of Contents.
*/
virtual QCString trRTFTableOfContents()
{
return "Indholdsfortegnelse";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.17
//////////////////////////////////////////////////////////////////////////
/*! Used as the header of the list of item that have been
* flagged deprecated
*/
virtual QCString trDeprecatedList()
{
return "Liste over fortidslevn, hvis brug frarådes";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.18
//////////////////////////////////////////////////////////////////////////
/*! Used as a header for declaration section of the events found in
* a C# program
*/
virtual QCString trEvents()
{
return "Begivenheder";
}
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
return "Begivenhedsdokumentation";
}
/*---------- For internal use: ----------------------------------------*/
protected:
/*! For easy flexible-noun implementation.
* \internal
*/
QCString createNoun(bool first_capital, bool singular,
const char* base, const char* plurSuffix)
{
QCString result(base);
if (first_capital) result.at(0) = toupper(result.at(0));
if (!singular) result+=plurSuffix;
return result;
}
}; };
#endif #endif
...@@ -41,11 +41,13 @@ ...@@ -41,11 +41,13 @@
* -------------+------------------------------------------------------------ * -------------+------------------------------------------------------------
* 2002-10-22 | Update for new since 1.2.18 * 2002-10-22 | Update for new since 1.2.18
* -------------+------------------------------------------------------------ * -------------+------------------------------------------------------------
* 2003-02-04 | Corrected typo. Thanks to Bertrand M. :)
* -------------+------------------------------------------------------------
*/ */
#ifndef TRANSLATOR_FR_H #ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H #define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_17 class TranslatorFrench : public Translator
{ {
public: public:
QCString idLanguage() QCString idLanguage()
...@@ -205,7 +207,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 ...@@ -205,7 +207,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
/*! This is an introduction to the annotated compound list. */ /*! This is an introduction to the annotated compound list. */
QCString trCompoundListDescription() QCString trCompoundListDescription()
{ return "Liste des classes, des strutures et des unions " { return "Liste des classes, des structures et des unions "
"avec une brève description :"; "avec une brève description :";
} }
...@@ -384,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 ...@@ -384,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
* of documentation blocks for enumeration types * of documentation blocks for enumeration types
*/ */
QCString trEnumerationTypeDocumentation() QCString trEnumerationTypeDocumentation()
{ return "Documentation du type de l'énumeration"; } { return "Documentation du type de l'énumération"; }
/*! This is used in the documentation of a file/namespace before the list /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values * of documentation blocks for enumeration values
...@@ -959,13 +961,13 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17 ...@@ -959,13 +961,13 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
"</ul>\n" "</ul>\n"
"Les flèches ont la signification suivante:\n" "Les flèches ont la signification suivante:\n"
"<ul>\n" "<ul>\n"
"<li>Une flèche bleu foncé est utilisée pour visuliser une relation d'héritage public " "<li>Une flèche bleu foncé est utilisée pour visualiser une relation d'héritage public "
"entre deux classes.\n" "entre deux classes.\n"
"<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégé.\n" "<li>Une flèche vert foncé est utilisée pour une relation d'héritage protégé.\n"
"<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privé.\n" "<li>Une flèche rouge foncé est utilisée pour une relation d'héritage privé.\n"
"<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou " "<li>Une flèche violette en pointillés est utilisée si une classe est contenue ou "
"utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) " "utilisée par une autre classe. La flèche est étiquetée avec la ou les variable(s) "
"qui permettent d'acceder à la classe ou structure pointée. \n" "qui permettent d'accéder à la classe ou structure pointée. \n"
"</ul>\n"; "</ul>\n";
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
......
"//**************************************************************** \n"
"// You are free to copy the \"Folder-Tree\" script as long as you \n"
"// keep this copyright notice: \n"
"// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ \n"
"// Author: Marcelino Alves Martins (martins@hks.com) December '97. \n"
"//**************************************************************** \n"
" \n"
"//Log of changes: \n"
"// 17 Feb 98 - Fix initialization flashing problem with Netscape\n"
"// \n"
"// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; \n"
"// make the ftien4 a js file \n"
"// \n"
"// DvH: Dec 2000 - Made some minor changes to support external \n"
"// references\n"
" \n"
"// Definition of class Folder \n"
"// ***************************************************************** \n"
" \n"
"function Folder(folderDescription, tagName, hreference) //constructor \n"
"{ \n"
" //constant data \n"
" this.desc = folderDescription \n"
" this.tagName = tagName\n"
" this.hreference = hreference \n"
" this.id = -1 \n"
" this.navObj = 0 \n"
" this.iconImg = 0 \n"
" this.nodeImg = 0 \n"
" this.isLastNode = 0 \n"
" \n"
" //dynamic data \n"
" this.isOpen = true \n"
" this.iconSrc = \"ftv2folderopen.png\" \n"
" this.children = new Array \n"
" this.nChildren = 0 \n"
" \n"
" //methods \n"
" this.initialize = initializeFolder \n"
" this.setState = setStateFolder \n"
" this.addChild = addChild \n"
" this.createIndex = createEntryIndex \n"
" this.hide = hideFolder \n"
" this.display = display \n"
" this.renderOb = drawFolder \n"
" this.totalHeight = totalHeight \n"
" this.subEntries = folderSubEntries \n"
" this.outputLink = outputFolderLink \n"
"} \n"
" \n"
"function setStateFolder(isOpen) \n"
"{ \n"
" var subEntries \n"
" var totalHeight \n"
" var fIt = 0 \n"
" var i=0 \n"
" \n"
" if (isOpen == this.isOpen) \n"
" return \n"
" \n"
" if (browserVersion == 2) \n"
" { \n"
" totalHeight = 0 \n"
" for (i=0; i < this.nChildren; i++) \n"
" totalHeight = totalHeight + this.children[i].navObj.clip.height \n"
" subEntries = this.subEntries() \n"
" if (this.isOpen) \n"
" totalHeight = 0 - totalHeight \n"
" for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) \n"
" indexOfEntries[fIt].navObj.moveBy(0, totalHeight) \n"
" } \n"
" this.isOpen = isOpen \n"
" propagateChangesInState(this) \n"
"} \n"
" \n"
"function propagateChangesInState(folder) \n"
"{ \n"
" var i=0 \n"
" \n"
" if (folder.isOpen) \n"
" { \n"
" if (folder.nodeImg) \n"
" if (folder.isLastNode) \n"
" folder.nodeImg.src = \"ftv2mlastnode.png\" \n"
" else \n"
" folder.nodeImg.src = \"ftv2mnode.png\" \n"
" folder.iconImg.src = \"ftv2folderopen.png\" \n"
" for (i=0; i<folder.nChildren; i++) \n"
" folder.children[i].display() \n"
" } \n"
" else \n"
" { \n"
" if (folder.nodeImg) \n"
" if (folder.isLastNode) \n"
" folder.nodeImg.src = \"ftv2plastnode.png\" \n"
" else \n"
" folder.nodeImg.src = \"ftv2pnode.png\" \n"
" folder.iconImg.src = \"ftv2folderclosed.png\" \n"
" for (i=0; i<folder.nChildren; i++) \n"
" folder.children[i].hide() \n"
" } \n"
"} \n"
" \n"
"function hideFolder() \n"
"{ \n"
" if (browserVersion == 1 || browserVersion == 3) { \n"
" if (this.navObj.style.display == \"none\") \n"
" return \n"
" this.navObj.style.display = \"none\" \n"
" } else { \n"
" if (this.navObj.visibility == \"hidden\") \n"
" return \n"
" this.navObj.visibility = \"hidden\" \n"
" } \n"
" \n"
" this.setState(0) \n"
"} \n"
" \n"
"function initializeFolder(level, lastNode, leftSide) \n"
"{ \n"
"var j=0 \n"
"var i=0 \n"
"var numberOfFolders \n"
"var numberOfDocs \n"
"var nc \n"
" \n"
" nc = this.nChildren \n"
" \n"
" this.createIndex() \n"
" \n"
" var auxEv = \"\" \n"
" \n"
" if (browserVersion > 0) \n"
" auxEv = \"<a href='javascript:clickOnNode(\"+this.id+\")'>\" \n"
" else \n"
" auxEv = \"<a>\" \n"
" \n"
" if (level>0) \n"
" if (lastNode) //the last 'brother' in the children array \n"
" { \n"
" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mlastnode.png' width=16 height=22 border=0></a>\") \n"
" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n"
" this.isLastNode = 1 \n"
" } \n"
" else \n"
" { \n"
" this.renderOb(leftSide + auxEv + \"<img name='nodeIcon\" + this.id + \"' src='ftv2mnode.png' width=16 height=22 border=0></a>\") \n"
" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n"
" this.isLastNode = 0 \n"
" } \n"
" else \n"
" this.renderOb(\"\") \n"
" \n"
" if (nc > 0) \n"
" { \n"
" level = level + 1 \n"
" for (i=0 ; i < this.nChildren; i++) \n"
" { \n"
" if (i == this.nChildren-1) \n"
" this.children[i].initialize(level, 1, leftSide) \n"
" else \n"
" this.children[i].initialize(level, 0, leftSide) \n"
" } \n"
" } \n"
"} \n"
" \n"
"function drawFolder(leftSide) \n"
"{ \n"
" if (browserVersion == 2) { \n"
" if (!doc.yPos) \n"
" doc.yPos=8 \n"
" doc.write(\"<layer id='folder\" + this.id + \"' top=\" + doc.yPos + \" visibility=hidden>\") \n"
" } \n"
" if (browserVersion == 3) \n"
" {\n"
" doc.write(\"<div id='folder\" + this.id + \"' style='visibility:hide;'>\") \n"
" }\n"
" \n"
" doc.write(\"\\n<table \") \n"
" if (browserVersion == 1) \n"
" doc.write(\" id='folder\" + this.id + \"' style='position:block;' \") \n"
" doc.write(\" border=0 cellspacing=0 cellpadding=0>\") \n"
" doc.write(\"\\n<tr><td>\") \n"
" doc.write(leftSide) \n"
" this.outputLink() \n"
" doc.write(\"<img name='folderIcon\" + this.id + \"' \") \n"
" doc.write(\"src='\" + this.iconSrc+\"' border=0></a>\") \n"
" doc.write(\"</td>\\n<td valign=middle nowrap>\") \n"
" if (USETEXTLINKS) \n"
" { \n"
" this.outputLink() \n"
" doc.write(this.desc + \"</a>\") \n"
" } \n"
" else \n"
" doc.write(this.desc) \n"
" if (this.tagName!=\"\")\n"
" {\n"
" doc.write(\" [external]\")\n"
" }\n"
" doc.write(\"</td>\") \n"
" doc.write(\"\\n</table>\\n\") \n"
" \n"
" if (browserVersion == 2) { \n"
" doc.write(\"</layer>\") \n"
" } \n"
" if (browserVersion == 3) { \n"
" doc.write(\"</div>\") \n"
" } \n"
" \n"
" if (browserVersion == 1) { \n"
" this.navObj = doc.all[\"folder\"+this.id] \n"
" this.iconImg = doc.all[\"folderIcon\"+this.id] \n"
" this.nodeImg = doc.all[\"nodeIcon\"+this.id] \n"
" } else if (browserVersion == 2) { \n"
" this.navObj = doc.layers[\"folder\"+this.id] \n"
" this.iconImg = this.navObj.document.images[\"folderIcon\"+this.id] \n"
" this.nodeImg = this.navObj.document.images[\"nodeIcon\"+this.id] \n"
" doc.yPos=doc.yPos+this.navObj.clip.height \n"
" } else if (browserVersion == 3) {\n"
" this.navObj = doc.getElementById(\"folder\"+this.id)\n"
" this.iconImg = doc.images.namedItem(\"folderIcon\"+this.id)\n"
" this.nodeImg = doc.images.namedItem(\"nodeIcon\"+this.id)\n"
" }\n"
"} \n"
" \n"
"function outputFolderLink() \n"
"{ \n"
" if (this.hreference) \n"
" { \n"
" doc.write(\"<a \")\n"
" if (this.tagName)\n"
" {\n"
" doc.write(\"doxygen='\" + this.tagName + \"' \");\n"
" }\n"
" doc.write(\"href='\" + this.hreference + \"' TARGET=\\\"basefrm\\\" \") \n"
" if (browserVersion > 0) \n"
" doc.write(\"onClick='javascript:clickOnFolder(\"+this.id+\")'\") \n"
" doc.write(\">\") \n"
" } \n"
" else \n"
" doc.write(\"<a>\") \n"
"} \n"
" \n"
"function addChild(childNode) \n"
"{ \n"
" this.children[this.nChildren] = childNode \n"
" this.nChildren++ \n"
" return childNode \n"
"} \n"
" \n"
"function folderSubEntries() \n"
"{ \n"
" var i = 0 \n"
" var se = this.nChildren \n"
" \n"
" for (i=0; i < this.nChildren; i++){ \n"
" if (this.children[i].children) //is a folder \n"
" se = se + this.children[i].subEntries() \n"
" } \n"
" \n"
" return se \n"
"} \n"
" \n"
" \n"
"// Definition of class Item (a document or link inside a Folder) \n"
"// ************************************************************* \n"
" \n"
"function Item(itemDescription, tagName, itemLink) // Constructor \n"
"{ \n"
" // constant data \n"
" this.desc = itemDescription \n"
" this.tagName = tagName\n"
" this.link = itemLink \n"
" this.id = -1 //initialized in initalize() \n"
" this.navObj = 0 //initialized in render() \n"
" this.iconImg = 0 //initialized in render() \n"
" this.iconSrc = \"ftv2doc.png\" \n"
" \n"
" // methods \n"
" this.initialize = initializeItem \n"
" this.createIndex = createEntryIndex \n"
" this.hide = hideItem \n"
" this.display = display \n"
" this.renderOb = drawItem \n"
" this.totalHeight = totalHeight \n"
"} \n"
" \n"
"function hideItem() \n"
"{ \n"
" if (browserVersion == 1 || browserVersion == 3) { \n"
" if (this.navObj.style.display == \"none\") \n"
" return \n"
" this.navObj.style.display = \"none\" \n"
" } else { \n"
" if (this.navObj.visibility == \"hidden\") \n"
" return \n"
" this.navObj.visibility = \"hidden\" \n"
" } \n"
"} \n"
" \n"
"function initializeItem(level, lastNode, leftSide) \n"
"{ \n"
" this.createIndex() \n"
" \n"
" if (level>0) \n"
" if (lastNode) //the last 'brother' in the children array \n"
" { \n"
" this.renderOb(leftSide + \"<img src='ftv2lastnode.png' width=16 height=22>\") \n"
" leftSide = leftSide + \"<img src='ftv2blank.png' width=16 height=22>\" \n"
" } \n"
" else \n"
" { \n"
" this.renderOb(leftSide + \"<img src='ftv2node.png' width=16 height=22>\") \n"
" leftSide = leftSide + \"<img src='ftv2vertline.png' width=16 height=22>\" \n"
" } \n"
" else \n"
" this.renderOb(\"\") \n"
"} \n"
" \n"
"function drawItem(leftSide) \n"
"{ \n"
" if (browserVersion == 2) \n"
" doc.write(\"<layer id='item\" + this.id + \"' top=\" + doc.yPos + \" visibility=hidden>\") \n"
" if (browserVersion == 3) \n"
" doc.write(\"<div id='item\" + this.id + \"' style='display:block;'>\") \n"
" \n"
" doc.write(\"\\n<table \") \n"
" if (browserVersion == 1) \n"
" doc.write(\" id='item\" + this.id + \"' style='position:block;' \") \n"
" doc.write(\" border=0 cellspacing=0 cellpadding=0>\\n\") \n"
" doc.write(\"<tr><td>\") \n"
" doc.write(leftSide) \n"
" if (this.link!=\"\")\n"
" {\n"
" doc.write(\"<a href=\" + this.link + \">\") \n"
" }\n"
" doc.write(\"<img id='itemIcon\"+this.id+\"' \") \n"
" doc.write(\"src='\"+this.iconSrc+\"' border=0>\") \n"
" if (this.link!=\"\")\n"
" {\n"
" doc.write(\"</a>\")\n"
" } \n"
" doc.write(\"</td>\\n<td valign=middle nowrap>\") \n"
" if (USETEXTLINKS && this.link!=\"\") \n"
" doc.write(\"<a href=\" + this.link + \">\" + this.desc + \"</a>\") \n"
" else \n"
" doc.write(this.desc) \n"
" if (this.tagName!=\"\")\n"
" {\n"
" doc.write(\" [external]\");\n"
" }\n"
" doc.write(\"\\n</table>\\n\") \n"
" \n"
" if (browserVersion == 2) \n"
" doc.write(\"</layer>\") \n"
" if (browserVersion == 3) \n"
" doc.write(\"</div>\")\n"
" \n"
" if (browserVersion == 1) { \n"
" this.navObj = doc.all[\"item\"+this.id] \n"
" this.iconImg = doc.all[\"itemIcon\"+this.id] \n"
" } else if (browserVersion == 2) { \n"
" this.navObj = doc.layers[\"item\"+this.id] \n"
" this.iconImg = this.navObj.document.images[\"itemIcon\"+this.id] \n"
" doc.yPos=doc.yPos+this.navObj.clip.height \n"
" } else if (browserVersion == 3) {\n"
" this.navObj = doc.getElementById(\"item\"+this.id)\n"
" this.iconImg = doc.images.namedItem(\"itemIcon\"+this.id)\n"
" }\n"
"} \n"
" \n"
" \n"
"// Methods common to both objects (pseudo-inheritance) \n"
"// ******************************************************** \n"
" \n"
"function display() \n"
"{ \n"
" if (browserVersion == 1 || browserVersion == 3) \n"
" this.navObj.style.display = \"block\" \n"
" else \n"
" this.navObj.visibility = \"show\" \n"
"} \n"
" \n"
"function createEntryIndex() \n"
"{ \n"
" this.id = nEntries \n"
" indexOfEntries[nEntries] = this \n"
" nEntries++ \n"
"} \n"
" \n"
"// total height of subEntries open \n"
"function totalHeight() //used with browserVersion == 2 \n"
"{ \n"
" var h = this.navObj.clip.height \n"
" var i = 0 \n"
" \n"
" if (this.isOpen) //is a folder and _is_ open \n"
" for (i=0 ; i < this.nChildren; i++) \n"
" h = h + this.children[i].totalHeight() \n"
" \n"
" return h \n"
"} \n"
" \n"
" \n"
"// Events \n"
"// ********************************************************* \n"
" \n"
"function clickOnFolder(folderId) \n"
"{ \n"
" var clicked = indexOfEntries[folderId] \n"
" \n"
" if (!clicked.isOpen) \n"
" clickOnNode(folderId) \n"
" \n"
" return \n"
" \n"
" if (clicked.isSelected) \n"
" return \n"
"} \n"
" \n"
"function clickOnNode(folderId) \n"
"{ \n"
" var clickedFolder = 0 \n"
" var state = 0 \n"
" \n"
" clickedFolder = indexOfEntries[folderId] \n"
" state = clickedFolder.isOpen \n"
" \n"
" clickedFolder.setState(!state) //open<->close \n"
"} \n"
" \n"
"function initializeDocument() \n"
"{ \n"
" doc = document;\n"
" if (doc.all) \n"
" browserVersion = 1 //IE4 \n"
" else \n"
" if (doc.layers) \n"
" browserVersion = 2 //NS4 \n"
" else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)\n"
" browserVersion = 3 //mozilla\n"
" else \n"
" browserVersion = 0 //other \n"
"\n"
" foldersTree.initialize(0, 1, \"\") \n"
" foldersTree.display()\n"
" \n"
" if (browserVersion > 0) \n"
" { \n"
" if(browserVersion != 3)\n"
" doc.write(\"<layer top=\"+indexOfEntries[nEntries-1].navObj.top+\">&nbsp;</layer>\") \n"
" \n"
" // close the whole tree \n"
" clickOnNode(0) \n"
" // open the root folder \n"
" clickOnNode(0) \n"
" } \n"
"} \n"
" \n"
"// Auxiliary Functions for Folder-Treee backward compatibility \n"
"// ********************************************************* \n"
" \n"
"function gFld(description, tagName, hreference) \n"
"{ \n"
" folder = new Folder(description, tagName, hreference) \n"
" return folder \n"
"} \n"
" \n"
"function gLnk(description, tagName, linkData) \n"
"{ \n"
" fullLink = \"\" \n"
" \n"
" if (linkData!=\"\")\n"
" {\n"
" fullLink = \"'\"+linkData+\"' target=\\\"basefrm\\\"\" \n"
" } \n"
" \n"
" linkItem = new Item(description, tagName, fullLink) \n"
" return linkItem \n"
"} \n"
" \n"
"function insFld(parentFolder, childFolder) \n"
"{ \n"
" return parentFolder.addChild(childFolder) \n"
"} \n"
" \n"
"function insDoc(parentFolder, document) \n"
"{ \n"
" parentFolder.addChild(document) \n"
"} \n"
" \n"
"// Global variables \n"
"// **************** \n"
" \n"
"USETEXTLINKS = 1\n"
"indexOfEntries = new Array \n"
"nEntries = 0 \n"
"doc = document \n"
"browserVersion = 0 \n"
"selectedFolder=0\n"
//****************************************************************
// You are free to copy the "Folder-Tree" script as long as you
// keep this copyright notice:
// Script found in: http://www.geocities.com/Paris/LeftBank/2178/
// Author: Marcelino Alves Martins (martins@hks.com) December '97.
//****************************************************************
//Log of changes:
// 17 Feb 98 - Fix initialization flashing problem with Netscape
//
// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS;
// make the ftien4 a js file
//
// DvH: Dec 2000 - Made some minor changes to support external
// references
// Definition of class Folder
// *****************************************************************
function Folder(folderDescription, tagName, hreference) //constructor
{
//constant data
this.desc = folderDescription
this.tagName = tagName
this.hreference = hreference
this.id = -1
this.navObj = 0
this.iconImg = 0
this.nodeImg = 0
this.isLastNode = 0
//dynamic data
this.isOpen = true
this.iconSrc = "ftv2folderopen.png"
this.children = new Array
this.nChildren = 0
//methods
this.initialize = initializeFolder
this.setState = setStateFolder
this.addChild = addChild
this.createIndex = createEntryIndex
this.hide = hideFolder
this.display = display
this.renderOb = drawFolder
this.totalHeight = totalHeight
this.subEntries = folderSubEntries
this.outputLink = outputFolderLink
}
function setStateFolder(isOpen)
{
var subEntries
var totalHeight
var fIt = 0
var i=0
if (isOpen == this.isOpen)
return
if (browserVersion == 2)
{
totalHeight = 0
for (i=0; i < this.nChildren; i++)
totalHeight = totalHeight + this.children[i].navObj.clip.height
subEntries = this.subEntries()
if (this.isOpen)
totalHeight = 0 - totalHeight
for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++)
indexOfEntries[fIt].navObj.moveBy(0, totalHeight)
}
this.isOpen = isOpen
propagateChangesInState(this)
}
function propagateChangesInState(folder)
{
var i=0
if (folder.isOpen)
{
if (folder.nodeImg)
if (folder.isLastNode)
folder.nodeImg.src = "ftv2mlastnode.png"
else
folder.nodeImg.src = "ftv2mnode.png"
folder.iconImg.src = "ftv2folderopen.png"
for (i=0; i<folder.nChildren; i++)
folder.children[i].display()
}
else
{
if (folder.nodeImg)
if (folder.isLastNode)
folder.nodeImg.src = "ftv2plastnode.png"
else
folder.nodeImg.src = "ftv2pnode.png"
folder.iconImg.src = "ftv2folderclosed.png"
for (i=0; i<folder.nChildren; i++)
folder.children[i].hide()
}
}
function hideFolder()
{
if (browserVersion == 1 || browserVersion == 3) {
if (this.navObj.style.display == "none")
return
this.navObj.style.display = "none"
} else {
if (this.navObj.visibility == "hidden")
return
this.navObj.visibility = "hidden"
}
this.setState(0)
}
function initializeFolder(level, lastNode, leftSide)
{
var j=0
var i=0
var numberOfFolders
var numberOfDocs
var nc
nc = this.nChildren
this.createIndex()
var auxEv = ""
if (browserVersion > 0)
auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
else
auxEv = "<a>"
if (level>0)
if (lastNode) //the last 'brother' in the children array
{
this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>")
leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
this.isLastNode = 1
}
else
{
this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>")
leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
this.isLastNode = 0
}
else
this.renderOb("")
if (nc > 0)
{
level = level + 1
for (i=0 ; i < this.nChildren; i++)
{
if (i == this.nChildren-1)
this.children[i].initialize(level, 1, leftSide)
else
this.children[i].initialize(level, 0, leftSide)
}
}
}
function drawFolder(leftSide)
{
if (browserVersion == 2) {
if (!doc.yPos)
doc.yPos=8
doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
}
if (browserVersion == 3)
{
doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>")
}
doc.write("\n<table ")
if (browserVersion == 1)
doc.write(" id='folder" + this.id + "' style='position:block;' ")
doc.write(" border=0 cellspacing=0 cellpadding=0>")
doc.write("\n<tr><td>")
doc.write(leftSide)
this.outputLink()
doc.write("<img name='folderIcon" + this.id + "' ")
doc.write("src='" + this.iconSrc+"' border=0></a>")
doc.write("</td>\n<td valign=middle nowrap>")
if (USETEXTLINKS)
{
this.outputLink()
doc.write(this.desc + "</a>")
}
else
doc.write(this.desc)
if (this.tagName!="")
{
doc.write(" [external]")
}
doc.write("</td>")
doc.write("\n</table>\n")
if (browserVersion == 2) {
doc.write("</layer>")
}
if (browserVersion == 3) {
doc.write("</div>")
}
if (browserVersion == 1) {
this.navObj = doc.all["folder"+this.id]
this.iconImg = doc.all["folderIcon"+this.id]
this.nodeImg = doc.all["nodeIcon"+this.id]
} else if (browserVersion == 2) {
this.navObj = doc.layers["folder"+this.id]
this.iconImg = this.navObj.document.images["folderIcon"+this.id]
this.nodeImg = this.navObj.document.images["nodeIcon"+this.id]
doc.yPos=doc.yPos+this.navObj.clip.height
} else if (browserVersion == 3) {
this.navObj = doc.getElementById("folder"+this.id)
this.iconImg = doc.images.namedItem("folderIcon"+this.id)
this.nodeImg = doc.images.namedItem("nodeIcon"+this.id)
}
}
function outputFolderLink()
{
if (this.hreference)
{
doc.write("<a ")
if (this.tagName)
{
doc.write("doxygen='" + this.tagName + "' ");
}
doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ")
if (browserVersion > 0)
doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
doc.write(">")
}
else
doc.write("<a>")
}
function addChild(childNode)
{
this.children[this.nChildren] = childNode
this.nChildren++
return childNode
}
function folderSubEntries()
{
var i = 0
var se = this.nChildren
for (i=0; i < this.nChildren; i++){
if (this.children[i].children) //is a folder
se = se + this.children[i].subEntries()
}
return se
}
// Definition of class Item (a document or link inside a Folder)
// *************************************************************
function Item(itemDescription, tagName, itemLink) // Constructor
{
// constant data
this.desc = itemDescription
this.tagName = tagName
this.link = itemLink
this.id = -1 //initialized in initalize()
this.navObj = 0 //initialized in render()
this.iconImg = 0 //initialized in render()
this.iconSrc = "ftv2doc.png"
// methods
this.initialize = initializeItem
this.createIndex = createEntryIndex
this.hide = hideItem
this.display = display
this.renderOb = drawItem
this.totalHeight = totalHeight
}
function hideItem()
{
if (browserVersion == 1 || browserVersion == 3) {
if (this.navObj.style.display == "none")
return
this.navObj.style.display = "none"
} else {
if (this.navObj.visibility == "hidden")
return
this.navObj.visibility = "hidden"
}
}
function initializeItem(level, lastNode, leftSide)
{
this.createIndex()
if (level>0)
if (lastNode) //the last 'brother' in the children array
{
this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>")
leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
}
else
{
this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>")
leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
}
else
this.renderOb("")
}
function drawItem(leftSide)
{
if (browserVersion == 2)
doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
if (browserVersion == 3)
doc.write("<div id='item" + this.id + "' style='display:block;'>")
doc.write("\n<table ")
if (browserVersion == 1)
doc.write(" id='item" + this.id + "' style='position:block;' ")
doc.write(" border=0 cellspacing=0 cellpadding=0>\n")
doc.write("<tr><td>")
doc.write(leftSide)
if (this.link!="")
{
doc.write("<a href=" + this.link + ">")
}
doc.write("<img id='itemIcon"+this.id+"' ")
doc.write("src='"+this.iconSrc+"' border=0>")
if (this.link!="")
{
doc.write("</a>")
}
doc.write("</td>\n<td valign=middle nowrap>")
if (USETEXTLINKS && this.link!="")
doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
else
doc.write(this.desc)
if (this.tagName!="")
{
doc.write(" [external]");
}
doc.write("\n</table>\n")
if (browserVersion == 2)
doc.write("</layer>")
if (browserVersion == 3)
doc.write("</div>")
if (browserVersion == 1) {
this.navObj = doc.all["item"+this.id]
this.iconImg = doc.all["itemIcon"+this.id]
} else if (browserVersion == 2) {
this.navObj = doc.layers["item"+this.id]
this.iconImg = this.navObj.document.images["itemIcon"+this.id]
doc.yPos=doc.yPos+this.navObj.clip.height
} else if (browserVersion == 3) {
this.navObj = doc.getElementById("item"+this.id)
this.iconImg = doc.images.namedItem("itemIcon"+this.id)
}
}
// Methods common to both objects (pseudo-inheritance)
// ********************************************************
function display()
{
if (browserVersion == 1 || browserVersion == 3)
this.navObj.style.display = "block"
else
this.navObj.visibility = "show"
}
function createEntryIndex()
{
this.id = nEntries
indexOfEntries[nEntries] = this
nEntries++
}
// total height of subEntries open
function totalHeight() //used with browserVersion == 2
{
var h = this.navObj.clip.height
var i = 0
if (this.isOpen) //is a folder and _is_ open
for (i=0 ; i < this.nChildren; i++)
h = h + this.children[i].totalHeight()
return h
}
// Events
// *********************************************************
function clickOnFolder(folderId)
{
var clicked = indexOfEntries[folderId]
if (!clicked.isOpen)
clickOnNode(folderId)
return
if (clicked.isSelected)
return
}
function clickOnNode(folderId)
{
var clickedFolder = 0
var state = 0
clickedFolder = indexOfEntries[folderId]
state = clickedFolder.isOpen
clickedFolder.setState(!state) //open<->close
}
function initializeDocument()
{
doc = document;
if (doc.all)
browserVersion = 1 //IE4
else
if (doc.layers)
browserVersion = 2 //NS4
else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
browserVersion = 3 //mozilla
else
browserVersion = 0 //other
foldersTree.initialize(0, 1, "")
foldersTree.display()
if (browserVersion > 0)
{
if(browserVersion != 3)
doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
// close the whole tree
clickOnNode(0)
// open the root folder
clickOnNode(0)
}
}
// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************
function gFld(description, tagName, hreference)
{
folder = new Folder(description, tagName, hreference)
return folder
}
function gLnk(description, tagName, linkData)
{
fullLink = ""
if (linkData!="")
{
fullLink = "'"+linkData+"' target=\"basefrm\""
}
linkItem = new Item(description, tagName, fullLink)
return linkItem
}
function insFld(parentFolder, childFolder)
{
return parentFolder.addChild(childFolder)
}
function insDoc(parentFolder, document)
{
parentFolder.addChild(document)
}
// Global variables
// ****************
USETEXTLINKS = 1
indexOfEntries = new Array
nEntries = 0
doc = document
browserVersion = 0
selectedFolder=0
...@@ -98,7 +98,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile) ...@@ -98,7 +98,7 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
if (command==0) return 1; if (command==0) return 1;
//#ifdef _OS_SOLARIS_ #ifdef _OS_SOLARIS // for Solaris we use vfork since it is more memory efficient
// on Solaris fork() duplicates the memory usage // on Solaris fork() duplicates the memory usage
// so we use vfork instead // so we use vfork instead
...@@ -131,38 +131,36 @@ int iSystem(const char *command,const char *args,bool isBatchFile) ...@@ -131,38 +131,36 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
} }
return status; return status;
//#else /* Other unices where clients do copy on demand for the parent's pages #else // Other Unices just use fork
// * when forked.
// */ pid = fork();
// if (pid==-1) return -1;
// pid = fork(); if (pid==0)
// if (pid==-1) return -1; {
// if (pid==0) char buf[4096];
// { strcpy(buf,command);
// char buf[4096]; strcat(buf," ");
// strcpy(buf,command); strcat(buf,args);
// strcat(buf," "); const char * argv[4];
// strcat(buf,args); argv[0] = "sh";
// const char * argv[4]; argv[1] = "-c";
// argv[0] = "sh"; argv[2] = buf;
// argv[1] = "-c"; argv[3] = 0;
// argv[2] = buf; execve("/bin/sh",(char * const *)argv,environ);
// argv[3] = 0; exit(127);
// execve("/bin/sh",(char * const *)argv,environ); }
// exit(127); for (;;)
// } {
// for (;;) if (waitpid(pid,&status,0)==-1)
// { {
// if (waitpid(pid,&status,0)==-1) if (errno!=EINTR) return -1;
// { }
// if (errno!=EINTR) return -1; else
// } {
// else return status;
// { }
// return status; }
// } #endif // _OS_SOLARIS
// }
//#endif
#else #else
if (isBatchFile) if (isBatchFile)
......
...@@ -510,10 +510,17 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De ...@@ -510,10 +510,17 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
ArgumentList *al = md->argumentList(); ArgumentList *al = md->argumentList();
t << " const=\""; t << " const=\"";
if (al && al->constSpecifier) t << "yes"; else t << "no"; if (al && al->constSpecifier) t << "yes"; else t << "no";
t << "\" volatile=\""; t << "\"";
}
if (md->memberType() == MemberDef::Variable)
{
ArgumentList *al = md->argumentList();
t << " volatile=\"";
if (al && al->volatileSpecifier) t << "yes"; else t << "no"; if (al && al->volatileSpecifier) t << "yes"; else t << "no";
t << "\""; t << "\"";
} }
t << ">" << endl; t << ">" << endl;
if (md->memberType()!=MemberDef::Define && if (md->memberType()!=MemberDef::Define &&
......
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