|
1 /****************************************************************************** |
|
2 * |
|
3 * |
|
4 * |
|
5 * Copyright (C) 1997-2008 by Dimitri van Heesch. |
|
6 * |
|
7 * Permission to use, copy, modify, and distribute this software and its |
|
8 * documentation under the terms of the GNU General Public License is hereby |
|
9 * granted. No representations are made about the suitability of this software |
|
10 * for any purpose. It is provided "as is" without express or implied warranty. |
|
11 * See the GNU General Public License for more details. |
|
12 * |
|
13 * Documents produced by Doxygen are derivative works derived from the |
|
14 * input used in their production; they are not affected by this license. |
|
15 * |
|
16 */ |
|
17 /*! \page features Features |
|
18 |
|
19 \addindex features |
|
20 <UL> |
|
21 <li>Requires very little overhead from the writer of the documentation. |
|
22 Plain text will do, but for more fancy or structured output HTML tags |
|
23 and/or some of doxygen's special commands can be used. |
|
24 <li>Supports C/C++, Java, (Corba and Microsoft) Java, Python, |
|
25 IDL, C#, Objective-C and to some extent D and PHP sources. |
|
26 <li>Supports documentation of files, namespaces, packages, classes, |
|
27 structs, unions, templates, variables, functions, typedefs, enums and |
|
28 defines. |
|
29 <li>JavaDoc (1.1), Qt-Doc, and ECMA-334 (C# spec.) compatible. |
|
30 <li>Automatically generates class and collaboration diagrams in HTML (as clickable |
|
31 image maps) and \f$\mbox{\LaTeX}\f$ (as Encapsulated PostScript images). |
|
32 <li>Uses the dot tool of the Graphviz tool kit to generate |
|
33 include dependency graphs, collaboration diagrams, call graphs, directory structure |
|
34 graphs, and graphical class hierarchy graphs. |
|
35 <li>Flexible comment placement: Allows you to put documentation in the |
|
36 header file (before the |
|
37 declaration of an entity), source file (before the definition of an entity) |
|
38 or in a separate file. |
|
39 <li>Generates a list of all members of a class (including any inherited |
|
40 members) along with their protection level. |
|
41 <li>Outputs documentation in on-line format (HTML and UNIX man page) and |
|
42 off-line format (\f$\mbox{\LaTeX}\f$ and RTF) simultaneously |
|
43 (any of these can be disabled if desired). All formats are optimized for |
|
44 ease of reading. <br> |
|
45 Furthermore, compressed HTML can be generated from HTML output using |
|
46 Microsoft's HTML Help Workshop (Windows only) and PDF can be generated |
|
47 from the \f$\mbox{\LaTeX}\f$ output. |
|
48 <li>Includes a full C preprocessor to allow proper parsing of conditional |
|
49 code fragments and to allow expansion of all or part of macros definitions. |
|
50 <li>Automatically detects public, protected and private sections, as well as |
|
51 the Qt specific signal and slots sections. Extraction of private class |
|
52 members is optional. |
|
53 <li>Automatically generates references to documented classes, files, namespaces |
|
54 and members. Documentation of global functions, globals variables, |
|
55 typedefs, defines and enumerations is also supported. |
|
56 <li>References to base/super classes and inherited/overridden members are |
|
57 generated automatically. |
|
58 <li>Includes a fast, rank based search engine to search for strings or words |
|
59 in the class and member documentation. |
|
60 <li>You can type normal HTML tags in your documentation. Doxygen will convert |
|
61 them to their equivalent \f$\mbox{\LaTeX}\f$, RTF, and man-page |
|
62 counterparts automatically. |
|
63 <li>Allows references to documentation generated for other projects |
|
64 (or another part of the same project) in a location independent way. |
|
65 <li>Allows inclusion of source code examples that are automatically |
|
66 cross-referenced with the documentation. |
|
67 <li>Inclusion of undocumented classes is also supported, allowing to quickly |
|
68 learn the structure and interfaces of a (large) piece of code without |
|
69 looking into the implementation details. |
|
70 <li>Allows automatic cross-referencing of (documented) entities with their |
|
71 definition in the source code. |
|
72 <li>All source code fragments are syntax highlighted for ease of reading. |
|
73 <li>Allows inclusion of function/member/class definitions in the documentation. |
|
74 <li>All options are read from an easy to edit and (optionally) annotated |
|
75 configuration file. |
|
76 <li>Documentation and search engine can be transferred to another |
|
77 location or machine without regenerating the documentation. |
|
78 <li>Can cope with large projects easily. |
|
79 </UL> |
|
80 |
|
81 Although doxygen can now be used in any project written in a language that is |
|
82 supported by doxygen, initially it was specifically designed to be used for projects |
|
83 that make use of Qt Software's |
|
84 <A HREF="http://www.trolltech.com/products/qt.html">Qt toolkit</A>. I have tried to |
|
85 make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in |
|
86 the Qt source code and create a class browser that looks quite similar to the |
|
87 one that is generated by Qt Software. Doxygen understands the C++ extensions |
|
88 used by Qt such as signals and slots and many of the markup commands used in the Qt sources. |
|
89 |
|
90 Doxygen can also automatically generate links to existing documentation |
|
91 that was generated with Doxygen or with Qt's non-public class browser |
|
92 generator. For a Qt based project this means that whenever you refer to |
|
93 members or classes belonging to the Qt toolkit, a link will be generated to |
|
94 the Qt documentation. This is done independent of where this documentation |
|
95 is located! |
|
96 |
|
97 */ |