summaryrefslogtreecommitdiff
path: root/doc/features.doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/features.doc')
-rw-r--r--doc/features.doc116
1 files changed, 116 insertions, 0 deletions
diff --git a/doc/features.doc b/doc/features.doc
new file mode 100644
index 0000000..46a6219
--- /dev/null
+++ b/doc/features.doc
@@ -0,0 +1,116 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2012 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, Markdown is support, and for more fancy or
+ structured output HTML tags and/or some of doxygen's special commands
+ can be used.
+<li>Cross platform: works on Windows and many Unix flavors (including Linux and
+ MacOSX).
+<li>Indexes, organizes and generates browsable and cross-referenced
+ output even from undocumented code.
+<li>Generates structured XML output for parsed sources, which can be
+ used by external tools.
+<li>Supports C/C++, Java, (Corba and Microsoft) Java, Python, VHDL, PHP
+ IDL, C#, Fortran, TCL, Objective-C 2.0, and to some extent D sources.
+<li>Supports documentation of files, namespaces, packages, classes,
+ structs, unions, templates, variables, functions, typedefs, enums and
+ defines.
+<li>JavaDoc (1.1), qdoc3 (partially), and ECMA-334 (C# spec.) compatible.
+<li>Comes with a GUI frontend (Doxywizard) to ease editing the options and
+ run doxygen. The GUI is available on Windows, Linux, and MacOSX.
+<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, call graphs, directory structure
+ graphs, and graphical class hierarchy graphs.
+<li>Allows grouping of entities in modules and creating a hierarchy of modules.
+<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 (XHTML 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>Support for various third party help formats including HTML Help,
+ docsets, Qt-Help, and eclipse help.
+<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, global 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 (PHP based).
+<li>Includes an Javascript based live search feature to search for symbols
+ as you type (for small to medium sized projects).
+<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 (doxygen documented)
+ 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>Supports many different character encodings and uses UTF-8 internally and
+ for the generated output.
+<li>Doxygen can generate a layout which you can use and edit to change the
+ layout of each page.
+<li>There more than a 100 configurable options to fine-tune the output.
+<li>Can cope with large projects easily.
+</UL>
+
+Although doxygen can now be used in any project written in a language that is
+supported by doxygen, initially it was specifically designed to be used for projects
+that make use of Qt Software'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 quite similar to the
+one that is generated by Qt Software. Doxygen understands the C++ extensions
+used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
+
+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!
+
+*/