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
(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.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
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
virtual bool isProtected() const = 0;
};
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator
{
public:
......
......@@ -727,6 +727,12 @@ class ISection
virtual bool isProtected() const = 0;
};
class IUserDefined : public ISection
{
public:
virtual const IString * header() const = 0;
};
class ISectionIterator
{
public:
......
......@@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent)
m_members.setAutoDelete(TRUE);
addEndHandler("sectiondef",this,&SectionHandler::endSection);
addStartHandler("memberdef",this,&SectionHandler::startMember);
addStartHandler("header",this,&SectionHandler::startHeader);
addEndHandler("header",this,&SectionHandler::endHeader);
}
SectionHandler::~SectionHandler()
......@@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib)
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)
{
QListIterator<MemberHandler> mli(m_members);
......
......@@ -34,12 +34,14 @@ class SectionIterator :
};
class SectionHandler : public ISection, public BaseHandler<SectionHandler>
class SectionHandler : public IUserDefined, public BaseHandler<SectionHandler>
{
public:
virtual void startMember(const QXmlAttributes& attrib);
virtual void startHeader(const QXmlAttributes& attrib);
virtual void startSection(const QXmlAttributes& attrib);
virtual void endSection();
virtual void endHeader();
SectionHandler(IBaseHandler *parent);
virtual ~SectionHandler();
......@@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
void initialize(CompoundHandler *c);
// IUserDefined implementation
virtual const IString *header() const
{
return &m_header;
}
private:
IBaseHandler *m_parent;
SectionKind m_kind;
StringImpl m_kindString;
StringImpl m_header;
QList<MemberHandler> m_members;
};
......
......@@ -565,6 +565,11 @@ int main(int argc,char **argv)
printf(" Section kind=%s\n",sec->kindString()->latin1());
IMemberIterator *mli = sec->members();
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())
{
ILinkedTextIterator *lti = mem->type();
......
......@@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc
EOF
fi
#if test "$f_platform" = "win32-g++"; then
# cat >> .tmakeconfig <<EOF
# TMAKE_LFLAGS += -D_WIN32
#EOF
#fi
if test "$f_english" = YES; then
cat >> .tmakeconfig <<EOF
TMAKE_CXXFLAGS += -DENGLISH_ONLY
......
......@@ -417,6 +417,8 @@ function's detailed documentation block.
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
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
<dt>\c DETAILS_AT_TOP <dd>
......
......@@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already.
This section is divided into the following sections:
<ul>
<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 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"
</ul>
......@@ -158,7 +158,7 @@ Compilation is now done by performing the following steps:
</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>
to install doxygen. If you downloaded the binary distribution for Unix,
......@@ -540,7 +540,7 @@ Compilation is now done by performing the following steps:
documentation can be generated.
</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
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
that the text fragments that doxygen generates can be produced in
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):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
......
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3_rc3
Version: 1.3_rc3_20030215
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -128,6 +128,8 @@
#define _OS_UNIXWARE7_
#elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__)
#define _OS_UNIXWARE7_
#elif defined(__CYGWIN__)
#define _OS_CYGWIN_
#else
#error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
#endif
......
......@@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \
INCLUDEPATH = .
TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE
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
DESTDIR = ../lib
......@@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned"
addType();
g_code->codify(yytext);
}
<ClassName>{ID} {
<ClassName>{ID}("::"{ID})* {
g_curClassName=yytext;
addType();
generateClassOrGlobalLink(*g_code,yytext);
......
......@@ -549,6 +549,13 @@ static int handleStyleArgument(DocNode *parent,QList<DocNode> &children,
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))
{
switch (tok)
......@@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList<DocNode> &children
DBG((" name=%s",g_token->name.data()));
}
DBG(("\n"));
reparsetoken:
QString tokenName = g_token->name;
switch (tok)
{
......@@ -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));
tok=handleStyleArgument(parent,children,tokenName);
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;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_BOLD:
......@@ -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));
tok=handleStyleArgument(parent,children,tokenName);
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;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_CODE:
......@@ -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));
tok=handleStyleArgument(parent,children,tokenName);
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;
else if (tok==TK_WORD) goto reparsetoken;
}
break;
case CMD_HTMLONLY:
......@@ -1001,7 +1012,14 @@ handlepara:
return FALSE;
break;
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));
}
break;
default:
return FALSE;
......@@ -1347,7 +1365,8 @@ void DocXRefItem::parse()
{
RefItem *item = refList->getRefItem(m_id);
ASSERT(item!=0);
if (item)
{
m_file = refList->listName();
m_anchor = item->listAnchor;
m_title = refList->sectionTitle();
......@@ -1359,6 +1378,7 @@ void DocXRefItem::parse()
docParserPopContext();
}
}
}
}
//---------------------------------------------------------------------------
......@@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName)
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
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;
case CMD_BOLD:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
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;
case CMD_CODE:
m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE));
retval=handleStyleArgument(this,m_children,cmdName);
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;
case CMD_BSLASH:
m_children.append(new DocSymbol(this,DocSymbol::BSlash));
......@@ -4255,7 +4275,7 @@ reparsetoken:
// the command ended normally, keep scanner for new tokens.
retval = 0;
}
else if (retval==TK_LISTITEM || retval==TK_ENDLIST)
else if (retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_WORD)
{
tok = retval;
goto reparsetoken;
......
......@@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives()
{
fd->visited=FALSE;
}
fn=Doxygen::inputNameList.next();
}
// then recursively add using directives found in #include files
// to files that have not been visited.
......@@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives()
{
FileNameIterator fni(*fn);
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,
{
Debug::print(Debug::FindMembers,0,
"1. funcName=`%s'\n",funcName.data());
if (funcName.left(9)=="operator ")
{
funcName = substitute(funcName,className+"::","");
}
if (!funcTempList.isEmpty()) // try with member specialization
{
mn=Doxygen::memberNameSDict[funcName+funcTempList];
......@@ -4677,9 +4683,10 @@ static void findMember(Entry *root,
{
warn_cont("%s ",md->typeString());
}
warn_cont("%s::%s%s\n",
cd->qualifiedNameWithTemplateParameters().data(),
md->name().data(),md->argsString());
QCString qScope = cd->qualifiedNameWithTemplateParameters();
if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data());
if (md->argsString()) warn_cont("%s",md->argsString());
warn_cont("\n");
}
}
}
......
......@@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib shell32.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:TMAKE_CXXFLAGS += -D_WIN32
INCLUDEPATH += ../qtools
OBJECTS_DIR = ../objects
TARGET = ../bin/doxytag
......@@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local)
void FileDef::addIncludedUsingDirectives()
{
if (!visited)
{
if (visited) return;
visited=TRUE;
//printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data());
NamespaceList nl;
if (includeList) // file contains #includes
{
{
QListIterator<IncludeInfo> iii(*includeList);
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
ii->fileDef->addIncludedUsingDirectives();
}
}
}
{
QListIterator<IncludeInfo> iii(*includeList);
IncludeInfo *ii;
// iterate through list from last to first
for (iii.toLast();(ii=iii.current());--iii)
{
if (ii->fileDef)
if (ii->fileDef && ii->fileDef!=this)
{
NamespaceList *unl = ii->fileDef->usingDirList;
if (unl)
......@@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives()
{
// append each using directive found in a #include file
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);
}
}
}
}
}
// add elements of nl to usingDirList
}
//printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data());
}
......
......@@ -111,7 +111,6 @@ HEADERS = bufstr.h \
translator_sr.h \
translator_tw.h \
translator_ua.h \
treeview.h \
unistd.h \
util.h \
version.h \
......
......@@ -18,6 +18,8 @@
LEX = flex
YACC = bison
PERL = perl
INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;"
#${
sub GenerateDep {
......@@ -45,13 +47,13 @@ sub GenerateDep {
####################
#$ 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");
$(LEX) -PcodeYY -t code.l >code.cpp
$(LEX) -PcodeYY -t code.l | $(INCBUFSIZE) >code.cpp
#$ 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");
$(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp
......@@ -75,6 +77,6 @@ sub GenerateDep {
$(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c
-rm ce_parse.c
treeview.h: treeview.js
cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h
#treeview.h: treeview.js
# 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}"'"))
g_defLitText+=' ';
BEGIN(SkipCPPComment);
}
<SkipCComment>"*/" {
<SkipCComment>[/]?"*/" {
if (yytext[0]=='/') outputChar('/');
outputChar('*');outputChar('/');
if (--g_commentCount<=0)
{
......
......@@ -181,6 +181,7 @@ static void initParser()
insideTryBlock = FALSE;
autoGroupStack.setAutoDelete(TRUE);
lastDefGroup.groupname.resize(0);
insideFormula = FALSE;
}
static void initEntry()
......@@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<FindMembers>{B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface
lineCount();
if (insideIDL || insideJava)
if (insideIDL || insideJava || insideCS)
{
isTypedef=FALSE;
current->section = Entry::INTERFACE_SEC;
......@@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<ReadFormulaShort>\n {
formulaText+=" ";
yyLineNr++;
if (lastFormulaContext==LineDoc ||
lastFormulaContext==AfterDocLine
)
......@@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
insideFormula=FALSE;
BEGIN(lastFormulaContext);
}
<ReadFormulaLong>\n { formulaText+=*yytext; }
<ReadFormulaLong>\n { formulaText+=*yytext; yyLineNr++; }
<ReadFormulaLong,ReadFormulaShort>. { formulaText+=*yytext; }
<ExampleDoc,PageDoc,ClassDocBrief,ClassDoc,ReadFormulaShort,ReadFormulaLong>{B}*"*/" {
checkDocs();
......@@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
}
<ClassDocBrief>"<"{BR}{ATTR}">"
<ClassDocBrief>{BS}/{SECTIONCMD} {
<ClassDocBrief>{BS}/{SECTIONCMD} |
<ClassDocBrief>{B}*/{SECTIONCMD} {
current->brief=current->brief.stripWhiteSpace();
BEGIN( lastBriefContext );
}
......@@ -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 {
current->doc += yytext;
yyLineNr++;
}
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ {
current->brief += "-";
}
<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}*)?)"*"+{B}+ {
......
/*-*- c-basic-offset: 2 -*-*/
/******************************************************************************
*
*
......@@ -15,29 +16,62 @@
*
*/
/* OBS!
Til danskere og andet godtfolk:
Jeg har været i tvivl om (i hvert fald) følgende ord:
- Member
- Compound
- Namespace
- Interface
/*
* Danish translation by
* Erik Søe Sørensen <eriksoe@daimi.au.dk>
*
* First version (not complete) for Doxygen 1.2.7
* Extended and revised for Doxygen 1.3
*/
Jeg har besluttet (indtil videre) at lade følgende ord stå som de er,
da jeg selv overvejende bruger det engelske udtryk:
- Interface
- Typedef
- Union
(union ved jeg ikke engang, hvad jeg skal kalde på dansk...
udover måske 'union')
/* Translator's notes:
Oversættelseskonventioner:
(Konventioner for konventioner:
'?' angiver oversættelser, jeg har været i tvivl om
'??' angiver tvivlsomme oversættelser
'..?' 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!
-- Erik Søe Sørensen <eriksoe@daimi.au.dk>
*/
#ifndef TRANSLATOR_DK_H
#define TRANSLATOR_DK_H
class TranslatorDanish : public TranslatorAdapter_1_2_7
class TranslatorDanish : public Translator
{
public:
......@@ -52,12 +86,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString idLanguage()
{ return "danish"; }
/*! Used to get the LaTeX command(s) for the language support. This method
* was designed for languages which do wish to use a babel package.
/*! Used to get the LaTeX command(s) for the language support.
* This method should return string with commands that switch
* LaTeX to the desired language. For example
* <pre>"\\usepackage[german]{babel}\n"
* </pre>
* or
* <pre>"\\usepackage{polski}\n"
* "\\usepackage[latin2]{inputenc}\n"
* "\\usepackage[T1]{fontenc}\n"
* </pre>
*/
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 */
......@@ -76,17 +121,19 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trRelatedSubscript()
{ 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()
{ return "Detaljeret beskrivelse"; }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
{ return "Dokumentation af medlems-typedefs"; }
{ return "Dokumentation af medlems-typedefinitioner"; }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
{ return "Dokumentation af medlems-enumerationer"; }
// medlems-enumerationer -> 'indeholdte enumerationer'
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
......@@ -95,13 +142,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Felt-dokumentation";
}
else
{
return "Dokumentation af medlems-data";
} else {
return "Dokumentation af feltvariable";
//medlems-data";
}
}
......@@ -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 */
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 */
virtual QCString trIncludingInheritedMembers()
......@@ -137,11 +182,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
{ return "enum-navn"; }
{ return "enumerationsnavn"; }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
{ return "enum-værdi"; }
{ return "enumerationsværdi"; }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
......@@ -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 */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Datastrukturer";
}
else
{
return "Compound List";
} else {
return "Oversigt over sammensatte typer";
}
}
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
{ return "Filliste"; }
{ return "Filoversigt"; }
/*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles()
{ return "Header-filer"; }
{ return "Headerfiler"; }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
......@@ -189,20 +231,18 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
}
else
{
return "Compound Members";
return "Felter i sammensatte typer";
}
}
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Globale";
}
else
{
return "Fil-medlemmer";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Globale symboler";
} else {
return "Placering i filer"; // Fil-medlemmer"; //TODO
//"Globale definitioner" ?
}
}
......@@ -237,13 +277,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trCompoundListDescription()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Her er datastrukturerne med korte beskrivelser:";
}
else
{
return "Her er klasserne, strukturerne, "
} else {
return "Her er klasserne, datastrukturerne, "
"unionerne og grænsefladerne med korte beskrivelser:";
}
}
......@@ -252,39 +289,26 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result="Her er en liste over alle ";
if (!extractAll)
{
if (!extractAll) {
result+="dokumenterede ";
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="felter i strukturer og unioner";
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
result+="felter i datastrukturer og unioner";
} else {
result+="klassemedlemmer";
}
result+=" med links til ";
if (!extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="struktur/unions-dokumentationen for hvert felt:";
}
else
{
if (!extractAll) {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
result+="datastruktur/unions-dokumentationen for hvert felt:";
} else {
result+="klassedokumentationen for hvert medlem:";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="de strukturer/unioner de hører til:";
}
else
{
result+="de klasser de hører til:";
} else {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
result+="de datastrukturer/unioner, de hører til:";
} else {
result+="de klasser, de hører til:";
}
}
return result;
......@@ -296,26 +320,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
QCString result="Her er en liste over alle ";
if (!extractAll) result+="dokumenterede ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
result+="funktioner, variable, #defines, enumerationer "
"og typedefinitioner";
}
else
{
} else {
result+="fil-medlemmer";
}
result+=" med links til ";
if (extractAll)
result+="de filer de hører til:";
result+="de filer, de tilhører:";
else
result+="dokumentationen:";
result+="deres dokumentation:";
return result;
}
/*! This is an introduction to the page with the list of all header files. */
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 */
virtual QCString trExamplesDescription()
......@@ -346,26 +367,23 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return "Modul-index"; }
{ return "Modul-indeks"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return "Hierarkisk index"; }
{ return "Hierarkisk indeks"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
virtual QCString trCompoundIndex()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Indeks over datastrukturer";
}
else
{
return "Compound Index";
} else {
return "Indeks over sammensatte typer";
}
}
......@@ -373,7 +391,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* list of all files.
*/
virtual QCString trFileIndex()
{ return "Fil-index"; }
{ return "Fil-indeks"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
......@@ -385,7 +403,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* the documentation of all classes, structs and unions.
*/
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
* the documentation of all files.
......@@ -407,7 +431,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "Reference-manual"; }
{ return "Referencemanual"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
......@@ -425,7 +449,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* list of typedefs
*/
virtual QCString trTypedefs()
{ return "Typedefs"; }
{ return "Typedefinitioner"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
......@@ -443,7 +467,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* list of (global) variables
*/
virtual QCString trVariables()
{ return "Variabler"; }
{ return "Variable"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
......@@ -451,10 +475,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trEnumerationValues()
{ 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
* documentation blocks for defines
*/
......@@ -465,13 +485,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return "Funktionsprototype-dokumentation"; }
{ return "Dokumentation af funktionsprototyper"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "Typedef-dokumentation"; }
{ return "Dokumentation af typedefinitioner"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
......@@ -502,13 +522,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trCompounds()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Datastrukturer";
}
else
{
return "Compounds";
} else {
return "Sammensatte typer";
}
}
......@@ -532,7 +549,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! this text is put before a class diagram */
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. */
......@@ -541,7 +558,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! this text is generated when the \\reimp command is used. */
virtual QCString trReimplementedForInternalReasons()
{ return "Metode overskrevet af interne grunde; "
{ return "Metoden er genimplementeret af interne grunde; "
"API'en er ikke påvirket."; }
/*! this text is generated when the \\warning command is used. */
......@@ -560,10 +577,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trDate()
{ 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. */
virtual QCString trReturns()
{ return "Returnerer"; }
......@@ -590,7 +603,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
{ return "Namespace-liste"; }
{ return "Oversigt over namespaces"; }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
......@@ -615,7 +628,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "Friends og relateret funktions-dokumentation"; } //??
{ return "Dokumentation af friends og af relaterede funktioner"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -630,9 +643,9 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
switch(compType)
{
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::Interface: result+=" Interface-"; break;
case ClassDef::Interface: result+=" Grænseflade-"; break;
case ClassDef::Exception: result+=" Exception-"; break;
}
if (isTemplate) result+="template-";
......@@ -644,7 +657,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trFileReference(const char *fileName)
{
QCString result=fileName;
result+=" Fil-reference";
result+=" filreference";
return result;
}
......@@ -652,30 +665,30 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trNamespaceReference(const char *namespaceName)
{
QCString result=namespaceName;
result+=" Namespace-reference";
result+=" namespace-reference";
return result;
}
virtual QCString trPublicMembers()
{ return "Public Methods"; }
{ return "Offentlige metoder"; }
virtual QCString trPublicSlots()
{ return "Public Slots"; }
{ return "Offentlige slots"; }
virtual QCString trSignals()
{ return "Signals"; }
{ return "Signaler"; }
virtual QCString trStaticPublicMembers()
{ return "Static Public Methods"; }
{ return "Statiske, offentlige metoder"; }
virtual QCString trProtectedMembers()
{ return "Protected Methods"; }
{ return "Beskyttede metoder"; }
virtual QCString trProtectedSlots()
{ return "Protected Slots"; }
{ return "Beskyttede slots"; }
virtual QCString trStaticProtectedMembers()
{ return "Static Protected Methods"; }
{ return "Statiske, beskyttede metoder"; }
virtual QCString trPrivateMembers()
{ return "Private Methods"; }
{ return "Private metoder"; }
virtual QCString trPrivateSlots()
{ return "Private Slots"; }
{ return "Private slots"; }
virtual QCString trStaticPrivateMembers()
{ return "Static Private Methods"; }
{ return "Statiske, private metoder"; }
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
......@@ -685,18 +698,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
QCString result;
int i;
// 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!
result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right)
if (i!=numEntries-1) // not the last entry, so we need a separator
{
if (i!=numEntries-1) { // not the last entry, so we need a separator
if (i<numEntries-2) // not the fore last entry
result+=", ";
else // the fore last entry
result+=", and ";
result+=" og ";
}
}
return result;
......@@ -707,7 +718,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trInheritsList(int numEntries)
{
return "Inherits "+trWriteList(numEntries)+".";
return "Nedarver "+trWriteList(numEntries)+".";
}
/*! used in class documentation to produce a list of super classes,
......@@ -715,7 +726,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
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
......@@ -731,7 +742,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
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. */
......@@ -747,20 +758,20 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
if (extractAll)
result+="namespace-dokumentationen for hvert medlem:";
else
result+="de namespaces, de hører til:";
result+="det namespace, de hører til:";
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
{ return "Namespace Index"; }
{ return "Namespace-indeks"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
{ return "Namespace Dokumentation"; }
{ return "Namespace-dokumentation"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
......@@ -783,17 +794,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"The documentation for this ";
QCString result=(QCString)"Dokumentationen for denne ";
switch(compType)
{
case ClassDef::Class: result+="class"; break;
case ClassDef::Struct: result+="struct"; break;
case ClassDef::Class: result+="klasse"; break;
case ClassDef::Struct: result+="datastruktur"; 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;
}
result+=" was generated from the following file";
if (single) result+=":"; else result+="s:";
result+=" blev genereret ud fra følgende fil";
if (single) result+=":"; else result+="er:";
return result;
}
......@@ -828,7 +839,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
virtual QCString trSources()
{
return "Sources";
return "Kilder"; //??
}
virtual QCString trDefinedAtLineInSourceFile()
{
......@@ -845,7 +856,8 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
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
/*! header that is put before the list of constructor/destructors. */
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. */
virtual QCString trGotoSourceCode()
......@@ -880,12 +893,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
return "Precondition";
return "Forudsætninger (precondition)";
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
return "Postcondition";
return "Resultat (postcondition)";
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
......@@ -900,11 +913,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Text used the source code in the file index */
virtual QCString trCode()
{
return "code";
return "kildekode";
}
virtual QCString trGraphicalHierarchy()
{
return "Grafiske klassehierarki";
return "Grafisk klassehierarki";
}
virtual QCString trGotoGraphicalHierarchy()
{
......@@ -916,7 +929,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
}
virtual QCString trPageIndex()
{
return "Page Index";
return "Sideindeks";
}
//////////////////////////////////////////////////////////////////////////
......@@ -929,46 +942,43 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
}
virtual QCString trPublicTypes()
{
return "Public Typer";
return "Offentlige typer";
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Datafelter";
}
else
{
return "Public Attributes";
} else {
return "Offentlige attributter";
}
}
virtual QCString trStaticPublicAttribs()
{
return "Static Public Attributes";
return "Statiske, offentlige attributter";
}
virtual QCString trProtectedTypes()
{
return "Protected Typer";
return "Beskyttede typer";
}
virtual QCString trProtectedAttribs()
{
return "Protected Attributes";
return "Beskyttede attributter";
}
virtual QCString trStaticProtectedAttribs()
{
return "Static Protected Attributes";
return "Statiske, beskyttede attributter";
}
virtual QCString trPrivateTypes()
{
return "Private Types";
return "Private typer";
}
virtual QCString trPrivateAttribs()
{
return "Private Attributes";
return "Private attributter";
}
virtual QCString trStaticPrivateAttribs()
{
return "Static Private Attributes";
return "Statiske, private attributter";
}
//////////////////////////////////////////////////////////////////////////
......@@ -983,7 +993,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
return "Todo List";
return "Todo-liste";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1000,11 +1010,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
}
virtual QCString trAttention()
{
return "Attention";
return "OBS";
}
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:";
}
virtual QCString trSince()
......@@ -1022,60 +1033,71 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
return "Graf-forklaring";
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
virtual QCString trLegendDocs() //TODO
{
return
"Denne side forklarer, hvordan man skal fortolke de grafer, "
"der genereres af doxygen.<p>\n"
"Consider the following example:\n"
"Tag følgende eksempel:\n"
"\\code\n"
"/*! Invisible class because of truncation */\n"
"/*! Klasse der er usynlig pg.a. beskæring */\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 not documented with doxygen comments */\n"
"/* Klasse der ikke er dokumenteret med doxygen-kommentarer */\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 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 that is inherited using private inheritance */\n"
"/*! Klasse der nedarves fra privat */\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"
"/*! Super class that inherits a number of other classes */\n"
"/*! Klasse der nedarver en masse andre klasser */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
" public Templ<int>\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
"If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
"is set to 200 this will result in the following graph:"
"Hvis \\c MAX_DOT_GRAPH_HEIGHT i konfigurationsfilen "
"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>\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"
"<li>A filled black box represents the struct or class for which the "
"graph is generated.\n"
"<li>A box with a black border denotes a documented struct or class.\n"
"<li>A box with a grey border denotes an undocumented struct or class.\n"
"<li>A box with a red border denotes a documented struct or class for\n"
"which not all inheritance/containment relations are shown. A graph is "
"truncated if it does not fit within the specified boundaries."
"<li>%En udfyldt sort kasse repræsenterer den datastruktur eller "
"klasse, grafen er genereret for.\n"
"<li>%En kasse med sort kant betegner en dokumenteret datastruktur "
" eller klasse.\n"
"<li>%En kasse med grå kant betegner en udokumenteret datastruktur "
" eller klasse.\n"
"<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"
"The arrows have the following meaning:\n"
"Pilene har følgende betydninger:\n"
"<ul>\n"
"<li>A dark blue arrow is used to visualize a public inheritance "
"relation between two classes.\n"
"<li>A dark green arrow is used for protected inheritance.\n"
"<li>A dark red arrow is used for private inheritance.\n"
"<li>A purple dashed arrow is used if a class is contained or used "
"by another class. The arrow is labeled with the variable(s) "
"through which the pointed class or struct is accessible. \n"
"<li>%En mørkeblå pil viser en offentlig nedarvningsrelation "
"mellem to klasser.\n"
"<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n"
"<li>%En mørkerød pil viser en privat nedarvningsrelation.\n"
"<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i "
"eller benyttes af en anden klasse. "
"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";
}
/*! text for the link to the legend page */
......@@ -1116,12 +1138,12 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
return "Properties";
return "Egenskaber";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
return "Property-dokumentation";
return "Egenskabsdokumentation";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1131,17 +1153,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used for Java interfaces in the summary section of Java packages */
virtual QCString trInterfaces()
{
return "Interfaces";
return "Grænseflader";
}
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) {
return "Datastrukturer";
}
else
{
} else {
return "Klasser";
}
}
......@@ -1153,22 +1172,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Title of the package index page */
virtual QCString trPackageList()
{
return "Pakkeliste";
return "Pakkeoversigt";
}
/*! The description of the package index page */
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 */
virtual QCString trPackages()
{
return "Packages";
return "Pakker";
}
/*! Used as a chapter title for Latex & RTF output */
virtual QCString trPackageDocumentation()
{
return "Package Dokumentation";
return "Pakke-dokumentation";
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
......@@ -1183,7 +1204,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return "Fejl";
return "Kendte fejl";
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
......@@ -1195,7 +1216,14 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
// 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()
{
return "1252";
......@@ -1219,10 +1247,11 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trClass(bool first_capital, bool singular)
{
QCString result((first_capital ? "Klasse" : "klasse"));
if (first_capital) toupper(result.at(0));
if (!singular) result+="r";
return result;
//QCString result(first_capital ? "Klasse" : "klasse");
//if (first_capital) result.at(0) = toupper(result.at(0));
//if (!singular) result+="r";
//return result;
return createNoun(first_capital, singular, "klasse", "r");
}
/*! This is used for translation of the word that will possibly
......@@ -1231,9 +1260,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trFile(bool first_capital, bool singular)
{
QCString result((first_capital ? "Fil" : "fil"));
if (!singular) result+="er";
return result;
//QCString result((first_capital ? "Fil" : "fil"));
//if (!singular) result+="er";
//return result;
return createNoun(first_capital, singular, "fil", "er");
}
/*! This is used for translation of the word that will possibly
......@@ -1242,9 +1272,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "Namespace" : "namespace"));
if (!singular) result+="s";
return result;
//QCString result((first_capital ? "Namespace" : "namespace"));
//if (!singular) result+="s";
//return result;
return createNoun(first_capital, singular, "namespace", "s");
}
/*! This is used for translation of the word that will possibly
......@@ -1253,9 +1284,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result((first_capital ? "Gruppe" : "gruppe"));
if (!singular) result+="r";
return result;
//QCString result((first_capital ? "Gruppe" : "gruppe"));
//if (!singular) result+="r";
//return result;
return createNoun(first_capital, singular, "gruppe", "r");
}
/*! This is used for translation of the word that will possibly
......@@ -1264,9 +1296,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result((first_capital ? "Side" : "side"));
if (!singular) result+="r";
return result;
//QCString result((first_capital ? "Side" : "side"));
//if (!singular) result+="r";
//return result;
return createNoun(first_capital, singular, "side", "r");
}
/*! This is used for translation of the word that will possibly
......@@ -1275,9 +1308,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trMember(bool first_capital, bool singular)
{
QCString result((first_capital ? "Medlem" : "medlem"));
if (!singular) result+="mer";
return result;
//QCString result((first_capital ? "Medlem" : "medlem"));
//if (!singular) result+="mer";
//return result;
return createNoun(first_capital, singular, "medlem", "mer");
}
/*! This is used for translation of the word that will possibly
......@@ -1286,9 +1320,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trField(bool first_capital, bool singular)
{
QCString result((first_capital ? "Felt" : "felt"));
if (!singular) result+="er";
return result;
//QCString result((first_capital ? "Felt" : "felt"));
//if (!singular) result+="er";
//return result;
return createNoun(first_capital, singular, "felt", "er");
}
/*! This is used for translation of the word that will possibly
......@@ -1297,11 +1332,112 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7
*/
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "Global" : "global"));
if (!singular) result+="e";
return result;
//QCString result((first_capital ? "Global" : "global"));
//if (!singular) result+="e";
//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
......@@ -41,11 +41,13 @@
* -------------+------------------------------------------------------------
* 2002-10-22 | Update for new since 1.2.18
* -------------+------------------------------------------------------------
* 2003-02-04 | Corrected typo. Thanks to Bertrand M. :)
* -------------+------------------------------------------------------------
*/
#ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H
class TranslatorFrench : public TranslatorAdapter_1_2_17
class TranslatorFrench : public Translator
{
public:
QCString idLanguage()
......@@ -205,7 +207,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
/*! This is an introduction to the annotated compound list. */
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 :";
}
......@@ -384,7 +386,7 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
* of documentation blocks for enumeration types
*/
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
* of documentation blocks for enumeration values
......@@ -959,13 +961,13 @@ class TranslatorFrench : public TranslatorAdapter_1_2_17
"</ul>\n"
"Les flèches ont la signification suivante:\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"
"<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 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) "
"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";
}
/*! 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)
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
// so we use vfork instead
......@@ -131,38 +131,36 @@ int iSystem(const char *command,const char *args,bool isBatchFile)
}
return status;
//#else /* Other unices where clients do copy on demand for the parent's pages
// * when forked.
// */
//
// pid = fork();
// if (pid==-1) return -1;
// if (pid==0)
// {
// char buf[4096];
// strcpy(buf,command);
// strcat(buf," ");
// strcat(buf,args);
// const char * argv[4];
// argv[0] = "sh";
// argv[1] = "-c";
// argv[2] = buf;
// argv[3] = 0;
// execve("/bin/sh",(char * const *)argv,environ);
// exit(127);
// }
// for (;;)
// {
// if (waitpid(pid,&status,0)==-1)
// {
// if (errno!=EINTR) return -1;
// }
// else
// {
// return status;
// }
// }
//#endif
#else // Other Unices just use fork
pid = fork();
if (pid==-1) return -1;
if (pid==0)
{
char buf[4096];
strcpy(buf,command);
strcat(buf," ");
strcat(buf,args);
const char * argv[4];
argv[0] = "sh";
argv[1] = "-c";
argv[2] = buf;
argv[3] = 0;
execve("/bin/sh",(char * const *)argv,environ);
exit(127);
}
for (;;)
{
if (waitpid(pid,&status,0)==-1)
{
if (errno!=EINTR) return -1;
}
else
{
return status;
}
}
#endif // _OS_SOLARIS
#else
if (isBatchFile)
......
......@@ -510,10 +510,17 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
ArgumentList *al = md->argumentList();
t << " const=\"";
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";
t << "\"";
}
t << ">" << endl;
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