Commit daf91dc9 authored by mueller's avatar mueller

mods for doxygen-0.49-990728

parent a6cb7ef1
DOXYGEN Version 0.49-990522 DOXYGEN Version 0.49-990728
INSTALLATION INSTRUCTIONS FOR UNIX: INSTALLATION INSTRUCTIONS FOR UNIX:
----------------------------------- -----------------------------------
1. Unpack the archive, unless you already have: 1. Unpack the archive, unless you already have:
gunzip doxygen-0.49-990522.src.tar.gz # uncompress the archive gunzip doxygen-0.49-990728.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-990522.src.tar # unpack it tar xf doxygen-0.49-990728.src.tar # unpack it
2. Make sure Qt is installed properly (check the environment variable $QTDIR) 2. Make sure Qt is installed properly (check the environment variable $QTDIR)
...@@ -104,7 +104,7 @@ KNOWN CONFIGURATION PROBLEMS ...@@ -104,7 +104,7 @@ KNOWN CONFIGURATION PROBLEMS
HTML RELATED PROBLEMS: HTML RELATED PROBLEMS:
- the indent continuously increases. - the indent continuously increases.
This seems to be a problem that can be observed with Netscape 4.01. This seems to be a problem that can be observed with Netscape 4.01.
It is not present in many later and earlier versions. It is not present in many later and earlier versions I tested.
LATEX RELATED PROBLEMS: LATEX RELATED PROBLEMS:
...@@ -116,16 +116,32 @@ LATEX RELATED PROBLEMS: ...@@ -116,16 +116,32 @@ LATEX RELATED PROBLEMS:
- the file fancyheader.sty is known as fancyhdr.sty on some systems. - the file fancyheader.sty is known as fancyhdr.sty on some systems.
Please change that in src/latexgen.cpp Please change that in src/latexgen.cpp
HP-UX PROBLEMS: HP-UX / DIGITAL UNIX PROBLEMS:
- If you are compiling for HP-UX with aCC and you get this error: - If you are compiling for HP-UX with aCC and you get this error:
/opt/aCC/lbin/ld: Unsatisfied symbols: /opt/aCC/lbin/ld: Unsatisfied symbols:
alloca (code) alloca (code)
then you should edit ce_parse.cpp and replace then you should (according to Anke Selig) edit ce_parse.cpp and replace
extern "C" { extern "C" {
void *alloca (unsigned int); void *alloca (unsigned int);
}; };
with with
#include <alloca.h> #include <alloca.h>
- If you are compiling for Digital Unix, the same problem can be solved
(according to Barnard Schmallhof) by replacing the following in
ce_parse.cpp:
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ||
defined (__sparc) || defined (__sgi)
#include <alloca.h>
with
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) ||
defined (__sparc) || defined (__sgi) || defined (__osf__)
#include <alloca.h>
This seems to be a problem with bison, but I don't know how to fix it. This seems to be a problem with bison, but I don't know how to fix it.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -138,4 +154,4 @@ The latest version of doxygen can be obtained at ...@@ -138,4 +154,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (22 May 1999) Dimitri van Heesch (30 July 1999)
This diff is collapsed.
...@@ -38,6 +38,11 @@ dgux-g++: src/version.cpp ...@@ -38,6 +38,11 @@ dgux-g++: src/version.cpp
TMAKEPATH=../tmake/lib/dgux-g++ \ TMAKEPATH=../tmake/lib/dgux-g++ \
$(MAKE) $(MAKE)
gnu-g++: src/version.cpp
cd src; \
TMAKEPATH=../tmake/lib/gnu-g++ \
$(MAKE)
freebsd-g++: src/version.cpp freebsd-g++: src/version.cpp
cd src; \ cd src; \
TMAKEPATH=../tmake/lib/freebsd-g++ \ TMAKEPATH=../tmake/lib/freebsd-g++ \
...@@ -170,7 +175,7 @@ ps: docs ...@@ -170,7 +175,7 @@ ps: docs
archive: clean archive: clean
$(TAR) zcvf backup/dx`date +%y%m%d`.tgz tmake doc examples bin objects \ $(TAR) zcvf backup/dx`date +%y%m%d`.tgz tmake doc examples bin objects \
src Makefile Makefile.windows INSTALL make.bat Makefile.config \ src Makefile Makefile.windows INSTALL make.bat Makefile.config \
LANGUAGE.HOWTO LANGUAGE.HOWTO LICENSE
src/version.cpp: FORCE src/version.cpp: FORCE
echo "char versionString[]=\"$(VERSION)\";" > src/version.cpp echo "char versionString[]=\"$(VERSION)\";" > src/version.cpp
......
...@@ -9,4 +9,4 @@ PERL = perl ...@@ -9,4 +9,4 @@ PERL = perl
# The values below should probably be left unmodified # The values below should probably be left unmodified
TAR = tar # name of the GNU tar tool TAR = tar # name of the GNU tar tool
TMAKE = ../tmake/bin/tmake TMAKE = ../tmake/bin/tmake
VERSION = 0.49-990522 VERSION = 0.49-990728
DOXYGEN Version 0.49-990522 DOXYGEN Version 0.49-990728
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at ...@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (22 May 1999) Dimitri van Heesch (30 July 1999)
...@@ -10,11 +10,11 @@ EXTRACT_PRIVATE = NO ...@@ -10,11 +10,11 @@ EXTRACT_PRIVATE = NO
GENERATE_LATEX = YES GENERATE_LATEX = YES
GENERATE_HTML = YES GENERATE_HTML = YES
ENABLE_PREPROCESSING = NO ENABLE_PREPROCESSING = NO
INPUT = index.doc install.doc starting.doc trouble.doc \ INPUT = index.doc install.doc starting.doc faq.doc trouble.doc \
history.doc features.doc \ history.doc features.doc \
doxygen_usage.doc doxytag_usage.doc doxysearch_usage.doc \ doxygen_usage.doc doxytag_usage.doc doxysearch_usage.doc \
installdox_usage.doc autolink.doc \ installdox_usage.doc autolink.doc \
config.doc commands.doc htmlcmds.doc config.doc commands.doc htmlcmds.doc language.doc
FILE_PATTERNS = *.cpp *.h *.doc FILE_PATTERNS = *.cpp *.h *.doc
EXAMPLE_PATH = ../examples EXAMPLE_PATH = ../examples
RECURSIVE = NO RECURSIVE = NO
......
...@@ -183,6 +183,7 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -183,6 +183,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa section \ref cmdcode "\\code" \sa section \ref cmdcode "\\code"
<hr> <hr>
\subsection cmdenum \enum <name> \subsection cmdenum \enum <name>
\addindex \enum \addindex \enum
...@@ -664,6 +665,7 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -664,6 +665,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa \sa
Section \ref cmdpage "\\page" for an example of the \\cmdsection command. Section \ref cmdpage "\\page" for an example of the \\cmdsection command.
<hr> <hr>
\subsection cmdsubsection \subsection <subsection-name> (subsection title) \subsection cmdsubsection \subsection <subsection-name> (subsection title)
...@@ -677,6 +679,7 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -677,6 +679,7 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa \sa
Section \ref cmdpage "\\page" for an example of the \\cmdsubsection command. Section \ref cmdpage "\\page" for an example of the \\cmdsubsection command.
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly <h2>\htmlonly <center> --- \endhtmlonly
...@@ -1054,7 +1057,6 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -1054,7 +1057,6 @@ Doxygen. Unrecognized commands are treated as normal text.
character has to be escaped because it has a special meaning in HTML. character has to be escaped because it has a special meaning in HTML.
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly <h2>\htmlonly <center> --- \endhtmlonly
Commands included for JavaDoc compatibility Commands included for JavaDoc compatibility
\htmlonly --- </center>\endhtmlonly</h2> \htmlonly --- </center>\endhtmlonly</h2>
......
...@@ -63,6 +63,14 @@ Below is a list of tags that are recognized for each category. ...@@ -63,6 +63,14 @@ Below is a list of tags that are recognized for each category.
If a relative path is entered, it will be relative to the location If a relative path is entered, it will be relative to the location
where doxygen was started. If left blank the current directory will be used. where doxygen was started. If left blank the current directory will be used.
<dt>\c OUTPUT_LANGUAGE <dd>
\addindex OUTPUT_LANGUAGE
The \c OUTPUT_LANGUAGE tag is used to specify the language in which all
documentation generated by doxygen is written. Doxygen will use this
information to generate all constant output in the proper language.
The default language is English, other supported languages are:
Dutch, French, Italian, Czech, Swedish, German and Japanese.
<dt>\c QUIET <dd> <dt>\c QUIET <dd>
\addindex QUIET \addindex QUIET
The \c QUIET tag can be used to turn on/off the messages that are generated The \c QUIET tag can be used to turn on/off the messages that are generated
...@@ -268,6 +276,11 @@ Below is a list of tags that are recognized for each category. ...@@ -268,6 +276,11 @@ Below is a list of tags that are recognized for each category.
\endverbatim \endverbatim
If the tag is left blank doxygen will generate a If the tag is left blank doxygen will generate a
standard header. standard header.
The following commands have a special meaning inside the header:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>.
Doxygen will replace them by respectively
the title of the page, the current date and time, or only the current date.
<dt>\c HTML_FOOTER <dd> <dt>\c HTML_FOOTER <dd>
\addindex HTML_FOOTER \addindex HTML_FOOTER
...@@ -280,6 +293,11 @@ Below is a list of tags that are recognized for each category. ...@@ -280,6 +293,11 @@ Below is a list of tags that are recognized for each category.
\endverbatim \endverbatim
If the tag is left blank doxygen will generate a standard footer. If the tag is left blank doxygen will generate a standard footer.
The following commands have a special meaning inside the footer:
<code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>.
Doxygen will replace them by respectively
the title of the page, the current date and time, or only the current date.
</dl> </dl>
\subsection latex_output LaTeX related options \subsection latex_output LaTeX related options
......
...@@ -26,6 +26,7 @@ Written by Dimitri van Heesch\\[2ex] ...@@ -26,6 +26,7 @@ Written by Dimitri van Heesch\\[2ex]
\part{User Manual} \part{User Manual}
\input{install} \input{install}
\input{starting} \input{starting}
\input{faq}
\input{trouble} \input{trouble}
\part{Reference Manual} \part{Reference Manual}
\input{features} \input{features}
...@@ -38,5 +39,6 @@ Written by Dimitri van Heesch\\[2ex] ...@@ -38,5 +39,6 @@ Written by Dimitri van Heesch\\[2ex]
\input{config} \input{config}
\input{commands} \input{commands}
\input{htmlcmds} \input{htmlcmds}
\input{langhowto}
\printindex \printindex
\end{document} \end{document}
...@@ -67,7 +67,7 @@ follow these steps: ...@@ -67,7 +67,7 @@ follow these steps:
documentation. Apart from the documentation, Doxygen will create the documentation. Apart from the documentation, Doxygen will create the
following files: following files:
<ul> <ul>
<li>A small CGI script. the name of the script is determined by the <li>A small shell script. the name of the script is determined by the
\c CGI_NAME tag in the configuration file. \c CGI_NAME tag in the configuration file.
The script is a small wrapper that calls \c doxysearch with The script is a small wrapper that calls \c doxysearch with
the correct parameters. Using this script allows multiple the correct parameters. Using this script allows multiple
...@@ -80,6 +80,16 @@ follow these steps: ...@@ -80,6 +80,16 @@ follow these steps:
<li>\c search.gif: this is the image that is used for the search button. <li>\c search.gif: this is the image that is used for the search button.
</ul> </ul>
\par Notice:
On the Windows platform Unix shell scripts cannot be used.
In fact the HTTP daemon that I tried (apache for Windows) only
recognized <code>.cgi</code> files that were renamed
executables (so DOS batch files do not seem to work either). Therefore,
on Windows a small C program will generated by doxygen.
You should compile and link the program with your favourite
compiler and change the extension of the executable from
<code>.exe</code> to <code>.cgi</code>.
<li>Copy (or move) the CGI script to the directory where the CGI binaries <li>Copy (or move) the CGI script to the directory where the CGI binaries
are located. are located.
This is usually a special directory on your system or in your This is usually a special directory on your system or in your
...@@ -112,7 +122,8 @@ This can be done by carefully following these steps: ...@@ -112,7 +122,8 @@ This can be done by carefully following these steps:
<li>Goto the html directory of the Qt-distribution: <li>Goto the html directory of the Qt-distribution:
<pre>cd $QTDIR/html</pre> <pre>cd $QTDIR/html</pre>
<li>Generate the search index by typing: <li>Generate the search index by typing:
<pre>doxytag -s search.idx *.html</pre> <pre>doxytag -s search.idx</pre>
in the directory where the HTML files are located.
This will parse all files and build a search index. This will parse all files and build a search index.
Apart from the file <code>search.idx</code> two other files Apart from the file <code>search.idx</code> two other files
will be generated: <code>search.gif</code> and <code>search.cgi</code> will be generated: <code>search.gif</code> and <code>search.cgi</code>
......
/******************************************************************************
*
* $Id$
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
/*! \page faq Frequently Asked Questions
<ol>
<li><b>How do get information on the index page in HTML?</b>
<p>
There is no real support for title pages at the moment. But you can
override the default index page, by using the following comment block:
\verbatim
/*! \page index My Personal Index Page
*
* This is my index personal index page.
*/
\endverbatim
<li><b>How can I avoid that some code fragment is parsed by Doxyen?</b>
<p>
You can use Doxygen's preprocessor for this:
If you put
\verbatim
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by Doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
\endverbatim
around the blocks that should be hidden and put:
\verbatim
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
\endverbatim
in the config file then all blocks should be skipped by Doxygen as long
as <code>PREPROCESSING = YES</code>.
</ol>
*/
...@@ -58,10 +58,12 @@ sections. ...@@ -58,10 +58,12 @@ sections.
The first part forms a user manual: The first part forms a user manual:
<ul> <ul>
<li>Section \ref install discusses how to download, compile and install <li>Section \ref install discusses how to
<a href="http://www.stack.nl/~dimitri/doxygen/download.html">download</a>, compile and install
doxygen for your platform. doxygen for your platform.
<li>Section \ref starting tells you how to generate your first piece of <li>Section \ref starting tells you how to generate your first piece of
documentation quickly. documentation quickly.
<li>Section \ref faq gives answers to frequently asked questions.
<li>Section \ref trouble tells you what to do when you have problems. <li>Section \ref trouble tells you what to do when you have problems.
</ul> </ul>
...@@ -84,8 +86,23 @@ The second part forms a reference manual: ...@@ -84,8 +86,23 @@ The second part forms a reference manual:
used within the documentation. used within the documentation.
<li>Section \ref htmlcmds shows an overview of the HTML commands that <li>Section \ref htmlcmds shows an overview of the HTML commands that
can be used within the documentation. can be used within the documentation.
<li>Section \ref langhowto explains how to add support for new
output languages.
</ul> </ul>
<h2>Projects using doxygen</h2>
I have compiled a small
\htmlonly
<a href="http://www.stack.nl/~dimitri/doxygen/projects.html">list of projects</a>
that use doxygen
\endhtmlonly
\latexonly
list of projects that use doxygen (see {\tt http://www.stack.nl/$\sim$dimitri/doxygen/projects.html})
\endlatexonly
If you know other projects, let me know and I'll add them.
<h2>Acknowledgements</h2> <h2>Acknowledgements</h2>
\addindex acknowledgements \addindex acknowledgements
Thanks go to: Thanks go to:
...@@ -156,9 +173,10 @@ Olaf Meeuwissen, ...@@ -156,9 +173,10 @@ Olaf Meeuwissen,
Feiyi Wang, Feiyi Wang,
Robert J. Clark, Robert J. Clark,
Matthias Baas, Matthias Baas,
Walter Mueller, and Walter Mueller,
William van Dieten William van Dieten, and
for suggestions, patches and bug reports. Joshua Jensen and
many others for suggestions, patches and bug reports.
</ul> </ul>
*/ */
/******************************************************************************
*
* $Id$
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* All output generated with Doxygen is not covered by this license.
*
*/
/*! \page langhowto Internationalization
<h3>Support for multiple languages</h3>
Doxygen has support for multiple languages. This means that the text fragments that
doxygen generates can changed into languages other than English
(the default) at configuration time.
<p>
Currently, supported languages are English, French, Czech, Dutch,
Swedish, Italian, German and Japanese. A number
of people have volunteered to add support for other languages as well.
Here is a list of the languages and their current maintainers:
<p>
\htmlonly
<TABLE ALIGN=center CELLSPACING=0 CELLPADDING=0 BORDER=0>
<TR BGCOLOR="#000000">
<TD>
<TABLE CELLSPACING=1 CELLPADDING=2 BORDER=0>
<TR BGCOLOR="#4040c0">
<TD ><b><font size=+1 color="#ffffff"> Language </font></b></TD>
<TD ><b><font size=+1 color="#ffffff"> Maintainer </font></b></TD>
<TD ><b><font size=+1 color="#ffffff"> Contact address </font></b></TD>
<TR BGCOLOR="#ffffff">
<TD>
German
</TD>
<TD>
Jens Breitenstein
</TD>
<TD>
<a href="mailto:Jens.Breitenstein@tlc.de">
Jens.Breitenstein@tlc.de</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
French
</TD>
<TD>
Christophe Bordeux
</TD>
<TD>
<a href="mailto:bordeux@lig.di.epfl.ch">
bordeux@lig.di.epfl.ch</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Swedish
</TD>
<TD>
Samuel Hägglund<BR>
XeT Erixon
</TD>
<TD>
<a href="mailto:sahag96@nts.mh.se">
sahag96@nts.mh.se</a><br>
<a href="mailto:xet@hem.passagen.se">
xet@hem.passagen.se</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Czech
</TD>
<TD>
Vlastimil Havran
</TD>
<TD>
<a href="mailto:havran@fel.cvut.cz">
havran@fel.cvut.cz</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Romanian
</TD>
<TD>
Ionutz Borcoman
</TD>
<TD>
<a href="mailto:borco@borco-ei.eng.hokudai.ac.jp">
borco@borco-ei.eng.hokudai.ac.jp</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Polish
</TD>
<TD>
Piotr Piatkowski
</TD>
<TD>
<a href="mailto:kompas@ceti.com.pl">
kompas@ceti.com.pl</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Italian
</TD>
<TD>
Ahmed Aldo Faisal<br>
Alessandro Falappa
</TD>
<TD>
<a href="mailto:aaf23@cam.ac.uk">
aaf23@cam.ac.uk</a><br>
<a href="mailto:a.falappa@flashnet.it">
a.falappa@flashnet.it</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Japanese
</TD>
<TD>
Kenji Nagamatsu
</TD>
<TD>
<a href="mailto:naga@joyful.club.ne.jp">
naga@joyful.club.ne.jp</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Spanish
</TD>
<TD>
Francisco Oltra Thennet
</TD>
<TD>
<a href="mailto:foltra@puc.cl">
foltra@puc.cl</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Dutch
</TD>
<TD>
Dimitri van Heesch
</TD>
<TD>
<a href="mailto:dimitri@stack.nl">
dimitri@stack.nl</a>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
\endhtmlonly
\latexonly
\begin{tabular}{|l|l|l|}
\hline
{\bf Language} & {\bf Maintainer} & {Contact address} \\
\hline
German & Jens Breitenstein & {\tt Jens.Breitenstein@tlc.de} \\
\hline
French & Christophe Bordeux & {\tt bordeux@lig.di.epfl.ch} \\
\hline
Swedish & Samuel Hägglund & {\tt sahag96@nts.mh.se} \\
& XeT Erixon & {\tt xet@hem.passagen.se} \\
\hline
Czech & Vlastimil Havran & {\tt havran@fel.cvut.cz} \\
\hline
Romanian & Ionutz Borcoman & {\tt borco@borco-ei.eng.hokudai.ac.jp} \\
\hline
Polish & Piotr Piatkowski & {\tt kompas@ceti.com.pl} \\
\hline
Italian & Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} \\
& Alessandro Falappa & {\tt a.falappa@flashnet.it} \\
\hline
Japanese & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} \\
\hline
Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} \\
\hline
Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} \\
\hline
\end{tabular}
\endlatexonly
<p>
Most people on the list have indicated that they were also busy
doing other things, so if you want to help to speed things up please
let them (or me) know.
If you want to add support for a language that is not yet listed
please see the next section.
<h3>Language HOWTO</h3>
This short HOWTO explains how to add support for a new language to Doxygen:
Just follow these steps:
<ol>
<li>Tell me for which language you want to add support. If no one else
is already working on support for that language, you will be
assigned as the maintainer for the language.
<li>Create a copy of translator_nl.h and name it
translator_<your_2_letter_counter_code>.h
I'll use xx in the rest of this document.
<li>Edit language.cpp:
Add a
\verbatim
#include<translator_xx.h>
\endverbatim
in <code>setTranslator()</code> add
\verbatim
else if (L_EQUAL("your_language_name"))
{
theTranslator = new TranslatorYourLanguage;
}
\endverbatim
after the <code>if { ... }</code>
<li>Edit doxygen.pro and add \c translator_xx.h to
the \c HEADERS line in the file doxygen.pro.
<li>Edit <code>translator_xx.h</code>:
<ul>
<li>Rename <code>TRANSLATOR_NL_H</code> to <code>TRANSLATOR_XX_H</code> twice.
<li>Rename TranslatorDutch to TranslatorYourLanguage
<li>In the member <code>latexBabelPackage()</code> change "dutch" into the name of the
latex package that adds support for your language.
<li>Edit all the strings that are returned by the members that start
with tr.
Look at the corresponding member in translator.h for the english text
that is returned and translate that into your language.
Try to match punctuation and capitals!
To enter special characters (with accents) you can:
<ul>
<li> Enter them directly if your keyboard supports that and you are
using a Latin-1 font.
Doxygen will translate the characters to proper Latex and
leave the Html and man output for what it is.
<li> Use html codes like \&auml; for an a with an umlaut (i.e. &auml;).
See the HTML specification for the codes.
</ul>
</ul>
<li>Recompile everything (do this from the root of the distribution,
because the Makefile.dox* have to be regenerated!)
<li>Now you can use <code>OUTPUT_LANGUAGE = your_language_name</code>
in the config file to generate output in your language.
<li>Send <code>translator_xx.h</code> or a <code>diff -u</code> of the changes
to me so I can add it to doxygen.
</ol>
*/
...@@ -397,6 +397,122 @@ from typos in formulas. It may have to be necessary to remove the ...@@ -397,6 +397,122 @@ from typos in formulas. It may have to be necessary to remove the
file formula.repository that is written in the html directory to file formula.repository that is written in the html directory to
a rid of an incorrect formula a rid of an incorrect formula
\subsection preprocessing Preprocessing
Source files that are used as input to doxygen can be parsed by doxygen's
build-in C-preprocessor.
By default doxygen does only partial preprocessing. That is, it
evaluates conditional compilation statements (like \#if) and
evaluates macro definitions, but is does not perform macro expansion.
So if you have the following code fragment
\verbatim
#define VERSION 200
#define CONST_STRING const char *
#if VERSION >= 200
static CONST_STRING version = "2.xx";
#else
static CONST_STRING version = "1.xx";
#endif
\endverbatim
Then by default doxygen will feed the following to its parser:
\verbatim
#define VERSION
#define CONST_STRING
static CONST_STRING version = "1.xx";
\endverbatim
You can disable all preprocessing by setting \c ENABLE_PREPROCESSING to \c
NO in the configuation file. In the case above doxygen will then read
both statements!
In case you want to expand the \c CONST_STRING macro, you should set the
\c MACRO_EXPANSION tag in the config file to \c YES. Then the result
after preprocessing becomes:
\verbatim
#define VERSION
#define CONST_STRING
static const char * version = "1.xx";
\endverbatim
Notice that doxygen will now expand \e all macro definitions
(recursively if needed). This is often too much, therefore doxygen also
allows you to expand only those defines that you explicitly
specify. For this you have to set the \c EXPAND_ONLY_PREDEF tag to \c YES
and specify the macro definitions after the \c PREDEFINED tag.
As an example, suppose you have the following obfusciated code fragment
of an abstract base class called \c IUnknown:
\verbatim
/*! A reference to an IID */
#ifdef __cplusplus
#define REFIID const IID &
#else
#define REFIID const IID *
#endif
/*! The IUnknown interface */
DECLARE_INTERFACE(IUnknown)
{
MEMBER(HRESULT,QueryInterface) (THIS_ REFIID iid, void **ppv) PURE;
MEMBER(ULONG,AddRef) (THIS) PURE;
MEMBER(ULONG,Release) (THIS) PURE;
};
\endverbatim
without macro expansion doxygen will get confused, but we may not want to
expand the REFIID macro, because it is documented and the user that reads
the documentation should use it when implementing the interface.
By setting the following in the config file:
\verbatim
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
"MEMBER(result,name)=virtual result name" \
"PURE= = 0" \
THIS_= \
THIS= \
__cplusplus
\endverbatim
we can make sure that the proper result is fed to doxygen's parser:
\verbatim
/*! A reference to an IID */
#define REFIID
/*! The IUnknown interface */
class IUnknown
{
virtual HRESULT QueryInterface ( REFIID iid, void **ppv) = 0;
virtual ULONG AddRef () = 0;
virtual ULONG Release () = 0;
};
\endverbatim
Notice that the \c PREDEFINED tag accepts function like macro definitions
(like \c DECLARE_INTERFACE), normal macro substitutions (like \c PURE
and \c THIS) and plain defines (like \c __cplusplus).
Notice also that preprocessor definitions that are normally defined
automatically by the preprocessor (like \c __cplusplus), have to be defined
by hand with doxygen's parser (this is done because these defines
are often platform/compiler specific).
As you can see doxygen's preprocessor is quite powerful, but if you want
even more flexibility you can always write an input filter and specify it on
the \c INPUT_FILTER flag.
\subsection moreinfo More information \subsection moreinfo More information
\addindex QdbtTabular \addindex QdbtTabular
...@@ -405,7 +521,7 @@ the documentation of QdbtTabular</a> \latexonly ...@@ -405,7 +521,7 @@ the documentation of QdbtTabular</a> \latexonly
({\tt http://www.stack.nl/$\sim$dimitri/qdbttabular/html})\endlatexonly. ({\tt http://www.stack.nl/$\sim$dimitri/qdbttabular/html})\endlatexonly.
\htmlonly \htmlonly
I hope that was clear. If not, please let me know, so I can improve this document. If you have problems I hope that was clear. If not, please let me know, so I can improve this document. If you have problems
take a look at the <a href="trouble.html">troubleshooting</a> section. take a look at the <a href="faq.html">faq</a> and the <a href="trouble.html">troubleshooting</a> sections.
\endhtmlonly \endhtmlonly
*/ */
...@@ -17,7 +17,6 @@ all: class/html/index.html \ ...@@ -17,7 +17,6 @@ all: class/html/index.html \
jdstyle/html/index.html \ jdstyle/html/index.html \
structcmd/html/index.html \ structcmd/html/index.html \
autolink/html/index.html \ autolink/html/index.html \
resdefine/html/index.html \
restypedef/html/index.html \ restypedef/html/index.html \
afterdoc/html/index.html \ afterdoc/html/index.html \
template/html/index.html \ template/html/index.html \
...@@ -26,7 +25,7 @@ all: class/html/index.html \ ...@@ -26,7 +25,7 @@ all: class/html/index.html \
clean: clean:
rm -rf class define enum file func page relates author \ rm -rf class define enum file func page relates author \
par overload example include qtstyle jdstyle structcmd \ par overload example include qtstyle jdstyle structcmd \
autolink tag resdefine restypedef afterdoc template autolink tag restypedef afterdoc template
class/html/index.html: class.h class.cfg class/html/index.html: class.h class.cfg
$(DOXYDIR)/doxygen class.cfg $(DOXYDIR)/doxygen class.cfg
...@@ -81,9 +80,6 @@ tag/html/index.html: tag.cpp tag.cfg ...@@ -81,9 +80,6 @@ tag/html/index.html: tag.cpp tag.cfg
sed -e "1,1s.perl.$(PERL).g" tag/html/installdox >tag/html/installdox.perl sed -e "1,1s.perl.$(PERL).g" tag/html/installdox >tag/html/installdox.perl
cd tag/html ; $(PERL) installdox.perl -lexample.tag@../../example/html cd tag/html ; $(PERL) installdox.perl -lexample.tag@../../example/html
resdefine/html/index.html: resdefine.cpp resdefine.cfg
$(DOXYDIR)/doxygen resdefine.cfg
restypedef/html/index.html: restypedef.cpp restypedef.cfg restypedef/html/index.html: restypedef.cpp restypedef.cfg
$(DOXYDIR)/doxygen restypedef.cfg $(DOXYDIR)/doxygen restypedef.cfg
......
PROJECT_NAME = "Example Command" PROJECT_NAME = "Example Command"
OUTPUT_DIRECTORY = example OUTPUT_DIRECTORY = example
GENERATE_TAGFILE = example.tag
GENERATE_LATEX = NO GENERATE_LATEX = NO
GENERATE_MAN = NO GENERATE_MAN = NO
INPUT = example.cpp INPUT = example.cpp
......
>Test: >Test: "class_test.html"
example a0 "()" example a0 "()"
PROJECT_NAME = "Resolving Defines"
OUTPUT_DIRECTORY = resdefine
GENERATE_LATEX = NO
GENERATE_MAN = NO
INPUT = resdefine.cpp
QUIET = YES
#define ExportedName InternalName
class InternalName
{
public:
InternalName() {}
~InternalName() {}
};
/*! \class ExportedName
* This class's real name is InternalName but everyone should use
* ExportedName.
*/
/*! \fn ExportedName::ExportedName()
* The constructor
*/
/*! \fn ExportedName::~ExportedName()
* The destructor
*/
/*! A template class */ /*! A template class */
template<class T,int i=100> class Test template<class T,int i=100> class Test
{ {
public: public:
Test(); Test();
Test(const Test &); Test(const Test &);
friend void friendTempFunc(Test &, int=5);
}; };
/*! complete specialization */ /*! complete specialization */
...@@ -15,7 +15,7 @@ template<> class Test<void *,200> ...@@ -15,7 +15,7 @@ template<> class Test<void *,200>
}; };
/*! A partial template specialization */ /*! A partial template specialization */
template<class T> class Test< T * > : public Test<void *,200> template<class T> class Test<T *> : public Test<void *,200>
{ {
public: public:
Test(); Test();
...@@ -27,11 +27,9 @@ template<class T,int i> Test<T,i>::Test() {} ...@@ -27,11 +27,9 @@ template<class T,int i> Test<T,i>::Test() {}
/*! The copy constructor */ /*! The copy constructor */
template<class T,int i> Test<T,i>::Test(const Test<T,i> &t) {} template<class T,int i> Test<T,i>::Test(const Test<T,i> &t) {}
/*! A friend function of a template class */ /*! The constructor of the partial specilization */
template<class T,int i> void friendTempFunc(Test<T,i> &t,int a) {} template<class T> Test<T *>::Test() {}
/*! The constructor of the specilization */ /*! The constructor of the specilization */
template<> Test<void *,200>::Test() {} template<> Test<void *,200>::Test() {}
/*! The constructor of the partial specilization */
template<class T> Test<T*>::Test() {}
...@@ -39,6 +39,6 @@ clean: ...@@ -39,6 +39,6 @@ clean:
$(MAKE) -f Makefile.doxysearch clean $(MAKE) -f Makefile.doxysearch clean
-rm -f scanner.cpp code.cpp config.cpp pre.cpp ce_lex.cpp \ -rm -f scanner.cpp code.cpp config.cpp pre.cpp ce_lex.cpp \
ce_parse.cpp ce_parse.h doxytag.cpp tag.cpp \ ce_parse.cpp ce_parse.h doxytag.cpp tag.cpp \
declinfo.cpp defargs.cpp version.cpp declinfo.cpp defargs.cpp
FORCE: FORCE:
This diff is collapsed.
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
#ifndef CLASSDEF_H #ifndef CLASSDEF_H
#define CLASSDEF_H #define CLASSDEF_H
#include <qstring.h> //#include <qtstream.h>
#include "qtbc.h"
#include <qfileinf.h> #include <qfileinf.h>
#include <qlist.h> #include <qlist.h>
#include <qdict.h> #include <qdict.h>
#include <qtstream.h>
#include <qstrlist.h> #include <qstrlist.h>
#include "membername.h" #include "membername.h"
...@@ -51,8 +51,8 @@ class ClassDef : public Definition ...@@ -51,8 +51,8 @@ class ClassDef : public Definition
ClassDef(const char *name,CompoundType ct,const char *ref=0,const char *fName=0); ClassDef(const char *name,CompoundType ct,const char *ref=0,const char *fName=0);
~ClassDef(); ~ClassDef();
//QString classFile() const { return fileName; } //QCString classFile() const { return fileName; }
QString getOutputFileBase() const { return fileName; } QCString getOutputFileBase() const { return fileName; }
CompoundType compoundType() const { return compType; } CompoundType compoundType() const { return compType; }
const char *memberListFileName() const { return memListFileName; } const char *memberListFileName() const { return memListFileName; }
void insertBaseClass(ClassDef *,Protection p,Specifier s,const char *t=0); void insertBaseClass(ClassDef *,Protection p,Specifier s,const char *t=0);
...@@ -81,34 +81,35 @@ class ClassDef : public Definition ...@@ -81,34 +81,35 @@ class ClassDef : public Definition
Protection protection() const { return prot; } Protection protection() const { return prot; }
bool isVisible() bool isVisible()
{ return !name().isEmpty() && name().at(0)!='@' && { return !name().isEmpty() && name().at(0)!='@' &&
(prot!=Private || extractPrivateFlag) && (prot!=Private || Config::extractPrivateFlag) &&
hasDocumentation(); hasDocumentation();
} }
bool hasNonReferenceSuperClass(); bool hasNonReferenceSuperClass();
bool isVisibleExt() bool isVisibleExt()
{ return (allExtFlag || hasNonReferenceSuperClass()) && { return (Config::allExtFlag || hasNonReferenceSuperClass()) &&
!name().isEmpty() && name().at(0)!='@' && !name().isEmpty() && name().at(0)!='@' &&
(prot!=Private || extractPrivateFlag) && (prot!=Private || Config::extractPrivateFlag) &&
(hasDocumentation() || !hideClassFlag || !reference.isNull()); (hasDocumentation() || !Config::hideClassFlag ||
!reference.isNull());
} }
// template argument functions // template argument functions
ArgumentList *templateArguments() const { return tempArgs; } ArgumentList *templateArguments() const { return tempArgs; }
void setTemplateArguments(ArgumentList *al); void setTemplateArguments(ArgumentList *al);
QString getTemplateNameString(); QCString getTemplateNameString();
void setNamespace(NamespaceDef *nd) { nspace = nd; } void setNamespace(NamespaceDef *nd) { nspace = nd; }
NamespaceDef *getNamespace() { return nspace; } NamespaceDef *getNamespace() { return nspace; }
bool visited; bool visited;
private: private:
//QString name; // name of the class //QCString name; // name of the class
QString fileName; // HTML containing the class docs QCString fileName; // HTML containing the class docs
//QString doc; // general class documentation //QCString doc; // general class documentation
FileDef *incFile; // header file to refer to FileDef *incFile; // header file to refer to
QString incName; // alternative include file name QCString incName; // alternative include file name
//QString brief; // brief class discription //QCString brief; // brief class discription
QString memListFileName; QCString memListFileName;
BaseClassList *inherits; BaseClassList *inherits;
BaseClassList *inheritedBy; BaseClassList *inheritedBy;
NamespaceDef *nspace; // the namespace this class is in NamespaceDef *nspace; // the namespace this class is in
...@@ -128,7 +129,7 @@ class ClassDef : public Definition ...@@ -128,7 +129,7 @@ class ClassDef : public Definition
MemberNameInfoDict *allMemberNameInfoDict; MemberNameInfoDict *allMemberNameInfoDict;
ArgumentList *tempArgs; ArgumentList *tempArgs;
QStrList files; QStrList files;
QString reference; QCString reference;
ExampleList *exampleList; ExampleList *exampleList;
ExampleDict *exampleDict; ExampleDict *exampleDict;
CompoundType compType; CompoundType compType;
...@@ -143,7 +144,7 @@ struct BaseClassDef ...@@ -143,7 +144,7 @@ struct BaseClassDef
ClassDef *classDef; ClassDef *classDef;
Protection prot; Protection prot;
Specifier virt; Specifier virt;
QString templSpecifiers; QCString templSpecifiers;
}; };
class BaseClassList : public QList<BaseClassDef> class BaseClassList : public QList<BaseClassDef>
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
#ifndef CODE_H #ifndef CODE_H
#define CODE_H #define CODE_H
#include "qtbc.h"
#include <stdio.h> #include <stdio.h>
#include <qstring.h>
class OutputList; class OutputList;
extern void parseCode(OutputList &,const char *,const QString &, extern void parseCode(OutputList &,const char *,const QCString &,
bool ,const char *); bool ,const char *);
extern void initParseCodeContext(); extern void initParseCodeContext();
#endif #endif
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
#include <assert.h> #include <assert.h>
#include <ctype.h> #include <ctype.h>
#include <qstring.h> #include "qtbc.h"
#include "scanner.h" #include "scanner.h"
#include "entry.h" #include "entry.h"
#include "doxygen.h" #include "doxygen.h"
...@@ -47,7 +46,7 @@ class CodeClassDef ...@@ -47,7 +46,7 @@ class CodeClassDef
} }
~CodeClassDef() {} ~CodeClassDef() {}
QString name; QCString name;
QStrList bases; QStrList bases;
}; };
...@@ -63,9 +62,9 @@ class CodeVarDef ...@@ -63,9 +62,9 @@ class CodeVarDef
} }
~CodeVarDef() {} ~CodeVarDef() {}
QString name; QCString name;
QString type; QCString type;
QString classScope; QCString classScope;
}; };
typedef QList<CodeClassDef> CodeClassList; typedef QList<CodeClassDef> CodeClassList;
...@@ -91,19 +90,19 @@ static int bracketCount = 0; ...@@ -91,19 +90,19 @@ static int bracketCount = 0;
static int curlyCount = 0; static int curlyCount = 0;
static int sharpCount = 0; static int sharpCount = 0;
static int yyLineNr = 0; static int yyLineNr = 0;
static QString type; static QCString type;
static QString name; static QCString name;
static QString args; static QCString args;
static QString parmType; static QCString parmType;
static QString parmName; static QCString parmName;
static bool inClass; static bool inClass;
static QString classScope; static QCString classScope;
static OutputList *code; static OutputList *code;
static CodeClassDef ccd; static CodeClassDef ccd;
static CodeVarDef cvd; static CodeVarDef cvd;
static bool exampleBlock; static bool exampleBlock;
static QString exampleName; static QCString exampleName;
static QString exampleFile; static QCString exampleFile;
static int anchorCount; static int anchorCount;
static void addType() static void addType()
...@@ -125,9 +124,9 @@ static void addParmType() ...@@ -125,9 +124,9 @@ static void addParmType()
parmName.resize(0) ; parmName.resize(0) ;
} }
static void setClassScope(const QString &name) static void setClassScope(const QCString &name)
{ {
QString n=name; QCString n=name;
n=n.simplifyWhiteSpace(); n=n.simplifyWhiteSpace();
int index; int index;
if ((index=n.find("::"))!=-1) if ((index=n.find("::"))!=-1)
...@@ -165,14 +164,14 @@ static void addParameter() ...@@ -165,14 +164,14 @@ static void addParameter()
static void generateClassLink(OutputList &ol,const char *clName) static void generateClassLink(OutputList &ol,const char *clName)
{ {
QString className=clName; QCString className=clName;
if (className.length()==0) return; if (className.length()==0) return;
ClassDef *cd; ClassDef *cd;
if ((cd=getClass(className)) && cd->isVisible()) if ((cd=getClass(className)) && cd->isVisible())
{ {
if (exampleBlock) if (exampleBlock)
{ {
QString anchor; QCString anchor;
anchor.sprintf("_a%d",anchorCount); anchor.sprintf("_a%d",anchorCount);
//printf("addExampleClass(%s,%s,%s)\n",anchor.data(),exampleName.data(), //printf("addExampleClass(%s,%s,%s)\n",anchor.data(),exampleName.data(),
// exampleFile.data()); // exampleFile.data());
...@@ -200,16 +199,16 @@ static bool getLink(const char *className, ...@@ -200,16 +199,16 @@ static bool getLink(const char *className,
ClassDef *cd; ClassDef *cd;
FileDef *fd; FileDef *fd;
NamespaceDef *nd; NamespaceDef *nd;
QString m=memberName; QCString m=memberName;
QString c=className; QCString c=className;
//printf("Trying `%s'::`%s'\n",c.data(),m.data()); //printf("Trying `%s'::`%s'\n",c.data(),m.data());
if (getDefs(m,c,"()",md,cd,fd,nd) && if (getDefs(c,m,"()",md,cd,fd,nd) &&
(md->hasDocumentation() || md->isReference())) (md->hasDocumentation() || md->isReference()))
{ {
//printf("Found!\n"); //printf("Found!\n");
if (exampleBlock) if (exampleBlock)
{ {
QString anchor; QCString anchor;
anchor.sprintf("a%d",anchorCount); anchor.sprintf("a%d",anchorCount);
//printf("addExampleFile(%s,%s,%s)\n",anchor.data(),exampleName.data(), //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),exampleName.data(),
// exampleFile.data()); // exampleFile.data());
...@@ -339,6 +338,8 @@ static int yyread(char *buf,int max_size) ...@@ -339,6 +338,8 @@ static int yyread(char *buf,int max_size)
ID [a-z_A-Z][a-z_A-Z0-9]* ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x SkipString %x SkipString
%x SkipCPP %x SkipCPP
%x SkipComment %x SkipComment
...@@ -380,7 +381,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -380,7 +381,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
code->codify(yytext); code->codify(yytext);
} }
char c=yyinput(); char c=yyinput();
QString text; QCString text;
text+=c; text+=c;
code->codify(text); code->codify(text);
BEGIN( Body ); BEGIN( Body );
...@@ -663,7 +664,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -663,7 +664,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
} }
<SkipSpecialComment>[ \t]*"*/"[ \t\n]*"\n"/"/*" { <SkipSpecialComment>[ \t]*"*/"[ \t\n]*"\n"/"/*" {
//code->codify("\n"); //code->codify("\n");
QString lineText=yytext; QCString lineText=yytext;
yyLineNr+=lineText.contains('\n'); yyLineNr+=lineText.contains('\n');
BEGIN( lastDContext ) ; BEGIN( lastDContext ) ;
} }
...@@ -700,7 +701,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -700,7 +701,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
code->codify(yytext); code->codify(yytext);
} }
<*>([ \t\n]*"\n"){2,} { // combine multiple blank lines <*>([ \t\n]*"\n"){2,} { // combine multiple blank lines
QString sepLine=yytext; QCString sepLine=yytext;
code->codify("\n\n"); code->codify("\n\n");
yyLineNr+=sepLine.contains('\n'); yyLineNr+=sepLine.contains('\n');
} }
...@@ -723,7 +724,7 @@ void initParseCodeContext() ...@@ -723,7 +724,7 @@ void initParseCodeContext()
anchorCount = 0; anchorCount = 0;
} }
void parseCode(OutputList &ol,const char *className,const QString &s, void parseCode(OutputList &ol,const char *className,const QCString &s,
bool e, const char *exName) bool e, const char *exName)
{ {
code = new OutputList(&ol); code = new OutputList(&ol);
...@@ -752,6 +753,6 @@ void parseCode(OutputList &ol,const char *className,const QString &s, ...@@ -752,6 +753,6 @@ void parseCode(OutputList &ol,const char *className,const QString &s,
} }
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
int codeYYwrap() { return 1 ; } // int codeYYwrap() { return 1 ; }
void codeYYdummy() { yy_flex_realloc(0,0); } void codeYYdummy() { yy_flex_realloc(0,0); }
} }
...@@ -17,66 +17,78 @@ ...@@ -17,66 +17,78 @@
#ifndef CONFIG_H #ifndef CONFIG_H
#define CONFIG_H #define CONFIG_H
#include <qstring.h> #ifndef DOXYWIZARD
#include "qtbc.h"
#endif
#include <qstrlist.h> #include <qstrlist.h>
#include <qfile.h> #include <qfile.h>
extern void parseConfig(const QString &config); extern void parseConfig(const QCString &config);
extern void writeTemplateConfig(QFile *f,bool shortList); extern void writeTemplateConfig(QFile *f,bool shortList);
extern void checkConfig();
struct Config
{
static void init();
extern QString projectName; // the name of the project static QCString projectName; // the name of the project
extern QString projectNumber; // the number of the project static QCString projectNumber; // the number of the project
extern QString htmlOutputDir; // the directory to put the HTML files static QCString outputDir; // the global output directory
extern QString latexOutputDir; // the directory to put the Latex files static QCString htmlOutputDir; // the directory to put the HTML files
extern QString manOutputDir; // the directory to put the man pages static QCString latexOutputDir; // the directory to put the Latex files
extern QString headerFile; // the name of the personal HTML header static QCString manOutputDir; // the directory to put the man pages
extern QString footerFile; // the name of the personal HTML footer static QCString outputLanguage; // the output language
extern QString cgiName; // the name of the CGI binary static QCString headerFile; // the name of the personal HTML header
extern QString cgiURL; // the absolute URL to the CGI binary static QCString footerFile; // the name of the personal HTML footer
extern QString docURL; // the absolute URL to the documentation static QCString cgiName; // the name of the CGI binary
extern QString binAbsPath; // the absolute path to the doxysearch static QCString cgiURL; // the absolute URL to the CGI binary
extern QString docAbsPath; // the absolute path to the documentation static QCString docURL; // the absolute URL to the documentation
extern QString perlPath; // the absolute path to perl static QCString binAbsPath; // the absolute path to the doxysearch
extern QString genTagFile; // the tag file to generate static QCString docAbsPath; // the absolute path to the documentation
extern QString inputFilter; // a filter command that is applied to input files static QCString perlPath; // the absolute path to perl
extern QString paperType; // the page type to generate docs for static QCString genTagFile; // the tag file to generate
extern QString stripFromPath; // the string to strip from the file path static QCString inputFilter; // a filter command that is applied to input files
extern QString manExtension; // extension the man page files static QCString paperType; // the page type to generate docs for
extern QStrList includePath; // list of include paths static QCString stripFromPath; // the string to strip from the file path
extern QStrList examplePath; // list of example paths static QCString manExtension; // extension the man page files
extern QStrList inputSources; // list of input files static QStrList includePath; // list of include paths
extern QStrList excludeSources; // list of files to exclude from the input static QStrList examplePath; // list of example paths
extern QStrList filePatternList; // list of file patterns static QStrList inputSources; // list of input files
extern QStrList excludePatternList; // list of patterns to exclude from input static QStrList excludeSources; // list of files to exclude from the input
extern QStrList tagFileList; // list of tag files static QStrList filePatternList; // list of file patterns
extern QStrList extDocPathList; // list of external doc. directories. static QStrList excludePatternList; // list of patterns to exclude from input
extern QStrList predefined; // list of predefined macro names. static QStrList tagFileList; // list of tag files
extern QStrList extraPackageList; // list of extra LaTeX packages. static QStrList extDocPathList; // list of external doc. directories.
extern bool quietFlag; // generate progress messages flag static QStrList predefined; // list of predefined macro names.
extern bool warningFlag; // generate warnings flag static QStrList extraPackageList; // list of extra LaTeX packages.
extern bool recursiveFlag; // scan directories recursively static bool quietFlag; // generate progress messages flag
extern bool allExtFlag; // include all external classes flag static bool warningFlag; // generate warnings flag
extern bool searchEngineFlag; // generate search engine flag static bool recursiveFlag; // scan directories recursively
extern bool extractAllFlag; // gererate docs for all classes flag static bool allExtFlag; // include all external classes flag
extern bool extractPrivateFlag; // generate docs for private members flag static bool searchEngineFlag; // generate search engine flag
extern bool noIndexFlag; // generate condensed index flag static bool extractAllFlag; // gererate docs for all classes flag
extern bool generateHtml; // generate HTML output static bool extractPrivateFlag; // generate docs for private members flag
extern bool generateLatex; // generate Latex output static bool noIndexFlag; // generate condensed index flag
extern bool generateMan; // generate Man pages static bool generateHtml; // generate HTML output
extern bool preprocessingFlag; // enable preprocessing static bool generateLatex; // generate Latex output
extern bool briefMemDescFlag; // enable `inline' brief member descr. static bool generateMan; // generate Man pages
extern bool hideMemberFlag; // hide undocumented members. static bool preprocessingFlag; // enable preprocessing
extern bool hideClassFlag; // hide undocumented members. static bool briefMemDescFlag; // enable `inline' brief member descr.
extern bool searchIncludeFlag; // search for included files static bool hideMemberFlag; // hide undocumented members.
extern bool macroExpansionFlag; // expand macros in the source. static bool hideClassFlag; // hide undocumented members.
extern bool onlyPredefinedFlag; // expand only predefined macros static bool searchIncludeFlag; // search for included files
extern bool fullPathNameFlag; // using full path name in output static bool macroExpansionFlag; // expand macros in the source.
extern bool classDiagramFlag; // enable the generation of class diagrams. static bool onlyPredefinedFlag; // expand only predefined macros
extern bool compactLatexFlag; // generate compact LaTeX documentation. static bool fullPathNameFlag; // using full path name in output
extern bool repeatBriefFlag; // repeat brief descriptions. static bool classDiagramFlag; // enable the generation of class diagrams.
extern bool internalDocsFlag; // determines what happens to internal docs. static bool compactLatexFlag; // generate compact LaTeX documentation.
extern bool caseSensitiveNames; // determines if output can be mixed case. static bool repeatBriefFlag; // repeat brief descriptions.
extern bool verbatimHeaderFlag; // enable/disable generation of verb headers. static bool internalDocsFlag; // determines what happens to internal docs.
extern bool htmlAlignMemberFlag; // align members in HTML using tables. static bool caseSensitiveNames; // determines if output can be mixed case.
static bool verbatimHeaderFlag; // enable/disable generation of verb headers.
static bool htmlAlignMemberFlag; // align members in HTML using tables.
static bool includeSourceFlag; // include source code in documentation.
static bool autoBriefFlag; // javadoc comments behaves as Qt comments.
};
#endif #endif
This diff is collapsed.
...@@ -18,13 +18,13 @@ ...@@ -18,13 +18,13 @@
#ifndef _CONSTEXP_H #ifndef _CONSTEXP_H
#define _CONSTEXP_H #define _CONSTEXP_H
#include <qstring.h> #include "qtbc.h"
#include "cppvalue.h" #include "cppvalue.h"
extern bool parseCppExpression(const QString &s); extern bool parseCppExpression(const QCString &s);
extern int cppExpYYparse(); extern int cppExpYYparse();
extern int cppExpYYdebug; extern int cppExpYYdebug;
extern QString strToken; extern QCString strToken;
extern CPPValue resultValue; extern CPPValue resultValue;
#endif #endif
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#define YY_NO_UNPUT #define YY_NO_UNPUT
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
QString strToken; QCString strToken;
static const char *inputString; static const char *inputString;
static int inputPosition; static int inputPosition;
...@@ -94,7 +94,7 @@ static int yyread(char *buf,int max_size) ...@@ -94,7 +94,7 @@ static int yyread(char *buf,int max_size)
%% %%
bool parseCppExpression(const QString &s) bool parseCppExpression(const QCString &s)
{ {
//printf("Expression: `%s'\n",s.data()); //printf("Expression: `%s'\n",s.data());
inputString = s; inputString = s;
......
...@@ -14,10 +14,11 @@ ...@@ -14,10 +14,11 @@
* *
*/ */
#include "debug.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <qstring.h>
#include "qtbc.h"
#include "debug.h"
Debug::DebugMask Debug::curMask = Debug::Quiet; Debug::DebugMask Debug::curMask = Debug::Quiet;
int Debug::curPrio = 0; int Debug::curPrio = 0;
...@@ -35,7 +36,7 @@ void Debug::print(DebugMask mask,int prio,const char *fmt,...) ...@@ -35,7 +36,7 @@ void Debug::print(DebugMask mask,int prio,const char *fmt,...)
static int labelToEnumValue(const char *l) static int labelToEnumValue(const char *l)
{ {
QString label=l; QCString label=l;
if (label=="FindMembers") if (label=="FindMembers")
return Debug::FindMembers; return Debug::FindMembers;
else if (label=="Functions") else if (label=="Functions")
......
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
#ifndef DECLINFO_H #ifndef DECLINFO_H
#define DECLINFO_H #define DECLINFO_H
#include "qtbc.h"
#include <stdio.h> #include <stdio.h>
#include <qstring.h>
extern void parseFuncDecl(const QString &decl, extern void parseFuncDecl(const QCString &decl,
QString &clName, QCString &clName,
QString &classTempList, QCString &classTempList,
QString &type, QCString &type,
QString &name, QCString &name,
QString &args, QCString &args,
QString &funcTempList, QCString &funcTempList,
QString &exceptions QCString &exceptions
); );
#endif #endif
...@@ -37,18 +37,18 @@ ...@@ -37,18 +37,18 @@
static const char * inputString; static const char * inputString;
static int inputPosition; static int inputPosition;
static QString scope; static QCString scope;
static QString className; static QCString className;
static QString classTempList; static QCString classTempList;
static QString funcTempList; static QCString funcTempList;
static QString type; static QCString type;
static QString name; static QCString name;
static QString args; static QCString args;
static QString tmpType; static QCString tmpType;
static int sharpCount; static int sharpCount;
static bool classTempListFound; static bool classTempListFound;
static bool funcTempListFound; static bool funcTempListFound;
static QString exceptionString; static QCString exceptionString;
static void addType() static void addType()
{ {
...@@ -95,6 +95,8 @@ static int yyread(char *buf,int max_size) ...@@ -95,6 +95,8 @@ static int yyread(char *buf,int max_size)
B [ \t] B [ \t]
ID [a-z_A-Z][a-z_A-Z0-9]* ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x Start %x Start
%x Template %x Template
%x ReadArgs %x ReadArgs
...@@ -198,8 +200,8 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -198,8 +200,8 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
/*@ ---------------------------------------------------------------------------- /*@ ----------------------------------------------------------------------------
*/ */
void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t, void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
QString &n,QString &a,QString &ftl,QString &exc) QCString &n,QCString &a,QCString &ftl,QCString &exc)
{ {
inputString = decl; inputString = decl;
//printf("Input=`%s'\n",inputString); //printf("Input=`%s'\n",inputString);
...@@ -221,17 +223,18 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t, ...@@ -221,17 +223,18 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t,
declinfoYYlex(); declinfoYYlex();
cl=scope.copy(); cl=scope.copy();
int i; int il,ir;
if ((i=cl.find('<'))!=-1) // split up scope and template arguments if ((il=cl.find('<'))!=-1 && (ir=cl.findRev('>'))!=-1) // split up scope and template arguments
{ {
ctl=removeRedundantWhiteSpace(cl.right(cl.length()-i)); if (ir==-1) ir=cl.length(); else ir++;
cl=cl.left(i); ctl=removeRedundantWhiteSpace(cl.mid(il,ir-il));
cl=cl.left(il)+cl.right(cl.length()-ir);
} }
n=removeRedundantWhiteSpace(name); n=removeRedundantWhiteSpace(name);
if ((i=n.find('<'))!=-1 && n.left(8)!="operator") if ((il=n.find('<'))!=-1 && n.left(8)!="operator")
{ {
ftl=removeRedundantWhiteSpace(n.right(n.length()-i)); ftl=removeRedundantWhiteSpace(n.right(n.length()-il));
n=n.left(i); n=n.left(il);
} }
//ctl=classTempList.copy(); //ctl=classTempList.copy();
...@@ -253,20 +256,20 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t, ...@@ -253,20 +256,20 @@ void parseFuncDecl(const QString &decl,QString &cl,QString &ctl,QString &t,
} }
extern "C" { // some bogus code to keep the compiler happy //extern "C" { // some bogus code to keep the compiler happy
int declinfoYYwrap() { return 1 ; } // int declinfoYYwrap() { return 1 ; }
void declinfoYYdummy() { yy_flex_realloc(0,0); } // void declinfoYYdummy() { yy_flex_realloc(0,0); }
} //}
#if 0 #if 0
void dumpDecl(const char *s) void dumpDecl(const char *s)
{ {
QString className; QCString className;
QString classTNames; QCString classTNames;
QString type; QCString type;
QString name; QCString name;
QString args; QCString args;
QString funcTNames; QCString funcTNames;
printf("-----------------------------------------\n"); printf("-----------------------------------------\n");
parseFuncDecl(s,className,classTNames,type,name,args,funcTNames); parseFuncDecl(s,className,classTNames,type,name,args,funcTNames);
printf("type=`%s' class=`%s' classTempl=`%s' name=`%s' " printf("type=`%s' class=`%s' classTempl=`%s' name=`%s' "
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
#ifndef DEFARGS_H #ifndef DEFARGS_H
#define DEFARGS_H #define DEFARGS_H
#include "qtbc.h"
#include <stdio.h> #include <stdio.h>
#include <qstring.h>
class ArgumentList; class ArgumentList;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
/* /*
* includes * includes
*/ */
#include "qtbc.h"
#include <stdio.h> #include <stdio.h>
#include <iostream.h> #include <iostream.h>
#include <assert.h> #include <assert.h>
...@@ -40,10 +41,10 @@ ...@@ -40,10 +41,10 @@
static const char *inputString; static const char *inputString;
static int inputPosition; static int inputPosition;
static ArgumentList *argList; static ArgumentList *argList;
static QString *copyArgValue; static QCString *copyArgValue;
static QString curArgTypeName; static QCString curArgTypeName;
static QString curArgDefValue; static QCString curArgDefValue;
static QString curArgName; static QCString curArgName;
static int argRoundCount; static int argRoundCount;
static int argSharpCount; static int argSharpCount;
static int argCurlyCount; static int argCurlyCount;
...@@ -72,6 +73,8 @@ static int yyread(char *buf,int max_size) ...@@ -72,6 +73,8 @@ static int yyread(char *buf,int max_size)
B [ \t] B [ \t]
ID [a-z_A-Z][a-z_A-Z0-9]* ID [a-z_A-Z][a-z_A-Z0-9]*
%option noyywrap
%x Start %x Start
%x CopyArgString %x CopyArgString
%x CopyArgRound %x CopyArgRound
...@@ -239,7 +242,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -239,7 +242,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
} }
} }
<ReadFuncArgType,ReadFuncArgPtr>{ID} { <ReadFuncArgType,ReadFuncArgPtr>{ID} {
QString name=yytext; //resolveDefines(yytext); QCString name=yytext; //resolveDefines(yytext);
//printf("resolveName `%s'->`%s'\n",yytext,name.data()); //printf("resolveName `%s'->`%s'\n",yytext,name.data());
curArgTypeName+=name; curArgTypeName+=name;
} }
...@@ -250,7 +253,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -250,7 +253,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
curArgDefValue+=*yytext; curArgDefValue+=*yytext;
} }
<CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>{ID} { <CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>{ID} {
QString name=yytext; //resolveDefines(yytext); QCString name=yytext; //resolveDefines(yytext);
*copyArgValue+=name; *copyArgValue+=name;
} }
<CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>. { <CopyArgRound,CopyArgRound2,CopyArgSharp,CopyArgCurly>. {
...@@ -293,6 +296,6 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al) ...@@ -293,6 +296,6 @@ void stringToArgumentList(const char *argsString,ArgumentList* &al)
} }
extern "C" { // some bogus code to keep the compiler happy extern "C" { // some bogus code to keep the compiler happy
int defargsYYwrap() { return 1 ; } // int defargsYYwrap() { return 1 ; }
void defargsYYdummy() { yy_flex_realloc(0,0); } void defargsYYdummy() { yy_flex_realloc(0,0); }
} }
...@@ -39,5 +39,5 @@ Define::~Define() ...@@ -39,5 +39,5 @@ Define::~Define()
bool Define::hasDocumentation() bool Define::hasDocumentation()
{ {
return definition && (doc || extractAllFlag); return definition && (doc || Config::extractAllFlag);
} }
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
#ifndef DEFINE_H #ifndef DEFINE_H
#define DEFINE_H #define DEFINE_H
#include "qtbc.h"
#include <qdict.h> #include <qdict.h>
#include <qstring.h>
#include "util.h" #include "util.h"
class FileDef; class FileDef;
...@@ -30,13 +30,13 @@ class Define ...@@ -30,13 +30,13 @@ class Define
Define(const Define &d); Define(const Define &d);
~Define(); ~Define();
bool hasDocumentation(); bool hasDocumentation();
QString name; QCString name;
QString definition; QCString definition;
QString fileName; QCString fileName;
QString doc; QCString doc;
QString brief; QCString brief;
QString args; QCString args;
QString anchor; QCString anchor;
FileDef *fileDef; FileDef *fileDef;
int lineNr; int lineNr;
int nargs; int nargs;
...@@ -67,7 +67,7 @@ class DefineName : public QList<Define> ...@@ -67,7 +67,7 @@ class DefineName : public QList<Define>
} }
private: private:
QString name; QCString name;
}; };
class DefineNameList : public QList<DefineName> class DefineNameList : public QList<DefineName>
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
* *
*/ */
#include "qtbc.h"
#include <ctype.h> #include <ctype.h>
#include "definition.h" #include "definition.h"
#include "doxygen.h" #include "doxygen.h"
...@@ -28,23 +29,23 @@ Definition::~Definition() ...@@ -28,23 +29,23 @@ Definition::~Definition()
delete sectionList; delete sectionList;
} }
QString Definition::nameToFile(const char *name) QCString Definition::nameToFile(const char *name)
{ {
QString result; QCString result;
char c; char c;
const char *p=name; const char *p=name;
while ((c=*p++)!=0) while ((c=*p++)!=0)
{ {
switch(c) switch(c)
{ {
case ':': break; case ':': result+="_"; break;
case '<': result+="_lt"; break; case '<': result+="_lt"; break;
case '>': result+="_gt"; break; case '>': result+="_gt"; break;
case '*': result+="_ast"; break; case '*': result+="_ast"; break;
case '&': result+="_amp"; break; case '&': result+="_amp"; break;
case ' ': break; case ' ': break;
default: default:
if (caseSensitiveNames) if (Config::caseSensitiveNames)
result+=c; result+=c;
else else
result+=tolower(c); result+=tolower(c);
...@@ -54,10 +55,10 @@ QString Definition::nameToFile(const char *name) ...@@ -54,10 +55,10 @@ QString Definition::nameToFile(const char *name)
return result; return result;
} }
void Definition::addSectionsToDefinition(QList<QString> *anchorList) void Definition::addSectionsToDefinition(QList<QCString> *anchorList)
{ {
if (!anchorList) return; if (!anchorList) return;
QString *s=anchorList->first(); QCString *s=anchorList->first();
while (s) while (s)
{ {
SectionInfo *si=0; SectionInfo *si=0;
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#ifndef DEFINITION_H #ifndef DEFINITION_H
#define DEFINITION_H #define DEFINITION_H
#include <qstring.h> #include "qtbc.h"
#include <qlist.h> #include <qlist.h>
#include "config.h" #include "config.h"
#include "section.h" #include "section.h"
...@@ -31,13 +31,13 @@ class Definition ...@@ -31,13 +31,13 @@ class Definition
//! destroys the definition //! destroys the definition
virtual ~Definition(); virtual ~Definition();
//! returns the name of the definition //! returns the name of the definition
QString name() const { return n; } QCString name() const { return n; }
//! returns the base name of the output file that contains this definition. //! returns the base name of the output file that contains this definition.
virtual QString getOutputFileBase() const = 0; virtual QCString getOutputFileBase() const = 0;
//! returns the detailed description of this definition //! returns the detailed description of this definition
QString documentation() const { return doc; } QCString documentation() const { return doc; }
//! returns the brief description of this definition //! returns the brief description of this definition
QString briefDescription() const { return brief; } QCString briefDescription() const { return brief; }
//! sets a new name for the definition //! sets a new name for the definition
void setName(const char *name) { n=name; } void setName(const char *name) { n=name; }
//! sets the documentation of this definition //! sets the documentation of this definition
...@@ -54,16 +54,16 @@ class Definition ...@@ -54,16 +54,16 @@ class Definition
brief.at(bl-1)!='?') brief+='.'; brief.at(bl-1)!='?') brief+='.';
} }
//! returns TRUE iff the definition is documented //! returns TRUE iff the definition is documented
bool hasDocumentation() virtual bool hasDocumentation()
{ return !doc.isNull() || !brief.isNull() || extractAllFlag; } { return !doc.isNull() || !brief.isNull() || Config::extractAllFlag; }
QString nameToFile(const char *name); QCString nameToFile(const char *name);
void addSectionsToDefinition(QList<QString> *anchorList); void addSectionsToDefinition(QList<QCString> *anchorList);
private: private:
QString n; // name of the definition QCString n; // name of the definition
QString brief; // brief description QCString brief; // brief description
QString doc; // detailed description QCString doc; // detailed description
SectionList *sectionList; // list of all sections SectionList *sectionList; // list of all sections
}; };
......
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
* *
*/ */
#include "qtbc.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <qlist.h> #include <qlist.h>
#include <qstring.h>
#include <qarray.h> #include <qarray.h>
#include <qtstream.h> #include <qtstream.h>
#include <qfile.h> #include <qfile.h>
...@@ -43,9 +43,9 @@ const uint labelVertSpacing = 32; // vertical distance between labels ...@@ -43,9 +43,9 @@ const uint labelVertSpacing = 32; // vertical distance between labels
const uint labelHorMargin = 6; // horiz. spacing between label and box const uint labelHorMargin = 6; // horiz. spacing between label and box
const uint fontHeight = 12; // height of a character const uint fontHeight = 12; // height of a character
//static QString escapeLatex(const char *s) //static QCString escapeLatex(const char *s)
//{ //{
// QString result; // QCString result;
// char c; // char c;
// while ((c=*s++)) // while ((c=*s++))
// { // {
...@@ -77,7 +77,7 @@ static uint protToColor(Protection p) ...@@ -77,7 +77,7 @@ static uint protToColor(Protection p)
return 0; return 0;
} }
static QString protToString(Protection p) static QCString protToString(Protection p)
{ {
switch(p) switch(p)
{ {
...@@ -180,12 +180,12 @@ DiagramItem::~DiagramItem() ...@@ -180,12 +180,12 @@ DiagramItem::~DiagramItem()
delete children; delete children;
} }
QString DiagramItem::label() const QCString DiagramItem::label() const
{ {
return classDef->name()+templSpec; return classDef->name()+templSpec;
} }
QString DiagramItem::fileName() const QCString DiagramItem::fileName() const
{ {
return classDef->getOutputFileBase(); return classDef->getOutputFileBase();
} }
...@@ -960,10 +960,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path, ...@@ -960,10 +960,10 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
//printf("writeFigure rows=%d cols=%d\n",rows,cols); //printf("writeFigure rows=%d cols=%d\n",rows,cols);
QFile f1((QString)path+"/"+fileName+".eps"); QFile f1((QCString)path+"/"+fileName+".eps");
if (!f1.open(IO_WriteOnly)) if (!f1.open(IO_WriteOnly))
{ {
err("Could not open file %s for writing\n",f1.name()); err("Could not open file %s for writing\n",convertToQCString(f1.name()).data());
exit(1); exit(1);
} }
QTextStream t(&f1); QTextStream t(&f1);
...@@ -1229,7 +1229,7 @@ void ClassDiagram::writeImageMap(QTextStream &t,const char *path, ...@@ -1229,7 +1229,7 @@ void ClassDiagram::writeImageMap(QTextStream &t,const char *path,
base->drawConnectors(t,&image,TRUE,TRUE,baseRows,superRows,cellWidth,cellHeight); base->drawConnectors(t,&image,TRUE,TRUE,baseRows,superRows,cellWidth,cellHeight);
super->drawConnectors(t,&image,FALSE,TRUE,baseRows,superRows,cellWidth,cellHeight); super->drawConnectors(t,&image,FALSE,TRUE,baseRows,superRows,cellWidth,cellHeight);
image.save((QString)path+"/"+fileName+".gif"); image.save((QCString)path+"/"+fileName+".gif");
t << "</MAP></P>" << endl; t << "</MAP></P>" << endl;
} }
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
* *
*/ */
#include "qtbc.h"
#include "entry.h" #include "entry.h"
class ClassDef; class ClassDef;
...@@ -30,8 +31,8 @@ class DiagramItem ...@@ -30,8 +31,8 @@ class DiagramItem
DiagramItem(DiagramItem *p,int number,ClassDef *cd, DiagramItem(DiagramItem *p,int number,ClassDef *cd,
Protection prot,Specifier virt,const char *ts); Protection prot,Specifier virt,const char *ts);
~DiagramItem(); ~DiagramItem();
QString label() const; QCString label() const;
QString fileName() const; QCString fileName() const;
DiagramItem *parentItem() { return parent; } DiagramItem *parentItem() { return parent; }
DiagramItemList *getChildren() { return children; } DiagramItemList *getChildren() { return children; }
void move(int dx,int dy) { x+=dx; y+=dy; } void move(int dx,int dy) { x+=dx; y+=dy; }
...@@ -53,7 +54,7 @@ class DiagramItem ...@@ -53,7 +54,7 @@ class DiagramItem
int num; int num;
Protection prot; Protection prot;
Specifier virt; Specifier virt;
QString templSpec; QCString templSpec;
bool inList; bool inList;
ClassDef *classDef; ClassDef *classDef;
}; };
......
This diff is collapsed.
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#ifndef DOXYGEN_H #ifndef DOXYGEN_H
#define DOXYGEN_H #define DOXYGEN_H
#include "qtbc.h"
#include "groupdef.h" #include "groupdef.h"
#include "filedef.h" #include "filedef.h"
#include "classdef.h" #include "classdef.h"
...@@ -34,9 +35,9 @@ struct PageInfo ...@@ -34,9 +35,9 @@ struct PageInfo
{ {
PageInfo(const char *n,const char *d,const char *t) PageInfo(const char *n,const char *d,const char *t)
{ name=n; doc=d; title=t; } { name=n; doc=d; title=t; }
QString name; QCString name;
QString doc; QCString doc;
QString title; QCString title;
}; };
class PageList : public QList<PageInfo> class PageList : public QList<PageInfo>
...@@ -47,10 +48,10 @@ class PageList : public QList<PageInfo> ...@@ -47,10 +48,10 @@ class PageList : public QList<PageInfo>
} }
}; };
class BufStr : public QString class BufStr : public QCString
{ {
public: public:
BufStr(int size) : QString(size), offset(0), spareRoom(10240) {} BufStr(int size) : QCString(size), offset(0), spareRoom(10240) {}
void addChar(char c) void addChar(char c)
{ {
if (offset>=size()) resize(size()+spareRoom); if (offset>=size()) resize(size()+spareRoom);
...@@ -73,11 +74,11 @@ class BufStr : public QString ...@@ -73,11 +74,11 @@ class BufStr : public QString
const int spareRoom; // 10Kb extra room to avoid frequent resizing const int spareRoom; // 10Kb extra room to avoid frequent resizing
}; };
typedef QList<QString> StringList; typedef QList<QCString> StringList;
typedef QDict<MemberDef> MemberDict; typedef QDict<MemberDef> MemberDict;
typedef QDict<ClassDef> ClassDict; typedef QDict<ClassDef> ClassDict;
typedef QDict<FileDef> FileDict; typedef QDict<FileDef> FileDict;
typedef QDict<QString> StringDict; typedef QDict<QCString> StringDict;
typedef QDict<PageInfo> PageDict; typedef QDict<PageInfo> PageDict;
typedef QDict<GroupDef> GroupDict; typedef QDict<GroupDef> GroupDict;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# TMake project file for doxygen # TMake project file for doxygen
TEMPLATE = doxygen.t TEMPLATE = doxygen.t
CONFIG = console qt warn_on release #debug CONFIG = console qt warn_on release #debug
HEADERS = doxygen.h scanner.h classdef.h classlist.h memberdef.h \ HEADERS = doxygen.h scanner.h classdef.h classlist.h memberdef.h \
membername.h index.h memberlist.h definition.h \ membername.h index.h memberlist.h definition.h \
entry.h logos.h instdox.h message.h code.h \ entry.h logos.h instdox.h message.h code.h \
......
...@@ -259,7 +259,15 @@ void printSearchPage(bool open=FALSE) ...@@ -259,7 +259,15 @@ void printSearchPage(bool open=FALSE)
int readInt(FILE *f) int readInt(FILE *f)
{ {
return (fgetc(f)<<24)+(fgetc(f)<<16)+(fgetc(f)<<8)+fgetc(f); unsigned char c_24 = fgetc(f);
unsigned char c_16 = fgetc(f);
unsigned char c_08 = fgetc(f);
unsigned char c_00 = fgetc(f);
return ((unsigned int)c_24<<24)+
((unsigned int)c_16<<16)+
((unsigned int)c_08<<8)+
c_00;
//return (fgetc(f)<<24)+(fgetc(f)<<16)+(fgetc(f)<<8)+fgetc(f);
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
...@@ -755,10 +763,10 @@ void fileToBuf(const char *name, char **buf) ...@@ -755,10 +763,10 @@ void fileToBuf(const char *name, char **buf)
{ {
FILE *f; FILE *f;
struct stat file_stats; struct stat file_stats;
if ((f=fopen(name,"r"))==NULL) return; if ((f=fopen(name,"rb"))==NULL) return;
if (stat(name,&file_stats)==-1) if (stat(name,&file_stats)==-1)
{ {
message("Error: could not fstat header file %s\n",name); message("Error: could not fstat file %s\n",name);
exit(1); exit(1);
} }
unsigned int len=file_stats.st_size; unsigned int len=file_stats.st_size;
...@@ -769,7 +777,7 @@ void fileToBuf(const char *name, char **buf) ...@@ -769,7 +777,7 @@ void fileToBuf(const char *name, char **buf)
} }
if (fread(*buf,1,len,f)!=len) if (fread(*buf,1,len,f)!=len)
{ {
message("Error: could not read header file %s\n",name); message("Error: could not read file %s\n",name);
exit(1); exit(1);
} }
(*buf)[len]='\0'; (*buf)[len]='\0';
...@@ -808,12 +816,20 @@ void getConfig(const char *s) ...@@ -808,12 +816,20 @@ void getConfig(const char *s)
char headerFile[MAXSTRLEN]; char headerFile[MAXSTRLEN];
strcpy(headerFile,s); strcpy(headerFile,s);
#if defined(_WIN32)
strcat(headerFile,"\\header.html");
#else
strcat(headerFile,"/header.html"); strcat(headerFile,"/header.html");
#endif
fileToBuf(headerFile,&headerBuf); fileToBuf(headerFile,&headerBuf);
char footerFile[MAXSTRLEN]; char footerFile[MAXSTRLEN];
strcpy(footerFile,s); strcpy(footerFile,s);
#if defined(_WIN32)
strcat(footerFile,"\\footer.html");
#else
strcat(footerFile,"/footer.html"); strcat(footerFile,"/footer.html");
#endif
fileToBuf(footerFile,&footerBuf); fileToBuf(footerFile,&footerBuf);
} }
...@@ -908,16 +924,24 @@ int main(int argc,char **argv) ...@@ -908,16 +924,24 @@ int main(int argc,char **argv)
{ {
char configFile[MAXSTRLEN]; char configFile[MAXSTRLEN];
strcpy(configFile,argv[argIndex]); strcpy(configFile,argv[argIndex]);
#if defined(_WIN32)
strcat(configFile,"\\search.cfg");
#else
strcat(configFile,"/search.cfg"); strcat(configFile,"/search.cfg");
#endif
char indexFile[MAXSTRLEN]; char indexFile[MAXSTRLEN];
strcpy(indexFile,argv[argIndex]); strcpy(indexFile,argv[argIndex]);
#if defined(_WIN32)
strcat(indexFile,"\\search.idx");
#else
strcat(indexFile,"/search.idx"); strcat(indexFile,"/search.idx");
#endif
FileInfo *fi=fileList.add(); FileInfo *fi=fileList.add();
FILE *g; FILE *g;
if ((fi->f=fopen(indexFile,"r"))==NULL) if ((fi->f=fopen(indexFile,"rb"))==NULL)
{ {
message("Error: could not open index file %s\n",indexFile); message("Error: could not open index file %s\n",indexFile);
exit(1); exit(1);
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <assert.h> #include <assert.h>
#include <ctype.h> #include <ctype.h>
#include <qstring.h> #include "qtbc.h"
#include <qstrlist.h> #include <qstrlist.h>
#include <qfileinf.h> #include <qfileinf.h>
#include <qfile.h> #include <qfile.h>
...@@ -38,16 +38,16 @@ ...@@ -38,16 +38,16 @@
struct MemberDef struct MemberDef
{ {
QString name; QCString name;
QString anchor; QCString anchor;
QString args; QCString args;
}; };
struct ClassDef struct ClassDef
{ {
QString name; QCString name;
QStrList bases; QStrList bases;
QString fileName; QCString fileName;
bool isFile; bool isFile;
QList<MemberDef> memberList; QList<MemberDef> memberList;
}; };
...@@ -61,19 +61,19 @@ static bool genTag; ...@@ -61,19 +61,19 @@ static bool genTag;
static bool genIndex; static bool genIndex;
static QStrList bases; static QStrList bases;
static QString inputString; static QCString inputString;
static int inputPosition; static int inputPosition;
static QString yyFileName; static QCString yyFileName;
static int yyLineNr; static int yyLineNr;
static QString classFile; static QCString classFile;
static QString memberRef; static QCString memberRef;
static QString memberName; static QCString memberName;
static QString memberArgs; static QCString memberArgs;
static QString className; static QCString className;
//static bool newClass; //static bool newClass;
static QString docBaseLink; static QCString docBaseLink;
static QString docAnchor; static QCString docAnchor;
static QString docRefName; static QCString docRefName;
static bool nameBug; static bool nameBug;
static SearchIndex searchIndex; static SearchIndex searchIndex;
...@@ -152,9 +152,9 @@ static void addReference() ...@@ -152,9 +152,9 @@ static void addReference()
} }
} }
QString unhtmlify(const char *str) QCString unhtmlify(const char *str)
{ {
QString result; QCString result;
const char *p=str; const char *p=str;
char c; char c;
while ((c=*p)!='\0') while ((c=*p)!='\0')
...@@ -236,7 +236,7 @@ QString unhtmlify(const char *str) ...@@ -236,7 +236,7 @@ QString unhtmlify(const char *str)
} }
<SkipPreformated>[^\<]+ <SkipPreformated>[^\<]+
<CheckConstructor>[a-z_A-Z0-9~:]+ { <CheckConstructor>[a-z_A-Z0-9~:]+ {
QString s=yytext; QCString s=yytext;
if (s.find("::")!=-1) if (s.find("::")!=-1)
{ {
docRefName=yytext; docRefName=yytext;
...@@ -401,7 +401,7 @@ QString unhtmlify(const char *str) ...@@ -401,7 +401,7 @@ QString unhtmlify(const char *str)
*/ */
void parse(QString &s) void parse(QCString &s)
{ {
bases.clear(); bases.clear();
nameBug = FALSE; nameBug = FALSE;
...@@ -425,7 +425,7 @@ void parseFile(QFileInfo &fi) ...@@ -425,7 +425,7 @@ void parseFile(QFileInfo &fi)
className.resize(0); className.resize(0);
memberName.resize(0); memberName.resize(0);
//printf("Parsing file %s...\n",fi.fileName().data()); //printf("Parsing file %s...\n",fi.fileName().data());
QString input(fi.size()+1); QCString input(fi.size()+1);
docBaseLink=fi.fileName(); docBaseLink=fi.fileName();
docRefName=fi.fileName().copy(); docRefName=fi.fileName().copy();
searchIndex.addReference(docRefName,docBaseLink); searchIndex.addReference(docRefName,docBaseLink);
...@@ -503,8 +503,8 @@ const char *getArg(int argc,char **argv,int &optind,const char c) ...@@ -503,8 +503,8 @@ const char *getArg(int argc,char **argv,int &optind,const char c)
int main(int argc,char **argv) int main(int argc,char **argv)
{ {
QString tagName; QCString tagName;
QString indexName; QCString indexName;
int optind=1; int optind=1;
const char *arg; const char *arg;
...@@ -554,7 +554,7 @@ int main(int argc,char **argv) ...@@ -554,7 +554,7 @@ int main(int argc,char **argv)
} }
if (genIndex) if (genIndex)
{ {
printf("Writing search index\n"); //printf("Writing search index\n");
if (!searchIndex.saveIndex(indexName)) if (!searchIndex.saveIndex(indexName))
{ {
fprintf(stderr,"Error: Could not write search index\n"); fprintf(stderr,"Error: Could not write search index\n");
...@@ -562,7 +562,7 @@ int main(int argc,char **argv) ...@@ -562,7 +562,7 @@ int main(int argc,char **argv)
QFileInfo fi(indexName); QFileInfo fi(indexName);
if (fi.exists()) if (fi.exists())
{ {
QString dir=fi.dir().absPath(); QCString dir=convertToQCString(fi.dir().absPath());
fi.setFile(dir+"/search.gif"); fi.setFile(dir+"/search.gif");
if (!fi.exists()) writeSearchButton(dir); if (!fi.exists()) writeSearchButton(dir);
fi.setFile(dir+"/doxygen.gif"); fi.setFile(dir+"/doxygen.gif");
......
...@@ -16,31 +16,32 @@ ...@@ -16,31 +16,32 @@
#include "entry.h" #include "entry.h"
static int newCount=0; int Entry::num=0;
Entry::Entry() Entry::Entry()
{ {
num=newCount++; num++;
//printf("New Entry %d\n",num); //printf("New Entry %d\n",num);
parent=0; parent=0;
sublist = new QList<Entry>; sublist = new QList<Entry>;
sublist->setAutoDelete(TRUE); sublist->setAutoDelete(TRUE);
extends = new QList<BaseInfo>; extends = new QList<BaseInfo>;
extends->setAutoDelete(TRUE); extends->setAutoDelete(TRUE);
groups = new QList<QString>; groups = new QList<QCString>;
groups->setAutoDelete(TRUE); groups->setAutoDelete(TRUE);
anchors = new QList<QString>; anchors = new QList<QCString>;
anchors->setAutoDelete(TRUE); anchors->setAutoDelete(TRUE);
argList = new ArgumentList; argList = new ArgumentList;
argList->setAutoDelete(TRUE); argList->setAutoDelete(TRUE);
//printf("Entry::Entry() tArgList=0\n"); //printf("Entry::Entry() tArgList=0\n");
tArgList = 0; tArgList = 0;
mGrpId = -1;
reset(); reset();
} }
Entry::Entry(const Entry &e) Entry::Entry(const Entry &e)
{ {
num=newCount++; num++;
//printf("Copy New Entry %d\n",num); //printf("Copy New Entry %d\n",num);
section = e.section; section = e.section;
protection = e.protection; protection = e.protection;
...@@ -62,13 +63,14 @@ Entry::Entry(const Entry &e) ...@@ -62,13 +63,14 @@ Entry::Entry(const Entry &e)
inside = e.inside.copy(); inside = e.inside.copy();
fileName = e.fileName.copy(); fileName = e.fileName.copy();
startLine = e.startLine; startLine = e.startLine;
mGrpId = e.mGrpId;
sublist = new QList<Entry>; sublist = new QList<Entry>;
sublist->setAutoDelete(TRUE); sublist->setAutoDelete(TRUE);
extends = new QList<BaseInfo>; extends = new QList<BaseInfo>;
extends->setAutoDelete(TRUE); extends->setAutoDelete(TRUE);
groups = new QList<QString>; groups = new QList<QCString>;
groups->setAutoDelete(TRUE); groups->setAutoDelete(TRUE);
anchors = new QList<QString>; anchors = new QList<QCString>;
anchors->setAutoDelete(TRUE); anchors->setAutoDelete(TRUE);
argList = new ArgumentList; argList = new ArgumentList;
argList->setAutoDelete(TRUE); argList->setAutoDelete(TRUE);
...@@ -92,17 +94,17 @@ Entry::Entry(const Entry &e) ...@@ -92,17 +94,17 @@ Entry::Entry(const Entry &e)
} }
// deep copy group list // deep copy group list
QListIterator<QString> sli(*e.groups); QListIterator<QCString> sli(*e.groups);
QString *s; QCString *s;
for (;(s=sli.current());++sli) for (;(s=sli.current());++sli)
{ {
groups->append(new QString(*s)); groups->append(new QCString(*s));
} }
QListIterator<QString> sli2(*e.anchors); QListIterator<QCString> sli2(*e.anchors);
for (;(s=sli2.current());++sli2) for (;(s=sli2.current());++sli2)
{ {
anchors->append(new QString(*s)); anchors->append(new QCString(*s));
} }
// deep copy argument list // deep copy argument list
...@@ -140,8 +142,8 @@ Entry::~Entry() ...@@ -140,8 +142,8 @@ Entry::~Entry()
delete groups; delete groups;
delete anchors; delete anchors;
delete argList; delete argList;
//printf("Entry::~Entry() tArgList=%p\n",tArgList);
delete tArgList; delete tArgList;
num--;
} }
void Entry::addSubEntry(Entry *current) void Entry::addSubEntry(Entry *current)
...@@ -171,6 +173,7 @@ void Entry::reset() ...@@ -171,6 +173,7 @@ void Entry::reset()
args.resize(0); args.resize(0);
exception.resize(0); exception.resize(0);
program.resize(0); program.resize(0);
body.resize(0);
includeFile.resize(0); includeFile.resize(0);
includeName.resize(0); includeName.resize(0);
doc.resize(0); doc.resize(0);
...@@ -178,6 +181,7 @@ void Entry::reset() ...@@ -178,6 +181,7 @@ void Entry::reset()
brief.resize(0); brief.resize(0);
inside.resize(0); inside.resize(0);
fileName.resize(0); fileName.resize(0);
mGrpId = -1;
section = EMPTY_SEC; section = EMPTY_SEC;
sig = FALSE; sig = FALSE;
virt = Normal; virt = Normal;
...@@ -202,6 +206,7 @@ int Entry::getSize() ...@@ -202,6 +206,7 @@ int Entry::getSize()
size+=args.length()+1; size+=args.length()+1;
size+=exception.length()+1; size+=exception.length()+1;
size+=program.length()+1; size+=program.length()+1;
size+=body.length()+1;
size+=includeFile.length()+1; size+=includeFile.length()+1;
size+=includeName.length()+1; size+=includeName.length()+1;
size+=doc.length()+1; size+=doc.length()+1;
...@@ -216,7 +221,7 @@ int Entry::getSize() ...@@ -216,7 +221,7 @@ int Entry::getSize()
size+=bi->name.length()+1+sizeof(bi->prot)+sizeof(bi->virt); size+=bi->name.length()+1+sizeof(bi->prot)+sizeof(bi->virt);
bi=extends->next(); bi=extends->next();
} }
QString *s=groups->first(); QCString *s=groups->first();
while (s) while (s)
{ {
size+=sizeof(QLNode); size+=sizeof(QLNode);
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#ifndef ENTRY_H #ifndef ENTRY_H
#define ENTRY_H #define ENTRY_H
#include <qstring.h> #include "qtbc.h"
#include <qlist.h> #include <qlist.h>
enum Protection { Public, Protected, Private } ; enum Protection { Public, Protected, Private } ;
...@@ -26,7 +26,7 @@ enum Specifier { Normal, Virtual, Pure } ; ...@@ -26,7 +26,7 @@ enum Specifier { Normal, Virtual, Pure } ;
struct BaseInfo struct BaseInfo
{ {
BaseInfo(const char *n,Protection p,Specifier v) : name(n),prot(p),virt(v) {} BaseInfo(const char *n,Protection p,Specifier v) : name(n),prot(p),virt(v) {}
QString name; // the name of the base class QCString name; // the name of the base class
Protection prot; // inheritance type Protection prot; // inheritance type
Specifier virt; // virtualness Specifier virt; // virtualness
}; };
...@@ -51,9 +51,9 @@ struct Argument ...@@ -51,9 +51,9 @@ struct Argument
return *this; return *this;
} }
QString type; // argument type QCString type; // argument type
QString name; // argument name (if any) QCString name; // argument name (if any)
QString defval; // argument default value (if any) QCString defval; // argument default value (if any)
}; };
class ArgumentList : public QList<Argument> class ArgumentList : public QList<Argument>
...@@ -115,35 +115,37 @@ class Entry ...@@ -115,35 +115,37 @@ class Entry
void addSubEntry (Entry* e) ; void addSubEntry (Entry* e) ;
void reset(); void reset();
int section; // entry type; int section; // entry type (see Sections);
Protection protection; // class protection Protection protection; // class protection
bool sig; // a Qt signal ? bool sig; // a Qt signal ?
bool slot; // a Qt slot ? bool slot; // a Qt slot ?
bool stat; // static ? bool stat; // static ?
bool proto; // prototype ? bool proto; // prototype ?
Specifier virt; // virtualness of the entry Specifier virt; // virtualness of the entry
Entry *parent; // parent node in the tree Entry *parent; // parent node in the tree
QString type; // member type QCString type; // member type
QString name; // member name QCString name; // member name
QString args; // member argument string QCString args; // member argument string
ArgumentList *argList; // member arguments as a list ArgumentList *argList; // member arguments as a list
ArgumentList *tArgList; // template argument list ArgumentList *tArgList; // template argument list
ArgumentList *tNameList; // template name list QCString program; // the program text
QString program; // the program text QCString body; // the function body
QString includeFile; // include file (2 arg of \class, must be unique) QCString includeFile; // include file (2 arg of \class, must be unique)
QString includeName; // include name (3 arg of \class) QCString includeName; // include name (3 arg of \class)
QString doc; // documentation block (partly parsed) QCString doc; // documentation block (partly parsed)
QString relates; // related class (doc block) QCString relates; // related class (doc block)
QString brief; // brief description (doc block) QCString brief; // brief description (doc block)
QString inside; // name of the class in which documents are found QCString inside; // name of the class in which documents are found
QString exception; // throw specification QCString exception; // throw specification
int mGrpId; // member group id
QCString mGrpHeader; // member group header
QList<Entry> *sublist; // entries that are children of this one QList<Entry> *sublist; // entries that are children of this one
QList<BaseInfo> *extends; // list of base classes QList<BaseInfo> *extends; // list of base classes
QList<QString> *groups; // list of groups this entry belongs to QList<QCString> *groups; // list of groups this entry belongs to
QList<QString> *anchors; // list of anchors defined in this entry QList<QCString> *anchors; // list of anchors defined in this entry
QString fileName; // file this entry was extracted from QCString fileName; // file this entry was extracted from
int startLine; // start line of entry in the source int startLine; // start line of entry in the source
int num; static int num; // counts the total number of entries
private: private:
Entry &operator=(const Entry &); Entry &operator=(const Entry &);
} ; } ;
......
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
#ifndef EXAMPLE_H #ifndef EXAMPLE_H
#define EXAMPLE_H #define EXAMPLE_H
#include <qstring.h> #include "qtbc.h"
class ClassDef; class ClassDef;
class MemberName; class MemberName;
struct Example struct Example
{ {
QString anchor; QCString anchor;
QString name; QCString name;
QString file; QCString file;
}; };
class ExampleList : public QList<Example> class ExampleList : public QList<Example>
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
* *
*/ */
#include "qtbc.h"
#include "memberlist.h" #include "memberlist.h"
#include "classlist.h" #include "classlist.h"
#include "define.h" #include "define.h"
...@@ -66,14 +67,14 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -66,14 +67,14 @@ void FileDef::writeDocumentation(OutputList &ol)
{ {
//funcList->countDecMembers(); //funcList->countDecMembers();
QString pageTitle=name()+" File Reference"; QCString pageTitle=name()+" File Reference";
startFile(ol,diskname,pageTitle); startFile(ol,diskname,pageTitle);
startTitle(ol); startTitle(ol);
parseText(ol,theTranslator->trFileReference(name())); parseText(ol,theTranslator->trFileReference(name()));
endTitle(ol,name()); endTitle(ol,name());
//ol.newParagraph(); //ol.newParagraph();
if (genTagFile.length()>0) tagFile << "&" << name() << ":\n"; if (Config::genTagFile.length()>0) tagFile << "&" << name() << ":\n";
//brief=brief.stripWhiteSpace(); //brief=brief.stripWhiteSpace();
//int bl=brief.length(); //int bl=brief.length();
...@@ -97,17 +98,53 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -97,17 +98,53 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.writeSynopsis(); ol.writeSynopsis();
ol.startMemberSections(); ol.startMemberSections();
if (namespaceList->count()>0)
{
NamespaceDef *nd=namespaceList->first();
bool found=FALSE;
while (nd)
{
if (nd->isVisibleExt())
{
if (!found)
{
ol.startMemberHeader();
parseText(ol,theTranslator->trNamespaces());
ol.endMemberHeader();
ol.startMemberList();
found=TRUE;
}
ol.startMemberItem();
ol.writeString("namespace ");
ol.insertMemberAlign();
if (nd->hasDocumentation())
{
ol.writeObjectLink(nd->getReference(),
nd->getOutputFileBase(),
0,
nd->name()
);
}
else
{
ol.startBold();
ol.docify(nd->name());
ol.endBold();
}
ol.endMemberItem();
}
nd=namespaceList->next();
}
if (found) ol.endMemberList();
}
if (classList->count()>0) if (classList->count()>0)
{ {
ClassDef *cd=classList->first(); ClassDef *cd=classList->first();
bool found=FALSE; bool found=FALSE;
while (cd) while (cd)
{ {
if (//cd->name()[0]!='@' && if ( cd->isVisibleExt() )
//(cd->protection()!=Private || extractPrivateFlag) &&
//(cd->hasDocumentation() || !hideClassFlag))
cd->isVisibleExt()
)
{ {
if (!found) if (!found)
{ {
...@@ -247,7 +284,7 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -247,7 +284,7 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.startGroupHeader(); ol.startGroupHeader();
parseText(ol,theTranslator->trAuthor()); parseText(ol,theTranslator->trAuthor());
ol.endGroupHeader(); ol.endGroupHeader();
parseText(ol,theTranslator->trGeneratedAutomatically(projectName)); parseText(ol,theTranslator->trGeneratedAutomatically(Config::projectName));
ol.enableAll(); ol.enableAll();
endFile(ol); endFile(ol);
} }
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
#ifndef FILEDEF_H #ifndef FILEDEF_H
#define FILEDEF_H #define FILEDEF_H
#include <qlist.h>
#include "index.h" #include "index.h"
#include <qlist.h>
#include "config.h" #include "config.h"
#include "definition.h" #include "definition.h"
...@@ -53,9 +53,9 @@ class FileDef : public Definition ...@@ -53,9 +53,9 @@ class FileDef : public Definition
~FileDef(); ~FileDef();
/*! Returns the unique file name (this may include part of the path). */ /*! Returns the unique file name (this may include part of the path). */
QString name() const QCString name() const
{ {
if (fullPathNameFlag) if (Config::fullPathNameFlag)
return filename; return filename;
else else
return Definition::name(); return Definition::name();
...@@ -63,10 +63,10 @@ class FileDef : public Definition ...@@ -63,10 +63,10 @@ class FileDef : public Definition
/*! Returns nameString with all slashes replaced by underscores. */ /*! Returns nameString with all slashes replaced by underscores. */
//const char *diskName() const { return diskname; } //const char *diskName() const { return diskname; }
QString getOutputFileBase() const { return diskname; } QCString getOutputFileBase() const { return diskname; }
/*! Returns the absolute path including the file name. */ /*! Returns the absolute path including the file name. */
QString absFilePath() const { return filepath; } QCString absFilePath() const { return filepath; }
/*! Returns the name of the verbatim copy of this file (if any). */ /*! Returns the name of the verbatim copy of this file (if any). */
const char *includeName() const { return incName; } const char *includeName() const { return incName; }
...@@ -87,7 +87,7 @@ class FileDef : public Definition ...@@ -87,7 +87,7 @@ class FileDef : public Definition
//void setDocumentation(const char *d) { doc=d; } //void setDocumentation(const char *d) { doc=d; }
/*! Returns the absolute path of this file. */ /*! Returns the absolute path of this file. */
QString getPath() const { return path; } QCString getPath() const { return path; }
/*! Returns true iff any documentation for this file is found. */ /*! Returns true iff any documentation for this file is found. */
//bool hasDocumentation() //bool hasDocumentation()
...@@ -117,15 +117,15 @@ class FileDef : public Definition ...@@ -117,15 +117,15 @@ class FileDef : public Definition
FileList *includeList; FileList *includeList;
NamespaceList *namespaceList; NamespaceList *namespaceList;
DefineList *defineList; DefineList *defineList;
//QString n; //QCString n;
//QString doc; //QCString doc;
//QString brief; //QCString brief;
QString reference; QCString reference;
QString path; QCString path;
QString filepath; QCString filepath;
QString diskname; QCString diskname;
QString filename; QCString filename;
QString incName; QCString incName;
//FileType ftype; //FileType ftype;
}; };
......
...@@ -26,9 +26,9 @@ FileName::~FileName() ...@@ -26,9 +26,9 @@ FileName::~FileName()
{ {
} }
//static QString convertSlashes(const char *s) //static QCString convertSlashes(const char *s)
//{ //{
// QString result=s; // QCString result=s;
// int i,l=result.length(); // int i,l=result.length();
// for (i=0;i<l;i++) if (result.at(i)=='/') result.at(i)='_'; // for (i=0;i<l;i++) if (result.at(i)=='/') result.at(i)='_';
// return result; // return result;
...@@ -36,7 +36,7 @@ FileName::~FileName() ...@@ -36,7 +36,7 @@ FileName::~FileName()
void FileName::generateDiskNames() void FileName::generateDiskNames()
{ {
QString commonPrefix; QCString commonPrefix;
FileDef *fd=first(); FileDef *fd=first();
int count=0; int count=0;
while (fd) { if (!fd->isReference()) count++; fd=next(); } while (fd) { if (!fd->isReference()) count++; fd=next(); }
...@@ -66,8 +66,8 @@ void FileName::generateDiskNames() ...@@ -66,8 +66,8 @@ void FileName::generateDiskNames()
//printf("i=%d fd->path=`%s' fd->name=`%s'\n",i,fd->path.data(),fd->name().data()); //printf("i=%d fd->path=`%s' fd->name=`%s'\n",i,fd->path.data(),fd->name().data());
if (i==(int)fd->path.length()) if (i==(int)fd->path.length())
{ {
warning("Warning: Input file found multiple times!\n" warning("Warning: Input file %s found multiple times!\n"
" The generated documentation for this file may not be correct!\n"); " The generated documentation for this file may not be correct!\n",fd->absFilePath().data());
found=TRUE; found=TRUE;
} }
else if (fd->path[i]!=c) else if (fd->path[i]!=c)
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#ifndef FILENAME_H #ifndef FILENAME_H
#define FILENAME_H #define FILENAME_H
#include "qtbc.h"
#include <qdict.h> #include <qdict.h>
#include "filedef.h" #include "filedef.h"
...@@ -30,7 +31,7 @@ class FileName : public QList<FileDef> ...@@ -30,7 +31,7 @@ class FileName : public QList<FileDef>
int compareItems(GCI item1,GCI item2); int compareItems(GCI item1,GCI item2);
private: private:
QString name; QCString name;
}; };
class FileNameIterator : public QListIterator<FileDef> class FileNameIterator : public QListIterator<FileDef>
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include "qtbc.h"
#include <qfile.h> #include <qfile.h>
#include <qtstream.h> #include <qtstream.h>
#include <qfileinf.h> #include <qfileinf.h>
...@@ -49,12 +50,12 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -49,12 +50,12 @@ void FormulaList::generateBitmaps(const char *path)
QDir d(path); QDir d(path);
// store the original directory // store the original directory
if (!d.exists()) { err("Error: Output dir %s does not exist!\n",path); exit(1); } if (!d.exists()) { err("Error: Output dir %s does not exist!\n",path); exit(1); }
QString oldDir = QDir::currentDirPath().copy(); QCString oldDir = convertToQCString(QDir::currentDirPath());
// goto the html output directory (i.e. path) // goto the html output directory (i.e. path)
QDir::setCurrent(d.absPath()); QDir::setCurrent(d.absPath());
QDir thisDir; QDir thisDir;
// generate a latex file containing one formula per page. // generate a latex file containing one formula per page.
QString texName="_formulas.tex"; QCString texName="_formulas.tex";
QList<int> pagesToGenerate; QList<int> pagesToGenerate;
pagesToGenerate.setAutoDelete(TRUE); pagesToGenerate.setAutoDelete(TRUE);
FormulaListIterator fli(*this); FormulaListIterator fli(*this);
...@@ -70,7 +71,7 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -70,7 +71,7 @@ void FormulaList::generateBitmaps(const char *path)
int page=0; int page=0;
for (fli.toFirst();(formula=fli.current());++fli) for (fli.toFirst();(formula=fli.current());++fli)
{ {
QString resultName; QCString resultName;
resultName.sprintf("form-%d.gif",formula->getId()); resultName.sprintf("form-%d.gif",formula->getId());
// only formulas for which no image exists are generated // only formulas for which no image exists are generated
QFileInfo fi(resultName); QFileInfo fi(resultName);
...@@ -99,7 +100,7 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -99,7 +100,7 @@ void FormulaList::generateBitmaps(const char *path)
int pageNum=*pagePtr; int pageNum=*pagePtr;
msg("Generating image form-%d.gif for formula\n",pageNum); msg("Generating image form-%d.gif for formula\n",pageNum);
char dviCmd[256]; char dviCmd[256];
QString formBase; QCString formBase;
formBase.sprintf("_form%d",pageNum); formBase.sprintf("_form%d",pageNum);
// run dvips to convert the page with number pageIndex to an // run dvips to convert the page with number pageIndex to an
// encapsulated postscript. // encapsulated postscript.
...@@ -110,7 +111,7 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -110,7 +111,7 @@ void FormulaList::generateBitmaps(const char *path)
QFileInfo fi(formBase+".eps"); QFileInfo fi(formBase+".eps");
if (fi.exists()) if (fi.exists())
{ {
QString eps = fileToString(formBase+".eps"); QCString eps = fileToString(formBase+".eps");
int i=eps.find("%%BoundingBox:"); int i=eps.find("%%BoundingBox:");
if (i!=-1) if (i!=-1)
{ {
...@@ -162,7 +163,7 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -162,7 +163,7 @@ void FormulaList::generateBitmaps(const char *path)
if (f.open(IO_ReadOnly)) if (f.open(IO_ReadOnly))
{ {
QTextStream t(&f); QTextStream t(&f);
QString s; QCString s;
if (!t.eof()) if (!t.eof())
s=t.readLine(); s=t.readLine();
if (s.length()<2 || s.left(2)!="P6") if (s.length()<2 || s.left(2)!="P6")
...@@ -233,7 +234,7 @@ void FormulaList::generateBitmaps(const char *path) ...@@ -233,7 +234,7 @@ void FormulaList::generateBitmaps(const char *path)
} }
} }
// save the result as a gif // save the result as a gif
QString resultName; QCString resultName;
resultName.sprintf("form-%d.gif",pageNum); resultName.sprintf("form-%d.gif",pageNum);
// the option parameter 1 is used here as a temporary hack // the option parameter 1 is used here as a temporary hack
// to select the right color palette! // to select the right color palette!
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#ifndef FORMULA_H #ifndef FORMULA_H
#define FORMULA_H #define FORMULA_H
#include <qstring.h> #include "qtbc.h"
#include <qlist.h> #include <qlist.h>
#include <qdict.h> #include <qdict.h>
...@@ -27,11 +27,11 @@ class Formula ...@@ -27,11 +27,11 @@ class Formula
Formula(const char *text); Formula(const char *text);
~Formula(); ~Formula();
int getId(); int getId();
QString getFormulaText() const { return form; } QCString getFormulaText() const { return form; }
private: private:
int number; int number;
QString form; QCString form;
}; };
class FormulaList : public QList<Formula> class FormulaList : public QList<Formula>
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
#include <ctype.h> #include <ctype.h>
#include "qtbc.h"
#include "groupdef.h" #include "groupdef.h"
#include "classdef.h" #include "classdef.h"
#include "filedef.h" #include "filedef.h"
...@@ -118,7 +119,7 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -118,7 +119,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
ClassDef *cd=classList->first(); ClassDef *cd=classList->first();
while (cd) while (cd)
{ {
QString type; QCString type;
switch (cd->compoundType()) switch (cd->compoundType())
{ {
case ClassDef::Class: type="class"; break; case ClassDef::Class: type="class"; break;
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#ifndef GROUPDEF_H #ifndef GROUPDEF_H
#define GROUPDEF_H #define GROUPDEF_H
#include <qstring.h> #include "qtbc.h"
#include <qlist.h> #include <qlist.h>
#include "definition.h" #include "definition.h"
...@@ -36,7 +36,7 @@ class GroupDef : public Definition ...@@ -36,7 +36,7 @@ class GroupDef : public Definition
GroupDef(const char *name,const char *title); GroupDef(const char *name,const char *title);
~GroupDef(); ~GroupDef();
//const char *groupFile() const { return fileName; } //const char *groupFile() const { return fileName; }
QString getOutputFileBase() const { return fileName; } QCString getOutputFileBase() const { return fileName; }
const char *groupTitle() const { return title; } const char *groupTitle() const { return title; }
void addFile(const FileDef *def); void addFile(const FileDef *def);
void addClass(const ClassDef *def); void addClass(const ClassDef *def);
...@@ -45,8 +45,8 @@ class GroupDef : public Definition ...@@ -45,8 +45,8 @@ class GroupDef : public Definition
int countMembers() const; int countMembers() const;
private: private:
QString title; // title of the group QCString title; // title of the group
QString fileName; // base name of the generated file QCString fileName; // base name of the generated file
FileList *fileList; // list of all files in the group FileList *fileList; // list of all files in the group
ClassList *classList; // list of all classes in the group ClassList *classList; // list of all classes in the group
NamespaceList *namespaceList; // list of all namespace in the group NamespaceList *namespaceList; // list of all namespace in the group
......
...@@ -14,8 +14,10 @@ ...@@ -14,8 +14,10 @@
* *
*/ */
#include <qdir.h>
#include <stdlib.h> #include <stdlib.h>
#include "qtbc.h"
#include <qdir.h>
#include "message.h" #include "message.h"
#include "htmlgen.h" #include "htmlgen.h"
#include "config.h" #include "config.h"
...@@ -26,9 +28,9 @@ ...@@ -26,9 +28,9 @@
HtmlGenerator::HtmlGenerator() : OutputGenerator() HtmlGenerator::HtmlGenerator() : OutputGenerator()
{ {
if (headerFile.length()>0) header=fileToString(headerFile); if (Config::headerFile.length()>0) header=fileToString(Config::headerFile);
if (footerFile.length()>0) footer=fileToString(footerFile); if (Config::footerFile.length()>0) footer=fileToString(Config::footerFile);
dir=htmlOutputDir; dir=Config::htmlOutputDir;
} }
HtmlGenerator::~HtmlGenerator() HtmlGenerator::~HtmlGenerator()
...@@ -42,18 +44,18 @@ void HtmlGenerator::append(const OutputGenerator *g) ...@@ -42,18 +44,18 @@ void HtmlGenerator::append(const OutputGenerator *g)
void HtmlGenerator::init() void HtmlGenerator::init()
{ {
QDir d(htmlOutputDir); QDir d(Config::htmlOutputDir);
if (!d.exists() && !d.mkdir(htmlOutputDir)) if (!d.exists() && !d.mkdir(Config::htmlOutputDir))
{ {
err("Could not create output directory %s\n",htmlOutputDir.data()); err("Could not create output directory %s\n",Config::htmlOutputDir.data());
exit(1); exit(1);
} }
writeLogo(htmlOutputDir); writeLogo(Config::htmlOutputDir);
} }
void HtmlGenerator::startFile(const char *name,const char *title,bool external) void HtmlGenerator::startFile(const char *name,const char *title,bool external)
{ {
QString fileName=name; QCString fileName=name;
lastTitle=title; lastTitle=title;
if (fileName.right(5)!=".html") fileName+=".html"; if (fileName.right(5)!=".html") fileName+=".html";
startPlainFile(fileName); startPlainFile(fileName);
...@@ -156,7 +158,9 @@ void HtmlGenerator::writeStyleInfo(int part) ...@@ -156,7 +158,9 @@ void HtmlGenerator::writeStyleInfo(int part)
if (part==0) if (part==0)
{ {
startPlainFile("doxygen.css"); startPlainFile("doxygen.css");
t << "H1 { border-width: thin; border: solid; text-align: center }" << endl t
//<< "H1 { border-width: thin; border: solid; text-align: center }" << endl
<< "H1 { text-align: center }" << endl
<< "A.el { text-decoration: none; font-weight: bold }" << endl << "A.el { text-decoration: none; font-weight: bold }" << endl
<< "DL.el { margin-left: -1cm }" << endl << "DL.el { margin-left: -1cm }" << endl
<< "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl << "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl
...@@ -274,7 +278,7 @@ void HtmlGenerator::writeSection(const char *lab,const char *title,bool sub) ...@@ -274,7 +278,7 @@ void HtmlGenerator::writeSection(const char *lab,const char *title,bool sub)
void HtmlGenerator::writeSectionRef(const char *name,const char *lab, void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
const char *title) const char *title)
{ {
QString refName=name; QCString refName=name;
if (refName.right(5)!=".html") refName+=".html"; if (refName.right(5)!=".html") refName+=".html";
t << "<a href=\"" << refName << "#" << lab << "\">"; t << "<a href=\"" << refName << "#" << lab << "\">";
docify(title); docify(title);
...@@ -284,7 +288,7 @@ void HtmlGenerator::writeSectionRef(const char *name,const char *lab, ...@@ -284,7 +288,7 @@ void HtmlGenerator::writeSectionRef(const char *name,const char *lab,
void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab, void HtmlGenerator::writeSectionRefItem(const char *name,const char *lab,
const char *title) const char *title)
{ {
QString refName=name; QCString refName=name;
if (refName.right(5)!=".html") refName+=".html"; if (refName.right(5)!=".html") refName+=".html";
t << "<a href=\"" << refName << "#" << lab << "\">"; t << "<a href=\"" << refName << "#" << lab << "\">";
docify(title); docify(title);
...@@ -356,7 +360,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d, ...@@ -356,7 +360,7 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d,
void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue) void HtmlGenerator::startColorFont(uchar red,uchar green,uchar blue)
{ {
QString colorString; QCString colorString;
colorString.sprintf("%02x%02x%02x",red,green,blue); colorString.sprintf("%02x%02x%02x",red,green,blue);
t << "<font color=\"#" << colorString << "\">"; t << "<font color=\"#" << colorString << "\">";
} }
...@@ -370,12 +374,12 @@ void HtmlGenerator::writeFormula(const char *n,const char *text) ...@@ -370,12 +374,12 @@ void HtmlGenerator::writeFormula(const char *n,const char *text)
{ {
if (text && text[0]=='\\') t << "<p><center>" << endl; if (text && text[0]=='\\') t << "<p><center>" << endl;
t << "<img align=\"top\" src=\"" << n << "\">" << endl; t << "<img align=\"top\" src=\"" << n << "\">" << endl;
if (text && text[0]=='\\') t << "</center></p>" << endl; if (text && text[0]=='\\') t << "</center><p>" << endl;
} }
void HtmlGenerator::startMemberList() void HtmlGenerator::startMemberList()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
//t << endl << "<p><table border=0 cellspacing=2 cellpadding=0>" << endl; //t << endl << "<p><table border=0 cellspacing=2 cellpadding=0>" << endl;
} }
...@@ -387,7 +391,7 @@ void HtmlGenerator::startMemberList() ...@@ -387,7 +391,7 @@ void HtmlGenerator::startMemberList()
void HtmlGenerator::endMemberList() void HtmlGenerator::endMemberList()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
//t << "</table>" << endl; //t << "</table>" << endl;
} }
...@@ -399,7 +403,7 @@ void HtmlGenerator::endMemberList() ...@@ -399,7 +403,7 @@ void HtmlGenerator::endMemberList()
void HtmlGenerator::startMemberItem() void HtmlGenerator::startMemberItem()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "<tr><td align=right valign=top>"; t << "<tr><td align=right valign=top>";
} }
...@@ -411,15 +415,15 @@ void HtmlGenerator::startMemberItem() ...@@ -411,15 +415,15 @@ void HtmlGenerator::startMemberItem()
void HtmlGenerator::insertMemberAlign() void HtmlGenerator::insertMemberAlign()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "</td><td valign=top>"; t << "&nbsp;</td><td valign=top>";
} }
} }
void HtmlGenerator::endMemberItem() void HtmlGenerator::endMemberItem()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "</td></tr>"; t << "</td></tr>";
} }
...@@ -428,7 +432,7 @@ void HtmlGenerator::endMemberItem() ...@@ -428,7 +432,7 @@ void HtmlGenerator::endMemberItem()
void HtmlGenerator::startMemberDescription() void HtmlGenerator::startMemberDescription()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "<tr><td></td><td><font size=-1><em>"; t << "<tr><td></td><td><font size=-1><em>";
} }
...@@ -440,7 +444,7 @@ void HtmlGenerator::startMemberDescription() ...@@ -440,7 +444,7 @@ void HtmlGenerator::startMemberDescription()
void HtmlGenerator::endMemberDescription() void HtmlGenerator::endMemberDescription()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "</em></font><br><br></td></tr>" << endl; t << "</em></font><br><br></td></tr>" << endl;
} }
...@@ -452,7 +456,7 @@ void HtmlGenerator::endMemberDescription() ...@@ -452,7 +456,7 @@ void HtmlGenerator::endMemberDescription()
void HtmlGenerator::startMemberSections() void HtmlGenerator::startMemberSections()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "<table border=0 cellpadding=0 cellspacing=1>" << endl; t << "<table border=0 cellpadding=0 cellspacing=1>" << endl;
} }
...@@ -460,7 +464,7 @@ void HtmlGenerator::startMemberSections() ...@@ -460,7 +464,7 @@ void HtmlGenerator::startMemberSections()
void HtmlGenerator::endMemberSections() void HtmlGenerator::endMemberSections()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "</table>" << endl; t << "</table>" << endl;
} }
...@@ -468,7 +472,7 @@ void HtmlGenerator::endMemberSections() ...@@ -468,7 +472,7 @@ void HtmlGenerator::endMemberSections()
void HtmlGenerator::startMemberHeader() void HtmlGenerator::startMemberHeader()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "<tr><td colspan=2><br><h2>"; t << "<tr><td colspan=2><br><h2>";
} }
...@@ -480,7 +484,7 @@ void HtmlGenerator::startMemberHeader() ...@@ -480,7 +484,7 @@ void HtmlGenerator::startMemberHeader()
void HtmlGenerator::endMemberHeader() void HtmlGenerator::endMemberHeader()
{ {
if (htmlAlignMemberFlag) if (Config::htmlAlignMemberFlag)
{ {
t << "</h2></td></tr>" << endl; t << "</h2></td></tr>" << endl;
} }
...@@ -490,3 +494,13 @@ void HtmlGenerator::endMemberHeader() ...@@ -490,3 +494,13 @@ void HtmlGenerator::endMemberHeader()
} }
} }
void HtmlGenerator::startMemberSubtitle()
{
if (Config::htmlAlignMemberFlag) t << "<tr><td colspan=2>";
}
void HtmlGenerator::endMemberSubtitle()
{
if (Config::htmlAlignMemberFlag) t << "<br><br></td></tr>" << endl;
}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#ifndef HTMLGEN_H #ifndef HTMLGEN_H
#define HTMLGEN_H #define HTMLGEN_H
#include "qtbc.h"
#include "outputgen.h" #include "outputgen.h"
class QFile; class QFile;
...@@ -85,6 +86,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -85,6 +86,8 @@ class HtmlGenerator : public OutputGenerator
void endMemberSections(); void endMemberSections();
void startMemberHeader(); void startMemberHeader();
void endMemberHeader(); void endMemberHeader();
void startMemberSubtitle();
void endMemberSubtitle();
void startMemberList(); void startMemberList();
void endMemberList(); void endMemberList();
void startMemberItem(); void startMemberItem();
...@@ -169,9 +172,9 @@ class HtmlGenerator : public OutputGenerator ...@@ -169,9 +172,9 @@ class HtmlGenerator : public OutputGenerator
//static void docifyStatic(QTextStream &t,const char *str); //static void docifyStatic(QTextStream &t,const char *str);
private: private:
QString header; QCString header;
QString footer; QCString footer;
QString lastTitle; QCString lastTitle;
HtmlGenerator &operator=(const HtmlGenerator &g); HtmlGenerator &operator=(const HtmlGenerator &g);
HtmlGenerator(const HtmlGenerator &g); HtmlGenerator(const HtmlGenerator &g);
......
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
* *
*/ */
#include "qtbc.h"
#include "image.h" #include "image.h"
#include "gifenc.h" #include "gifenc.h"
#include <qglobal.h> #include <qglobal.h>
#include <qstring.h>
const int charSetWidth=80; const int charSetWidth=80;
const int charHeight=12; const int charHeight=12;
...@@ -140,111 +140,6 @@ unsigned char fontRaw[charSetWidth*charHeight] = { ...@@ -140,111 +140,6 @@ unsigned char fontRaw[charSetWidth*charHeight] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xac, 0x00, 0x00 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xac, 0x00, 0x00
}; };
#if 0
const int charSetWidth=68;
const int charHeight=12;
const int numChars=80;
unsigned short charPos[numChars] =
{ 0, 7, 14, 21, 28, 35, 42, 49,
56, 63, 70, 73, 76, 83, 90, 97,
104,116,125,133,142,151,159,167,
176,185,188,195,203,210,221,230,
240,248,258,266,274,281,289,298,
309,318,327,336,339,343,346,352,
359,362,369,376,383,390,397,401,
407,414,417,420,426,429,438,445,
452,459,465,470,476,479,486,493,
502,508,515,521,525,528,532,539
};
unsigned char charWidth[numChars] =
{
7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 3, 3, 7, 7, 7, 7,
12, 9, 8, 9, 9, 8, 8, 9,
9, 3, 7, 8, 7,11, 9,10,
8,10, 8, 8, 7, 8, 9,11,
9, 9, 9, 3, 4, 3, 6, 7,
3, 7, 7, 7, 7, 7, 4, 6,
7, 3, 3, 6, 3, 9, 7, 7,
7, 6, 5, 6, 3, 7, 7, 9,
6, 7, 6, 4, 3, 4, 7, 5
};
unsigned char fontRaw[charSetWidth*charHeight] = {
0x38, 0x20, 0xe1, 0xc0, 0x8f, 0x8e, 0x3e, 0x38, 0x70, 0x00, 0x00, 0x00,
0x1c, 0x0f, 0x80, 0x83, 0xe0, 0xf1, 0xf0, 0xfc, 0xfc, 0x3c, 0x41, 0x20,
0x48, 0x48, 0x10, 0x12, 0x08, 0x78, 0x7c, 0x1e, 0x1f, 0x0f, 0x3f, 0xa1,
0x20, 0x91, 0x12, 0x09, 0x04, 0xfe, 0x71, 0x80, 0x00, 0x80, 0x20, 0x00,
0x08, 0x01, 0x80, 0x81, 0x24, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xc0, 0x00, 0x44, 0xe1, 0x12, 0x21,
0x88, 0x11, 0x02, 0x44, 0x88, 0x00, 0x00, 0x00, 0x22, 0x30, 0x41, 0x42,
0x11, 0x09, 0x08, 0x80, 0x80, 0x42, 0x41, 0x20, 0x48, 0x88, 0x18, 0x33,
0x08, 0x84, 0x42, 0x21, 0x10, 0x90, 0x84, 0x21, 0x20, 0x91, 0x11, 0x11,
0x04, 0x02, 0x50, 0x88, 0x01, 0x00, 0x20, 0x00, 0x08, 0x02, 0x00, 0x80,
0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x22, 0x20, 0x00, 0x44, 0x20, 0x10, 0x22, 0x88, 0x10, 0x04, 0x44,
0x88, 0x00, 0x00, 0x00, 0x22, 0x26, 0xa1, 0x42, 0x12, 0x01, 0x04, 0x80,
0x80, 0x80, 0x41, 0x20, 0x49, 0x08, 0x18, 0x32, 0x89, 0x02, 0x42, 0x40,
0x90, 0x90, 0x04, 0x21, 0x11, 0x11, 0x11, 0x10, 0x88, 0x04, 0x48, 0x94,
0x01, 0x8e, 0x2c, 0x38, 0x68, 0xe7, 0x34, 0xb1, 0x24, 0x92, 0x91, 0x61,
0xc5, 0x86, 0x94, 0xce, 0x89, 0x14, 0x46, 0x14, 0x4f, 0x22, 0x20, 0x00,
0x44, 0x20, 0x20, 0xc2, 0x8f, 0x16, 0x04, 0x38, 0x89, 0x20, 0xc0, 0x18,
0x04, 0x49, 0x22, 0x22, 0x12, 0x01, 0x04, 0x80, 0x80, 0x80, 0x41, 0x20,
0x4a, 0x08, 0x14, 0x52, 0x89, 0x02, 0x42, 0x40, 0x90, 0x8c, 0x04, 0x21,
0x11, 0x09, 0x20, 0xa0, 0x88, 0x08, 0x48, 0xa2, 0x00, 0x11, 0x32, 0x44,
0x99, 0x12, 0x4c, 0xc9, 0x25, 0x13, 0x69, 0x92, 0x26, 0x49, 0x99, 0x24,
0x89, 0x14, 0x45, 0x24, 0x41, 0x22, 0x20, 0x00, 0x44, 0x20, 0x40, 0x24,
0x80, 0x99, 0x08, 0x44, 0x78, 0x03, 0x0f, 0x86, 0x04, 0x51, 0x22, 0x23,
0xe2, 0x01, 0x04, 0xfc, 0xf8, 0x8e, 0x7f, 0x20, 0x4e, 0x08, 0x14, 0x52,
0x49, 0x02, 0x7c, 0x40, 0x9f, 0x03, 0x04, 0x21, 0x11, 0x0a, 0xa0, 0x40,
0x50, 0x10, 0x44, 0x80, 0x00, 0x01, 0x22, 0x40, 0x89, 0x12, 0x44, 0x89,
0x26, 0x12, 0x49, 0x12, 0x24, 0x48, 0x91, 0x04, 0x89, 0x12, 0x48, 0xc4,
0x42, 0x22, 0x26, 0x40, 0x44, 0x20, 0x80, 0x28, 0x80, 0x91, 0x08, 0x44,
0x08, 0x0c, 0x00, 0x01, 0x88, 0x51, 0x23, 0xe2, 0x12, 0x01, 0x04, 0x80,
0x80, 0x82, 0x41, 0x20, 0x49, 0x08, 0x12, 0x92, 0x29, 0x02, 0x40, 0x44,
0x91, 0x00, 0x84, 0x21, 0x0a, 0x0a, 0xa0, 0xa0, 0x20, 0x20, 0x44, 0x80,
0x00, 0x0f, 0x22, 0x40, 0x89, 0xf2, 0x44, 0x89, 0x26, 0x12, 0x49, 0x12,
0x24, 0x48, 0x90, 0xc4, 0x88, 0xa2, 0x48, 0xc4, 0x84, 0x42, 0x19, 0x80,
0x44, 0x21, 0x02, 0x2f, 0xc8, 0x91, 0x08, 0x44, 0x08, 0x03, 0x0f, 0x86,
0x08, 0x53, 0x44, 0x12, 0x12, 0x01, 0x04, 0x80, 0x80, 0x82, 0x41, 0x24,
0x48, 0x88, 0x12, 0x92, 0x29, 0x02, 0x40, 0x42, 0x90, 0x90, 0x84, 0x21,
0x0a, 0x04, 0x41, 0x10, 0x20, 0x40, 0x44, 0x80, 0x00, 0x11, 0x22, 0x40,
0x89, 0x02, 0x44, 0x89, 0x25, 0x12, 0x49, 0x12, 0x24, 0x48, 0x90, 0x24,
0x88, 0xa2, 0xa9, 0x22, 0x84, 0x22, 0x20, 0x00, 0x44, 0x21, 0x02, 0x20,
0x88, 0x91, 0x10, 0x44, 0x88, 0x00, 0xc0, 0x18, 0x00, 0x4d, 0x84, 0x12,
0x11, 0x09, 0x08, 0x80, 0x80, 0x46, 0x41, 0x24, 0x48, 0x48, 0x11, 0x12,
0x18, 0x84, 0x40, 0x21, 0x10, 0x90, 0x84, 0x21, 0x04, 0x04, 0x41, 0x10,
0x20, 0x80, 0x42, 0x80, 0x00, 0x11, 0x32, 0x44, 0x99, 0x12, 0x4c, 0x89,
0x24, 0x92, 0x49, 0x12, 0x26, 0x49, 0x91, 0x24, 0x98, 0x41, 0x12, 0x12,
0x88, 0x22, 0x20, 0x00, 0x38, 0x21, 0xf1, 0xc0, 0x87, 0x0e, 0x10, 0x38,
0x71, 0x20, 0x00, 0x00, 0x08, 0x20, 0x04, 0x13, 0xe0, 0xf1, 0xf0, 0xfc,
0x80, 0x3a, 0x41, 0x23, 0x88, 0x2f, 0x91, 0x12, 0x08, 0x78, 0x40, 0x1e,
0x90, 0x8f, 0x04, 0x1e, 0x04, 0x04, 0x42, 0x08, 0x20, 0xfe, 0x42, 0x80,
0x00, 0x0e, 0xac, 0x38, 0x68, 0xe2, 0x34, 0x89, 0x24, 0x52, 0x49, 0x11,
0xc5, 0x86, 0x90, 0xc6, 0x68, 0x41, 0x12, 0x11, 0x0f, 0x22, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00,
0x00, 0x00, 0x00, 0x01, 0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x80, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00,
0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00,
0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1a, 0xc0, 0x00
};
#endif
static Color palette[] = static Color palette[] =
{ {
{ 0xff, 0xff, 0xff }, { 0xff, 0xff, 0xff },
......
This diff is collapsed.
...@@ -17,8 +17,9 @@ ...@@ -17,8 +17,9 @@
#ifndef INDEX_H #ifndef INDEX_H
#define INDEX_H #define INDEX_H
#include "qtbc.h"
#include <qfile.h> #include <qfile.h>
#include <qtstream.h> //#include <qtstream.h>
enum IndexSections enum IndexSections
{ {
......
...@@ -16,7 +16,8 @@ ...@@ -16,7 +16,8 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <qstring.h>
#include "qtbc.h"
#include <qfile.h> #include <qfile.h>
#include <qfileinf.h> #include <qfileinf.h>
#include <qtstream.h> #include <qtstream.h>
...@@ -28,19 +29,19 @@ ...@@ -28,19 +29,19 @@
void writeInstallScript() void writeInstallScript()
{ {
QString fileName=htmlOutputDir+"/installdox"; QCString fileName=Config::htmlOutputDir+"/installdox";
QFile f(fileName); QFile f(fileName);
if (f.open(IO_WriteOnly)) if (f.open(IO_WriteOnly))
{ {
QTextStream t(&f); QTextStream t(&f);
t << "#!" << perlPath << endl << endl << "%subst = ( "; t << "#!" << Config::perlPath << endl << endl << "%subst = ( ";
char *s=tagFileList.first(); char *s=Config::tagFileList.first();
while (s) while (s)
{ {
QFileInfo fi(s); QFileInfo fi(s);
t << "\"" << fi.fileName() << "\", \"\""; t << "\"" << fi.fileName() << "\", \"\"";
s=tagFileList.next(); s=Config::tagFileList.next();
if (s) t << ", "; if (s) t << ", ";
} }
......
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
#include "translator_cz.h" #include "translator_cz.h"
#include "translator_fr.h" #include "translator_fr.h"
#include "translator_it.h" #include "translator_it.h"
#include <qstring.h> #include "translator_de.h"
#include "translator_jp.h"
#include "translator_es.h"
#define L_EQUAL(a) !stricmp(langName,a) #define L_EQUAL(a) !stricmp(langName,a)
...@@ -52,6 +54,18 @@ bool setTranslator(const char *langName) ...@@ -52,6 +54,18 @@ bool setTranslator(const char *langName)
{ {
theTranslator=new TranslatorItalian; theTranslator=new TranslatorItalian;
} }
else if (L_EQUAL("german"))
{
theTranslator=new TranslatorGerman;
}
else if (L_EQUAL("japanese"))
{
theTranslator=new TranslatorJapanese;
}
else if (L_EQUAL("spanish"))
{
theTranslator=new TranslatorSpanish;
}
else // use the default language (i.e. english) else // use the default language (i.e. english)
{ {
theTranslator=new Translator; theTranslator=new Translator;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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