/******************************************************************************
*
* $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 features.html
\section features Features
\addindex features
- Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used.
- Outputs documentation in on-line format (HTML and man page) and off-line
format (LaTeX) simulatiously (one can be disabled if desired).
Both formats are optimized for ease of reading.
- Allows documentation of files, classes, templates, variables, functions,
typedefs, enums and defines.
- Includes a full C preprocessor to allow proper parsing of conditional
code fragments and to allow expansion of all or part of the define macros.
- Automatically detects public, protected and private sections, as well as
the Qt specific signal and slots sections. Extraction of private class
members is optional.
- Automatically generates of class diagrams in HTML (as clickable
image maps) and Latex (as encapsulated postscript).
- JavaDoc (1.1) and Qt-Doc compatible.
- References to base/super classes and inherited/overridden members are
generated automatically.
- Includes a fast, rank based search engine to search for strings or words
in the class and member documentation.
- Automatic generation of references to documented classes, files and
members. Documentation of global functions, globals variables,
typedefs, defines and enumerations is also supported.
- Documentation may be placed either at the declaration or at the definition
of a member function or class. Most documentation systems (such as Javadoc) only
support the former, others (such as Qt) only the latter.
- You can type normal HTML tags in your documentation. Doxygen will convert
them to Latex automatically.
- Allows references to documentation generated for other projects
(or another part of the same project) in a location independent way.
- Allows inclusion of source code examples that are automatically
cross-referenced with the documentation.
- Inclusion of undocumented classes is also supported, allowing to quickly
learn the structure and interfaces of a (large) piece of code without
looking into the implementation details.
- All options are read from an easy to edit and documented configuration
file.
- Documentation and search engine can be transferred to another
location or machine without regenerating the documentation.
- Can cope with large projects easily.
Although doxygen can be used in any C or C++ project, it was specifically
designed to be used for projects that make use of Troll Tech's
Qt toolkit. I have tried to make doxygen
`Qt-compatible'. That is: Doxygen can read the documentation contained in
the Qt source code and create a class browser that looks very similar to the
one that is generated by Troll Tech. Doxygen understands the C++ extensions
used by Qt such as signals and slots.
Doxygen can also automatically generate links to existing documentation
that was generated with Doxygen or with Qt's non-public class browser
generator. For a Qt based project this means that whenever you refer to
members or classes belonging to the Qt toolkit, a link will be generated to
the Qt documentation. This is done independent of where this documentation
is located!
*/