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

mods for doxygen-0.49-991003

parent 1d4e23de
DOXYGEN Version 0.49-990901 DOXYGEN Version 0.49-991003
CONTENTS CONTENTS
-------- --------
...@@ -8,14 +8,15 @@ CONTENTS ...@@ -8,14 +8,15 @@ CONTENTS
* HTML related problems * HTML related problems
* LaTeX related problems * LaTeX related problems
* HP-UX / Digital UNIX problems * HP-UX / Digital UNIX problems
* gcc 2.7.2.x related problems
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-990901.src.tar.gz # uncompress the archive gunzip doxygen-0.49-991003.src.tar.gz # uncompress the archive
tar xf doxygen-0.49-990901.src.tar # unpack it tar xf doxygen-0.49-991003.src.tar # unpack it
2. Run the configure script: 2. Run the configure script:
...@@ -26,6 +27,9 @@ INSTALLATION INSTRUCTIONS FOR UNIX: ...@@ -26,6 +27,9 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
interpreter. It will report what it finds. Use configure --help interpreter. It will report what it finds. Use configure --help
to see how to override or change the default or detected settings. to see how to override or change the default or detected settings.
If you have downloaded the binary distribution, you can proceed
with step 6 now.
3. Compile the program by running make: 3. Compile the program by running make:
make make
...@@ -34,14 +38,14 @@ INSTALLATION INSTRUCTIONS FOR UNIX: ...@@ -34,14 +38,14 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
doxytag, and doxysearch) should be available in the bin directory of the doxytag, and doxysearch) should be available in the bin directory of the
distribution. distribution.
5. Generate the user manual (optional, will also be done in step 6). 4. Generate the user manual (optional, will also be done in step 6).
make docs make docs
to let doxygen generate the HTML and LaTeX documentation. To let doxygen generate the HTML and LaTeX documentation.
(you will need the stream editor `sed' for this) (you will need the stream editor `sed' for this)
make ps 5. make ps
to generate a postscript version of the manual. to generate a postscript version of the manual.
(you will need latex and dvips for this) (you will need latex and dvips for this)
...@@ -58,14 +62,17 @@ INSTALLATION INSTRUCTIONS FOR UNIX: ...@@ -58,14 +62,17 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
make install make install
Binaries are install to the directory <prefix>/bin Binaries are installed in the directory <prefix>/bin
Documentation and examples to the directory <prefix>/share/doxygen Documentation and examples in the directory <prefix>/doc/doxygen
<prefix> defaults to /usr but can be changed with the --prefix
option of the configure script.
INSTALLATION INSTRUCTIONS FOR WINDOWS: INSTALLATION INSTRUCTIONS FOR WINDOWS:
-------------------------------------- --------------------------------------
Currently, only Microsoft Visual C++ (version 5.0) is supported. Currently, only Microsoft Visual C++ (version 5.0) is supported.
(For other platforms you may need to edit the perl script in wintools/make.pl (For other compilers you may need to edit the perl script in wintools/make.pl
a bit). Let me know what you had to change if you got Doxygen working with a bit). Let me know what you had to change if you got Doxygen working with
another windows compiler. another windows compiler.
...@@ -80,9 +87,10 @@ You will need to install the windows/dos versions of following tools: ...@@ -80,9 +87,10 @@ You will need to install the windows/dos versions of following tools:
- Qt-1.xx (Qt-2.xx should also work, but I didn't test it for Windows) - Qt-1.xx (Qt-2.xx should also work, but I didn't test it for Windows)
(Hint: only the tools section is required, so you can use the free (Hint: only the tools section is required, so you can use the free
X-windows version as well!) X-windows version as well!)
You can get it at http://www.troll.no
- Microsoft Visual C++ (I only tested with version 5.0). - Microsoft Visual C++ (I only tested with version 5.0).
Use the vcvars32.bat to set the environment variables Use the vcvars32.bat to set the environment variables
(if not selected to do this automatically during installation). (if you did not select to do this automatically during installation).
- To generate LaTeX documentation or formulas in HTML you need the tools: - To generate LaTeX documentation or formulas in HTML you need the tools:
latex, dvips and gswin32 latex, dvips and gswin32
To get these working under Windows install the fpTeX distribution To get these working under Windows install the fpTeX distribution
...@@ -96,15 +104,17 @@ You will need to install the windows/dos versions of following tools: ...@@ -96,15 +104,17 @@ You will need to install the windows/dos versions of following tools:
`objects' and `bin' manually in the root of the distribution before `objects' and `bin' manually in the root of the distribution before
compiling. compiling.
Make sure all tools are accessible from the command-line (add them to the Open a dos box.
PATH environment if needed). Make sure all tools (i.e. nmake, latex, gswin32, dvips, sed, flex, bison,
cl, rm and perl), are accessible from the command-line (add them to the
PATH environment variable if needed).
Open a dos box, goto the doxygen root dir and type: goto the doxygen root dir and type:
make.bat make.bat
This should build the executables doxygen.exe, doxytag.exe, and doxysearch.exe This should build the executables doxygen.exe, doxytag.exe, and doxysearch.exe
(The compiler should not produce any warnings or errors). (The compiler should not produce any serious warnings or errors).
To build the examples type: To build the examples type:
...@@ -125,8 +135,8 @@ The manual should now be here latex/doxygen_manual.ps ...@@ -125,8 +135,8 @@ The manual should now be here latex/doxygen_manual.ps
KNOWN CONFIGURATION PROBLEMS KNOWN CONFIGURATION PROBLEMS
QT RELATED PROBLEMS: QT RELATED PROBLEMS:
- Qt-2.01 contains a bug that - Qt-2.01 contains a bug that makes some special characters appear as
question marks (?) in the HTML output.
HTML RELATED PROBLEMS: HTML RELATED PROBLEMS:
- the indent continuously increases. - the indent continuously increases.
...@@ -168,7 +178,31 @@ HP-UX / DIGITAL UNIX PROBLEMS: ...@@ -168,7 +178,31 @@ HP-UX / DIGITAL UNIX PROBLEMS:
defined (__sparc) || defined (__sgi) || defined (__osf__) defined (__sparc) || defined (__sgi) || defined (__osf__)
#include <alloca.h> #include <alloca.h>
This seems to be a problem with bison, but I don't know how to fix it. Alternatively, one could fix the problem at the bison side.
Here is patch for bison.simple (provided by Andre Johansen):
------------------------------------------------------------------------------
--- bison.simple~ Tue Nov 18 11:45:53 1997
+++ bison.simple Mon Jan 26 15:10:26 1998
@@ -27,7 +27,7 @@
#ifdef __GNUC__
#define alloca __builtin_alloca
#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || defined (__alpha)
#include <alloca.h>
#else /* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
------------------------------------------------------------------------------
GCC 2.7.2.X PROBLEMS
Old versions of the GNU compiler have problems with constant strings
containing characters with ascii codes >127. Therefore the compiler will
fail to compile some of the translator_xx.h files.
A workaround, if you are planning to use the English translation only,
is to configure doxygen with the --english-only option.
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
That's it! That's it!
...@@ -180,4 +214,4 @@ The latest version of doxygen can be obtained at ...@@ -180,4 +214,4 @@ The latest version of doxygen can be obtained at
Enjoy, Enjoy,
Dimitri van Heesch (01 September 1999) Dimitri van Heesch (03 October 1999)
...@@ -19,17 +19,18 @@ distclean: clean ...@@ -19,17 +19,18 @@ distclean: clean
install: install:
$(INSTTOOL) -d $(INSTALL)/bin $(INSTTOOL) -d $(INSTALL)/bin
$(INSTTOOL) -d $(INSTALL)/share/doxygen/doc $(INSTTOOL) -d $(INSTALL)/doc/doxygen
$(INSTTOOL) -d $(INSTALL)/share/doxygen/examples $(INSTTOOL) -d $(INSTALL)/doc/doxygen
$(INSTTOOL) -m 755 bin/doxy* $(INSTALL)/bin $(INSTTOOL) -m 755 bin/doxy* $(INSTALL)/bin
cp -r doc $(INSTALL)/share/doxygen cp -r doc $(INSTALL)/doc/doxygen
cp -r examples $(INSTALL)/share/doxygen cp -r examples $(INSTALL)/doc/doxygen
echo "DOXYGEN = $(INSTALL)" > $(INSTALL)/share/doxygen/doc/Makefile echo "DOXYGEN = $(INSTALL)" > $(INSTALL)/doc/doxygen/doc/Makefile
echo "DOXYDOCS = $(INSTALL)/share/doxygen" >> $(INSTALL)/share/doxygen/doc/Makefile echo "DOXYDOCS = .." >> $(INSTALL)/doc/doxygen/doc/Makefile
echo "VERSION = $(VERSION)" >> $(INSTALL)/share/doxygen/doc/Makefile echo "VERSION = $(VERSION)" >> $(INSTALL)/doc/doxygen/doc/Makefile
cat doc/Makefile.in >> $(INSTALL)/share/doxygen/doc/Makefile cat doc/Makefile.in >> $(INSTALL)/doc/doxygen/doc/Makefile
cd $(INSTALL)/share/doxygen/examples ; $(MAKE) cd $(INSTALL)/doc/doxygen/examples ; $(MAKE)
cd $(INSTALL)/share/doxygen/doc ; $(MAKE) cd $(INSTALL)/doc/doxygen/doc ; $(MAKE)
rm -rf $(INSTALL)/doc/doxygen/doc
docs: FORCE docs: FORCE
cd examples ; $(MAKE) cd examples ; $(MAKE)
...@@ -38,10 +39,13 @@ docs: FORCE ...@@ -38,10 +39,13 @@ docs: FORCE
ps: docs ps: docs
cd latex ; $(MAKE) cd latex ; $(MAKE)
pdf: docs
cd latex ; $(MAKE)
archive: distclean archive: distclean
tar zcvf dx`date +%y%m%d`.tgz tmake doc wintools examples bin objects \ tar zcvf dx`date +%y%m%d`.tgz tmake doc wintools examples bin objects \
src configure Makefile.in Makefile.win.in INSTALL make.bat \ src configure configure.bin Makefile.in Makefile.win.in INSTALL \
LANGUAGE.HOWTO LICENSE PLATFORMS VERSION make.bat LANGUAGE.HOWTO LICENSE PLATFORMS VERSION
src/version.cpp: Makefile src/version.cpp: Makefile
echo "char versionString[]=\"$(VERSION)\";" > src/version.cpp echo "char versionString[]=\"$(VERSION)\";" > src/version.cpp
......
DOXYGEN Version 0.49-990901 DOXYGEN Version 0.49-991003
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 (01 September 1999) Dimitri van Heesch (03 October 1999)
0.49-990901 0.49-991003
...@@ -21,10 +21,11 @@ f_shared=YES ...@@ -21,10 +21,11 @@ f_shared=YES
f_make=NO f_make=NO
f_perl=NO f_perl=NO
f_plf_auto=NO f_plf_auto=NO
f_prefix=/usr/local f_prefix=/usr
f_insttool=install f_insttool=install
f_english=NO
while test -n "$1"; do while test -n "$1"; do
case $1 in case $1 in
--prefix) --prefix)
shift; f_prefix=$1 shift; f_prefix=$1
...@@ -41,6 +42,9 @@ while test -n "$1"; do ...@@ -41,6 +42,9 @@ while test -n "$1"; do
--debug) --debug)
f_debug=YES f_debug=YES
;; ;;
--english-only)
f_english=YES
;;
--platform) --platform)
shift; f_platform=$1 shift; f_platform=$1
;; ;;
...@@ -68,33 +72,35 @@ done ...@@ -68,33 +72,35 @@ done
if test "$f_help" = y; then if test "$f_help" = y; then
cat <<EOF cat <<EOF
Usage: $0 [--help] [--shared] [--static] [--release] [--debug] Usage: $0 [--help] [--shared] [--static] [--release] [--debug]
[--perl name] [--make name] [--platform target] [--prefix] [--perl name] [--make name] [--platform target] [--prefix dir]
[--install] [--install name] [--english-only]
Options: Options:ll
--help Print this message --help Print this help
--shared | --static Build using shared or static linking --shared | --static Build using shared or static linking
[default: shared] [default: shared]
--release | --debug Build for release or debug --release | --debug Build for release or debug
[default: release] [default: release]
--perl name Use \`name' as the name of the perl interpreter --perl name Use \`name' as the name of the perl interpreter
[default: autodetect] [default: autodetect]
--make name Use \`name' as the name of the GNU make tool --make name Use \`name' as the name of the GNU make tool
[default: autodetect] [default: autodetect]
--platform target Do not detect platform but use \`target' instead. --platform target Do not detect platform but use \`target' instead.
See PLATFORMS for a list of possibilities See PLATFORMS for a list of possibilities
--prefix dir Installation prefix directory --prefix dir Installation prefix directory
[default: /usr/local] [default: /usr]
--install name name of the GNU install tool --install name Use \`name' as the name of the GNU install tool
[default: install] [default: install]
--english-only Include support for English only.
EOF EOF
test "$f_error" = y && exit 1 test "$f_error" = y && exit 1
...@@ -196,11 +202,11 @@ if test -z "$QTDIR"; then ...@@ -196,11 +202,11 @@ if test -z "$QTDIR"; then
echo "check your Qt installation!" echo "check your Qt installation!"
exit 2 exit 2
else else
if ! test -d "$QTDIR/lib"; then if test ! -d "$QTDIR/lib"; then
echo "QTDIR is set, but library directory does not exist!" echo "QTDIR is set, but library directory does not exist!"
exit 2 exit 2
fi fi
if ! test -d "$QTDIR/include"; then if test ! -d "$QTDIR/include"; then
echo "QTDIR is set, but include directory does not exist!" echo "QTDIR is set, but include directory does not exist!"
exit 2 exit 2
fi fi
...@@ -218,8 +224,10 @@ if test "$f_make" = NO; then ...@@ -218,8 +224,10 @@ if test "$f_make" = NO; then
for i in $make_names; do for i in $make_names; do
for j in $make_dirs; do for j in $make_dirs; do
if test -x "$j/$i"; then if test -x "$j/$i"; then
make_prog="$j/$i" if test -n "`$j/$i --version 2>/dev/null | grep GNU`"; then
break 2 make_prog="$j/$i"
break 2
fi
fi fi
done done
done done
...@@ -281,18 +289,24 @@ RM = rm -f ...@@ -281,18 +289,24 @@ RM = rm -f
VERSION = `cat VERSION` VERSION = `cat VERSION`
INSTALL = $f_prefix INSTALL = $f_prefix
INSTTOOL = $f_insttool INSTTOOL = $f_insttool
DOXYDOCS = $PWD DOXYDOCS = ..
export TMAKEPATH export TMAKEPATH
EOF EOF
touch .tmakeconfig touch .tmakeconfig
if test "$f_shared" = NO; then if test "$f_shared" = NO; then
cat > .tmakeconfig <<EOF cat >> .tmakeconfig <<EOF
TMAKE_LFLAGS = -static TMAKE_LFLAGS = -static
EOF EOF
fi fi
if test "$f_english" = YES; then
cat >> .tmakeconfig << EOF
TMAKE_CXXFLAGS = -DENGLISH_ONLY
EOF
fi
for i in Makefile.in src/Makefile.in examples/Makefile.in doc/Makefile.in ; do for i in Makefile.in src/Makefile.in examples/Makefile.in doc/Makefile.in ; do
SRC=$i SRC=$i
DST=`echo $i|sed 's%\(.*\).in$%\1%'` DST=`echo $i|sed 's%\(.*\).in$%\1%'`
......
#
# $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.
PROJECT_NAME = PROJECT_NAME =
OUTPUT_DIRECTORY = .. OUTPUT_DIRECTORY = ..
HTML_HEADER = HTML_HEADER =
...@@ -14,7 +27,7 @@ ENABLE_PREPROCESSING = NO ...@@ -14,7 +27,7 @@ ENABLE_PREPROCESSING = NO
INPUT = index.doc install.doc starting.doc faq.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 output.doc autolink.doc \
config.doc commands.doc htmlcmds.doc language.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
...@@ -29,3 +42,4 @@ DOC_URL = ...@@ -29,3 +42,4 @@ DOC_URL =
DOC_ABSPATH = DOC_ABSPATH =
BIN_ABSPATH = /usr/local/bin/ BIN_ABSPATH = /usr/local/bin/
EXT_DOC_PATHS = EXT_DOC_PATHS =
PDF_HYPERLINKS = YES
#
# $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.
all: FORCE all: FORCE
DOXYGEN_DOCDIR=$(DOXYDOCS); \ DOXYGEN_DOCDIR=$(DOXYDOCS); \
......
all: doxygen_manual.ps #
# $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.
all: doxygen_manual.pdf
doxygen_manual.pdf: doxygen_manual.ps
ps2pdf doxygen_manual.ps doxygen_manual.pdf
doxygen_manual.ps: doxygen_manual.dvi doxygen_manual.ps: doxygen_manual.dvi
dvips -o doxygen_manual.ps doxygen_manual.dvi dvips -o doxygen_manual.ps doxygen_manual.dvi
......
#
# $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.
all: FORCE all: FORCE
set DOXYGEN_DOCDIR=file:///$(DOXYGEN) set DOXYGEN_DOCDIR=file:///$(DOXYGEN)
set VERSION=$(VERSION) set VERSION=$(VERSION)
......
...@@ -70,12 +70,14 @@ documentation: ...@@ -70,12 +70,14 @@ documentation:
<li> \refitem cmdfile \file <li> \refitem cmdfile \file
<li> \refitem cmdfn \fn <li> \refitem cmdfn \fn
<li> \refitem cmdhtmlonly \htmlonly <li> \refitem cmdhtmlonly \htmlonly
<li> \refitem cmdimage \image
<li> \refitem cmdinclude \include <li> \refitem cmdinclude \include
<li> \refitem cmdingroup \ingroup <li> \refitem cmdingroup \ingroup
<li> \refitem cmdinternal \internal <li> \refitem cmdinternal \internal
<li> \refitem cmdlatexonly \latexonly <li> \refitem cmdlatexonly \latexonly
<li> \refitem cmdline \line <li> \refitem cmdline \line
<li> \refitem cmdlink \link <li> \refitem cmdlink \link
<li> \refitem cmdmainpage \mainpage
<li> \refitem cmdnamespace \namespace <li> \refitem cmdnamespace \namespace
<li> \refitem cmdoverload \overload <li> \refitem cmdoverload \overload
<li> \refitem cmdpage \page <li> \refitem cmdpage \page
...@@ -84,6 +86,7 @@ documentation: ...@@ -84,6 +86,7 @@ documentation:
<li> \refitem cmdref \ref <li> \refitem cmdref \ref
<li> \refitem cmdrelates \relates <li> \refitem cmdrelates \relates
<li> \refitem cmdreturn \return <li> \refitem cmdreturn \return
<li> \refitem cmdretval \retval
<li> \refitem cmdsa \sa <li> \refitem cmdsa \sa
<li> \refitem cmdsection \section <li> \refitem cmdsection \section
<li> \refitem cmdskip \skip <li> \refitem cmdskip \skip
...@@ -286,6 +289,38 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -286,6 +289,38 @@ Doxygen. Unrecognized commands are treated as normal text.
This command writes the message `For internal use only' to the output. This command writes the message `For internal use only' to the output.
All text after a \c \internal command is ignored. All text after a \c \internal command is ignored.
<hr>
\subsection cmdmainpage \mainpage [(title)]
\addindex \mainpage
If the \\mainpage command is placed in a comment block the
block is used to customize the index page (in HTML) or
the first chapter (in \f$\mbox{\LaTeX}\f$).
The title argument is optional and replaces the default title that
doxygen normally generates.
Here is an example:
\verbatim
/*! \mainpage My Personal Index Page
*
* \section intro Introduction
*
* This is the introduction.
*
* \section install Installation
*
* \subsection step1 Step 1: Opening the box
*
* etc...
*/
\endverbatim
\sa section \ref cmdsection "\\section",
section \ref cmdsubsection "\\subsection" and
section \ref cmdpage "\\page".
<hr> <hr>
\subsection cmdnamespace \namespace <name> \subsection cmdnamespace \namespace <name>
...@@ -338,6 +373,15 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -338,6 +373,15 @@ Doxygen. Unrecognized commands are treated as normal text.
Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen. for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly \endhtmlonly
\par notice:
The \<name\> argument consists of a combination of letters and number
digits. If you wish to use upper case letters (e.g. \c MYPAGE1), or
mixed case letters (e.g. \c MyPage1) in the \<name\> argument, you
should set \c CASE_SENSE_NAMES to \c YES. However, this is advisable
only if your file system is case sensitive. Otherwise (and for better
portability) you should use all lower case letters (e.g. \c mypage1)
for \<name\> in all references to the page.
\sa section \ref cmdsection "\\section", section \sa section \ref cmdsection "\\section", section
\ref cmdsubsection "\\subsection", and section \ref cmdsubsection "\\subsection", and section
...@@ -543,6 +587,23 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -543,6 +587,23 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa Section \ref cmdjdreturn "@return". \sa Section \ref cmdjdreturn "@return".
<hr>
\subsection cmdretval \retval <return value> { description }
\addindex \retval
Starts a return value for a function with name
\<return value\>. Followed by a description of the return value.
The text of the paragraph that forms the description has no special
internal structure. All visual enhancement commands may be used inside the
paragraph.
Multiple adjacent \\retval commands will be joined into a single paragraph.
Each return value description will start on a new line.
The \\retval description ends when a blank line or some other
sectioning command is encountered.
\sa Section \ref cmdjdretval "@retval".
<hr> <hr>
\subsection cmdsa \sa { references } \subsection cmdsa \sa { references }
...@@ -690,11 +751,17 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -690,11 +751,17 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \dontinclude \addindex \dontinclude
This command can be used to parse a source file without actually This command can be used to parse a source file without actually
including it. Any class and member declarations inside the code verbatim including it in the documentation (as the \\include command does).
This is useful if you want to divide the source file into smaller pieces and
add documentation between the pieces.
Source files or directories can be specified using the \c EXAMPLE_PATH tag
of Doxygen's configuration file.
The class and member declarations and definitions inside the code fragment
are `remembered' during the parsing of the comment block that contained are `remembered' during the parsing of the comment block that contained
the \\dontinclude command. the \\dontinclude command.
For line by line description of source files, one or more lines For line by line descriptions of source files, one or more lines
of the example can be displayed using the \\line, \\skip, \\skipline, and of the example can be displayed using the \\line, \\skip, \\skipline, and
\\until commands. An internal pointer is used for these commands. The \\until commands. An internal pointer is used for these commands. The
\\dontinclude command sets the pointer to the first line of the example. \\dontinclude command sets the pointer to the first line of the example.
...@@ -717,8 +784,8 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -717,8 +784,8 @@ Doxygen. Unrecognized commands are treated as normal text.
\addindex \include \addindex \include
This command can be used to include a source file as a block of code. This command can be used to include a source file as a block of code.
The command takes the name of an include file as an argument. The command takes the name of an include file as an argument.
Include files or directories can be specified using the Source files or directories can be specified using the
\c INCLUDE_PATH tag of Doxygen's configuration file. \c EXAMPLE_PATH tag of Doxygen's configuration file.
Using the \\include command is equivalent to inserting the file into Using the \\include command is equivalent to inserting the file into
the documentation block and surrounding it the documentation block and surrounding it
...@@ -728,10 +795,9 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -728,10 +795,9 @@ Doxygen. Unrecognized commands are treated as normal text.
duplication in case of example blocks that consist of multiple duplication in case of example blocks that consist of multiple
source and header files. source and header files.
For line by line description of source files, one or more lines For a line by line description of a source files use the
of the example can be displayed using the \\line, \\skip, \\skipline, and \\dontinclude command in combination with the \\line, \\skip, \\skipline,
\\until commands. An internal pointer is used for these command. The and \\until commands.
\\include command sets the pointer to the first line of the example.
\sa section \ref cmdexample "\\example" and \ref cmddontinclude "\\dontinclude". \sa section \ref cmdexample "\\example" and \ref cmddontinclude "\\dontinclude".
...@@ -966,6 +1032,45 @@ Doxygen. Unrecognized commands are treated as normal text. ...@@ -966,6 +1032,45 @@ Doxygen. Unrecognized commands are treated as normal text.
\sa section \ref cmdhtmlonly "\\htmlonly" and section \sa section \ref cmdhtmlonly "\\htmlonly" and section
\ref cmdlatexonly "\\latexonly". \ref cmdlatexonly "\\latexonly".
<hr>
\subsection cmdimage \image <format> <file> [<sizeindication>=<size>]
\addindex \image
Inserts an image into the documentation. This command is format
specific, so if you want to insert an image for more than one
format you'll have to repeat this command for each format.
The first argument specifies the output format. Currently, the
following values are supported: \c html and \c latex.
The second argument specifies the path and file name of the image.
If a relative path is used, this will be relative to the directory to
which the output of the particular format is written.
For the html format you may also
specify an URL. If the name contains spaces you'll have to put
quotes (") around it.
The third argument can be used to specify the width or height of the
image. This is only useful for \f$\mbox{\LaTeX}\f$ output
(i.e. format=latex). \c sizeindication can be either
\c width or \c height. The size should be a valid
size specifier in \f$\mbox{\LaTeX}\f$ (for example <code>10cm</code> or
<code>6in</code>).
\verbatim
/*! Here is a snapshot of my new application:
* \image html ../images/application.jpg
* \image latex ../images/application.eps width=10cm
*/
\endverbatim
\warning The image format for HTML is limited to what your
browser supports. For \f$\mbox{\LaTeX}\f$ the image format
must be an encapsulated postscipt (eps).
<br><br>
Doxygen does not check if an image exists or if it is in
the correct format. So \e you have to make sure this is the case!
<hr> <hr>
\subsection cmdlatexonly \latexonly \subsection cmdlatexonly \latexonly
...@@ -1078,6 +1183,9 @@ The following command JavaDoc command are support. ...@@ -1078,6 +1183,9 @@ The following command JavaDoc command are support.
\subsection cmdjdreturn @return { description of the return value } \subsection cmdjdreturn @return { description of the return value }
\addindex @return \addindex @return
Equivalent to \\return (see section \ref cmdreturn "\\return"). Equivalent to \\return (see section \ref cmdreturn "\\return").
\subsection cmdjdretval @retval <return value name> { return value description }
\addindex @retval
Equivalent to \\retval (see section \ref cmdretval "\\retval").
\subsection cmdjdsee @see { references } \subsection cmdjdsee @see { references }
\addindex @see \addindex @see
Equivalent to \\sa (see section \ref cmdsa "\\sa"). Equivalent to \\sa (see section \ref cmdsa "\\sa").
......
This diff is collapsed.
%
% $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.
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen} \ProvidesPackage{doxygen}
\RequirePackage{calc} \RequirePackage{calc}
......
\documentclass[a4paper]{article} %
% $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.
\documentclass[a4paper,ps2pdf]{article}
\usepackage{a4wide} \usepackage{a4wide}
\usepackage{makeidx} \usepackage{makeidx}
\usepackage{fancyheadings} \usepackage{fancyheadings}
\usepackage{epsf} \usepackage{epsf}
\usepackage{doxygen} \usepackage{doxygen}
\usepackage{multicol} \usepackage{multicol}
\usepackage{times}
\usepackage[backref=true,
pagebackref=true,
colorlinks=true,
linkcolor=blue
]{hyperref}
\makeindex \makeindex
\setcounter{tocdepth}{1} \setcounter{tocdepth}{1}
\setlength{\footrulewidth}{0.4pt} \setlength{\footrulewidth}{0.4pt}
...@@ -35,6 +54,7 @@ Written by Dimitri van Heesch\\[2ex] ...@@ -35,6 +54,7 @@ Written by Dimitri van Heesch\\[2ex]
\input{doxytag_usage} \input{doxytag_usage}
\input{doxysearch_usage} \input{doxysearch_usage}
\input{installdox_usage} \input{installdox_usage}
\input{output}
\input{autolink} \input{autolink}
\input{config} \input{config}
\input{commands} \input{commands}
......
...@@ -41,7 +41,11 @@ doxygen <config_file> ...@@ -41,7 +41,11 @@ doxygen <config_file>
\endverbatim \endverbatim
</ol> </ol>
If you also want a search engine to be generated, you should look The \c -s option is optional and can be used suppress the description that
doxygen normally generates for each tag. Try to use this option if you send
me configuration files!
If you also want to use the search engine, you should look
at section \ref doxysearch_usage. at section \ref doxysearch_usage.
*/ */
...@@ -18,12 +18,19 @@ ...@@ -18,12 +18,19 @@
<ol> <ol>
<li><b>How do get information on the index page in HTML?</b> <li><b>How do get information on the index page in HTML?</b>
<p> <p>
There is no real support for title pages at the moment. But you can You should use the \\mainpage command inside a comment block like this:
override the default index page, by using the following comment block:
\verbatim \verbatim
/*! \page index My Personal Index Page /*! \mainpage My Personal Index Page
* *
* This is my index personal index page. * \section intro Introduction
*
* This is the introduction.
*
* \section install Installation
*
* \subsection step1 Step 1: Opening the box
*
* etc...
*/ */
\endverbatim \endverbatim
...@@ -44,6 +51,11 @@ around the blocks that should be hidden and put: ...@@ -44,6 +51,11 @@ around the blocks that should be hidden and put:
\endverbatim \endverbatim
in the config file then all blocks should be skipped by Doxygen as long in the config file then all blocks should be skipped by Doxygen as long
as <code>PREPROCESSING = YES</code>. as <code>PREPROCESSING = YES</code>.
<li><b>How can I make doxygen ignore nasty macro's? </b>
Look at section \ref preprocessing for the answer.
</ol> </ol>
*/ */
...@@ -41,7 +41,8 @@ All output generated by Doxygen is not covered by this license. ...@@ -41,7 +41,8 @@ All output generated by Doxygen is not covered by this license.
Doxygen is a documentation system for C and C++. It can generate an on-line Doxygen is a documentation system for C and C++. It can generate an on-line
class browser (in HTML) and/or an off-line reference manual class browser (in HTML) and/or an off-line reference manual
(in \f$\mbox{\LaTeX}\f$) from a set (in \f$\mbox{\LaTeX}\f$) from a set
of documented source files. The documentation is extracted directly from the of documented source files. There is also some support for generating
man pages. The documentation is extracted directly from the
sources. Doxygen is developed on a <a href="http://www.linux.org">Linux</a> sources. Doxygen is developed on a <a href="http://www.linux.org">Linux</a>
platform, but it runs on most other UNIX flavors as well. platform, but it runs on most other UNIX flavors as well.
An executable for Windows 95/NT is also available. An executable for Windows 95/NT is also available.
...@@ -78,6 +79,8 @@ The second part forms a reference manual: ...@@ -78,6 +79,8 @@ The second part forms a reference manual:
<li>Section \ref doxysearch_usage shows how to use the \c doxysearch program. <li>Section \ref doxysearch_usage shows how to use the \c doxysearch program.
<li>Section \ref installdox_usage shows how to use the \c installdox <li>Section \ref installdox_usage shows how to use the \c installdox
script that is generated by Doxygen if you use tag files. script that is generated by Doxygen if you use tag files.
<li>Section \ref output shows how to generate the various output formats
supported by Doxygen.
<li>Section \ref autolink shows how to put links to files, classes, <li>Section \ref autolink shows how to put links to files, classes,
and members in the documentation. and members in the documentation.
<li>Section \ref config shows how to fine-tune doxygen, so it <li>Section \ref config shows how to fine-tune doxygen, so it
...@@ -177,6 +180,8 @@ Matthias Baas, ...@@ -177,6 +180,8 @@ Matthias Baas,
Walter Mueller, Walter Mueller,
William van Dieten, William van Dieten,
Joshua Jensen, Joshua Jensen,
Patrick Aberts,
Jacques Tremblay,
and many others for suggestions, patches and bug reports. and many others for suggestions, patches and bug reports.
</ul> </ul>
*/ */
......
...@@ -150,6 +150,31 @@ Here is a list of the languages and their current maintainers: ...@@ -150,6 +150,31 @@ Here is a list of the languages and their current maintainers:
foltra@puc.cl</a> foltra@puc.cl</a>
</TD> </TD>
</TR> </TR>
<TR BGCOLOR="#ffffff">
<TD>
Finnish
</TD>
<TD>
Olli Korhonen
</TD>
<TD>
<a href="mailto:Olli.Korhonen@ccc.fi">
Olli.Korhonen@ccc.fi</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>
Russian
</TD>
<TD>
Vladimir Vodolazkiy
</TD>
<TD>
<a href="mailto:voldemarus@geocities.com">
voldemarus@geocities.com</a>
</TD>
</TR>
<TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff">
<TD> <TD>
Dutch Dutch
...@@ -192,6 +217,10 @@ Here is a list of the languages and their current maintainers: ...@@ -192,6 +217,10 @@ Here is a list of the languages and their current maintainers:
\hline \hline
Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} \\ Spanish & Francisco Oltra Thennet & {\tt foltra@puc.cl} \\
\hline \hline
Finish & Olli Korhonen & {\tt Olli.Korhonen@ccc.fi} \\
\hline
Russian & Vladimir Vodolazkiy & {\tt voldemarus@geocities.com} \\
\hline
Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} \\ Dutch & Dimitri van Heesch & {\tt dimitri@stack.nl} \\
\hline \hline
\end{tabular} \end{tabular}
......
/******************************************************************************
*
* $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 output.html
\section output Output Formats
\addindex output formats
The following output formats are \e directly supported by doxygen:
<dl>
<dt><b>HTML</b>
<dd>Generated if GENERATE_HTML is set to YES in the configuration file.
<dt>\f$\mbox{\LaTeX}\f$
<dd>Generated if GENERATE_LATEX is set to YES in the configuration file.
<dt><b>Man pages</b>
<dd>Generated if GENERATE_MAN is set to YES in the configuration file.
</dl>
The following output formats are \e indirectly supported by doxygen:
<dl>
<dt><b>Compressed HTML</b> (a.k.a. Windows 98 help)
<dd>Generated by Microsoft's HTML Help workshop from the HTML output if
\c GENERATE_HTMLHELP is set to \c YES.
<dt><b>Postscript</b>
<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by
running <code>make ps</code> in the output directory.
For the best results \c PDF_HYPERLINKS should be set to \c NO.
<dt><b>PDF</b>\htmlonly &nbsp;&nbsp;&nbsp;\endhtmlonly
<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by
running <code>make pdf</code> in the output directory.
In order to get hyperlinks in the pdf file,
\c PDF_HYPERLINKS should be set to \c YES.
</dl>
*/
...@@ -203,7 +203,7 @@ The one-line comments should contain a brief description, ...@@ -203,7 +203,7 @@ The one-line comments should contain a brief description,
whereas the multi-line comment blocks contain a more detailed description. whereas the multi-line comment blocks contain a more detailed description.
The brief descriptions are included in the member overview of a class, The brief descriptions are included in the member overview of a class,
namespace or file and are printed using a small italic font namespace or file and are printed using a small italic font
(this description can be omitted by setting \c BRIEF_MEMBER_DESC to \c NO in (this description can be omitted by setting \c BRIEF_STDMETHOD_DESC to \c NO in
the config file). By default the brief descriptions are also the first the config file). By default the brief descriptions are also the first
sentence of the detailed description sentence of the detailed description
(this can be changed by setting the \c REPEAT_BRIEF tag to \c NO). (this can be changed by setting the \c REPEAT_BRIEF tag to \c NO).
...@@ -443,7 +443,7 @@ after preprocessing becomes: ...@@ -443,7 +443,7 @@ after preprocessing becomes:
\endverbatim \endverbatim
Notice that doxygen will now expand \e all macro definitions Notice that doxygen will now expand \e all macro definitions
(recursively if needed). This is often too much, therefore doxygen also (recursively if needed). This is often too much. Therefore, doxygen also
allows you to expand only those defines that you explicitly 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 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. and specify the macro definitions after the \c PREDEFINED tag.
...@@ -462,9 +462,9 @@ of an abstract base class called \c IUnknown: ...@@ -462,9 +462,9 @@ of an abstract base class called \c IUnknown:
/*! The IUnknown interface */ /*! The IUnknown interface */
DECLARE_INTERFACE(IUnknown) DECLARE_INTERFACE(IUnknown)
{ {
MEMBER(HRESULT,QueryInterface) (THIS_ REFIID iid, void **ppv) PURE; STDMETHOD(HRESULT,QueryInterface) (THIS_ REFIID iid, void **ppv) PURE;
MEMBER(ULONG,AddRef) (THIS) PURE; STDMETHOD(ULONG,AddRef) (THIS) PURE;
MEMBER(ULONG,Release) (THIS) PURE; STDMETHOD(ULONG,Release) (THIS) PURE;
}; };
\endverbatim \endverbatim
...@@ -479,7 +479,7 @@ ENABLE_PREPROCESSING = YES ...@@ -479,7 +479,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES EXPAND_ONLY_PREDEF = YES
PREDEFINED = "DECLARE_INTERFACE(name)=class name" \ PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
"MEMBER(result,name)=virtual result name" \ "STDMETHOD(result,name)=virtual result name" \
"PURE= = 0" \ "PURE= = 0" \
THIS_= \ THIS_= \
THIS= \ THIS= \
......
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
int *(a[20]); int *(a[20]);
\endverbatim \endverbatim
then doxygen will remove the braces and correctly parse the result. then doxygen will remove the braces and correctly parse the result.
<li>Not all names in code fragments that are include in the documentation <li>Not all names in code fragments that are included in the documentation
are replaced by links (for instance when using SOURCE_BROWSER = YES). are replaced by links (for instance when using \c SOURCE_BROWSER = \c YES).
For a part this is because the code parser isn't smart enough at the For a part this is because the code parser isn't smart enough at the
moment. I'll try to improve this in the future. But even with these moment. I'll try to improve this in the future. But even with these
improvements not everthing can be properly linked to the corresponding improvements not everthing can be properly linked to the corresponding
......
...@@ -75,7 +75,7 @@ autolink/html/index.html: autolink.cpp autolink.cfg ...@@ -75,7 +75,7 @@ autolink/html/index.html: autolink.cpp autolink.cfg
tag/html/index.html: tag.cpp tag.cfg tag/html/index.html: tag.cpp tag.cfg
$(DOXYGEN)/bin/doxygen tag.cfg $(DOXYGEN)/bin/doxygen 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
restypedef/html/index.html: restypedef.cpp restypedef.cfg restypedef/html/index.html: restypedef.cpp restypedef.cfg
......
...@@ -232,11 +232,11 @@ void ClassDef::writeDocumentation(OutputList &ol) ...@@ -232,11 +232,11 @@ void ClassDef::writeDocumentation(OutputList &ol)
} }
pageTitle+=pageType+" Reference"; pageTitle+=pageType+" Reference";
startFile(ol,fileName,pageTitle); startFile(ol,fileName,pageTitle);
startTitle(ol); startTitle(ol,getOutputFileBase());
//ol.docify(name()+" "+pageType.right(pageType.length()-1)+" "); //ol.docify(name()+" "+pageType.right(pageType.length()-1)+" ");
//parseText(ol,theTranslator->trReference()); //parseText(ol,theTranslator->trReference());
parseText(ol,theTranslator->trCompoundReference(name(),compType)); parseText(ol,theTranslator->trCompoundReference(name(),compType));
endTitle(ol,name()); endTitle(ol,getOutputFileBase(),name());
// write brief description // write brief description
OutputList briefOutput(&ol); OutputList briefOutput(&ol);
...@@ -694,9 +694,9 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -694,9 +694,9 @@ void ClassDef::writeMemberList(OutputList &ol)
// do not generate Latex output // do not generate Latex output
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
startFile(ol,memListFileName,theTranslator->trMemberList()); startFile(ol,memListFileName,theTranslator->trMemberList());
startTitle(ol); startTitle(ol,0);
parseText(ol,name()+" "+theTranslator->trMemberList()); parseText(ol,name()+" "+theTranslator->trMemberList());
endTitle(ol,0); endTitle(ol,0,0);
parseText(ol,theTranslator->trThisIsTheListOfAllMembers()); parseText(ol,theTranslator->trThisIsTheListOfAllMembers());
ol.writeObjectLink(getReference(),fileName,0,name()); ol.writeObjectLink(getReference(),fileName,0,name());
parseText(ol,theTranslator->trIncludingInheritedMembers()); parseText(ol,theTranslator->trIncludingInheritedMembers());
...@@ -746,7 +746,8 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -746,7 +746,8 @@ void ClassDef::writeMemberList(OutputList &ol)
ol.writeListItem(); ol.writeListItem();
ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(), ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),
md->anchor(),name); md->anchor(),name);
if ( md->isFunction() || md->isSignal() || md->isSlot() ) if ( md->isFunction() || md->isSignal() || md->isSlot() ||
(md->isFriend() && md->argsString()))
ol.docify(md->argsString()); ol.docify(md->argsString());
else if (md->isEnumerate()) else if (md->isEnumerate())
parseText(ol," "+theTranslator->trEnumName()); parseText(ol," "+theTranslator->trEnumName());
...@@ -786,7 +787,8 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -786,7 +787,8 @@ void ClassDef::writeMemberList(OutputList &ol)
memberWritten=TRUE; memberWritten=TRUE;
} }
if ((protect!=Public || md->isStatic() || virt!=Normal || if ((protect!=Public || md->isStatic() || virt!=Normal ||
md->isFriend() || md->isRelated() md->isFriend() || md->isRelated() ||
(md->isInline() && Config::inlineInfoFlag)
) )
&& memberWritten) && memberWritten)
{ {
...@@ -797,6 +799,8 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -797,6 +799,8 @@ void ClassDef::writeMemberList(OutputList &ol)
else if (md->isRelated()) sl.append("related"); else if (md->isRelated()) sl.append("related");
else else
{ {
if (Config::inlineInfoFlag && md->isInline())
sl.append("inline");
if (protect==Protected) sl.append("protected"); if (protect==Protected) sl.append("protected");
else if (protect==Private) sl.append("private"); else if (protect==Private) sl.append("private");
if (virt==Virtual) sl.append("virtual"); if (virt==Virtual) sl.append("virtual");
...@@ -831,11 +835,11 @@ void ClassDef::writeIncludeFile(OutputList &ol) ...@@ -831,11 +835,11 @@ void ClassDef::writeIncludeFile(OutputList &ol)
//printf("incFile=%s\n",incFile->absFilePath().data()); //printf("incFile=%s\n",incFile->absFilePath().data());
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
startFile(ol,fileName+"-include",name()+" Include File"); startFile(ol,fileName+"-include",name()+" Include File");
startTitle(ol); startTitle(ol,0);
QCString n=incName.copy(); QCString n=incName.copy();
if (incName.isNull()) n=incFile->name(); if (incName.isNull()) n=incFile->name();
parseText(ol,n); parseText(ol,n);
endTitle(ol,0); endTitle(ol,0,0);
parseText(ol,theTranslator->trVerbatimText(incFile->name())); parseText(ol,theTranslator->trVerbatimText(incFile->name()));
ol.writeRuler(); ol.writeRuler();
ol.startCodeFragment(); ol.startCodeFragment();
...@@ -992,15 +996,25 @@ bool ClassDef::hasNonReferenceSuperClass() ...@@ -992,15 +996,25 @@ bool ClassDef::hasNonReferenceSuperClass()
// htmlHelp->decContentsDepth(); // htmlHelp->decContentsDepth();
//} //}
void ClassDef::writeDeclaration(OutputList &ol) void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md)
{ {
//ol.insertMemberAlign(); //ol.insertMemberAlign();
//printf("ClassName=`%s'\n",name().data());
switch(compType) switch(compType)
{ {
case Class: ol.docify("class {"); break; case Class: ol.docify("class"); break;
case Struct: ol.docify("struct {"); break; case Struct: ol.docify("struct"); break;
default: ol.docify("union {"); break; default: ol.docify("union"); break;
} }
int ri=name().findRev("::");
if (ri==-1) ri=name().length();
QCString cn=name().right(name().length()-ri-2);
if (!cn.isEmpty() && cn.at(0)!='@' && md)
{
ol.docify(" ");
ol.writeObjectLink(0,0,md->anchor(),cn);
}
ol.docify(" {");
ol.endMemberItem(FALSE,0,0,FALSE); // TODO: pass correct group parameters ol.endMemberItem(FALSE,0,0,FALSE); // TODO: pass correct group parameters
// insert members of this class // insert members of this class
......
...@@ -39,6 +39,7 @@ class BaseClassList; ...@@ -39,6 +39,7 @@ class BaseClassList;
class MemberInfoList; class MemberInfoList;
class MemberInfoDict; class MemberInfoDict;
class NamespaceDef; class NamespaceDef;
class MemberDef;
class ClassDef : public Definition class ClassDef : public Definition
{ {
...@@ -76,7 +77,7 @@ class ClassDef : public Definition ...@@ -76,7 +77,7 @@ class ClassDef : public Definition
void writeMemberList(OutputList &ol); void writeMemberList(OutputList &ol);
void writeIncludeFile(OutputList &ol); void writeIncludeFile(OutputList &ol);
//void writeMembersToContents(); //void writeMembersToContents();
void writeDeclaration(OutputList &ol); void writeDeclaration(OutputList &ol,MemberDef *md);
bool addExample(const char *anchor,const char *name, const char *file); bool addExample(const char *anchor,const char *name, const char *file);
bool hasExamples(); bool hasExamples();
//void writeExample(OutputList &ol); //void writeExample(OutputList &ol);
...@@ -84,9 +85,9 @@ class ClassDef : public Definition ...@@ -84,9 +85,9 @@ class ClassDef : public Definition
Protection protection() const { return prot; } Protection protection() const { return prot; }
/*! a link to this class is possible within this project */ /*! a link to this class is possible within this project */
bool isLinkableInProject() bool isLinkableInProject()
{ int i = name().findRev("::"); { //int i = name().findRev("::");
if (i==-1) i=0; else i+=2; //if (i==-1) i=0; else i+=2;
return !name().isEmpty() && name().at(i)!='@' && return !name().isEmpty() && name().find('@')==-1 &&
(prot!=Private || Config::extractPrivateFlag) && (prot!=Private || Config::extractPrivateFlag) &&
hasDocumentation() && !isReference(); hasDocumentation() && !isReference();
} }
...@@ -167,6 +168,7 @@ struct BaseClassDef ...@@ -167,6 +168,7 @@ struct BaseClassDef
class BaseClassList : public QList<BaseClassDef> class BaseClassList : public QList<BaseClassDef>
{ {
public: public:
~BaseClassList() {}
int compareItems(GCI item1,GCI item2) int compareItems(GCI item1,GCI item2)
{ {
ClassDef *c1=((BaseClassDef *)item1)->classDef; ClassDef *c1=((BaseClassDef *)item1)->classDef;
......
...@@ -213,7 +213,10 @@ static bool getLink(const char *className, ...@@ -213,7 +213,10 @@ static bool getLink(const char *className,
// exampleFile.data()); // exampleFile.data());
if (md->addExample(anchor,exampleName,exampleFile)) if (md->addExample(anchor,exampleName,exampleFile))
{ {
bool latexEnabled = result.isEnabled(OutputGenerator::Latex);
if (latexEnabled) result.disable(OutputGenerator::Latex);
result.writeAnchor(anchor); result.writeAnchor(anchor);
if (latexEnabled) result.enable(OutputGenerator::Latex);
anchorCount++; anchorCount++;
} }
} }
...@@ -222,6 +225,7 @@ static bool getLink(const char *className, ...@@ -222,6 +225,7 @@ static bool getLink(const char *className,
if (d) if (d)
{ {
//printf("d->getOutputBase()=`%s' name=`%s'\n",d->getOutputFileBase().data(),md->name().data());
result.writeCodeLink(d->getReference(),d->getOutputFileBase(), result.writeCodeLink(d->getReference(),d->getOutputFileBase(),
md->anchor(),memberName); md->anchor(),memberName);
return TRUE; return TRUE;
...@@ -384,7 +388,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -384,7 +388,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
if ((fd=findFileDef(&inputNameDict,yytext,ambig)) && if ((fd=findFileDef(&inputNameDict,yytext,ambig)) &&
fd->isLinkable()) fd->isLinkable())
{ {
code->writeCodeLink(0,fd->getOutputFileBase(),0,yytext); code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,yytext);
} }
else else
{ {
......
...@@ -39,6 +39,7 @@ struct Config ...@@ -39,6 +39,7 @@ struct Config
static QCString manOutputDir; // the directory to put the man pages static QCString manOutputDir; // the directory to put the man pages
static QCString outputLanguage; // the output language static QCString outputLanguage; // the output language
static QCString headerFile; // the name of the personal HTML header static QCString headerFile; // the name of the personal HTML header
static QCString latexHeaderFile; // the name of the personal LaTeX header
static QCString footerFile; // the name of the personal HTML footer static QCString footerFile; // the name of the personal HTML footer
static QCString cgiName; // the name of the CGI binary static QCString cgiName; // the name of the CGI binary
static QCString cgiURL; // the absolute URL to the CGI binary static QCString cgiURL; // the absolute URL to the CGI binary
...@@ -91,6 +92,9 @@ struct Config ...@@ -91,6 +92,9 @@ struct Config
static bool autoBriefFlag; // javadoc comments behaves as Qt comments. static bool autoBriefFlag; // javadoc comments behaves as Qt comments.
static bool htmlHelpFlag; // should html help files be generated? static bool htmlHelpFlag; // should html help files be generated?
static bool alphaIndexFlag; // should an alphabetical index be generated? static bool alphaIndexFlag; // should an alphabetical index be generated?
static bool pdfHyperFlag; // generate latex prepared creating hyperlinked pdfs.
static bool inheritDocsFlag; // inheritance of documentation enabled?
static bool inlineInfoFlag; // show info about inline members?
}; };
#endif #endif
...@@ -71,6 +71,7 @@ QCString Config::latexOutputDir; ...@@ -71,6 +71,7 @@ QCString Config::latexOutputDir;
QCString Config::manOutputDir; QCString Config::manOutputDir;
QCString Config::outputLanguage; QCString Config::outputLanguage;
QCString Config::headerFile; QCString Config::headerFile;
QCString Config::latexHeaderFile;
QCString Config::footerFile; QCString Config::footerFile;
QCString Config::cgiName; QCString Config::cgiName;
QCString Config::cgiURL; QCString Config::cgiURL;
...@@ -111,6 +112,7 @@ bool Config::caseSensitiveNames = FALSE; ...@@ -111,6 +112,7 @@ bool Config::caseSensitiveNames = FALSE;
bool Config::includeSourceFlag = FALSE; bool Config::includeSourceFlag = FALSE;
bool Config::htmlHelpFlag = FALSE; bool Config::htmlHelpFlag = FALSE;
bool Config::alphaIndexFlag = FALSE; bool Config::alphaIndexFlag = FALSE;
bool Config::pdfHyperFlag = FALSE;
bool Config::autoBriefFlag = TRUE; bool Config::autoBriefFlag = TRUE;
bool Config::warningFlag = TRUE; bool Config::warningFlag = TRUE;
bool Config::generateHtml = TRUE; bool Config::generateHtml = TRUE;
...@@ -123,6 +125,8 @@ bool Config::classDiagramFlag = TRUE; ...@@ -123,6 +125,8 @@ bool Config::classDiagramFlag = TRUE;
bool Config::repeatBriefFlag = TRUE; bool Config::repeatBriefFlag = TRUE;
bool Config::verbatimHeaderFlag = TRUE; bool Config::verbatimHeaderFlag = TRUE;
bool Config::htmlAlignMemberFlag = TRUE; bool Config::htmlAlignMemberFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
/* ----------------------------------------------------------------- /* -----------------------------------------------------------------
* *
...@@ -180,6 +184,7 @@ static int yyread(char *buf,int max_size) ...@@ -180,6 +184,7 @@ static int yyread(char *buf,int max_size)
<Start>"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; } <Start>"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; }
<Start>"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; } <Start>"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; }
<Start>"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; } <Start>"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; }
<Start>"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; }
<Start>"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; } <Start>"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; }
<Start>"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; } <Start>"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; }
<Start>"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; } <Start>"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; }
...@@ -232,6 +237,9 @@ static int yyread(char *buf,int max_size) ...@@ -232,6 +237,9 @@ static int yyread(char *buf,int max_size)
<Start>"JAVADOC_AUTOBRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::autoBriefFlag; } <Start>"JAVADOC_AUTOBRIEF"[ \t]*"=" { BEGIN(GetBool); b=&Config::autoBriefFlag; }
<Start>"GENERATE_HTMLHELP"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlHelpFlag; } <Start>"GENERATE_HTMLHELP"[ \t]*"=" { BEGIN(GetBool); b=&Config::htmlHelpFlag; }
<Start>"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; } <Start>"ALPHABETICAL_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::alphaIndexFlag; }
<Start>"PDF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::pdfHyperFlag; }
<Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; }
<Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; }
<Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); } <Start>[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
<GetString,GetBool>\n { yyLineNr++; BEGIN(Start); } <GetString,GetBool>\n { yyLineNr++; BEGIN(Start); }
<GetStrList>\n { <GetStrList>\n {
...@@ -375,6 +383,7 @@ void Config::init() ...@@ -375,6 +383,7 @@ void Config::init()
Config::manOutputDir ="man"; Config::manOutputDir ="man";
Config::outputLanguage = "English"; Config::outputLanguage = "English";
Config::headerFile.resize(0); Config::headerFile.resize(0);
Config::latexHeaderFile.resize(0);
Config::footerFile.resize(0); Config::footerFile.resize(0);
Config::cgiName = "search.cgi"; Config::cgiName = "search.cgi";
Config::cgiURL.resize(0); Config::cgiURL.resize(0);
...@@ -415,6 +424,7 @@ void Config::init() ...@@ -415,6 +424,7 @@ void Config::init()
Config::includeSourceFlag = FALSE; Config::includeSourceFlag = FALSE;
Config::htmlHelpFlag = FALSE; Config::htmlHelpFlag = FALSE;
Config::alphaIndexFlag = FALSE; Config::alphaIndexFlag = FALSE;
Config::pdfHyperFlag = FALSE;
Config::warningFlag = TRUE; Config::warningFlag = TRUE;
Config::generateHtml = TRUE; Config::generateHtml = TRUE;
Config::generateLatex = TRUE; Config::generateLatex = TRUE;
...@@ -427,6 +437,8 @@ void Config::init() ...@@ -427,6 +437,8 @@ void Config::init()
Config::verbatimHeaderFlag = TRUE; Config::verbatimHeaderFlag = TRUE;
Config::htmlAlignMemberFlag = TRUE; Config::htmlAlignMemberFlag = TRUE;
Config::autoBriefFlag = TRUE; Config::autoBriefFlag = TRUE;
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
} }
void writeTemplateConfig(QFile *f,bool sl) void writeTemplateConfig(QFile *f,bool sl)
...@@ -636,7 +648,7 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -636,7 +648,7 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl) if (!sl)
{ {
t << "\n"; t << "\n";
t << "# If the JAVADOC_NO_AUTOBRIEF is set to YES (the default) then Doxygen\n"; t << "# If the JAVADOC_AUTOBRIEF tag is set to YES (the default) then Doxygen\n";
t << "# will interpret the first line (until the first dot) of a JavaDoc-style\n"; t << "# will interpret the first line (until the first dot) of a JavaDoc-style\n";
t << "# comment as the brief description. If set to NO, the Javadoc-style will\n"; t << "# comment as the brief description. If set to NO, the Javadoc-style will\n";
t << "# behave just like the Qt-style comments.\n"; t << "# behave just like the Qt-style comments.\n";
...@@ -644,6 +656,23 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -644,6 +656,23 @@ void writeTemplateConfig(QFile *f,bool sl)
} }
t << "JAVADOC_AUTOBRIEF = YES\n"; t << "JAVADOC_AUTOBRIEF = YES\n";
if (!sl) if (!sl)
{
t << "\n";
t << "# if the INHERIT_DOCS tag is set to YES (the default) then an undocumented\n";
t << "# member inherits the documentation from any documented member that it\n";
t << "# reimplements.\n";
t << "\n";
}
t << "INHERIT_DOCS = YES\n";
if (!sl)
{
t << "\n";
t << "# if the INLINE_INFO tag is set to YES (the default) then a tag [inline]\n";
t << "# is inserted in the documentation for inline members.\n";
t << "\n";
}
t << "INLINE_INFO = YES\n";
if (!sl)
{ {
t << "\n"; t << "\n";
} }
...@@ -839,6 +868,26 @@ void writeTemplateConfig(QFile *f,bool sl) ...@@ -839,6 +868,26 @@ void writeTemplateConfig(QFile *f,bool sl)
} }
t << "EXTRA_PACKAGES =\n"; t << "EXTRA_PACKAGES =\n";
if (!sl) if (!sl)
{
t << "\n";
t << "# The LATEX_HEADER tag can be used to specify a personal LaTeX header for \n";
t << "# the generated latex document. The header should contain everything until\n";
t << "# the first chapter. If it is left blank doxygen will generate a \n";
t << "# standard header. Notice: only use this tag if you know what you are doing!\n";
t << "\n";
}
t << "LATEX_HEADER =\n";
if (!sl)
{
t << "\n";
t << "# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated\n";
t << "# is prepared for conversion to pdf (using ps2pdf). The pdf file will\n";
t << "# contain links (just like the HTML output) instead of page references\n";
t << "# This makes the output suitable for online browsing using a pdf viewer.\n";
t << "\n";
}
t << "PDF_HYPERLINKS = NO\n";
if (!sl)
{ {
t << "\n"; t << "\n";
} }
...@@ -1177,6 +1226,17 @@ void checkConfig() ...@@ -1177,6 +1226,17 @@ void checkConfig()
exit(1); exit(1);
} }
} }
// Test to see if LaTeX header is valid
if (Config::latexHeaderFile.length()>0)
{
QFileInfo fi(Config::latexHeaderFile);
if (!fi.exists())
{
err("Error: tag LATEX_HEADER: header file `%s' "
"does not exist\n",Config::latexHeaderFile.data());
exit(1);
}
}
// check include path // check include path
char *s=Config::includePath.first(); char *s=Config::includePath.first();
while (s) while (s)
......
...@@ -171,11 +171,11 @@ ID [a-z_A-Z][a-z_A-Z0-9]* ...@@ -171,11 +171,11 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
<Template>. { <Template>. {
name+=*yytext; name+=*yytext;
} }
<Operator>{B}*"()"{B}*"<>"{B}*/"(" { <Operator>{B}*"("{B}*")"{B}*"<>"{B}*/"(" {
name+="() <>"; name+="() <>";
BEGIN(ReadArgs); BEGIN(ReadArgs);
} }
<Operator>{B}*"()"{B}*/"(" { <Operator>{B}*"("{B}*")"{B}*/"(" {
name+="()"; name+="()";
BEGIN(ReadArgs); BEGIN(ReadArgs);
} }
......
...@@ -73,3 +73,17 @@ void Definition::addSectionsToDefinition(QList<QCString> *anchorList) ...@@ -73,3 +73,17 @@ void Definition::addSectionsToDefinition(QList<QCString> *anchorList)
s=anchorList->next(); s=anchorList->next();
} }
} }
void Definition::setBriefDescription(const char *b)
{
brief=QCString(b).stripWhiteSpace();
int bl=brief.length();
if (bl>0) // add puntuation if needed
{
switch(brief.at(bl-1))
{
case '.': case '!': case '?': break;
default: brief+='.'; break;
}
}
}
...@@ -50,19 +50,7 @@ class Definition ...@@ -50,19 +50,7 @@ class Definition
/*! sets the brief description of this definition to \a b. /*! sets the brief description of this definition to \a b.
* A dot is added to the sentence if not available. * A dot is added to the sentence if not available.
*/ */
void setBriefDescription(const char *b) void setBriefDescription(const char *b);
{
brief=((QCString) b).stripWhiteSpace();
int bl=brief.length();
if (bl>0) // add puntuation if needed
{
switch(brief.at(bl-1))
{
case '.': case '!': case '?': break;
default: brief+='.'; break;
}
}
}
/*! returns TRUE iff the definition is documented */ /*! returns TRUE iff the definition is documented */
virtual bool hasDocumentation() virtual bool hasDocumentation()
{ return !doc.isNull() || !brief.isNull() || Config::extractAllFlag; } { return !doc.isNull() || !brief.isNull() || Config::extractAllFlag; }
......
This diff is collapsed.
...@@ -113,6 +113,7 @@ extern NamespaceDict namespaceDict; ...@@ -113,6 +113,7 @@ extern NamespaceDict namespaceDict;
extern FormulaList formulaList; extern FormulaList formulaList;
extern FormulaDict formulaDict; extern FormulaDict formulaDict;
extern FormulaDict formulaNameDict; extern FormulaDict formulaNameDict;
extern PageInfo *mainPage;
extern int annotatedClasses; extern int annotatedClasses;
extern int hierarchyClasses; extern int hierarchyClasses;
......
...@@ -65,6 +65,7 @@ Entry::Entry(const Entry &e) ...@@ -65,6 +65,7 @@ Entry::Entry(const Entry &e)
fileName = e.fileName.copy(); fileName = e.fileName.copy();
startLine = e.startLine; startLine = e.startLine;
mGrpId = e.mGrpId; mGrpId = e.mGrpId;
inLine = e.inLine;
sublist = new QList<Entry>; sublist = new QList<Entry>;
sublist->setAutoDelete(TRUE); sublist->setAutoDelete(TRUE);
extends = new QList<BaseInfo>; extends = new QList<BaseInfo>;
...@@ -207,6 +208,7 @@ void Entry::reset() ...@@ -207,6 +208,7 @@ void Entry::reset()
slot = FALSE; slot = FALSE;
stat = FALSE; stat = FALSE;
proto = FALSE; proto = FALSE;
inLine = FALSE;
protection = Public; protection = Public;
sublist->clear(); sublist->clear();
extends->clear(); extends->clear();
......
...@@ -62,6 +62,7 @@ struct Argument ...@@ -62,6 +62,7 @@ struct Argument
class ArgumentList : public QList<Argument> class ArgumentList : public QList<Argument>
{ {
public: public:
~ArgumentList() {}
ArgumentList() : QList<Argument>(), ArgumentList() : QList<Argument>(),
constSpecifier(FALSE), constSpecifier(FALSE),
volatileSpecifier(FALSE), volatileSpecifier(FALSE),
...@@ -106,6 +107,7 @@ class Entry ...@@ -106,6 +107,7 @@ class Entry
NAMESPACEDOC_SEC = 0x02000000, NAMESPACEDOC_SEC = 0x02000000,
INTERFACE_SEC = 0x04000000, INTERFACE_SEC = 0x04000000,
INTERFACEDOC_SEC = 0x08000000, INTERFACEDOC_SEC = 0x08000000,
MAINPAGEDOC_SEC = 0x10000000,
COMPOUND_MASK = CLASS_SEC | STRUCT_SEC | UNION_SEC | INTERFACE_SEC, COMPOUND_MASK = CLASS_SEC | STRUCT_SEC | UNION_SEC | INTERFACE_SEC,
COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC | INTERFACEDOC_SEC, COMPOUNDDOC_MASK = CLASSDOC_SEC | STRUCTDOC_SEC | UNIONDOC_SEC | INTERFACEDOC_SEC,
SCOPE_MASK = COMPOUND_MASK | NAMESPACE_SEC, SCOPE_MASK = COMPOUND_MASK | NAMESPACE_SEC,
...@@ -126,6 +128,7 @@ class Entry ...@@ -126,6 +128,7 @@ class Entry
bool slot; // a Qt slot ? bool slot; // a Qt slot ?
bool stat; // static ? bool stat; // static ?
bool proto; // prototype ? bool proto; // prototype ?
bool inLine; // inline ?
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
QCString type; // member type QCString type; // member type
......
...@@ -37,6 +37,7 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref) ...@@ -37,6 +37,7 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref)
path=p; path=p;
filepath=path+nm; filepath=path+nm;
filename=nameToFile(nm); filename=nameToFile(nm);
diskname=filename.copy();
setReference(ref); setReference(ref);
memList = new MemberList; memList = new MemberList;
classList = new ClassList; classList = new ClassList;
...@@ -72,9 +73,9 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -72,9 +73,9 @@ void FileDef::writeDocumentation(OutputList &ol)
QCString pageTitle=name()+" File Reference"; QCString pageTitle=name()+" File Reference";
startFile(ol,diskname,pageTitle); startFile(ol,diskname,pageTitle);
startTitle(ol); startTitle(ol,getOutputFileBase());
parseText(ol,theTranslator->trFileReference(name())); parseText(ol,theTranslator->trFileReference(name()));
endTitle(ol,name()); endTitle(ol,getOutputFileBase(),name());
//ol.newParagraph(); //ol.newParagraph();
if (Config::genTagFile.length()>0) tagFile << "&" << name() << ":\n"; if (Config::genTagFile.length()>0) tagFile << "&" << name() << ":\n";
...@@ -184,8 +185,8 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -184,8 +185,8 @@ void FileDef::writeDocumentation(OutputList &ol)
ol.endMemberItem(FALSE,0,0,FALSE); ol.endMemberItem(FALSE,0,0,FALSE);
} }
cd=classList->next(); cd=classList->next();
if (found) ol.endMemberList();
} }
if (found) ol.endMemberList();
} }
memList->writeDeclarations(ol,0,0,this,0,0); memList->writeDeclarations(ol,0,0,this,0,0);
...@@ -265,14 +266,11 @@ void FileDef::writeDocumentation(OutputList &ol) ...@@ -265,14 +266,11 @@ void FileDef::writeDocumentation(OutputList &ol)
memList->writeDocumentation(ol,name(),MemberDef::EnumValue); memList->writeDocumentation(ol,name(),MemberDef::EnumValue);
} }
int cnt; if ( memList->funcCount()>0 )
if ( (cnt=memList->funcCount()>0) )
{ {
ol.writeRuler(); ol.writeRuler();
ol.startGroupHeader(); ol.startGroupHeader();
QCString cntString; parseText(ol,theTranslator->trFunctionDocumentation());
cntString.sprintf(" (%d)",cnt);
parseText(ol,theTranslator->trFunctionDocumentation()+cntString);
ol.endGroupHeader(); ol.endGroupHeader();
memList->writeDocumentation(ol,name(),MemberDef::Function); memList->writeDocumentation(ol,name(),MemberDef::Function);
} }
......
...@@ -59,6 +59,7 @@ class FileNameDict : public QDict<FileName> ...@@ -59,6 +59,7 @@ class FileNameDict : public QDict<FileName>
{ {
public: public:
FileNameDict(uint size) : QDict<FileName>(size) {} FileNameDict(uint size) : QDict<FileName>(size) {}
~FileNameDict() {}
}; };
#endif #endif
...@@ -52,6 +52,7 @@ class FormulaDict : public QDict<Formula> ...@@ -52,6 +52,7 @@ class FormulaDict : public QDict<Formula>
public: public:
FormulaDict(uint size) : FormulaDict(uint size) :
QDict<Formula>(size) {} QDict<Formula>(size) {}
~FormulaDict() {}
}; };
#endif #endif
...@@ -78,9 +78,9 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -78,9 +78,9 @@ void GroupDef::writeDocumentation(OutputList &ol)
{ {
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
startFile(ol,fileName,title); startFile(ol,fileName,title);
startTitle(ol); startTitle(ol,getOutputFileBase());
ol.docify(title); ol.docify(title);
endTitle(ol,name()); endTitle(ol,getOutputFileBase(),name());
//brief=brief.stripWhiteSpace(); //brief=brief.stripWhiteSpace();
//int bl=brief.length(); //int bl=brief.length();
...@@ -112,13 +112,18 @@ void GroupDef::writeDocumentation(OutputList &ol) ...@@ -112,13 +112,18 @@ void GroupDef::writeDocumentation(OutputList &ol)
} }
if (classList->count()>0) if (classList->count()>0)
{ {
ol.startMemberHeader();
parseText(ol,theTranslator->trCompounds());
ol.endMemberHeader();
ol.startIndexList();
ClassDef *cd=classList->first(); ClassDef *cd=classList->first();
bool found=FALSE;
while (cd) while (cd)
{ {
if (!found)
{
ol.startMemberHeader();
parseText(ol,theTranslator->trCompounds());
ol.endMemberHeader();
ol.startIndexList();
found=TRUE;
}
QCString type; QCString type;
switch (cd->compoundType()) switch (cd->compoundType())
{ {
......
...@@ -170,17 +170,25 @@ void HtmlGenerator::writeStyleInfo(int part) ...@@ -170,17 +170,25 @@ void HtmlGenerator::writeStyleInfo(int part)
t << "DL.el { margin-left: -1cm }" << endl; t << "DL.el { margin-left: -1cm }" << endl;
t << "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl; t << "DIV.fragment { width: 100%; border: none; background-color: #eeeeee }" << endl;
t << "DIV.in { margin-left: 16 }" << endl; t << "DIV.in { margin-left: 16 }" << endl;
t << "DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 }" << endl;
t << "A.gl:link { color: #ffffff }" << endl; t << "A.gl:link { color: #ffffff }" << endl;
t << "A.gl:visited { color: #ffffff }" << endl; t << "A.gl:visited { color: #ffffff }" << endl;
t << "A.gl { text-decoration: none; font-weight: bold; background-color: " << GROUP_COLOR << " }" << endl; t << "A.gl { text-decoration: none; font-weight: bold; background-color: " << GROUP_COLOR << " }" << endl;
t << "TD.md { background-color: #f2f2ff }" << endl;
t << endl; t << endl;
endPlainFile(); endPlainFile();
} }
} }
void HtmlGenerator::writeDoxyAnchor(const char *,const char *anchor, const char *name) void HtmlGenerator::startDoxyAnchor(const char *,const char *,
const char *anchor, const char *name)
{
t << "<a name=\"" << anchor << "\" doxytag=\"" << name << "\">";
}
void HtmlGenerator::endDoxyAnchor()
{ {
t << "<a name=\"" << anchor << "\" doxytag=\"" << name << "\"></a>"; t << "</a>" << endl;
} }
void HtmlGenerator::newParagraph() void HtmlGenerator::newParagraph()
...@@ -601,17 +609,40 @@ void HtmlGenerator::endIndexList() ...@@ -601,17 +609,40 @@ void HtmlGenerator::endIndexList()
//} //}
} }
void HtmlGenerator::startAlfabeticalIndexList() void HtmlGenerator::startAlphabeticalIndexList()
{ {
t << "<multicol cols=5><dl compact>" << endl; t << "<table width=95% border=0 cellspacing=0 cellpadding=0>" << endl;
} }
void HtmlGenerator::endAlfabeticalIndexList() void HtmlGenerator::endAlphabeticalIndexList()
{ {
t << "</dl></multicol>" << endl; t << "</table>" << endl;
} }
void HtmlGenerator::writeIndexHeading(const char *s) void HtmlGenerator::writeIndexHeading(const char *s)
{ {
t << "<dt><b><big>" << s << "</big></b><dd>" << endl; //t << "<dt><b><big>" << s << "</big></b><dd>" << endl;
t << "<div class=\"ah\"><font color=\"white\"><b>&nbsp;&nbsp;" << s
<< "&nbsp;&nbsp;</b></font></div>";
}
void HtmlGenerator::writeImage(const char *name,const char *,const char *)
{
QCString baseName=name;
int i;
if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
{
baseName=baseName.right(baseName.length()-i);
}
t << "<img src=" << name << " alt=\"" << baseName << "\">" << endl;
}
void HtmlGenerator::startMemberDoc(const char *,const char *,const char *,const char *)
{
t << endl << "<p><table width=100%% cellpadding=2 cellspacing=0 border=0><tr><td class=\"md\"><b>" << endl;
}
void HtmlGenerator::endMemberDoc()
{
t << endl << "</b></td></tr></table>" << endl;
} }
...@@ -54,8 +54,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -54,8 +54,8 @@ class HtmlGenerator : public OutputGenerator
void startProjectNumber(); void startProjectNumber();
void endProjectNumber(); void endProjectNumber();
void writeStyleInfo(int part); void writeStyleInfo(int part);
void startTitleHead() { startTitle(); } void startTitleHead(const char *) { startTitle(); }
void endTitleHead(const char *) { endTitle(); } void endTitleHead(const char *,const char *) { endTitle(); }
void startTitle() { t << "<h1>"; } void startTitle() { t << "<h1>"; }
void endTitle() { t << "</h1>"; } void endTitle() { t << "</h1>"; }
...@@ -67,8 +67,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -67,8 +67,8 @@ class HtmlGenerator : public OutputGenerator
void endItemList() { t << "</ul>" << endl; } void endItemList() { t << "</ul>" << endl; }
void startEnumList() { t << "<ol>" << endl; } void startEnumList() { t << "<ol>" << endl; }
void endEnumList() { t << "</ol>" << endl; } void endEnumList() { t << "</ol>" << endl; }
void startAlfabeticalIndexList(); void startAlphabeticalIndexList();
void endAlfabeticalIndexList(); void endAlphabeticalIndexList();
void writeIndexHeading(const char *s); void writeIndexHeading(const char *s);
void writeIndexItem(const char *ref,const char *file,const char *name); void writeIndexItem(const char *ref,const char *file,const char *name);
void docify(const char *text); void docify(const char *text);
...@@ -120,13 +120,15 @@ class HtmlGenerator : public OutputGenerator ...@@ -120,13 +120,15 @@ class HtmlGenerator : public OutputGenerator
void endDescItem() { t << "<dd>"; } void endDescItem() { t << "<dd>"; }
void lineBreak() { t << "<br>" << endl; } void lineBreak() { t << "<br>" << endl; }
void writeChar(char c); void writeChar(char c);
void startMemberDoc(const char *,const char *,const char *) void startMemberDoc(const char *,const char *,const char *,const char *);
{ t << endl << "<h3>"; } void endMemberDoc();
void endMemberDoc() { t << "</h3>" << endl; } //void writeDoxyAnchor(const char *fName,const char *clName,
void writeDoxyAnchor(const char *clName,const char *anchor, // const char *anchor,const char *name);
const char *name); void startDoxyAnchor(const char *fName,const char *clName,
const char *anchor,const char *name);
void endDoxyAnchor();
void writeLatexSpacing() {} void writeLatexSpacing() {}
void writeLatexLabel(const char *,const char *) {} //void writeLatexLabel(const char *,const char *) {}
void writeStartAnnoItem(const char *type,const char *file, void writeStartAnnoItem(const char *type,const char *file,
const char *path,const char *name); const char *path,const char *name);
void writeEndAnnoItem(const char *) { t << endl; } void writeEndAnnoItem(const char *) { t << endl; }
...@@ -144,7 +146,7 @@ class HtmlGenerator : public OutputGenerator ...@@ -144,7 +146,7 @@ class HtmlGenerator : public OutputGenerator
void endSuperscript() { t << "</sup>"; } void endSuperscript() { t << "</sup>"; }
void startTable(int) { t << "<table border=1 cellspacing=3 cellpadding=3>"; } void startTable(int) { t << "<table border=1 cellspacing=3 cellpadding=3>"; }
void endTable() { t << "</table>" << endl; } void endTable() { t << "</table>" << endl; }
void nextTableRow() { t << endl << "<tr><td>"; } void nextTableRow() { t << "<tr><td>"; }
void endTableRow() { t << "</tr>" << endl; } void endTableRow() { t << "</tr>" << endl; }
void nextTableColumn() { t << "<td>"; } void nextTableColumn() { t << "<td>"; }
void endTableColumn() { t << "</td>"; } void endTableColumn() { t << "</td>"; }
...@@ -171,11 +173,13 @@ class HtmlGenerator : public OutputGenerator ...@@ -171,11 +173,13 @@ class HtmlGenerator : public OutputGenerator
void endClassDiagram(ClassDiagram &,const char *,const char *); void endClassDiagram(ClassDiagram &,const char *,const char *);
void startColorFont(uchar r,uchar g,uchar b); void startColorFont(uchar r,uchar g,uchar b);
void endColorFont(); void endColorFont();
void writePageRef(const char *,const char *) {} void startPageRef() {}
void endPageRef(const char *,const char *) {}
void startQuickIndexItem(const char *,const char *); void startQuickIndexItem(const char *,const char *);
void endQuickIndexItem(); void endQuickIndexItem();
void writeFormula(const char *,const char *); void writeFormula(const char *,const char *);
void writeNonBreakableSpace() { t << "&nbsp;&nbsp;&nbsp;"; } void writeNonBreakableSpace() { t << "&nbsp;&nbsp;&nbsp;"; }
void writeImage(const char *,const char *,const char *);
//static void docifyStatic(QTextStream &t,const char *str); //static void docifyStatic(QTextStream &t,const char *str);
......
This diff is collapsed.
...@@ -25,6 +25,7 @@ enum IndexSections ...@@ -25,6 +25,7 @@ enum IndexSections
{ {
isTitlePageStart, isTitlePageStart,
isTitlePageAuthor, isTitlePageAuthor,
isMainPage,
isModuleIndex, isModuleIndex,
isNamespaceIndex, isNamespaceIndex,
isClassHierarchyIndex, isClassHierarchyIndex,
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
#include "language.h" #include "language.h"
#if !defined(ENGLISH_ONLY)
#include "translator_nl.h" #include "translator_nl.h"
#include "translator_se.h" #include "translator_se.h"
#include "translator_cz.h" #include "translator_cz.h"
...@@ -23,6 +24,7 @@ ...@@ -23,6 +24,7 @@
#include "translator_de.h" #include "translator_de.h"
#include "translator_jp.h" #include "translator_jp.h"
#include "translator_es.h" #include "translator_es.h"
#endif
#define L_EQUAL(a) !stricmp(langName,a) #define L_EQUAL(a) !stricmp(langName,a)
...@@ -34,6 +36,7 @@ bool setTranslator(const char *langName) ...@@ -34,6 +36,7 @@ bool setTranslator(const char *langName)
{ {
theTranslator=new Translator; theTranslator=new Translator;
} }
#if !defined(ENGLISH_ONLY)
else if (L_EQUAL("dutch")) else if (L_EQUAL("dutch"))
{ {
theTranslator=new TranslatorDutch; theTranslator=new TranslatorDutch;
...@@ -66,6 +69,7 @@ bool setTranslator(const char *langName) ...@@ -66,6 +69,7 @@ bool setTranslator(const char *langName)
{ {
theTranslator=new TranslatorSpanish; theTranslator=new TranslatorSpanish;
} }
#endif
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.
...@@ -27,7 +27,7 @@ class LatexGenerator : public OutputGenerator ...@@ -27,7 +27,7 @@ class LatexGenerator : public OutputGenerator
LatexGenerator(); LatexGenerator();
~LatexGenerator(); ~LatexGenerator();
OutputGenerator *copy() { return new LatexGenerator; } OutputGenerator *copy();
//OutputGenerator *clone() { return new LatexGenerator(*this); } //OutputGenerator *clone() { return new LatexGenerator(*this); }
void append(const OutputGenerator *o); void append(const OutputGenerator *o);
void enable() { active=TRUE; } void enable() { active=TRUE; }
...@@ -50,9 +50,9 @@ class LatexGenerator : public OutputGenerator ...@@ -50,9 +50,9 @@ class LatexGenerator : public OutputGenerator
void startProjectNumber(); void startProjectNumber();
void endProjectNumber() {} void endProjectNumber() {}
void writeStyleInfo(int part); void writeStyleInfo(int part);
void startTitleHead() { startTitle(); } void startTitleHead(const char *);
void startTitle(); void startTitle();
void endTitleHead(const char *name); void endTitleHead(const char *,const char *name);
void endTitle() { t << "}"; } void endTitle() { t << "}"; }
void newParagraph(); void newParagraph();
...@@ -63,8 +63,8 @@ class LatexGenerator : public OutputGenerator ...@@ -63,8 +63,8 @@ class LatexGenerator : public OutputGenerator
void endItemList() { t << "\\end{CompactItemize}" << endl; } void endItemList() { t << "\\end{CompactItemize}" << endl; }
void startEnumList() { t << "\\begin{enumerate}" << endl; } void startEnumList() { t << "\\begin{enumerate}" << endl; }
void endEnumList() { t << "\\end{enumerate}" << endl; } void endEnumList() { t << "\\end{enumerate}" << endl; }
void startAlfabeticalIndexList() {} void startAlphabeticalIndexList() {}
void endAlfabeticalIndexList() {} void endAlphabeticalIndexList() {}
void writeIndexHeading(const char *) {} void writeIndexHeading(const char *) {}
void writeIndexItem(const char *ref,const char *file,const char *name); void writeIndexItem(const char *ref,const char *file,const char *name);
void docify(const char *text); void docify(const char *text);
...@@ -96,7 +96,7 @@ class LatexGenerator : public OutputGenerator ...@@ -96,7 +96,7 @@ class LatexGenerator : public OutputGenerator
void memberGroupSeparator() {} void memberGroupSeparator() {}
void insertMemberAlign() {} void insertMemberAlign() {}
void writeRuler() { t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}"; } void writeRuler() { t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; }
void writeAnchor(const char *name) { t << "\\label{" << name << "}" << endl; } void writeAnchor(const char *name) { t << "\\label{" << name << "}" << endl; }
void startCodeFragment() { t << "\\small\\begin{verbatim}"; } void startCodeFragment() { t << "\\small\\begin{verbatim}"; }
void endCodeFragment() { t << "\\end{verbatim}\\normalsize " << endl; } void endCodeFragment() { t << "\\end{verbatim}\\normalsize " << endl; }
...@@ -111,12 +111,13 @@ class LatexGenerator : public OutputGenerator ...@@ -111,12 +111,13 @@ class LatexGenerator : public OutputGenerator
void startDescItem() { t << "\\item["; } void startDescItem() { t << "\\item["; }
void endDescItem() { t << "]" << endl; } void endDescItem() { t << "]" << endl; }
void lineBreak() { t << "\\par\n"; } void lineBreak() { t << "\\par\n"; }
void startMemberDoc(const char *,const char *,const char *); void startMemberDoc(const char *,const char *,const char *,const char *);
void endMemberDoc() { t << "}"; } void endMemberDoc() { t << "}"; }
void writeDoxyAnchor(const char *,const char *,const char *); void startDoxyAnchor(const char *,const char *,const char *,const char *);
void endDoxyAnchor();
void writeChar(char c); void writeChar(char c);
void writeLatexSpacing() { t << "\\hspace{0.3cm}"; } void writeLatexSpacing() { t << "\\hspace{0.3cm}"; }
void writeLatexLabel(const char *scope,const char *anchor); //void writeLatexLabel(const char *scope,const char *anchor);
void writeStartAnnoItem(const char *type,const char *file, void writeStartAnnoItem(const char *type,const char *file,
const char *path,const char *name); const char *path,const char *name);
void writeEndAnnoItem(const char *name); void writeEndAnnoItem(const char *name);
...@@ -157,10 +158,10 @@ class LatexGenerator : public OutputGenerator ...@@ -157,10 +158,10 @@ class LatexGenerator : public OutputGenerator
void writeTilde(char c) { t << "\\~{" << c << "}"; } void writeTilde(char c) { t << "\\~{" << c << "}"; }
void startMemberDescription() { t << "\\begin{CompactList}\\small\\item\\em "; } void startMemberDescription() { t << "\\begin{CompactList}\\small\\item\\em "; }
void endMemberDescription() { t << "\\item\\end{CompactList}"; } void endMemberDescription() { t << "\\item\\end{CompactList}"; }
void startDescList() { t << "\\begin{Desc}\\item["; } void startDescList() { t << "\\begin{Desc}\n\\item["; }
void endDescTitle() { t << "]"; } void endDescTitle() { t << "]"; }
void writeDescItem() { t << "\\par" << endl; } void writeDescItem() { t << "\\par" << endl; }
void endDescList() { t << "\\end{Desc}"; } void endDescList() { t << "\\end{Desc}" << endl; }
void writeSection(const char *,const char *,bool); void writeSection(const char *,const char *,bool);
void writeSectionRef(const char *,const char *,const char *); void writeSectionRef(const char *,const char *,const char *);
void writeSectionRefItem(const char *,const char *,const char *); void writeSectionRefItem(const char *,const char *,const char *);
...@@ -174,11 +175,13 @@ class LatexGenerator : public OutputGenerator ...@@ -174,11 +175,13 @@ class LatexGenerator : public OutputGenerator
void endClassDiagram(ClassDiagram &,const char *,const char *); void endClassDiagram(ClassDiagram &,const char *,const char *);
void startColorFont(uchar,uchar,uchar) {} void startColorFont(uchar,uchar,uchar) {}
void endColorFont() {} void endColorFont() {}
void writePageRef(const char *,const char *); void startPageRef();
void endPageRef(const char *,const char *);
void startQuickIndexItem(const char *,const char *) {} void startQuickIndexItem(const char *,const char *) {}
void endQuickIndexItem() {} void endQuickIndexItem() {}
void writeFormula(const char *,const char *); void writeFormula(const char *,const char *);
void writeNonBreakableSpace(); void writeNonBreakableSpace();
void writeImage(const char *,const char *,const char *);
//static void docifyStatic(QTextStream &t,const char *str); //static void docifyStatic(QTextStream &t,const char *str);
......
...@@ -92,11 +92,7 @@ void ManGenerator::endFile() ...@@ -92,11 +92,7 @@ void ManGenerator::endFile()
endPlainFile(); endPlainFile();
} }
void ManGenerator::writeDoxyAnchor(const char *, const char *,const char *) void ManGenerator::endTitleHead(const char *,const char *name)
{
}
void ManGenerator::endTitleHead(const char *name)
{ {
t << ".TH " << name << " 3 \"" << dateToString(FALSE) << "\" \""; t << ".TH " << name << " 3 \"" << dateToString(FALSE) << "\" \"";
if (Config::projectName.isEmpty()) if (Config::projectName.isEmpty())
...@@ -284,7 +280,7 @@ void ManGenerator::endCodeFragment() ...@@ -284,7 +280,7 @@ void ManGenerator::endCodeFragment()
col=0; col=0;
} }
void ManGenerator::startMemberDoc(const char *,const char *,const char *) void ManGenerator::startMemberDoc(const char *,const char *,const char *,const char *)
{ {
if (!firstCol) t << endl; if (!firstCol) t << endl;
t << ".SS "; t << ".SS ";
......
...@@ -50,8 +50,8 @@ class ManGenerator : public OutputGenerator ...@@ -50,8 +50,8 @@ class ManGenerator : public OutputGenerator
void startProjectNumber() {} void startProjectNumber() {}
void endProjectNumber() {} void endProjectNumber() {}
void writeStyleInfo(int) {} void writeStyleInfo(int) {}
void startTitleHead() {} void startTitleHead(const char *) {}
void endTitleHead(const char *); void endTitleHead(const char *,const char *);
void startTitle(); void startTitle();
void endTitle() {} void endTitle() {}
...@@ -63,8 +63,8 @@ class ManGenerator : public OutputGenerator ...@@ -63,8 +63,8 @@ class ManGenerator : public OutputGenerator
void endItemList() {} void endItemList() {}
void startEnumList() {} void startEnumList() {}
void endEnumList() {} void endEnumList() {}
void startAlfabeticalIndexList() {} void startAlphabeticalIndexList() {}
void endAlfabeticalIndexList() {} void endAlphabeticalIndexList() {}
void writeIndexHeading(const char *) {} void writeIndexHeading(const char *) {}
void writeIndexItem(const char *ref,const char *file,const char *name); void writeIndexItem(const char *ref,const char *file,const char *name);
void docify(const char *text); void docify(const char *text);
...@@ -110,11 +110,13 @@ class ManGenerator : public OutputGenerator ...@@ -110,11 +110,13 @@ class ManGenerator : public OutputGenerator
void endDescItem(); void endDescItem();
void lineBreak() { t << "\n.br" << endl; } void lineBreak() { t << "\n.br" << endl; }
void writeChar(char c); void writeChar(char c);
void startMemberDoc(const char *,const char *,const char *); void startMemberDoc(const char *,const char *,const char *,const char *);
void endMemberDoc() {} void endMemberDoc() {}
void writeDoxyAnchor(const char *clName,const char *anchor,const char *name); void startDoxyAnchor(const char *,const char *,
const char *,const char *) {}
void endDoxyAnchor() {}
void writeLatexSpacing() {} void writeLatexSpacing() {}
void writeLatexLabel(const char *,const char *) {} //void writeLatexLabel(const char *,const char *) {}
void writeStartAnnoItem(const char *type,const char *file, void writeStartAnnoItem(const char *type,const char *file,
const char *path,const char *name); const char *path,const char *name);
void writeEndAnnoItem(const char *) { t << endl; firstCol=TRUE; } void writeEndAnnoItem(const char *) { t << endl; firstCol=TRUE; }
...@@ -162,11 +164,13 @@ class ManGenerator : public OutputGenerator ...@@ -162,11 +164,13 @@ class ManGenerator : public OutputGenerator
void endClassDiagram(ClassDiagram &,const char *,const char *) {} void endClassDiagram(ClassDiagram &,const char *,const char *) {}
void startColorFont(uchar,uchar,uchar) {} void startColorFont(uchar,uchar,uchar) {}
void endColorFont() {} void endColorFont() {}
void writePageRef(const char *,const char *) {} void startPageRef() {}
void endPageRef(const char *,const char *) {}
void startQuickIndexItem(const char *,const char *) {} void startQuickIndexItem(const char *,const char *) {}
void endQuickIndexItem() {} void endQuickIndexItem() {}
void writeFormula(const char *,const char *) {} void writeFormula(const char *,const char *) {}
void writeNonBreakableSpace() { t << " "; } void writeNonBreakableSpace() { t << " "; }
void writeImage(const char *,const char *,const char *) {}
private: private:
bool firstCol; bool firstCol;
......
This diff is collapsed.
...@@ -84,12 +84,14 @@ class MemberDef : public Definition ...@@ -84,12 +84,14 @@ class MemberDef : public Definition
void setFileDec(FileDef *fd) { fileDec=fd; } void setFileDec(FileDef *fd) { fileDec=fd; }
void setAnchor(const char *a) { anc=a; } void setAnchor(const char *a) { anc=a; }
void setProtection(Protection p) { prot=p; } void setProtection(Protection p) { prot=p; }
void setBody(const QCString &b) { body=b; } void setBody(const QCString &b) { body=b; }
void setInline(bool in) { inLine=in; }
FileDef *getFileDef() { return fileDef; } FileDef *getFileDef() { return fileDef; }
FileDef *getFileDec() { return fileDec; } FileDef *getFileDec() { return fileDec; }
void setMemberClass(ClassDef *cd) { classDef=cd; } void setMemberClass(ClassDef *cd) { classDef=cd; }
bool isRelated() const { return related; } bool isRelated() const { return related; }
bool isStatic() const { return stat; } bool isStatic() const { return stat; }
bool isInline() const { return inLine; }
bool hasDocumentation() // overrides hasDocumentation in definition.h bool hasDocumentation() // overrides hasDocumentation in definition.h
{ return Definition::hasDocumentation() || !body.isEmpty(); } { return Definition::hasDocumentation() || !body.isEmpty(); }
...@@ -212,12 +214,14 @@ class MemberDef : public Definition ...@@ -212,12 +214,14 @@ class MemberDef : public Definition
Protection prot; // protection type [Public/Protected/Private] Protection prot; // protection type [Public/Protected/Private]
bool related; // is this a member that is only related to a class bool related; // is this a member that is only related to a class
bool stat; // is it a static function? bool stat; // is it a static function?
bool inLine; // is it an inline function?
MemberType mtype; // returns the kind of member MemberType mtype; // returns the kind of member
bool eUsed; // is the enumerate already placed in a list bool eUsed; // is the enumerate already placed in a list
bool proto; // is it a prototype; bool proto; // is it a prototype;
bool docEnumValues; // is an enum with documented enum values. bool docEnumValues; // is an enum with documented enum values.
bool annScope; bool annScope;
bool annUsed; bool annUsed;
bool annShown;
int indDepth; int indDepth;
MemberDef *annMemb; MemberDef *annMemb;
ArgumentList *argList; // argument list of this member ArgumentList *argList; // argument list of this member
......
...@@ -62,9 +62,9 @@ void MemberGroup::writeDocumentation(OutputList &ol) ...@@ -62,9 +62,9 @@ void MemberGroup::writeDocumentation(OutputList &ol)
} }
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
startFile(ol,fileName,title); startFile(ol,fileName,title);
startTitle(ol); startTitle(ol,getOutputFileBase());
ol.docify(title); ol.docify(title);
endTitle(ol,name()); endTitle(ol,getOutputFileBase(),name());
OutputList briefOutput(&ol); OutputList briefOutput(&ol);
......
...@@ -256,11 +256,11 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd, ...@@ -256,11 +256,11 @@ void MemberList::writePlainDeclarations(OutputList &ol,ClassDef *cd,
// ) // )
// ) // )
// ) // )
if (md->hasDocumentation() || md->hasDocumentedEnumValues()) if (md->isLinkableInProject() || md->hasDocumentedEnumValues())
{ {
if (Config::genTagFile.length()>0) if (Config::genTagFile.length()>0)
tagFile << md->name() << " " << md->anchor() tagFile << md->name() << " " << md->anchor()
<< " \"" << md->argsString() << "\""; << " \"\"" << endl;
md->writeLink(typeDecl,cd,nd,fd,0); md->writeLink(typeDecl,cd,nd,fd,0);
} }
else else
......
...@@ -86,6 +86,7 @@ class MemberNameInfoIterator : public QListIterator<MemberInfo> ...@@ -86,6 +86,7 @@ class MemberNameInfoIterator : public QListIterator<MemberInfo>
class MemberNameInfoList : public QList<MemberNameInfo> class MemberNameInfoList : public QList<MemberNameInfo>
{ {
public: public:
~MemberNameInfoList() {}
int compareItems(GCI item1,GCI item2) int compareItems(GCI item1,GCI item2)
{ return stricmp( { return stricmp(
((MemberNameInfo *)item1)->memberName(), ((MemberNameInfo *)item1)->memberName(),
...@@ -98,6 +99,7 @@ class MemberNameInfoDict : public QDict<MemberNameInfo> ...@@ -98,6 +99,7 @@ class MemberNameInfoDict : public QDict<MemberNameInfo>
{ {
public: public:
MemberNameInfoDict(int size) : QDict<MemberNameInfo>(size) {} MemberNameInfoDict(int size) : QDict<MemberNameInfo>(size) {}
~MemberNameInfoDict() {}
}; };
class MemberNameInfoListIterator : public QListIterator<MemberNameInfo> class MemberNameInfoListIterator : public QListIterator<MemberNameInfo>
......
...@@ -63,10 +63,10 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -63,10 +63,10 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
{ {
QCString pageTitle=name()+" Namespace Reference"; QCString pageTitle=name()+" Namespace Reference";
startFile(ol,fileName,pageTitle); startFile(ol,fileName,pageTitle);
startTitle(ol); startTitle(ol,getOutputFileBase());
//ol.docify(pageTitle); //ol.docify(pageTitle);
parseText(ol,theTranslator->trNamespaceReference(name())); parseText(ol,theTranslator->trNamespaceReference(name()));
endTitle(ol,name()); endTitle(ol,getOutputFileBase(),name());
if (Config::genTagFile.length()>0) tagFile << "%" << name() << ":\n"; if (Config::genTagFile.length()>0) tagFile << "%" << name() << ":\n";
...@@ -94,7 +94,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -94,7 +94,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
bool found=FALSE; bool found=FALSE;
while (cd) while (cd)
{ {
if (cd->isLinkable()) if (cd->name().find('@')==-1)
{ {
if (!found) if (!found)
{ {
...@@ -120,7 +120,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol) ...@@ -120,7 +120,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
} }
ol.writeString(" "); ol.writeString(" ");
ol.insertMemberAlign(); ol.insertMemberAlign();
if (cd->hasDocumentation()) if (cd->isLinkable())
{ {
ol.writeObjectLink(cd->getReference(), ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(), cd->getOutputFileBase(),
......
...@@ -76,6 +76,7 @@ class NamespaceDef : public Definition ...@@ -76,6 +76,7 @@ class NamespaceDef : public Definition
class NamespaceList : public QList<NamespaceDef> class NamespaceList : public QList<NamespaceDef>
{ {
public: public:
~NamespaceList() {}
int compareItems(GCI item1,GCI item2) int compareItems(GCI item1,GCI item2)
{ {
return strcmp(((NamespaceDef *)item1)->name(), return strcmp(((NamespaceDef *)item1)->name(),
...@@ -95,6 +96,7 @@ class NamespaceDict : public QDict<NamespaceDef> ...@@ -95,6 +96,7 @@ class NamespaceDict : public QDict<NamespaceDef>
{ {
public: public:
NamespaceDict(int size) : QDict<NamespaceDef>(size) {} NamespaceDict(int size) : QDict<NamespaceDef>(size) {}
~NamespaceDict() {}
}; };
#endif #endif
...@@ -53,8 +53,8 @@ class OutputGenerator ...@@ -53,8 +53,8 @@ class OutputGenerator
virtual void startProjectNumber() = 0; virtual void startProjectNumber() = 0;
virtual void endProjectNumber() = 0; virtual void endProjectNumber() = 0;
virtual void writeStyleInfo(int part) = 0; virtual void writeStyleInfo(int part) = 0;
virtual void startTitleHead() = 0; virtual void startTitleHead(const char *) = 0;
virtual void endTitleHead(const char *name) = 0; virtual void endTitleHead(const char *fileName,const char *name) = 0;
virtual void startTitle() = 0; virtual void startTitle() = 0;
virtual void endTitle() = 0; virtual void endTitle() = 0;
virtual void newParagraph() = 0; virtual void newParagraph() = 0;
...@@ -67,8 +67,8 @@ class OutputGenerator ...@@ -67,8 +67,8 @@ class OutputGenerator
virtual void endEnumList() = 0; virtual void endEnumList() = 0;
virtual void startBold() = 0; virtual void startBold() = 0;
virtual void endBold() = 0; virtual void endBold() = 0;
virtual void startAlfabeticalIndexList() = 0; virtual void startAlphabeticalIndexList() = 0;
virtual void endAlfabeticalIndexList() = 0; virtual void endAlphabeticalIndexList() = 0;
virtual void writeIndexHeading(const char *s) = 0; virtual void writeIndexHeading(const char *s) = 0;
virtual void writeIndexItem(const char *ref,const char *file, virtual void writeIndexItem(const char *ref,const char *file,
const char *text) = 0; const char *text) = 0;
...@@ -109,11 +109,14 @@ class OutputGenerator ...@@ -109,11 +109,14 @@ class OutputGenerator
virtual void startEmphasis() = 0; virtual void startEmphasis() = 0;
virtual void endEmphasis() = 0; virtual void endEmphasis() = 0;
virtual void writeChar(char c) = 0; virtual void writeChar(char c) = 0;
virtual void startMemberDoc(const char *,const char *,const char *) = 0; virtual void startMemberDoc(const char *,const char *,
const char *,const char *) = 0;
virtual void endMemberDoc() = 0; virtual void endMemberDoc() = 0;
virtual void writeDoxyAnchor(const char *clName,const char *anchor,const char *name) = 0; virtual void startDoxyAnchor(const char *fileName,const char *clName,
const char *anchor,const char *name) = 0;
virtual void endDoxyAnchor() = 0;
virtual void writeLatexSpacing() = 0; virtual void writeLatexSpacing() = 0;
virtual void writeLatexLabel(const char *clName,const char *anchor) = 0; //virtual void writeLatexLabel(const char *clName,const char *anchor) = 0;
virtual void writeStartAnnoItem(const char *type,const char *file, virtual void writeStartAnnoItem(const char *type,const char *file,
const char *path,const char *name) = 0; const char *path,const char *name) = 0;
virtual void writeEndAnnoItem(const char *name) = 0; virtual void writeEndAnnoItem(const char *name) = 0;
...@@ -166,11 +169,13 @@ class OutputGenerator ...@@ -166,11 +169,13 @@ class OutputGenerator
virtual void endClassDiagram(ClassDiagram &,const char *,const char *) = 0; virtual void endClassDiagram(ClassDiagram &,const char *,const char *) = 0;
virtual void startColorFont(uchar r,uchar g,uchar b) = 0; virtual void startColorFont(uchar r,uchar g,uchar b) = 0;
virtual void endColorFont() = 0; virtual void endColorFont() = 0;
virtual void writePageRef(const char *,const char *) = 0; virtual void startPageRef() = 0;
virtual void endPageRef(const char *,const char *) = 0;
virtual void startQuickIndexItem(const char *s,const char *l) = 0; virtual void startQuickIndexItem(const char *s,const char *l) = 0;
virtual void endQuickIndexItem() = 0; virtual void endQuickIndexItem() = 0;
virtual void writeFormula(const char *,const char *) = 0; virtual void writeFormula(const char *,const char *) = 0;
virtual void writeNonBreakableSpace() = 0; virtual void writeNonBreakableSpace() = 0;
virtual void writeImage(const char *,const char *,const char *) = 0;
void clear() { b.close(); a.resize(0); b.setBuffer(a); void clear() { b.close(); a.resize(0); b.setBuffer(a);
b.open(IO_WriteOnly); t.setDevice(&b); } b.open(IO_WriteOnly); t.setDevice(&b); }
......
...@@ -226,12 +226,14 @@ void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4),a1,a2,a3,a4) ...@@ -226,12 +226,14 @@ void OutputList::forall(void (OutputGenerator::*func)(a1,a2,a3,a4),a1,a2,a3,a4)
FORALL1(const char *a1,a1) FORALL1(const char *a1,a1)
FORALL1(char a1,a1) FORALL1(char a1,a1)
FORALL1(int a1,a1) FORALL1(int a1,a1)
#if defined(HAS_BOOL_TYPE)
FORALL1(bool a1,a1) FORALL1(bool a1,a1)
FORALL1(IndexSections a1,a1)
FORALL2(const char *a1,const char *a2,a1,a2)
FORALL2(int a1,bool a2,a1,a2)
FORALL2(bool a1,int a2,a1,a2) FORALL2(bool a1,int a2,a1,a2)
FORALL2(bool a1,bool a2,a1,a2) FORALL2(bool a1,bool a2,a1,a2)
#endif
FORALL2(int a1,bool a2,a1,a2)
FORALL1(IndexSections a1,a1)
FORALL2(const char *a1,const char *a2,a1,a2)
FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3)
FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3)
......
...@@ -72,10 +72,10 @@ class OutputList ...@@ -72,10 +72,10 @@ class OutputList
{ forall(&OutputGenerator::endFile); } { forall(&OutputGenerator::endFile); }
void endPlainFile() void endPlainFile()
{ forall(&OutputGenerator::endPlainFile); } { forall(&OutputGenerator::endPlainFile); }
void startTitleHead() void startTitleHead(const char *fileName)
{ forall(&OutputGenerator::startTitleHead); } { forall(&OutputGenerator::startTitleHead,fileName); }
void endTitleHead(const char *name) void endTitleHead(const char *fileName,const char *name)
{ forall(&OutputGenerator::endTitleHead,name); } { forall(&OutputGenerator::endTitleHead,fileName,name); }
void startTitle() void startTitle()
{ forall(&OutputGenerator::startTitle); } { forall(&OutputGenerator::startTitle); }
void endTitle() void endTitle()
...@@ -96,10 +96,10 @@ class OutputList ...@@ -96,10 +96,10 @@ class OutputList
{ forall(&OutputGenerator::startEnumList); } { forall(&OutputGenerator::startEnumList); }
void endEnumList() void endEnumList()
{ forall(&OutputGenerator::endEnumList); } { forall(&OutputGenerator::endEnumList); }
void startAlfabeticalIndexList() void startAlphabeticalIndexList()
{ forall(&OutputGenerator::startAlfabeticalIndexList); } { forall(&OutputGenerator::startAlphabeticalIndexList); }
void endAlfabeticalIndexList() void endAlphabeticalIndexList()
{ forall(&OutputGenerator::endAlfabeticalIndexList); } { forall(&OutputGenerator::endAlphabeticalIndexList); }
void writeIndexHeading(const char *s) void writeIndexHeading(const char *s)
{ forall(&OutputGenerator::writeIndexHeading,s); } { forall(&OutputGenerator::writeIndexHeading,s); }
void writeIndexItem(const char *ref,const char *file,const char *text) void writeIndexItem(const char *ref,const char *file,const char *text)
...@@ -177,16 +177,20 @@ class OutputList ...@@ -177,16 +177,20 @@ class OutputList
{ forall(&OutputGenerator::endEmphasis); } { forall(&OutputGenerator::endEmphasis); }
void writeChar(char c) void writeChar(char c)
{ forall(&OutputGenerator::writeChar,c); } { forall(&OutputGenerator::writeChar,c); }
void startMemberDoc(const char *clName,const char *memName,const char *anchor) void startMemberDoc(const char *clName,const char *memName,
{ forall(&OutputGenerator::startMemberDoc,clName,memName,anchor); } const char *anchor,const char *title)
{ forall(&OutputGenerator::startMemberDoc,clName,memName,anchor,title); }
void endMemberDoc() void endMemberDoc()
{ forall(&OutputGenerator::endMemberDoc); } { forall(&OutputGenerator::endMemberDoc); }
void writeDoxyAnchor(const char *clName,const char *anchor,const char *name) void startDoxyAnchor(const char *fn, const char *cn,
{ forall(&OutputGenerator::writeDoxyAnchor,clName,anchor,name); } const char *anchor,const char *name)
{ forall(&OutputGenerator::startDoxyAnchor,fn,cn,anchor,name); }
void endDoxyAnchor()
{ forall(&OutputGenerator::endDoxyAnchor); }
void writeLatexSpacing() void writeLatexSpacing()
{ forall(&OutputGenerator::writeLatexSpacing); } { forall(&OutputGenerator::writeLatexSpacing); }
void writeLatexLabel(const char *scope,const char *anchor) //void writeLatexLabel(const char *scope,const char *anchor)
{ forall(&OutputGenerator::writeLatexLabel,scope,anchor); } //{ forall(&OutputGenerator::writeLatexLabel,scope,anchor); }
void startDescription() void startDescription()
{ forall(&OutputGenerator::startDescription); } { forall(&OutputGenerator::startDescription); }
void endDescription() void endDescription()
...@@ -289,8 +293,10 @@ class OutputList ...@@ -289,8 +293,10 @@ class OutputList
{ forall(&OutputGenerator::startColorFont,r,g,b); } { forall(&OutputGenerator::startColorFont,r,g,b); }
void endColorFont() void endColorFont()
{ forall(&OutputGenerator::endColorFont); } { forall(&OutputGenerator::endColorFont); }
void writePageRef(const char *c,const char *a) void startPageRef()
{ forall(&OutputGenerator::writePageRef,c,a); } { forall(&OutputGenerator::startPageRef); }
void endPageRef(const char *c,const char *a)
{ forall(&OutputGenerator::endPageRef,c,a); }
void startQuickIndexItem(const char *s,const char *l) void startQuickIndexItem(const char *s,const char *l)
{ forall(&OutputGenerator::startQuickIndexItem,s,l); } { forall(&OutputGenerator::startQuickIndexItem,s,l); }
void endQuickIndexItem() void endQuickIndexItem()
...@@ -299,6 +305,8 @@ class OutputList ...@@ -299,6 +305,8 @@ class OutputList
{ forall(&OutputGenerator::writeFormula,n,t); } { forall(&OutputGenerator::writeFormula,n,t); }
void writeNonBreakableSpace() void writeNonBreakableSpace()
{ forall(&OutputGenerator::writeNonBreakableSpace); } { forall(&OutputGenerator::writeNonBreakableSpace); }
void writeImage(const char *n,const char *w,const char *h)
{ forall(&OutputGenerator::writeImage,n,w,h); }
private: private:
void debug(); void debug();
...@@ -307,13 +315,15 @@ class OutputList ...@@ -307,13 +315,15 @@ class OutputList
void forall(void (OutputGenerator::*func)()); void forall(void (OutputGenerator::*func)());
FORALLPROTO1(const char *); FORALLPROTO1(const char *);
FORALLPROTO1(char); FORALLPROTO1(char);
FORALLPROTO1(IndexSections);
FORALLPROTO1(int); FORALLPROTO1(int);
#if defined(HAS_BOOL_TYPE)
FORALLPROTO1(bool); FORALLPROTO1(bool);
FORALLPROTO1(IndexSections);
FORALLPROTO2(const char *,const char *);
FORALLPROTO2(int,bool);
FORALLPROTO2(bool,int); FORALLPROTO2(bool,int);
FORALLPROTO2(bool,bool); FORALLPROTO2(bool,bool);
#endif
FORALLPROTO2(int,bool);
FORALLPROTO2(const char *,const char *);
FORALLPROTO3(const char *,const char *,bool); FORALLPROTO3(const char *,const char *,bool);
FORALLPROTO3(uchar,uchar,uchar); FORALLPROTO3(uchar,uchar,uchar);
FORALLPROTO3(const char *,const char *,const char *); FORALLPROTO3(const char *,const char *,const char *);
......
...@@ -1155,7 +1155,7 @@ BN [ \t\r\n] ...@@ -1155,7 +1155,7 @@ BN [ \t\r\n]
ifcount++; ifcount++;
//printf("#if... depth=%d\n",ifcount); //printf("#if... depth=%d\n",ifcount);
} }
<SkipCommand>"else"/[^a-z_A-Z0-9] { <SkipCommand>"else" {
//printf("Else! ifcount=%d otherCaseDone=%d\n",ifcount,otherCaseDone()); //printf("Else! ifcount=%d otherCaseDone=%d\n",ifcount,otherCaseDone());
if (ifcount==0 && !otherCaseDone()) if (ifcount==0 && !otherCaseDone())
{ {
...@@ -1179,7 +1179,7 @@ BN [ \t\r\n] ...@@ -1179,7 +1179,7 @@ BN [ \t\r\n]
} }
} }
} }
<SkipCommand>"endif"/[^a-z_A-Z0-9] { <SkipCommand>"endif" {
decrLevel(); decrLevel();
if (--ifcount<0) if (--ifcount<0)
{ {
......
This diff is collapsed.
...@@ -44,6 +44,7 @@ class SectionDict : public QDict<SectionInfo> ...@@ -44,6 +44,7 @@ class SectionDict : public QDict<SectionInfo>
{ {
public: public:
SectionDict(int size) : QDict<SectionInfo>(size) {} SectionDict(int size) : QDict<SectionInfo>(size) {}
~SectionDict() {}
}; };
#endif #endif
...@@ -63,7 +63,7 @@ static void addClass(const char *name,const char *fileName) ...@@ -63,7 +63,7 @@ static void addClass(const char *name,const char *fileName)
static void addFile(const char *name) static void addFile(const char *name)
{ {
//printf("adding file %s\n",name); //printf("adding file %s tagName=`%s'\n",name,tagName.data());
fd = new FileDef(0,name,tagName); fd = new FileDef(0,name,tagName);
FileName *mn; FileName *mn;
if ((mn=inputNameDict[name])) if ((mn=inputNameDict[name]))
......
...@@ -687,7 +687,7 @@ class Translator ...@@ -687,7 +687,7 @@ class Translator
case ClassDef::Union: result+="union"; break; case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break; case ClassDef::Interface: result+="interface"; break;
} }
result+="was generated from the following file"; result+=" was generated from the following file";
if (single) result+=":"; else result+="s:"; if (single) result+=":"; else result+="s:";
return result; return result;
} }
...@@ -696,9 +696,26 @@ class Translator ...@@ -696,9 +696,26 @@ class Translator
* list. * list.
*/ */
virtual QCString trAlphabeticalList() virtual QCString trAlphabeticalList()
{ { return "Alphabetical List"; }
return "Alphabetical List";
} //////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues()
{ return "Return values"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual QCString trMainPage()
{ return "Main Page"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
{ return "p."; }
}; };
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/** /**
* translator_es.h modifief by Francisco Oltra * translator_es.h modified by Francisco Oltra
* Some notes: * Some notes:
* - Computer related use of the spanish language differs from * - Computer related use of the spanish language differs from
* country to country, so some words might not sound so good * country to country, so some words might not sound so good
......
This diff is collapsed.
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
* *
* Initial Italian Translation by Ahmed Aldo Faisal * Initial Italian Translation by Ahmed Aldo Faisal
* Revised and completed by Alessandro Falappa (June 1999) * Revised and completed by Alessandro Falappa (June 1999)
* Updates:
* 1999/09/10: corrected some small typos in the "new since 0.49-990425" section
* added the "new since 0.49-990728" section
* *
* Permission to use, copy, modify, and distribute this software and its * Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby * documentation under the terms of the GNU General Public License is hereby
...@@ -293,15 +296,15 @@ class TranslatorItalian : public Translator ...@@ -293,15 +296,15 @@ class TranslatorItalian : public Translator
QCString trCompoundReference(const char *clName, QCString trCompoundReference(const char *clName,
ClassDef::CompoundType compType) ClassDef::CompoundType compType)
{ {
QCString result="Riferimenti per la"; QCString result="Riferimenti per ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+=" classe"; break; case ClassDef::Class: result+="la classe "; break;
case ClassDef::Struct: result+=" struct"; break; case ClassDef::Struct: result+="la struct "; break;
case ClassDef::Union: result+=" union"; break; case ClassDef::Union: result+="la union "; break;
case ClassDef::Interface: result+=" interface"; break; case ClassDef::Interface: result+="l'interfaccia "; break;
} }
result+=" "+(QCString)clName; result+=(QCString)clName;
return result; return result;
} }
QCString trFileReference(const char *fileName) QCString trFileReference(const char *fileName)
...@@ -375,6 +378,40 @@ class TranslatorItalian : public Translator ...@@ -375,6 +378,40 @@ class TranslatorItalian : public Translator
{ return "Indice dei namespaces"; } { return "Indice dei namespaces"; }
QCString trNamespaceDocumentation() QCString trNamespaceDocumentation()
{ return "Documentazione dei namespaces"; } { return "Documentazione dei namespaces"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
//////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"La documentazione per questa ";
switch(compType)
{
case ClassDef::Class: result+="classe"; break;
case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interfaccia"; break;
}
result+=" stata generata a partire ";
if (single) result+="dal seguente file:";
else result+="dai seguenti files:";
return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
{
return "Lista in ordine alfabetico";
}
}; };
#endif #endif
...@@ -384,6 +384,55 @@ class TranslatorDutch : public Translator ...@@ -384,6 +384,55 @@ class TranslatorDutch : public Translator
// This is used in LaTeX as the title of the chapter containing // This is used in LaTeX as the title of the chapter containing
// the documentation of all namespaces. // the documentation of all namespaces.
{ return "Namespace Documentatie"; } { return "Namespace Documentatie"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
//////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"De documentatie voor deze ";
switch(compType)
{
case ClassDef::Class: result+="class"; break;
case ClassDef::Struct: result+="struct"; break;
case ClassDef::Union: result+="union"; break;
case ClassDef::Interface: result+="interface"; break;
}
result+=" is gegenereerd op grond van de volgende file";
if (single) result+=":"; else result+="s:";
return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
{ return "Alphabetical List"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
//////////////////////////////////////////////////////////////////////////
/*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues()
{ return "Retour waarden"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual QCString trMainPage()
{ return "Hoofd Pagina"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
{ return "p."; }
}; };
#endif #endif
...@@ -47,10 +47,15 @@ Uppdateringar. ...@@ -47,10 +47,15 @@ Uppdateringar.
=================================================================================== ===================================================================================
Problem! Problem!
Namespace och slot: har de nn hygglig svensk versttning??? Slot: nn hygglig svensk versttning???
Skicka grna synpunkter. Skicka grna synpunkter.
=================================================================================== ===================================================================================
1999/09/01
* Det verkar som om "namnrymd" r en hyggligt vedertagen svensk versttning
av "namnepace", s jag kr med det frn och med nu.
* "interface" heter numera "grnssnitt"
*/ */
#ifndef TRANSLATOR_SE_H #ifndef TRANSLATOR_SE_H
...@@ -349,13 +354,13 @@ class TranslatorSwedish : public Translator ...@@ -349,13 +354,13 @@ class TranslatorSwedish : public Translator
// new since 0.49-990307 // new since 0.49-990307
virtual QCString trNamespaceList() virtual QCString trNamespaceList()
{ return "Namespacelista"; } { return "Namnrymdlista"; }
virtual QCString trNamespaceListDescription(bool extractAll) virtual QCString trNamespaceListDescription(bool extractAll)
{ {
QCString result="Hr r en lista ver alla "; QCString result="Hr r en lista ver alla ";
if (!extractAll) result+="dokumenterade "; if (!extractAll) result+="dokumenterade ";
result+="namespaces med en kort frklaring:"; result+="namnrymder med en kort frklaring:";
return result; return result;
} }
...@@ -379,10 +384,10 @@ class TranslatorSwedish : public Translator ...@@ -379,10 +384,10 @@ class TranslatorSwedish : public Translator
QCString result=(QCString)clName+" "; QCString result=(QCString)clName+" ";
switch(compType) switch(compType)
{ {
case ClassDef::Class: result+=" Klass"; break; case ClassDef::Class: result+=" klass"; break;
case ClassDef::Struct: result+=" Strukt"; break; case ClassDef::Struct: result+=" strukt"; break;
case ClassDef::Union: result+=" Union"; break; case ClassDef::Union: result+=" union"; break;
case ClassDef::Interface: result+=" Interface"; break; case ClassDef::Interface: result+=" grnssnitt"; break;
} }
result+="referens"; result+="referens";
return result; return result;
...@@ -398,7 +403,7 @@ class TranslatorSwedish : public Translator ...@@ -398,7 +403,7 @@ class TranslatorSwedish : public Translator
virtual QCString trNamespaceReference(const char *namespaceName) virtual QCString trNamespaceReference(const char *namespaceName)
{ {
QCString result=namespaceName; QCString result=namespaceName;
result+=" namespacereferens"; result+=" namnrymdreferens";
return result; return result;
} }
...@@ -474,25 +479,65 @@ class TranslatorSwedish : public Translator ...@@ -474,25 +479,65 @@ class TranslatorSwedish : public Translator
} }
virtual QCString trNamespaceMembers() virtual QCString trNamespaceMembers()
{ return "Namespacemedlemmar"; } { return "Namnrymdsmedlemmar"; }
virtual QCString trNamespaceMemberDescription(bool extractAll) virtual QCString trNamespaceMemberDescription(bool extractAll)
{ {
QCString result="Hr r en lista ver alla "; QCString result="Hr r en lista ver alla ";
if (!extractAll) result+="dokumenterade "; if (!extractAll) result+="dokumenterade ";
result+="namespacemedlemmar med lnkar till "; result+="namnrymdsmedlemmar med lnkar till ";
if (extractAll) if (extractAll)
result+=" namespace-dokumentationen fr varje medlem:"; result+=" namnrymd-dokumentationen fr varje medlem:";
else else
result+="de namespaces de tillhr:"; result+="de namnrymder de tillhr:";
return result; return result;
} }
virtual QCString trNamespaceIndex() virtual QCString trNamespaceIndex()
{ return "Namespaceindex"; } { return "Namnrymdsindex"; }
virtual QCString trNamespaceDocumentation() virtual QCString trNamespaceDocumentation()
{ return "Namnrymd-dokumentation"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
//////////////////////////////////////////////////////////////////////////
/*! This is used in the documentation before the list of all
* namespaces in a file.
*/
virtual QCString trNamespaces()
{ return "Namnrymder"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
//////////////////////////////////////////////////////////////////////////
/*! This is put at the bottom of a class documentation page and is
* followed by a list of files that were used to generate the page.
*/
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"Dokumentationen fr ";
switch(compType)
{
case ClassDef::Class: result+="denna klass "; break;
case ClassDef::Struct: result+="denna strukt "; break;
case ClassDef::Union: result+="denna union "; break;
case ClassDef::Interface: result+="detta grnssnitt "; break;
}
result+="var genererad frn fljande fil";
if (single) result+=":"; else result+="er:";
return result;
}
{ return "Namespace-dokumentation"; } /*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
{
return "Alfabetisk lista";
}
}; };
#endif #endif
This diff is collapsed.
...@@ -72,8 +72,8 @@ extern int guessSection(const char *name); ...@@ -72,8 +72,8 @@ extern int guessSection(const char *name);
//extern QCString nameToFile(const char *name); //extern QCString nameToFile(const char *name);
extern bool isId(char c); extern bool isId(char c);
extern QCString removeRedundantWhiteSpace(const QCString &s); extern QCString removeRedundantWhiteSpace(const QCString &s);
extern void startTitle(OutputList &ol); extern void startTitle(OutputList &ol,const char *fileName);
extern void endTitle(OutputList &ol,const char *name); extern void endTitle(OutputList &ol,const char *fileName,const char *name);
void startFile(OutputList &ol,const char *name, void startFile(OutputList &ol,const char *name,
const char *title,bool external=FALSE); const char *title,bool external=FALSE);
void endFile(OutputList &ol,bool external=FALSE); void endFile(OutputList &ol,bool external=FALSE);
...@@ -84,6 +84,7 @@ QCString generateMarker(int id); ...@@ -84,6 +84,7 @@ QCString generateMarker(int id);
void writeExample(OutputList &ol,ExampleList *el); void writeExample(OutputList &ol,ExampleList *el);
void setFileNameForSections(QList<QCString> *anchorList,const char *fileName); void setFileNameForSections(QList<QCString> *anchorList,const char *fileName);
QCString stripAnnonymousScope(const QCString &s); QCString stripAnnonymousScope(const QCString &s);
QCString stripAnnonymousNamespaceScope(const QCString &s);
//void writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd, //void writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
...@@ -92,5 +93,6 @@ QCString stripAnnonymousScope(const QCString &s); ...@@ -92,5 +93,6 @@ QCString stripAnnonymousScope(const QCString &s);
QCString stripFromPath(const QCString &path); QCString stripFromPath(const QCString &path);
bool rightScopeMatch(const QCString &scope, const QCString &name); bool rightScopeMatch(const QCString &scope, const QCString &name);
bool leftScopeMatch(const QCString &scope, const QCString &name); bool leftScopeMatch(const QCString &scope, const QCString &name);
void writePageRef(OutputList &ol,const char *cn,const char *mn);
#endif #endif
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