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);
......
...@@ -549,6 +549,13 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children, ...@@ -549,6 +549,13 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
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:
if (g_insideHtmlLink)
{
children.append(new DocWord(parent,g_token->name));
}
else
{
children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr));
}
break; break;
default: default:
return FALSE; return FALSE;
...@@ -1347,7 +1365,8 @@ void DocXRefItem::parse() ...@@ -1347,7 +1365,8 @@ 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_file = refList->listName();
m_anchor = item->listAnchor; m_anchor = item->listAnchor;
m_title = refList->sectionTitle(); m_title = refList->sectionTitle();
...@@ -1359,6 +1378,7 @@ void DocXRefItem::parse() ...@@ -1359,6 +1378,7 @@ void DocXRefItem::parse()
docParserPopContext(); 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)
{ {
if (!fd->visited) fd->addIncludedUsingDirectives(); //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; visited=TRUE;
//printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data());
NamespaceList nl; NamespaceList nl;
if (includeList) // file contains #includes 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 \
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
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)
{ {
......
...@@ -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 -*-*/
/****************************************************************************** /******************************************************************************
* *
* *
...@@ -15,29 +16,62 @@ ...@@ -15,29 +16,62 @@
* *
*/ */
/* 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
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! (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:
...@@ -52,12 +86,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -52,12 +86,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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,17 +121,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -76,17 +121,19 @@ 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()
...@@ -95,13 +142,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -95,13 +142,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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 {
else return "Dokumentation af feltvariable";
{ //medlems-data";
return "Dokumentation af medlems-data";
} }
} }
...@@ -119,7 +164,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -119,7 +164,7 @@ 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()
...@@ -137,11 +182,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -137,11 +182,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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()
...@@ -162,23 +207,20 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -162,23 +207,20 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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()
...@@ -189,20 +231,18 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -189,20 +231,18 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
} }
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";
} }
} }
...@@ -237,13 +277,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -237,13 +277,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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 {
else return "Her er klasserne, datastrukturerne, "
{
return "Her er klasserne, strukturerne, "
"unionerne og grænsefladerne med korte beskrivelser:"; "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;
...@@ -296,26 +320,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -296,26 +320,23 @@ 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()
...@@ -346,26 +367,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -346,26 +367,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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";
} }
} }
...@@ -373,7 +391,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -373,7 +391,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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,7 +431,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -407,7 +431,7 @@ 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
...@@ -425,7 +449,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -425,7 +449,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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
...@@ -443,7 +467,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -443,7 +467,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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
...@@ -451,10 +475,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -451,10 +475,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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
*/ */
...@@ -465,13 +485,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -465,13 +485,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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
...@@ -502,13 +522,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -502,13 +522,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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 {
else return "Sammensatte typer";
{
return "Compounds";
} }
} }
...@@ -532,7 +549,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -532,7 +549,7 @@ 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. */
...@@ -541,7 +558,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -541,7 +558,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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"; }
...@@ -590,7 +603,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -590,7 +603,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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)
...@@ -615,7 +628,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -615,7 +628,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* 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,30 +665,30 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -652,30 +665,30 @@ 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,18 +698,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -685,18 +698,16 @@ 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;
...@@ -707,7 +718,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -707,7 +718,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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,7 +726,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -715,7 +726,7 @@ 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
...@@ -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. */
...@@ -747,20 +758,20 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -747,20 +758,20 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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;
} }
...@@ -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,7 +929,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -916,7 +929,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
} }
virtual QCString trPageIndex() virtual QCString trPageIndex()
{ {
return "Page Index"; return "Sideindeks";
} }
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
...@@ -929,46 +942,43 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -929,46 +942,43 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
} }
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,11 +1010,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1000,11 +1010,12 @@ 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
"Denne graf viser, hvilke filer der direkte eller "
"indirekte inkluderer denne fil:"; "indirekte inkluderer denne fil:";
} }
virtual QCString trSince() virtual QCString trSince()
...@@ -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 */
...@@ -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,22 +1172,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1153,22 +1172,24 @@ 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()
...@@ -1183,7 +1204,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1183,7 +1204,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! 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,7 +1216,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1195,7 +1216,14 @@ 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";
...@@ -1219,10 +1247,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1219,10 +1247,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1231,9 +1260,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1231,9 +1260,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1242,9 +1272,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1242,9 +1272,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1253,9 +1284,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1253,9 +1284,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1264,9 +1296,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1264,9 +1296,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1275,9 +1308,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1275,9 +1308,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1286,9 +1320,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1286,9 +1320,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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
...@@ -1297,11 +1332,112 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ...@@ -1297,11 +1332,112 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/ */
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