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
96
97
|
/******************************************************************************
*
*
*
* Copyright (C) 1997-2005 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 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/C++, Java, (Corba and Microsoft) Java, Python,
IDL, C#, Objective-C and to some extent D and PHP sources.
<li>Supports documentation of files, namespaces, packages, classes,
structs, unions, templates, variables, functions, typedefs, enums and
defines.
<li>JavaDoc (1.1), Qt-Doc, and ECMA-334 (C# spec.) compatible.
<li>Automatically generates class and collaboration diagrams in HTML (as clickable
image maps) and \f$\mbox{\LaTeX}\f$ (as Encapsulated PostScript images).
<li>Uses the dot tool of the Graphviz tool kit to generate
include dependency graphs, collaboration diagrams, and
graphical class hierarchy graphs.
<li>Flexible comment placement: 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>Generates a list of all members of a class (including any inherited
members) along with their protection level.
<li>Outputs documentation in on-line format (HTML and UNIX man page) and
off-line format (\f$\mbox{\LaTeX}\f$ and RTF) simultaneously
(any of these can be disabled if desired). All 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>You can type normal HTML tags in your documentation. Doxygen will convert
them to their equivalent \f$\mbox{\LaTeX}\f$, RTF, 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 source code fragments are syntax highlighted for ease of reading.
<li>Allows inclusion of function/member/class definitions in the documentation.
<li>All options are read from an easy to edit and (optionally) annotated
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,
initially 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!
*/
|