summaryrefslogtreecommitdiffstats
path: root/doc/features.doc
blob: cec1dae450abfdcf403cc7f032f7e98c033311fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/******************************************************************************
 *
 * 
 *
 * Copyright (C) 1997-2000 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.
 *
 * Documents produced by Doxygen are derivative works derived from the
 * input used in their production; they are not affected 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>Supports C++, (Corba and Microsoft) IDL and C sources.
<li>Supports documentation of files, namespaces, classes, structs, unions, 
    templates, variables, functions, typedefs, enums and defines. 
<li>JavaDoc (1.1), Qt-Doc, and KDOC compatible.
<li>Automatically generates class diagrams in HTML (as clickable 
    image maps) and \f$\mbox{\LaTeX}\f$ (as encapsulated postscript images).
<li>Using the dot tool of the Graphviz tool kit doxygen can generate
    include dependency graphs, collaboration diagrams, and 
    graphical class hierarchy graphs. 
<li>Allows you to put documentation in the header file (before the 
    declaration of an entity), source file (before the definition of an entity) 
    or in a separate file.
<li>Outputs documentation in on-line format (HTML and UNIX man page) and 
    off-line format (\f$\mbox{\LaTeX}\f$) and RTF 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>Includes a full C preprocessor to allow proper parsing of conditional 
    code fragments and to allow expansion of all or part of macros definitions.
<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 references to documented classes, files, namespaces
    and members. Documentation of global functions, globals variables, 
    typedefs, defines and enumerations is also supported.
<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>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>Allows inclusion of function/member/class definitions in the documentation.
<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.trolltech.com/products/qt.html">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! 

*/