/****************************************************************************** * * $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 <UL> <li>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. <li>Outputs documentation in on-line format (HTML and UNIX man page) and off-line format (\f$\mbox{\LaTeX}\f$) simultaniously (any one can be disabled if desired). Both formats are optimized for ease of reading. <br> Furthermore, compressed HTML can be generated from HTML output using Microsoft's HTML help workshop (Windows only) and PDF can be generated from the \f$\mbox{\LaTeX}\f$ output. <li>Allows documentation of files, namespaces, classes, structs, unions, templates, variables, functions, typedefs, enums and defines. <li>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. <li>Automatically detects public, protected and private sections, as well as the Qt specific signal and slots sections. Extraction of private class members is optional. <li>Automatically generates of class diagrams in HTML (as clickable image maps) and \f$\mbox{\LaTeX}\f$ (as encapsulated postscript images). <li>JavaDoc (1.1) and Qt-Doc compatible. <li>References to base/super classes and inherited/overridden members are generated automatically. <li>Includes a fast, rank based search engine to search for strings or words in the class and member documentation. <li>Automatic generation of references to documented classes, files and members. Documentation of global functions, globals variables, typedefs, defines and enumerations is also supported. <li>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. <li>You can type normal HTML tags in your documentation. Doxygen will convert them to their equivalent \f$\mbox{\LaTeX}\f$ and man-page counterparts automatically. <li>Allows references to documentation generated for other projects (or another part of the same project) in a location independent way. <li>Allows inclusion of source code examples that are automatically cross-referenced with the documentation. <li>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. <li>Allows automatic cross-referencing of (documented) entities with their definition in the source code. <li>All options are read from an easy to edit and documented configuration file. <li>Documentation and search engine can be transferred to another location or machine without regenerating the documentation. <li>Can cope with large projects easily. </UL> 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 <A HREF="http://www.troll.no/qt">Qt toolkit</A>. 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! */