summaryrefslogtreecommitdiffstats
path: root/addon/doxywizard
diff options
context:
space:
mode:
Diffstat (limited to 'addon/doxywizard')
-rw-r--r--addon/doxywizard/configdoc.cpp2251
-rw-r--r--addon/doxywizard/configdoc.h8
-rw-r--r--addon/doxywizard/docintf.h12
-rw-r--r--addon/doxywizard/doxywizard.pro.in10
-rw-r--r--addon/doxywizard/expert.cpp368
-rw-r--r--addon/doxywizard/expert.h13
-rw-r--r--addon/doxywizard/input.h2
-rw-r--r--addon/doxywizard/inputbool.h4
-rw-r--r--addon/doxywizard/inputint.h3
-rw-r--r--addon/doxywizard/inputstring.h3
-rw-r--r--addon/doxywizard/inputstrlist.h4
11 files changed, 2632 insertions, 46 deletions
diff --git a/addon/doxywizard/configdoc.cpp b/addon/doxywizard/configdoc.cpp
new file mode 100644
index 0000000..1ced316
--- /dev/null
+++ b/addon/doxywizard/configdoc.cpp
@@ -0,0 +1,2251 @@
+/* WARNING: This file is generated!
+ * Do not edit this file, but edit config.xml instead and run
+ * python configgen.py -wiz config.xml to regenerate this file!
+ */
+#include "configdoc.h"
+#include "docintf.h"
+
+void addConfigDocs(DocIntf *doc)
+{
+ doc->setHeader(
+ "This file describes the settings to be used by the documentation system\n"
+ "doxygen (www.doxygen.org) for a project.\n"
+ "\n"
+ "All text after a double hash (##) is considered a comment and is placed in\n"
+ "front of the TAG it is preceding.\n"
+ "\n"
+ "All text after a single hash (#) is considered a comment and will be ignored.\n"
+ "The format is:\n"
+ "TAG = value [value, ...]\n"
+ "For lists, items can also be appended using:\n"
+ "TAG += value [value, ...]\n"
+ "Values that contain spaces should be placed between quotes (\\\" \\\")."
+ );
+ doc->add(
+ "DOXYFILE_ENCODING",
+ "This tag specifies the encoding used for all characters in the config file\n"
+ "that follow. The default is UTF-8 which is also the encoding used for all text\n"
+ "before the first occurrence of this tag. Doxygen uses libiconv (or the iconv\n"
+ "built into libc) for the transcoding. See http://www.gnu.org/software/libiconv\n"
+ "for the list of possible encodings.The default value is: UTF-8."
+ );
+ doc->add(
+ "PROJECT_NAME",
+ "The PROJECT_NAME tag is a single word (or a sequence of words surrounded by\n"
+ "double-quotes, unless you are using Doxywizard) that should identify the\n"
+ "project for which the documentation is generated. This name is used in the\n"
+ "title of most generated pages and in a few other places.The default value is:\n"
+ "My Project."
+ );
+ doc->add(
+ "PROJECT_NUMBER",
+ "The PROJECT_NUMBER tag can be used to enter a project or revision number. This\n"
+ "could be handy for archiving the generated documentation or if some version\n"
+ "control system is used."
+ );
+ doc->add(
+ "PROJECT_BRIEF",
+ "Using the PROJECT_BRIEF tag one can provide an optional one line description\n"
+ "for a project that appears at the top of each page and should give viewer a\n"
+ "quick idea about the purpose of the project. Keep the description short."
+ );
+ doc->add(
+ "PROJECT_LOGO",
+ "With the PROJECT_LOGO tag one can specify an logo or icon that is included in\n"
+ "the documentation. The maximum height of the logo should not exceed 55 pixels\n"
+ "and the maximum width should not exceed 200 pixels. Doxygen will copy the logo\n"
+ "to the output directory."
+ );
+ doc->add(
+ "OUTPUT_DIRECTORY",
+ "The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path\n"
+ "into which the generated documentation will be written. If a relative path is\n"
+ "entered, it will be relative to the location where doxygen was started. If\n"
+ "left blank the current directory will be used."
+ );
+ doc->add(
+ "CREATE_SUBDIRS",
+ "If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-\n"
+ "directories (in 2 levels) under the output directory of each output format and\n"
+ "will distribute the generated files over these directories. Enabling this\n"
+ "option can be useful when feeding doxygen a huge amount of source files, where\n"
+ "putting all generated files in the same directory would otherwise causes\n"
+ "performance problems for the file system.Default value: NO."
+ );
+ doc->add(
+ "OUTPUT_LANGUAGE",
+ "The OUTPUT_LANGUAGE tag is used to specify the language in which all\n"
+ "documentation generated by doxygen is written. Doxygen will use this\n"
+ "information to generate all constant output in the proper language.Possible\n"
+ "values are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-\n"
+ "Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Farsi,\n"
+ "Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en,\n"
+ "Korean, Korean-en, Latvian, Norwegian, Macedonian, Persian, Polish,\n"
+ "Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,\n"
+ "Turkish, Ukrainian and Vietnamese.\n"
+ "\n"
+ "The default value is: English."
+ );
+ doc->add(
+ "BRIEF_MEMBER_DESC",
+ "If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member\n"
+ "descriptions after the members that are listed in the file and class\n"
+ "documentation (similar to Javadoc). Set to NO to disable this.Default value:\n"
+ "YES."
+ );
+ doc->add(
+ "REPEAT_BRIEF",
+ "If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief\n"
+ "description of a member or function before the detailed description\n"
+ "\n"
+ "Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the\n"
+ "brief descriptions will be completely suppressed.Default value: YES."
+ );
+ doc->add(
+ "ABBREVIATE_BRIEF",
+ "This tag implements a quasi-intelligent brief description abbreviator that is\n"
+ "used to form the text in various listings. Each string in this list, if found\n"
+ "as the leading text of the brief description, will be stripped from the text\n"
+ "and the result, after processing the whole list, is used as the annotated\n"
+ "text. Otherwise, the brief description is used as-is. If left blank, the\n"
+ "following values are used ($name is automatically replaced with the name of\n"
+ "the entity):The $name class, The $name widget, The $name file, is, provides,\n"
+ "specifies, contains, represents, a, an and the."
+ );
+ doc->add(
+ "ALWAYS_DETAILED_SEC",
+ "If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then\n"
+ "doxygen will generate a detailed section even if there is only a brief\n"
+ "description.Default value: NO."
+ );
+ doc->add(
+ "INLINE_INHERITED_MEMB",
+ "If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all\n"
+ "inherited members of a class in the documentation of that class as if those\n"
+ "members were ordinary class members. Constructors, destructors and assignment\n"
+ "operators of the base classes will not be shown.Default value: NO."
+ );
+ doc->add(
+ "FULL_PATH_NAMES",
+ "If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path\n"
+ "before files name in the file list and in the header files. If set to NO the\n"
+ "shortest path that makes the file name unique will be usedDefault value: YES."
+ );
+ doc->add(
+ "STRIP_FROM_PATH",
+ "The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.\n"
+ "Stripping is only done if one of the specified strings matches the left-hand\n"
+ "part of the path. The tag can be used to show relative paths in the file list.\n"
+ "If left blank the directory from which doxygen is run is used as the path to\n"
+ "strip.\n"
+ "\n"
+ "Note that you can specify absolute paths here, but also relative paths, which\n"
+ "will be relative from the directory where doxygen is started.\n"
+ "\n"
+ "This tag requires that the tag FULL_PATH_NAMES is set to YES."
+ );
+ doc->add(
+ "STRIP_FROM_INC_PATH",
+ "The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the\n"
+ "path mentioned in the documentation of a class, which tells the reader which\n"
+ "header file to include in order to use a class. If left blank only the name of\n"
+ "the header file containing the class definition is used. Otherwise one should\n"
+ "specify the list of include paths that are normally passed to the compiler\n"
+ "using the -I flag."
+ );
+ doc->add(
+ "SHORT_NAMES",
+ "If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but\n"
+ "less readable) file names. This can be useful is your file systems doesn't\n"
+ "support long names like on DOS, Mac, or CD-ROM.Default value: NO."
+ );
+ doc->add(
+ "JAVADOC_AUTOBRIEF",
+ "If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the\n"
+ "first line (until the first dot) of a Javadoc-style comment as the brief\n"
+ "description. If set to NO, the Javadoc-style will behave just like regular Qt-\n"
+ "style comments (thus requiring an explicit @brief command for a brief\n"
+ "description.)Default value: NO."
+ );
+ doc->add(
+ "QT_AUTOBRIEF",
+ "If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first\n"
+ "line (until the first dot) of a Qt-style comment as the brief description. If\n"
+ "set to NO, the Qt-style will behave just like regular Qt-style comments (thus\n"
+ "requiring an explicit \\brief command for a brief description.)Default value:\n"
+ "NO."
+ );
+ doc->add(
+ "MULTILINE_CPP_IS_BRIEF",
+ "The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a\n"
+ "multi-line C++ special comment block (i.e. a block of //! or /// comments) as\n"
+ "a brief description. This used to be the default behavior. The new default is\n"
+ "to treat a multi-line C++ comment block as a detailed description. Set this\n"
+ "tag to YES if you prefer the old behavior instead.\n"
+ "\n"
+ "Note that setting this tag to YES also means that rational rose comments are\n"
+ "not recognized any more.Default value: NO."
+ );
+ doc->add(
+ "INHERIT_DOCS",
+ "If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the\n"
+ "documentation from any documented member that it re-implements.Default value:\n"
+ "YES."
+ );
+ doc->add(
+ "SEPARATE_MEMBER_PAGES",
+ "If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a\n"
+ "new page for each member. If set to NO, the documentation of a member will be\n"
+ "part of the file/class/namespace that contains it.Default value: NO."
+ );
+ doc->add(
+ "TAB_SIZE",
+ "The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen\n"
+ "uses this value to replace tabs by spaces in code fragments. Minimum value: 1,\n"
+ "maximum value: 16, default value: 4."
+ );
+ doc->add(
+ "ALIASES",
+ "This tag can be used to specify a number of aliases that act as commands in\n"
+ "the documentation. An alias has the form:\n"
+ "name=value\n"
+ "For example adding\n"
+ "\"sideeffect=@par Side Effects:\\n\"\n"
+ "will allow you to put the command \\sideeffect (or @sideeffect) in the\n"
+ "documentation, which will result in a user-defined paragraph with heading\n"
+ "\"Side Effects:\". You can put \\n's in the value part of an alias to insert\n"
+ "newlines."
+ );
+ doc->add(
+ "TCL_SUBST",
+ "This tag can be used to specify a number of word-keyword mappings (TCL only).\n"
+ "A mapping has the form \"name=value\". For example adding \"class=itcl::class\"\n"
+ "will allow you to use the command class in the itcl::class meaning."
+ );
+ doc->add(
+ "OPTIMIZE_OUTPUT_FOR_C",
+ "Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources\n"
+ "only. Doxygen will then generate output that is more tailored for C. For\n"
+ "instance, some of the names that are used will be different. The list of all\n"
+ "members will be omitted, etc.Default value: NO."
+ );
+ doc->add(
+ "OPTIMIZE_OUTPUT_JAVA",
+ "Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or\n"
+ "Python sources only. Doxygen will then generate output that is more tailored\n"
+ "for that language. For instance, namespaces will be presented as packages,\n"
+ "qualified scopes will look different, etc.Default value: NO."
+ );
+ doc->add(
+ "OPTIMIZE_FOR_FORTRAN",
+ "Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran\n"
+ "sources. Doxygen will then generate output that is tailored for\n"
+ "Fortran.Default value: NO."
+ );
+ doc->add(
+ "OPTIMIZE_OUTPUT_VHDL",
+ "Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL\n"
+ "sources. Doxygen will then generate output that is tailored for VHDL.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "EXTENSION_MAPPING",
+ "Doxygen selects the parser to use depending on the extension of the files it\n"
+ "parses. With this tag you can assign which parser to use for a given\n"
+ "extension. Doxygen has a built-in mapping, but you can override or extend it\n"
+ "using this tag. The format is ext=language, where ext is a file extension, and\n"
+ "language is one of the parsers supported by doxygen: IDL, Java, Javascript,\n"
+ "C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make\n"
+ "doxygen treat .inc files as Fortran files (default is PHP), and .f files as C\n"
+ "(default is Fortran), use: inc=Fortran f=C.\n"
+ "\n"
+ "Note For files without extension you can use no_extension as a placeholder.\n"
+ "\n"
+ "Note that for custom extensions you also need to set FILE_PATTERNS otherwise\n"
+ "the files are not read by doxygen."
+ );
+ doc->add(
+ "MARKDOWN_SUPPORT",
+ "If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments\n"
+ "according to the Markdown format, which allows for more readable\n"
+ "documentation. See http://daringfireball.net/projects/markdown/ for details.\n"
+ "The output of markdown processing is further processed by doxygen, so you can\n"
+ "mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in\n"
+ "case of backward compatibilities issues.Default value: YES."
+ );
+ doc->add(
+ "AUTOLINK_SUPPORT",
+ "When enabled doxygen tries to link words that correspond to documented\n"
+ "classes, or namespaces to their corresponding documentation. Such a link can\n"
+ "be prevented in individual cases by by putting a % sign in front of the word\n"
+ "or globally by setting AUTOLINK_SUPPORT to NO.Default value: YES."
+ );
+ doc->add(
+ "BUILTIN_STL_SUPPORT",
+ "If you use STL classes (i.e. std::string, std::vector, etc.) but do not want\n"
+ "to include (a tag file for) the STL sources as input, then you should set this\n"
+ "tag to YES in order to let doxygen match functions declarations and\n"
+ "definitions whose arguments contain STL classes (e.g. func(std::string);\n"
+ "versus func(std::string) {}). This also make the inheritance and collaboration\n"
+ "diagrams that involve STL classes more complete and accurate.Default value:\n"
+ "NO."
+ );
+ doc->add(
+ "CPP_CLI_SUPPORT",
+ "If you use Microsoft's C++/CLI language, you should set this option to YES to\n"
+ "enable parsing support.Default value: NO."
+ );
+ doc->add(
+ "SIP_SUPPORT",
+ "Set the SIP_SUPPORT tag to YES if your project consists of sip (see:\n"
+ "http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen\n"
+ "will parse them like normal C++ but will assume all classes use public instead\n"
+ "of private inheritance when no explicit protection keyword is present.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "IDL_PROPERTY_SUPPORT",
+ "For Microsoft's IDL there are propget and propput attributes to indicate\n"
+ "getter and setter methods for a property. Setting this option to YES will make\n"
+ "doxygen to replace the get and set methods by a property in the documentation.\n"
+ "This will only work if the methods are indeed getting or setting a simple\n"
+ "type. If this is not the case, or you want to show the methods anyway, you\n"
+ "should set this option to NO.Default value: YES."
+ );
+ doc->add(
+ "DISTRIBUTE_GROUP_DOC",
+ "If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC\n"
+ "tag is set to YES, then doxygen will reuse the documentation of the first\n"
+ "member in the group (if any) for the other members of the group. By default\n"
+ "all members of a group must be documented explicitly.Default value: NO."
+ );
+ doc->add(
+ "SUBGROUPING",
+ "Set the SUBGROUPING tag to YES to allow class member groups of the same type\n"
+ "(for instance a group of public functions) to be put as a subgroup of that\n"
+ "type (e.g. under the Public Functions section). Set it to NO to prevent\n"
+ "subgrouping. Alternatively, this can be done per class using the\n"
+ "\\nosubgrouping command.Default value: YES."
+ );
+ doc->add(
+ "INLINE_GROUPED_CLASSES",
+ "When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions\n"
+ "are shown inside the group in which they are included (e.g. using \\ingroup)\n"
+ "instead of on a separate page (for HTML and Man pages) or section (for LaTeX\n"
+ "and RTF).\n"
+ "\n"
+ "Note that this feature does not work in combination with\n"
+ "SEPARATE_MEMBER_PAGES.Default value: NO."
+ );
+ doc->add(
+ "INLINE_SIMPLE_STRUCTS",
+ "When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions\n"
+ "with only public data fields or simple typedef fields will be shown inline in\n"
+ "the documentation of the scope in which they are defined (i.e. file,\n"
+ "namespace, or group documentation), provided this scope is documented. If set\n"
+ "to NO, structs, classes, and unions are shown on a separate page (for HTML and\n"
+ "Man pages) or section (for LaTeX and RTF).Default value: NO."
+ );
+ doc->add(
+ "TYPEDEF_HIDES_STRUCT",
+ "When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or\n"
+ "enum is documented as struct, union, or enum with the name of the typedef. So\n"
+ "typedef struct TypeS {} TypeT, will appear in the documentation as a struct\n"
+ "with name TypeT. When disabled the typedef will appear as a member of a file,\n"
+ "namespace, or class. And the struct will be named TypeS. This can typically be\n"
+ "useful for C code in case the coding convention dictates that all compound\n"
+ "types are typedef'ed and only the typedef is referenced, never the tag\n"
+ "name.Default value: NO."
+ );
+ doc->add(
+ "LOOKUP_CACHE_SIZE",
+ "The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This\n"
+ "cache is used to resolve symbols given their name and scope. Since this can be\n"
+ "an expensive process and often the same symbol appears multiple times in the\n"
+ "code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small\n"
+ "doxygen will become slower. If the cache is too large, memory is wasted. The\n"
+ "cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range\n"
+ "is 0..9, the default is 0, corresponding to a cache size of 2^16=65536\n"
+ "symbols. At the end of a run doxygen will report the cache usage and suggest\n"
+ "the optimal cache size from a speed point of view. Minimum value: 0, maximum\n"
+ "value: 9, default value: 0."
+ );
+ doc->add(
+ "EXTRACT_ALL",
+ "If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in\n"
+ "documentation are documented, even if no documentation was available. Private\n"
+ "class members and static file members will be hidden unless the\n"
+ "EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES\n"
+ "Note: This will also disable the warnings about undocumented members that are\n"
+ "normally produced when WARNINGS is set to YESDefault value: NO."
+ );
+ doc->add(
+ "EXTRACT_PRIVATE",
+ "If the EXTRACT_PRIVATE tag is set to YES all private members of a class will\n"
+ "be included in the documentation.Default value: NO."
+ );
+ doc->add(
+ "EXTRACT_PACKAGE",
+ "If the EXTRACT_PACKAGE tag is set to YES all members with package or internal\n"
+ "scope will be included in the documentation.Default value: NO."
+ );
+ doc->add(
+ "EXTRACT_STATIC",
+ "If the EXTRACT_STATIC tag is set to YES all static members of a file will be\n"
+ "included in the documentation.Default value: NO."
+ );
+ doc->add(
+ "EXTRACT_LOCAL_CLASSES",
+ "If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined\n"
+ "locally in source files will be included in the documentation. If set to NO\n"
+ "only classes defined in header files are included. Does not have any effect\n"
+ "for Java sources.Default value: YES."
+ );
+ doc->add(
+ "EXTRACT_LOCAL_METHODS",
+ "This flag is only useful for Objective-C code. When set to YES local methods,\n"
+ "which are defined in the implementation section but not in the interface are\n"
+ "included in the documentation. If set to NO only methods in the interface are\n"
+ "included.Default value: NO."
+ );
+ doc->add(
+ "EXTRACT_ANON_NSPACES",
+ "If this flag is set to YES, the members of anonymous namespaces will be\n"
+ "extracted and appear in the documentation as a namespace called\n"
+ "'anonymous_namespace{file}', where file will be replaced with the base name of\n"
+ "the file that contains the anonymous namespace. By default anonymous namespace\n"
+ "are hidden.Default value: NO."
+ );
+ doc->add(
+ "HIDE_UNDOC_MEMBERS",
+ "If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all\n"
+ "undocumented members inside documented classes or files. If set to NO these\n"
+ "members will be included in the various overviews, but no documentation\n"
+ "section is generated. This option has no effect if EXTRACT_ALL is\n"
+ "enabled.Default value: NO."
+ );
+ doc->add(
+ "HIDE_UNDOC_CLASSES",
+ "If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all\n"
+ "undocumented classes that are normally visible in the class hierarchy. If set\n"
+ "to NO these classes will be included in the various overviews. This option has\n"
+ "no effect if EXTRACT_ALL is enabled.Default value: NO."
+ );
+ doc->add(
+ "HIDE_FRIEND_COMPOUNDS",
+ "If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend\n"
+ "(class|struct|union) declarations. If set to NO these declarations will be\n"
+ "included in the documentation.Default value: NO."
+ );
+ doc->add(
+ "HIDE_IN_BODY_DOCS",
+ "If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any\n"
+ "documentation blocks found inside the body of a function. If set to NO these\n"
+ "blocks will be appended to the function's detailed documentation block.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "INTERNAL_DOCS",
+ "The INTERNAL_DOCS tag determines if documentation that is typed after a\n"
+ "\\internal command is included. If the tag is set to NO then the documentation\n"
+ "will be excluded. Set it to YES to include the internal documentation.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "CASE_SENSE_NAMES",
+ "If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file\n"
+ "names in lower-case letters. If set to YES upper-case letters are also\n"
+ "allowed. This is useful if you have classes or files whose names only differ\n"
+ "in case and if your file system supports case sensitive file names. Windows\n"
+ "and Mac users are advised to set this option to NO.Default value: system\n"
+ "dependent."
+ );
+ doc->add(
+ "HIDE_SCOPE_NAMES",
+ "If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with\n"
+ "their full class and namespace scopes in the documentation. If set to YES the\n"
+ "scope will be hidden.Default value: NO."
+ );
+ doc->add(
+ "SHOW_INCLUDE_FILES",
+ "If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of\n"
+ "the files that are included by a file in the documentation of that\n"
+ "file.Default value: YES."
+ );
+ doc->add(
+ "FORCE_LOCAL_INCLUDES",
+ "If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include\n"
+ "files with double quotes in the documentation rather than with sharp\n"
+ "brackets.Default value: NO."
+ );
+ doc->add(
+ "INLINE_INFO",
+ "If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the\n"
+ "documentation for inline members.Default value: YES."
+ );
+ doc->add(
+ "SORT_MEMBER_DOCS",
+ "If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the\n"
+ "(detailed) documentation of file and class members alphabetically by member\n"
+ "name. If set to NO the members will appear in declaration order.Default value:\n"
+ "YES."
+ );
+ doc->add(
+ "SORT_BRIEF_DOCS",
+ "If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n"
+ "descriptions of file, namespace and class members alphabetically by member\n"
+ "name. If set to NO the members will appear in declaration order.Default value:\n"
+ "NO."
+ );
+ doc->add(
+ "SORT_MEMBERS_CTORS_1ST",
+ "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the\n"
+ "(brief and detailed) documentation of class members so that constructors and\n"
+ "destructors are listed first. If set to NO the constructors will appear in the\n"
+ "respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.\n"
+ "Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief\n"
+ "member documentation.\n"
+ "Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting\n"
+ "detailed member documentation.Default value: NO."
+ );
+ doc->add(
+ "SORT_GROUP_NAMES",
+ "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy\n"
+ "of group names into alphabetical order. If set to NO the group names will\n"
+ "appear in their defined order.Default value: NO."
+ );
+ doc->add(
+ "SORT_BY_SCOPE_NAME",
+ "If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by\n"
+ "fully-qualified names, including namespaces. If set to NO, the class list will\n"
+ "be sorted only by class name, not including the namespace part.\n"
+ "Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\n"
+ "Note: This option applies only to the class list, not to the alphabetical\n"
+ "list.Default value: NO."
+ );
+ doc->add(
+ "STRICT_PROTO_MATCHING",
+ "If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper\n"
+ "type resolution of all parameters of a function it will reject a match between\n"
+ "the prototype and the implementation of a member function even if there is\n"
+ "only one candidate or it is obvious which candidate to choose by doing a\n"
+ "simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still\n"
+ "accept a match between prototype and implementation in such cases.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "GENERATE_TODOLIST",
+ "The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+ "todo list. This list is created by putting \\todo commands in the\n"
+ "documentation.Default value: YES."
+ );
+ doc->add(
+ "GENERATE_TESTLIST",
+ "The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the\n"
+ "test list. This list is created by putting \\test commands in the\n"
+ "documentation.Default value: YES."
+ );
+ doc->add(
+ "GENERATE_BUGLIST",
+ "The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug\n"
+ "list. This list is created by putting \\bug commands in the\n"
+ "documentation.Default value: YES."
+ );
+ doc->add(
+ "GENERATE_DEPRECATEDLIST",
+ "The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)\n"
+ "the deprecated list. This list is created by putting \\deprecated commands in\n"
+ "the documentation.Default value: YES."
+ );
+ doc->add(
+ "ENABLED_SECTIONS",
+ "The ENABLED_SECTIONS tag can be used to enable conditional documentation\n"
+ "sections, marked by \\if <section_label> ... \\endif and \\cond <section_label>\n"
+ "... \\endcond blocks."
+ );
+ doc->add(
+ "MAX_INITIALIZER_LINES",
+ "The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the\n"
+ "initial value of a variable or macro / define can have for it to appear in the\n"
+ "documentation. If the initializer consists of more lines than specified here\n"
+ "it will be hidden. Use a value of 0 to hide initializers completely. The\n"
+ "appearance of the value of individual variables and macros / defines can be\n"
+ "controlled using \\showinitializer or \\hideinitializer command in the\n"
+ "documentation regardless of this setting. Minimum value: 0, maximum value:\n"
+ "10000, default value: 30."
+ );
+ doc->add(
+ "SHOW_USED_FILES",
+ "Set the SHOW_USED_FILES tag to NO to disable the list of files generated at\n"
+ "the bottom of the documentation of classes and structs. If set to YES the list\n"
+ "will mention the files that were used to generate the documentation.Default\n"
+ "value: YES."
+ );
+ doc->add(
+ "SHOW_FILES",
+ "Set the SHOW_FILES tag to NO to disable the generation of the Files page. This\n"
+ "will remove the Files entry from the Quick Index and from the Folder Tree View\n"
+ "(if specified). The default is YES.Default value: YES."
+ );
+ doc->add(
+ "SHOW_NAMESPACES",
+ "Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces\n"
+ "page. This will remove the Namespaces entry from the Quick Index and from the\n"
+ "Folder Tree View (if specified). The default is YES.Default value: YES."
+ );
+ doc->add(
+ "FILE_VERSION_FILTER",
+ "The FILE_VERSION_FILTER tag can be used to specify a program or script that\n"
+ "doxygen should invoke to get the current version for each file (typically from\n"
+ "the version control system). Doxygen will invoke the program by executing (via\n"
+ "popen()) the command command input-file, where command is the value of the\n"
+ "FILE_VERSION_FILTER tag, and input-file is the name of an input file provided\n"
+ "by doxygen. Whatever the program writes to standard output is used as the file\n"
+ "version. For an example see the documentation."
+ );
+ doc->add(
+ "LAYOUT_FILE",
+ "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n"
+ "by doxygen. The layout file controls the global structure of the generated\n"
+ "output files in an output format independent way. To create the layout file\n"
+ "that represents doxygen's defaults, run doxygen with the -l option. You can\n"
+ "optionally specify a file name after the option, if omitted DoxygenLayout.xml\n"
+ "will be used as the name of the layout file.\n"
+ "\n"
+ "Note that if you run doxygen from a directory containing a file called\n"
+ "DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE\n"
+ "tag is left empty."
+ );
+ doc->add(
+ "CITE_BIB_FILES",
+ "The CITE_BIB_FILES tag can be used to specify one or more bib files containing\n"
+ "the reference definitions. This must be a list of .bib files. The .bib\n"
+ "extension is automatically appended if omitted. This requires the bibtex tool\n"
+ "to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.\n"
+ "For LaTeX the style of the bibliography can be controlled using\n"
+ "LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the\n"
+ "search path. Do not use file names with spaces, bibtex cannot handle them. See\n"
+ "also \\cite for info how to create references."
+ );
+ doc->add(
+ "QUIET",
+ "The QUIET tag can be used to turn on/off the messages that are generated to\n"
+ "standard output by doxygen. Possible values are YES and NO, where YES implies\n"
+ "that the messages are off.Default value: NO."
+ );
+ doc->add(
+ "WARNINGS",
+ "The WARNINGS tag can be used to turn on/off the warning messages that are\n"
+ "generated to standard error ( stderr) by doxygen. Possible values are YES and\n"
+ "NO, where YES implies that the warnings are on.\n"
+ "\n"
+ "Tip: Turn warnings on while writing the documentation.Default value: YES."
+ );
+ doc->add(
+ "WARN_IF_UNDOCUMENTED",
+ "If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate\n"
+ "warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag\n"
+ "will automatically be disabled.Default value: YES."
+ );
+ doc->add(
+ "WARN_IF_DOC_ERROR",
+ "If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for\n"
+ "potential errors in the documentation, such as not documenting some parameters\n"
+ "in a documented function, or documenting parameters that don't exist or using\n"
+ "markup commands wrongly.Default value: YES."
+ );
+ doc->add(
+ "WARN_NO_PARAMDOC",
+ "This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that\n"
+ "are documented, but have no documentation for their parameters or return\n"
+ "value. If set to NO doxygen will only warn about wrong or incomplete parameter\n"
+ "documentation, but not about the absence of documentation.Default value: NO."
+ );
+ doc->add(
+ "WARN_FORMAT",
+ "The WARN_FORMAT tag determines the format of the warning messages that doxygen\n"
+ "can produce. The string should contain the $file, $line, and $text tags, which\n"
+ "will be replaced by the file and line number from which the warning originated\n"
+ "and the warning text. Optionally the format may contain $version, which will\n"
+ "be replaced by the version of the file (if it could be obtained via\n"
+ "FILE_VERSION_FILTER)The default value is: $file:$line: $text."
+ );
+ doc->add(
+ "WARN_LOGFILE",
+ "The WARN_LOGFILE tag can be used to specify a file to which warning and error\n"
+ "messages should be written. If left blank the output is written to standard\n"
+ "error ( stderr)."
+ );
+ doc->add(
+ "INPUT",
+ "The INPUT tag is used to specify the files and/or directories that contain\n"
+ "documented source files. You may enter file names like myfile.cpp or\n"
+ "directories like /usr/src/myproject. Separate the files or directories with\n"
+ "spaces.\n"
+ "Note: If this tag is empty the current directory is searched."
+ );
+ doc->add(
+ "INPUT_ENCODING",
+ "This tag can be used to specify the character encoding of the source files\n"
+ "that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses\n"
+ "libiconv (or the iconv built into libc) for the transcoding. See the libiconv\n"
+ "documentation (see: http://www.gnu.org/software/libiconv) for the list of\n"
+ "possible encodings.The default value is: UTF-8."
+ );
+ doc->add(
+ "FILE_PATTERNS",
+ "If the value of the INPUT tag contains directories, you can use the\n"
+ "FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and\n"
+ "*.h) to filter out the source-files in the directories. If left blank the\n"
+ "following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,\n"
+ "*.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,\n"
+ "*.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,\n"
+ "*.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,\n"
+ "*.qsf, *.as and *.js."
+ );
+ doc->add(
+ "RECURSIVE",
+ "The RECURSIVE tag can be used to specify whether or not subdirectories should\n"
+ "be searched for input files as well. Possible values are YES and NO.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "EXCLUDE",
+ "The EXCLUDE tag can be used to specify files and/or directories that should be\n"
+ "excluded from the INPUT source files. This way you can easily exclude a\n"
+ "subdirectory from a directory tree whose root is specified with the INPUT tag.\n"
+ "\n"
+ "Note that relative paths are relative to the directory from which doxygen is\n"
+ "run."
+ );
+ doc->add(
+ "EXCLUDE_SYMLINKS",
+ "The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n"
+ "directories that are symbolic links (a Unix file system feature) are excluded\n"
+ "from the input.Default value: NO."
+ );
+ doc->add(
+ "EXCLUDE_PATTERNS",
+ "If the value of the INPUT tag contains directories, you can use the\n"
+ "EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude\n"
+ "certain files from those directories.\n"
+ "\n"
+ "Note that the wildcards are matched against the file with absolute path, so to\n"
+ "exclude all test directories for example use the pattern */test/*"
+ );
+ doc->add(
+ "EXCLUDE_SYMBOLS",
+ "The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n"
+ "(namespaces, classes, functions, etc.) that should be excluded from the\n"
+ "output. The symbol name can be a fully qualified name, a word, or if the\n"
+ "wildcard * is used, a substring. Examples: ANamespace, AClass,\n"
+ "AClass::ANamespace, ANamespace::*Test\n"
+ "\n"
+ "Note that the wildcards are matched against the file with absolute path, so to\n"
+ "exclude all test directories use the pattern */test/*"
+ );
+ doc->add(
+ "EXAMPLE_PATH",
+ "The EXAMPLE_PATH tag can be used to specify one or more files or directories\n"
+ "that contain example code fragments that are included (see the \\include\n"
+ "command)."
+ );
+ doc->add(
+ "EXAMPLE_PATTERNS",
+ "If the value of the EXAMPLE_PATH tag contains directories, you can use the\n"
+ "EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and\n"
+ "*.h) to filter out the source-files in the directories. If left blank all\n"
+ "files are included.*."
+ );
+ doc->add(
+ "EXAMPLE_RECURSIVE",
+ "If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be\n"
+ "searched for input files to be used with the \\include or \\dontinclude commands\n"
+ "irrespective of the value of the RECURSIVE tag.Default value: NO."
+ );
+ doc->add(
+ "IMAGE_PATH",
+ "The IMAGE_PATH tag can be used to specify one or more files or directories\n"
+ "that contain images that are to be included in the documentation (see the\n"
+ "\\image command)."
+ );
+ doc->add(
+ "INPUT_FILTER",
+ "The INPUT_FILTER tag can be used to specify a program that doxygen should\n"
+ "invoke to filter for each input file. Doxygen will invoke the filter program\n"
+ "by executing (via popen()) the command:\n"
+ "\n"
+ "<filter> <input-file>\n"
+ "\n"
+ "where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the\n"
+ "name of an input file. Doxygen will then use the output that the filter\n"
+ "program writes to standard output. If FILTER_PATTERNS is specified, this tag\n"
+ "will be ignored.\n"
+ "\n"
+ "Note that the filter must not add or remove lines; it is applied before the\n"
+ "code is scanned, but not when the output code is generated. If lines are added\n"
+ "or removed, the anchors will not be placed correctly."
+ );
+ doc->add(
+ "FILTER_PATTERNS",
+ "The FILTER_PATTERNS tag can be used to specify filters on a per file pattern\n"
+ "basis. Doxygen will compare the file name with each pattern and apply the\n"
+ "filter if there is a match. The filters are a list of the form: pattern=filter\n"
+ "(like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how\n"
+ "filters are used. If the FILTER_PATTERNS tag is empty or if none of the\n"
+ "patterns match the file name, INPUT_FILTER is applied."
+ );
+ doc->add(
+ "FILTER_SOURCE_FILES",
+ "If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using\n"
+ "INPUT_FILTER ) will also be used to filter the input files that are used for\n"
+ "producing the source files to browse (i.e. when SOURCE_BROWSER is set to\n"
+ "YES).Default value: NO."
+ );
+ doc->add(
+ "FILTER_SOURCE_PATTERNS",
+ "The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file\n"
+ "pattern. A pattern will override the setting for FILTER_PATTERN (if any) and\n"
+ "it is also possible to disable source filtering for a specific pattern using\n"
+ "*.ext= (so without naming a filter).\n"
+ "\n"
+ "This tag requires that the tag FILTER_SOURCE_FILES is set to YES."
+ );
+ doc->add(
+ "USE_MDFILE_AS_MAINPAGE",
+ "If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that\n"
+ "is part of the input, its contents will be placed on the main page\n"
+ "(index.html). This can be useful if you have a project on for instance GitHub\n"
+ "and want to reuse the introduction page also for the doxygen output."
+ );
+ doc->add(
+ "SOURCE_BROWSER",
+ "If the SOURCE_BROWSER tag is set to YES then a list of source files will be\n"
+ "generated. Documented entities will be cross-referenced with these sources.\n"
+ "\n"
+ "Note: To get rid of all source code in the generated output, make sure that\n"
+ "also VERBATIM_HEADERS is set to NO.Default value: NO."
+ );
+ doc->add(
+ "INLINE_SOURCES",
+ "Setting the INLINE_SOURCES tag to YES will include the body of functions,\n"
+ "classes and enums directly into the documentation.Default value: NO."
+ );
+ doc->add(
+ "STRIP_CODE_COMMENTS",
+ "Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any\n"
+ "special comment blocks from generated source code fragments. Normal C, C++ and\n"
+ "Fortran comments will always remain visible.Default value: YES."
+ );
+ doc->add(
+ "REFERENCED_BY_RELATION",
+ "If the REFERENCED_BY_RELATION tag is set to YES then for each documented\n"
+ "function all documented functions referencing it will be listed.Default value:\n"
+ "NO."
+ );
+ doc->add(
+ "REFERENCES_RELATION",
+ "If the REFERENCES_RELATION tag is set to YES then for each documented function\n"
+ "all documented entities called/used by that function will be listed.Default\n"
+ "value: NO."
+ );
+ doc->add(
+ "REFERENCES_LINK_SOURCE",
+ "If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set\n"
+ "to YES, then the hyperlinks from functions in REFERENCES_RELATION and\n"
+ "REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will\n"
+ "link to the documentation.Default value: YES."
+ );
+ doc->add(
+ "SOURCE_TOOLTIPS",
+ "If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the\n"
+ "source code will show a tooltip with additional information such as prototype,\n"
+ "brief description and links to the definition and documentation. Since this\n"
+ "will make the HTML file larger and loading of large files a bit slower, you\n"
+ "can opt to disable this feature.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag SOURCE_BROWSER is set to YES."
+ );
+ doc->add(
+ "USE_HTAGS",
+ "If the USE_HTAGS tag is set to YES then the references to source code will\n"
+ "point to the HTML generated by the htags(1) tool instead of doxygen built-in\n"
+ "source browser. The htags tool is part of GNU's global source tagging system\n"
+ "(see http://www.gnu.org/software/global/global.html). You will need version\n"
+ "4.8.6 or higher.\n"
+ "\n"
+ "To use it do the following:\n"
+ "- Install the latest version of global\n"
+ "- Enable SOURCE_BROWSER and USE_HTAGS in the config file\n"
+ "- Make sure the INPUT points to the root of the source tree\n"
+ "- Run doxygen as normal\n"
+ "\n"
+ "Doxygen will invoke htags (and that will in turn invoke gtags), so these\n"
+ "tools must be available from the command line (i.e. in the search path).\n"
+ "\n"
+ "The result: instead of the source browser generated by doxygen, the links to\n"
+ "source code will now point to the output of htags.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag SOURCE_BROWSER is set to YES."
+ );
+ doc->add(
+ "VERBATIM_HEADERS",
+ "If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a\n"
+ "verbatim copy of the header file for each class for which an include is\n"
+ "specified. Set to NO to disable this.\n"
+ "See also: Section \\class.Default value: YES."
+ );
+ doc->add(
+ "CLANG_ASSISTED_PARSING",
+ "If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the\n"
+ "clang parser (see: http://clang.llvm.org/) for more acurate parsing at the\n"
+ "cost of reduced performance. This can be particularly helpful with template\n"
+ "rich C++ code for which doxygen's built-in parser lacks the necessary type\n"
+ "information.\n"
+ "Note: The availability of this option depends on whether or not doxygen was\n"
+ "compiled with the --with-libclang option.Default value: NO."
+ );
+ doc->add(
+ "CLANG_OPTIONS",
+ "If clang assisted parsing is enabled you can provide the compiler with command\n"
+ "line options that you would normally use when invoking the compiler. Note that\n"
+ "the include paths will already be set by doxygen for the files and directories\n"
+ "specified with INPUT and INCLUDE_PATH.\n"
+ "\n"
+ "This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES."
+ );
+ doc->add(
+ "ALPHABETICAL_INDEX",
+ "If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all\n"
+ "compounds will be generated. Enable this if the project contains a lot of\n"
+ "classes, structs, unions or interfaces.Default value: YES."
+ );
+ doc->add(
+ "COLS_IN_ALPHA_INDEX",
+ "The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in\n"
+ "which the alphabetical index list will be split. Minimum value: 1, maximum\n"
+ "value: 20, default value: 5.\n"
+ "\n"
+ "This tag requires that the tag ALPHABETICAL_INDEX is set to YES."
+ );
+ doc->add(
+ "IGNORE_PREFIX",
+ "In case all classes in a project start with a common prefix, all classes will\n"
+ "be put under the same header in the alphabetical index. The IGNORE_PREFIX tag\n"
+ "can be used to specify a prefix (or a list of prefixes) that should be ignored\n"
+ "while generating the index headers.\n"
+ "\n"
+ "This tag requires that the tag ALPHABETICAL_INDEX is set to YES."
+ );
+ doc->add(
+ "GENERATE_HTML",
+ "If the GENERATE_HTML tag is set to YES doxygen will generate HTML\n"
+ "outputDefault value: YES."
+ );
+ doc->add(
+ "HTML_OUTPUT",
+ "The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a\n"
+ "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+ "it.The default directory is: html.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_FILE_EXTENSION",
+ "The HTML_FILE_EXTENSION tag can be used to specify the file extension for each\n"
+ "generated HTML page (for example: .htm, .php, .asp).The default value is:\n"
+ ".html.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_HEADER",
+ "The HTML_HEADER tag can be used to specify a user-defined HTML header file for\n"
+ "each generated HTML page. If the tag is left blank doxygen will generate a\n"
+ "standard header.\n"
+ "\n"
+ "To get valid HTML the header file that includes any scripts and style sheets\n"
+ "that doxygen needs, which is dependent on the configuration options used (e.g.\n"
+ "the setting GENERATE_TREEVIEW). It is highly recommended to start with a\n"
+ "default header using\n"
+ "doxygen -w html new_header.html new_footer.html new_stylesheet.css\n"
+ "YourConfigFile\n"
+ "and then modify the file new_header.html. See also section \"Doxygen usage\"\n"
+ "for information on how to generate the default header that doxygen normally\n"
+ "uses.\n"
+ "Note: The header is subject to change so you typically have to regenerate the\n"
+ "default header when upgrading to a newer version of doxygen. For a description\n"
+ "of the possible markers and block names see the documentation.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_FOOTER",
+ "The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each\n"
+ "generated HTML page. If the tag is left blank doxygen will generate a standard\n"
+ "footer. See HTML_HEADER for more information on how to generate a default\n"
+ "footer and what special commands can be used inside the footer. See also\n"
+ "section \"Doxygen usage\" for information on how to generate the default footer\n"
+ "that doxygen normally uses.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_STYLESHEET",
+ "The HTML_STYLESHEET tag can be used to specify a user-defined cascading style\n"
+ "sheet that is used by each HTML page. It can be used to fine-tune the look of\n"
+ "the HTML output. If left blank doxygen will generate a default style sheet.\n"
+ "See also section \"Doxygen usage\" for information on how to generate the style\n"
+ "sheet that doxygen normally uses.\n"
+ "Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as\n"
+ "it is more robust and this tag (HTML_STYLESHEET) will in the future become\n"
+ "obsolete.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_EXTRA_STYLESHEET",
+ "The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-\n"
+ "defined cascading style sheet that is included after the standard style sheets\n"
+ "created by doxygen. Using this option one can overrule certain style aspects.\n"
+ "This is preferred over using HTML_STYLESHEET since it does not replace the\n"
+ "standard style sheet and is therefor more robust against future updates.\n"
+ "Doxygen will copy the style sheet file to the output directory. For an example\n"
+ "see the documentation.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_EXTRA_FILES",
+ "The HTML_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+ "other source files which should be copied to the HTML output directory. Note\n"
+ "that these files will be copied to the base HTML output directory. Use the\n"
+ "$relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these\n"
+ "files. In the HTML_STYLESHEET file, use the file name only. Also note that the\n"
+ "files will be copied as-is; there are no commands or markers available.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_COLORSTYLE_HUE",
+ "The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen\n"
+ "will adjust the colors in the stylesheet and background images according to\n"
+ "this color. Hue is specified as an angle on a colorwheel, see\n"
+ "http://en.wikipedia.org/wiki/Hue for more information. For instance the value\n"
+ "0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300\n"
+ "purple, and 360 is red again. The allowed range is 0 to 359. Minimum value: 0,\n"
+ "maximum value: 359, default value: 220.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_COLORSTYLE_SAT",
+ "The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors\n"
+ "in the HTML output. For a value of 0 the output will use grayscales only. A\n"
+ "value of 255 will produce the most vivid colors. Minimum value: 0, maximum\n"
+ "value: 255, default value: 100.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_COLORSTYLE_GAMMA",
+ "The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the\n"
+ "luminance component of the colors in the HTML output. Values below 100\n"
+ "gradually make the output lighter, whereas values above 100 make the output\n"
+ "darker. The value divided by 100 is the actual gamma applied, so 80 represents\n"
+ "a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not\n"
+ "change the gamma. Minimum value: 40, maximum value: 240, default value: 80.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_TIMESTAMP",
+ "If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n"
+ "page will contain the date and time when the page was generated. Setting this\n"
+ "to NO can help when comparing the output of multiple runs.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_DYNAMIC_SECTIONS",
+ "If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n"
+ "documentation will contain sections that can be hidden and shown after the\n"
+ "page has loaded.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "HTML_INDEX_NUM_ENTRIES",
+ "With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries\n"
+ "shown in the various tree structured indices initially; the user can expand\n"
+ "and collapse entries dynamically later on. Doxygen will expand the tree to\n"
+ "such a level that at most the specified number of entries are visible (unless\n"
+ "a fully collapsed tree already exceeds this amount). So setting the number of\n"
+ "entries 1 will produce a full collapsed tree by default. 0 is a special value\n"
+ "representing an infinite number of entries and will result in a full expanded\n"
+ "tree by default. Minimum value: 0, maximum value: 9999, default value: 100.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "GENERATE_DOCSET",
+ "If the GENERATE_DOCSET tag is set to YES, additional index files will be\n"
+ "generated that can be used as input for Apple's Xcode 3 integrated development\n"
+ "environment (see: http://developer.apple.com/tools/xcode/), introduced with\n"
+ "OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a\n"
+ "Makefile in the HTML output directory. Running make will produce the docset in\n"
+ "that directory and running make install will install the docset in\n"
+ "~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at\n"
+ "startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html\n"
+ "for more information.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "DOCSET_FEEDNAME",
+ "This tag determines the name of the docset feed. A documentation feed provides\n"
+ "an umbrella under which multiple documentation sets from a single provider\n"
+ "(such as a company or product suite) can be grouped.The default value is:\n"
+ "Doxygen generated docs.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_DOCSET is set to YES."
+ );
+ doc->add(
+ "DOCSET_BUNDLE_ID",
+ "This tag specifies a string that should uniquely identify the documentation\n"
+ "set bundle. This should be a reverse domain-name style string, e.g.\n"
+ "com.mycompany.MyDocSet. Doxygen will append .docset to the name.The default\n"
+ "value is: org.doxygen.Project.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_DOCSET is set to YES."
+ );
+ doc->add(
+ "DOCSET_PUBLISHER_ID",
+ "The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify\n"
+ "the documentation publisher. This should be a reverse domain-name style\n"
+ "string, e.g. com.mycompany.MyDocSet.documentation.The default value is:\n"
+ "org.doxygen.Publisher.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_DOCSET is set to YES."
+ );
+ doc->add(
+ "DOCSET_PUBLISHER_NAME",
+ "The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.The\n"
+ "default value is: Publisher.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_DOCSET is set to YES."
+ );
+ doc->add(
+ "GENERATE_HTMLHELP",
+ "If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three\n"
+ "additional HTML index files: index.hhp, index.hhc, and index.hhk. The\n"
+ "index.hhp is a project file that can be read by Microsoft's HTML Help Workshop\n"
+ "(see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on\n"
+ "Windows.\n"
+ "\n"
+ "The HTML Help Workshop contains a compiler that can convert all HTML output\n"
+ "generated by doxygen into a single compiled HTML file (.chm). Compiled HTML\n"
+ "files are now used as the Windows 98 help format, and will replace the old\n"
+ "Windows help format (.hlp) on all Windows platforms in the future. Compressed\n"
+ "HTML files also contain an index, a table of contents, and you can search for\n"
+ "words in the documentation. The HTML workshop also contains a viewer for\n"
+ "compressed HTML files.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "CHM_FILE",
+ "The CHM_FILE tag can be used to specify the file name of the resulting .chm\n"
+ "file. You can add a path in front of the file if the result should not be\n"
+ "written to the html output directory.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "HHC_LOCATION",
+ "The HHC_LOCATION tag can be used to specify the location (absolute path\n"
+ "including file name) of the HTML help compiler ( hhc.exe). If non-empty\n"
+ "doxygen will try to run the HTML help compiler on the generated index.hhp.The\n"
+ "file has to be specified with full path.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "GENERATE_CHI",
+ "The GENERATE_CHI flag controls if a separate .chi index file is generated (\n"
+ "YES) or that it should be included in the master .chm file ( NO).Default\n"
+ "value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "CHM_INDEX_ENCODING",
+ "The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)\n"
+ "and project file content.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "BINARY_TOC",
+ "The BINARY_TOC flag controls whether a binary table of contents is generated (\n"
+ "YES) or a normal table of contents ( NO) in the .chm file.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "TOC_EXPAND",
+ "The TOC_EXPAND flag can be set to YES to add extra items for group members to\n"
+ "the table of contents of the HTML help documentation and to the tree\n"
+ "view.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTMLHELP is set to YES."
+ );
+ doc->add(
+ "GENERATE_QHP",
+ "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n"
+ "QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that\n"
+ "can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help\n"
+ "(.qch) of the generated HTML documentation.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "QCH_FILE",
+ "If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify\n"
+ "the file name of the resulting .qch file. The path specified is relative to\n"
+ "the HTML output folder.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHP_NAMESPACE",
+ "The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help\n"
+ "Project output. For more information please see Qt Help Project / Namespace\n"
+ "(see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).The\n"
+ "default value is: org.doxygen.Project.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHP_VIRTUAL_FOLDER",
+ "The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt\n"
+ "Help Project output. For more information please see Qt Help Project / Virtual\n"
+ "Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-\n"
+ "folders).The default value is: doc.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHP_CUST_FILTER_NAME",
+ "If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom\n"
+ "filter to add. For more information please see Qt Help Project / Custom\n"
+ "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+ "filters).\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHP_CUST_FILTER_ATTRS",
+ "The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the\n"
+ "custom filter to add. For more information please see Qt Help Project / Custom\n"
+ "Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-\n"
+ "filters).\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHP_SECT_FILTER_ATTRS",
+ "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n"
+ "project's filter section matches. Qt Help Project / Filter Attributes (see:\n"
+ "http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "QHG_LOCATION",
+ "The QHG_LOCATION tag can be used to specify the location of Qt's\n"
+ "qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the\n"
+ "generated .qhp file.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_QHP is set to YES."
+ );
+ doc->add(
+ "GENERATE_ECLIPSEHELP",
+ "If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be\n"
+ "generated, together with the HTML files, they form an Eclipse help plugin. To\n"
+ "install this plugin and make it available under the help contents menu in\n"
+ "Eclipse, the contents of the directory containing the HTML and XML files needs\n"
+ "to be copied into the plugins directory of eclipse. The name of the directory\n"
+ "within the plugins directory should be the same as the ECLIPSE_DOC_ID value.\n"
+ "After copying Eclipse needs to be restarted before the help appears.Default\n"
+ "value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "ECLIPSE_DOC_ID",
+ "A unique identifier for the Eclipse help plugin. When installing the plugin\n"
+ "the directory name containing the HTML and XML files should also have this\n"
+ "name. Each documentation set should have its own identifier.The default value\n"
+ "is: org.doxygen.Project.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES."
+ );
+ doc->add(
+ "DISABLE_INDEX",
+ "If you want full control over the layout of the generated HTML pages it might\n"
+ "be necessary to disable the index and replace it with your own. The\n"
+ "DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top\n"
+ "of each HTML page. A value of NO enables the index and the value YES disables\n"
+ "it. Since the tabs have the same information as the navigation tree you can\n"
+ "set this option to NO if you already set GENERATE_TREEVIEW to YES.Default\n"
+ "value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "GENERATE_TREEVIEW",
+ "The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n"
+ "structure should be generated to display hierarchical information. If the tag\n"
+ "value is set to YES, a side panel will be generated containing a tree-like\n"
+ "index structure (just like the one that is generated for HTML Help). For this\n"
+ "to work a browser that supports JavaScript, DHTML, CSS and frames is required\n"
+ "(i.e. any modern browser). Windows users are probably better off using the\n"
+ "HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can\n"
+ "further fine-tune the look of the index. As an example, the default style\n"
+ "sheet generated by doxygen has an example that shows how to put an image at\n"
+ "the root of the tree instead of the PROJECT_NAME. Since the tree basically has\n"
+ "the same information as the tab index you could consider to set DISABLE_INDEX\n"
+ "to NO when enabling this option.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "ENUM_VALUES_PER_LINE",
+ "The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that\n"
+ "doxygen will group on one line in the generated HTML documentation.\n"
+ "\n"
+ "Note that a value of 0 will completely suppress the enum values from appearing\n"
+ "in the overview section. Minimum value: 0, maximum value: 20, default value:\n"
+ "4.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "TREEVIEW_WIDTH",
+ "If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used\n"
+ "to set the initial width (in pixels) of the frame in which the tree is shown.\n"
+ "Minimum value: 0, maximum value: 1500, default value: 250.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "EXT_LINKS_IN_WINDOW",
+ "When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to\n"
+ "external symbols imported via tag files in a separate window.Default value:\n"
+ "NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "FORMULA_FONTSIZE",
+ "Use this tag to change the font size of LaTeX formulas included as images in\n"
+ "the HTML documentation. When you change the font size after a successful\n"
+ "doxygen run you need to manually remove any form_*.png images from the HTML\n"
+ "output directory to force them to be regenerated. Minimum value: 8, maximum\n"
+ "value: 50, default value: 10.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "FORMULA_TRANSPARENT",
+ "Use the FORMULA_TRANPARENT tag to determine whether or not the images\n"
+ "generated for formulas are transparent PNGs. Transparent PNGs are not\n"
+ "supported properly for IE 6.0, but are supported on all modern browsers.\n"
+ "\n"
+ "Note that when changing this option you need to delete any form_*.png files in\n"
+ "the HTML output directory before the changes have effect.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "USE_MATHJAX",
+ "Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see\n"
+ "http://www.mathjax.org) which uses client side Javascript for the rendering\n"
+ "instead of using prerendered bitmaps. Use this if you do not have LaTeX\n"
+ "installed or if you want to formulas look prettier in the HTML output. When\n"
+ "enabled you may also need to install MathJax separately and configure the path\n"
+ "to it using the MATHJAX_RELPATH option.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "MATHJAX_FORMAT",
+ "When MathJax is enabled you can set the default output format to be used for\n"
+ "the MathJax output. See the MathJax site (see:\n"
+ "http://docs.mathjax.org/en/latest/output.html) for more details.Possible\n"
+ "values are: HTML-CSS (which is slower, but has the best compatibility),\n"
+ "NativeMML (i.e. MathML) and SVG.\n"
+ "\n"
+ "The default value is: HTML-CSS.\n"
+ "\n"
+ "This tag requires that the tag USE_MATHJAX is set to YES."
+ );
+ doc->add(
+ "MATHJAX_RELPATH",
+ "When MathJax is enabled you need to specify the location relative to the HTML\n"
+ "output directory using the MATHJAX_RELPATH option. The destination directory\n"
+ "should contain the MathJax.js script. For instance, if the mathjax directory\n"
+ "is located at the same level as the HTML output directory, then\n"
+ "MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax\n"
+ "Content Delivery Network so you can quickly see the result without installing\n"
+ "MathJax. However, it is strongly recommended to install a local copy of\n"
+ "MathJax from http://www.mathjax.org before deployment.The default value is:\n"
+ "http://cdn.mathjax.org/mathjax/latest.\n"
+ "\n"
+ "This tag requires that the tag USE_MATHJAX is set to YES."
+ );
+ doc->add(
+ "MATHJAX_EXTENSIONS",
+ "The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax\n"
+ "extension names that should be enabled during MathJax rendering. For example\n"
+ "MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols\n"
+ "\n"
+ "This tag requires that the tag USE_MATHJAX is set to YES."
+ );
+ doc->add(
+ "MATHJAX_CODEFILE",
+ "The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces\n"
+ "of code that will be used on startup of the MathJax code. See the MathJax site\n"
+ "(see: http://docs.mathjax.org/en/latest/output.html) for more details. For an\n"
+ "example see the documentation.\n"
+ "\n"
+ "This tag requires that the tag USE_MATHJAX is set to YES."
+ );
+ doc->add(
+ "SEARCHENGINE",
+ "When the SEARCHENGINE tag is enabled doxygen will generate a search box for\n"
+ "the HTML output. The underlying search engine uses javascript and DHTML and\n"
+ "should work on any modern browser. Note that when using HTML help\n"
+ "(GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)\n"
+ "there is already a search function so this one should typically be disabled.\n"
+ "For large projects the javascript based search engine can be slow, then\n"
+ "enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to\n"
+ "search using the keyboard; to jump to the search box use <access key> + S\n"
+ "(what the <access key> is depends on the OS and browser, but it is typically\n"
+ "<CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down\n"
+ "key> to jump into the search results window, the results can be navigated\n"
+ "using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel\n"
+ "the search. The filter options can be selected when the cursor is inside the\n"
+ "search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>\n"
+ "to select a filter and <Enter> or <escape> to activate or cancel the filter\n"
+ "option.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_HTML is set to YES."
+ );
+ doc->add(
+ "SERVER_BASED_SEARCH",
+ "When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n"
+ "implemented using a web server instead of a web client using Javascript. There\n"
+ "are two flavours of web server based searching depending on the\n"
+ "EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for\n"
+ "searching and an index file used by the script. When EXTERNAL_SEARCH is\n"
+ "enabled the indexing and searching needs to be provided by external tools. See\n"
+ "the section \"External Indexing and Searching\" for details.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "EXTERNAL_SEARCH",
+ "When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP\n"
+ "script for searching. Instead the search results are written to an XML file\n"
+ "which needs to be processed by an external indexer. Doxygen will invoke an\n"
+ "external search engine pointed to by the SEARCHENGINE_URL option to obtain the\n"
+ "search results.\n"
+ "\n"
+ "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+ "(doxysearch.cgi) which are based on the open source search engine library\n"
+ "Xapian (see: http://xapian.org/).\n"
+ "\n"
+ "See the section \"External Indexing and Searching\" for details.Default value:\n"
+ "NO.\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "SEARCHENGINE_URL",
+ "The SEARCHENGINE_URL should point to a search engine hosted by a web server\n"
+ "which will return the search results when EXTERNAL_SEARCH is enabled.\n"
+ "\n"
+ "Doxygen ships with an example indexer ( doxyindexer) and search engine\n"
+ "(doxysearch.cgi) which are based on the open source search engine library\n"
+ "Xapian (see: http://xapian.org/). See the section \"External Indexing and\n"
+ "Searching\" for details.\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "SEARCHDATA_FILE",
+ "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed\n"
+ "search data is written to a file for indexing by an external tool. With the\n"
+ "SEARCHDATA_FILE tag the name of this file can be specified.The default file\n"
+ "is: searchdata.xml.\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "EXTERNAL_SEARCH_ID",
+ "When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the\n"
+ "EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is\n"
+ "useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple\n"
+ "projects and redirect the results back to the right project.\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "EXTRA_SEARCH_MAPPINGS",
+ "The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen\n"
+ "projects other than the one defined by this configuration file, but that are\n"
+ "all added to the same external search index. Each project needs to have a\n"
+ "unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of\n"
+ "to a relative location where the documentation can be found. The format is:\n"
+ "EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...\n"
+ "\n"
+ "This tag requires that the tag SEARCHENGINE is set to YES."
+ );
+ doc->add(
+ "GENERATE_LATEX",
+ "If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX\n"
+ "output.Default value: YES."
+ );
+ doc->add(
+ "LATEX_OUTPUT",
+ "The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a\n"
+ "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+ "it.The default directory is: latex.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_CMD_NAME",
+ "The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be\n"
+ "invoked.\n"
+ "\n"
+ "Note that when enabling USE_PDFLATEX this option is only used for generating\n"
+ "bitmaps for formulas in the HTML output, but not in the Makefile that is\n"
+ "written to the output directory.The default file is: latex.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "MAKEINDEX_CMD_NAME",
+ "The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate\n"
+ "index for LaTeX.The default file is: makeindex.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "COMPACT_LATEX",
+ "If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX\n"
+ "documents. This may be useful for small projects and may help to save some\n"
+ "trees in general.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "PAPER_TYPE",
+ "The PAPER_TYPE tag can be used to set the paper type that is used by the\n"
+ "printer.Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches),\n"
+ "legal (8.5 x 14 inches) and executive (7.25 x 10.5 inches).\n"
+ "\n"
+ "The default value is: a4.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "EXTRA_PACKAGES",
+ "The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names\n"
+ "that should be included in the LaTeX output. To get the times font for\n"
+ "instance you can specify\n"
+ "EXTRA_PACKAGES=times\n"
+ "If left blank no extra packages will be included.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_HEADER",
+ "The LATEX_HEADER tag can be used to specify a personal LaTeX header for the\n"
+ "generated LaTeX document. The header should contain everything until the first\n"
+ "chapter. If it is left blank doxygen will generate a standard header. See\n"
+ "section \"Doxygen usage\" for information on how to let doxygen write the\n"
+ "default header to a separate file.\n"
+ "\n"
+ "Note: Only use a user-defined header if you know what you are doing! The\n"
+ "following commands have a special meaning inside the header: $title,\n"
+ "$datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will\n"
+ "replace them by respectively the title of the page, the current date and time,\n"
+ "only the current date, the version number of doxygen, the project name (see\n"
+ "PROJECT_NAME), or the project number (see PROJECT_NUMBER).\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_FOOTER",
+ "The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the\n"
+ "generated LaTeX document. The footer should contain everything after the last\n"
+ "chapter. If it is left blank doxygen will generate a standard footer.\n"
+ "\n"
+ "Note: Only use a user-defined footer if you know what you are doing!\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_EXTRA_FILES",
+ "The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or\n"
+ "other source files which should be copied to the LATEX_OUTPUT output\n"
+ "directory. Note that the files will be copied as-is; there are no commands or\n"
+ "markers available.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "PDF_HYPERLINKS",
+ "If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is\n"
+ "prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will\n"
+ "contain links (just like the HTML output) instead of page references. This\n"
+ "makes the output suitable for online browsing using a PDF viewer.Default\n"
+ "value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "USE_PDFLATEX",
+ "If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate\n"
+ "the PDF file directly from the LaTeX files. Set this option to YES to get a\n"
+ "higher quality PDF documentation.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_BATCHMODE",
+ "If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode\n"
+ "command to the generated LaTeX files. This will instruct LaTeX to keep running\n"
+ "if errors occur, instead of asking the user for help. This option is also used\n"
+ "when generating formulas in HTML.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_HIDE_INDICES",
+ "If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the\n"
+ "index chapters (such as File Index, Compound Index, etc.) in the\n"
+ "output.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_SOURCE_CODE",
+ "If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source\n"
+ "code with syntax highlighting in the LaTeX output.\n"
+ "\n"
+ "Note that which sources are shown also depends on other settings such as\n"
+ "SOURCE_BROWSER.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "LATEX_BIB_STYLE",
+ "The LATEX_BIB_STYLE tag can be used to specify the style to use for the\n"
+ "bibliography, e.g. plainnat, or ieeetr. See\n"
+ "http://en.wikipedia.org/wiki/BibTeX and \\cite for more info.The default value\n"
+ "is: plain.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_LATEX is set to YES."
+ );
+ doc->add(
+ "GENERATE_RTF",
+ "If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The\n"
+ "RTF output is optimized for Word 97 and may not look too pretty with other RTF\n"
+ "readers/editors.Default value: NO."
+ );
+ doc->add(
+ "RTF_OUTPUT",
+ "The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a\n"
+ "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+ "it.The default directory is: rtf.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_RTF is set to YES."
+ );
+ doc->add(
+ "COMPACT_RTF",
+ "If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF\n"
+ "documents. This may be useful for small projects and may help to save some\n"
+ "trees in general.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_RTF is set to YES."
+ );
+ doc->add(
+ "RTF_HYPERLINKS",
+ "If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will\n"
+ "contain hyperlink fields. The RTF file will contain links (just like the HTML\n"
+ "output) instead of page references. This makes the output suitable for online\n"
+ "browsing using Word or some other Word compatible readers that support those\n"
+ "fields.\n"
+ "\n"
+ "Note: WordPad (write) and others do not support links.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_RTF is set to YES."
+ );
+ doc->add(
+ "RTF_STYLESHEET_FILE",
+ "Load stylesheet definitions from file. Syntax is similar to doxygen's config\n"
+ "file, i.e. a series of assignments. You only have to provide replacements,\n"
+ "missing definitions are set to their default value.\n"
+ "\n"
+ "See also section \"Doxygen usage\" for information on how to generate the\n"
+ "default style sheet that doxygen normally uses.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_RTF is set to YES."
+ );
+ doc->add(
+ "RTF_EXTENSIONS_FILE",
+ "Set optional variables used in the generation of an RTF document. Syntax is\n"
+ "similar to doxygen's config file. A template extensions file can be generated\n"
+ "using doxygen -e rtf extensionFile.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_RTF is set to YES."
+ );
+ doc->add(
+ "GENERATE_MAN",
+ "If the GENERATE_MAN tag is set to YES doxygen will generate man pages for\n"
+ "classes and files.Default value: NO."
+ );
+ doc->add(
+ "MAN_OUTPUT",
+ "The MAN_OUTPUT tag is used to specify where the man pages will be put. If a\n"
+ "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+ "it. A directory man3 will be created inside the directory specified by\n"
+ "MAN_OUTPUT.The default directory is: man.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_MAN is set to YES."
+ );
+ doc->add(
+ "MAN_EXTENSION",
+ "The MAN_EXTENSION tag determines the extension that is added to the generated\n"
+ "man pages. In case the manual section does not start with a number, the number\n"
+ "3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is\n"
+ "optional.The default value is: .3.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_MAN is set to YES."
+ );
+ doc->add(
+ "MAN_LINKS",
+ "If the MAN_LINKS tag is set to YES and doxygen generates man output, then it\n"
+ "will generate one additional man file for each entity documented in the real\n"
+ "man page(s). These additional files only source the real man page, but without\n"
+ "them the man command would be unable to find the correct page.Default value:\n"
+ "NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_MAN is set to YES."
+ );
+ doc->add(
+ "GENERATE_XML",
+ "If the GENERATE_XML tag is set to YES doxygen will generate an XML file that\n"
+ "captures the structure of the code including all documentation.Default value:\n"
+ "NO."
+ );
+ doc->add(
+ "XML_OUTPUT",
+ "The XML_OUTPUT tag is used to specify where the XML pages will be put. If a\n"
+ "relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n"
+ "it.The default directory is: xml.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_XML is set to YES."
+ );
+ doc->add(
+ "XML_SCHEMA",
+ "The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a\n"
+ "validating XML parser to check the syntax of the XML files.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_XML is set to YES."
+ );
+ doc->add(
+ "XML_DTD",
+ "The XML_DTD tag can be used to specify a XML DTD, which can be used by a\n"
+ "validating XML parser to check the syntax of the XML files.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_XML is set to YES."
+ );
+ doc->add(
+ "XML_PROGRAMLISTING",
+ "If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program\n"
+ "listings (including syntax highlighting and cross-referencing information) to\n"
+ "the XML output. Note that enabling this will significantly increase the size\n"
+ "of the XML output.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_XML is set to YES."
+ );
+ doc->add(
+ "GENERATE_DOCBOOK",
+ "If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files\n"
+ "that can be used to generate PDF.Default value: NO."
+ );
+ doc->add(
+ "DOCBOOK_OUTPUT",
+ "The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.\n"
+ "If a relative path is entered the value of OUTPUT_DIRECTORY will be put in\n"
+ "front of it.The default directory is: docbook.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_DOCBOOK is set to YES."
+ );
+ doc->add(
+ "GENERATE_AUTOGEN_DEF",
+ "If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen\n"
+ "Definitions (see http://autogen.sf.net) file that captures the structure of\n"
+ "the code including all documentation. Note that this feature is still\n"
+ "experimental and incomplete at the moment.Default value: NO."
+ );
+ doc->add(
+ "GENERATE_PERLMOD",
+ "If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module\n"
+ "file that captures the structure of the code including all documentation.\n"
+ "\n"
+ "Note that this feature is still experimental and incomplete at the\n"
+ "moment.Default value: NO."
+ );
+ doc->add(
+ "PERLMOD_LATEX",
+ "If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary\n"
+ "Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI\n"
+ "output from the Perl module output.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+ );
+ doc->add(
+ "PERLMOD_PRETTY",
+ "If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely\n"
+ "formatted so it can be parsed by a human reader. This is useful if you want to\n"
+ "understand what is going on. On the other hand, if this tag is set to NO the\n"
+ "size of the Perl module output will be much smaller and Perl will parse it\n"
+ "just the same.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+ );
+ doc->add(
+ "PERLMOD_MAKEVAR_PREFIX",
+ "The names of the make variables in the generated doxyrules.make file are\n"
+ "prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful\n"
+ "so different doxyrules.make files included by the same Makefile don't\n"
+ "overwrite each other's variables.\n"
+ "\n"
+ "This tag requires that the tag GENERATE_PERLMOD is set to YES."
+ );
+ doc->add(
+ "ENABLE_PREPROCESSING",
+ "If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all\n"
+ "C-preprocessor directives found in the sources and include files.Default\n"
+ "value: YES."
+ );
+ doc->add(
+ "MACRO_EXPANSION",
+ "If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names\n"
+ "in the source code. If set to NO only conditional compilation will be\n"
+ "performed. Macro expansion can be done in a controlled way by setting\n"
+ "EXPAND_ONLY_PREDEF to YES.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "EXPAND_ONLY_PREDEF",
+ "If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then\n"
+ "the macro expansion is limited to the macros specified with the PREDEFINED and\n"
+ "EXPAND_AS_DEFINED tags.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "SEARCH_INCLUDES",
+ "If the SEARCH_INCLUDES tag is set to YES the includes files in the\n"
+ "INCLUDE_PATH will be searched if a #include is found.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "INCLUDE_PATH",
+ "The INCLUDE_PATH tag can be used to specify one or more directories that\n"
+ "contain include files that are not input files but should be processed by the\n"
+ "preprocessor.\n"
+ "\n"
+ "This tag requires that the tag SEARCH_INCLUDES is set to YES."
+ );
+ doc->add(
+ "INCLUDE_FILE_PATTERNS",
+ "You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard\n"
+ "patterns (like *.h and *.hpp) to filter out the header-files in the\n"
+ "directories. If left blank, the patterns specified with FILE_PATTERNS will be\n"
+ "used.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "PREDEFINED",
+ "The PREDEFINED tag can be used to specify one or more macro names that are\n"
+ "defined before the preprocessor is started (similar to the -D option of e.g.\n"
+ "gcc). The argument of the tag is a list of macros of the form: name or\n"
+ "name=definition (no spaces). If the definition and the \"=\" are omitted, \"=1\"\n"
+ "is assumed. To prevent a macro definition from being undefined via #undef or\n"
+ "recursively expanded use the := operator instead of the = operator.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "EXPAND_AS_DEFINED",
+ "If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this\n"
+ "tag can be used to specify a list of macro names that should be expanded. The\n"
+ "macro definition that is found in the sources will be used. Use the PREDEFINED\n"
+ "tag if you want to use a different macro definition that overrules the\n"
+ "definition found in the source code.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "SKIP_FUNCTION_MACROS",
+ "If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will\n"
+ "remove all refrences to function-like macros that are alone on a line, have an\n"
+ "all uppercase name, and do not end with a semicolon. Such function macros are\n"
+ "typically used for boiler-plate code, and will confuse the parser if not\n"
+ "removed.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag ENABLE_PREPROCESSING is set to YES."
+ );
+ doc->add(
+ "TAGFILES",
+ "The TAGFILES tag can be used to specify one or more tag files. For each tag\n"
+ "file the location of the external documentation should be added. The format of\n"
+ "a tag file without this location is as follows:\n"
+ "TAGFILES = file1 file2 ...\n"
+ "Adding location for the tag files is done as follows:\n"
+ "TAGFILES = file1=loc1 \"file2 = loc2\" ...\n"
+ "where loc1 and loc2 can be relative or absolute paths or URLs. See the\n"
+ "section \"Linking to external documentation\" for more information about the use\n"
+ "of tag files.\n"
+ "Note: Each tag file must have an unique name (where the name does NOT include\n"
+ "the path). If a tag file is not located in the directory in which doxygen is\n"
+ "run, you must also specify the path to the tagfile here."
+ );
+ doc->add(
+ "GENERATE_TAGFILE",
+ "When a file name is specified after GENERATE_TAGFILE, doxygen will create a\n"
+ "tag file that is based on the input files it reads. See section \"Linking to\n"
+ "external documentation\" for more information about the usage of tag files."
+ );
+ doc->add(
+ "ALLEXTERNALS",
+ "If the ALLEXTERNALS tag is set to YES all external class will be listed in the\n"
+ "class index. If set to NO only the inherited external classes will be\n"
+ "listed.Default value: NO."
+ );
+ doc->add(
+ "EXTERNAL_GROUPS",
+ "If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in\n"
+ "the modules index. If set to NO, only the current project's groups will be\n"
+ "listed.Default value: YES."
+ );
+ doc->add(
+ "EXTERNAL_PAGES",
+ "If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in\n"
+ "the related pages index. If set to NO, only the current project's pages will\n"
+ "be listed.Default value: YES."
+ );
+ doc->add(
+ "PERL_PATH",
+ "The PERL_PATH should be the absolute path and name of the perl script\n"
+ "interpreter (i.e. the result of 'which perl').The default file (with absolute\n"
+ "path) is: /usr/bin/perl."
+ );
+ doc->add(
+ "CLASS_DIAGRAMS",
+ "If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram\n"
+ "(in HTML and LaTeX) for classes with base or super classes. Setting the tag to\n"
+ "NO turns the diagrams off. Note that this option also works with HAVE_DOT\n"
+ "disabled, but it is recommended to install and use dot, since it yields more\n"
+ "powerful graphs.Default value: YES."
+ );
+ doc->add(
+ "MSCGEN_PATH",
+ "You can define message sequence charts within doxygen comments using the \\msc\n"
+ "command. Doxygen will then run the mscgen tool (see:\n"
+ "http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the\n"
+ "documentation. The MSCGEN_PATH tag allows you to specify the directory where\n"
+ "the mscgen tool resides. If left empty the tool is assumed to be found in the\n"
+ "default search path."
+ );
+ doc->add(
+ "HIDE_UNDOC_RELATIONS",
+ "If set to YES, the inheritance and collaboration graphs will hide inheritance\n"
+ "and usage relations if the target is undocumented or is not a class.Default\n"
+ "value: YES."
+ );
+ doc->add(
+ "HAVE_DOT",
+ "If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n"
+ "available from the path. This tool is part of Graphviz (see:\n"
+ "http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent\n"
+ "Bell Labs. The other options in this section have no effect if this option is\n"
+ "set to NODefault value: NO."
+ );
+ doc->add(
+ "DOT_NUM_THREADS",
+ "The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed\n"
+ "to run in parallel. When set to 0 doxygen will base this on the number of\n"
+ "processors available in the system. You can set it explicitly to a value\n"
+ "larger than 0 to get control over the balance between CPU load and processing\n"
+ "speed. Minimum value: 0, maximum value: 32, default value: 0.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_FONTNAME",
+ "When you want a differently looking font n the dot files that doxygen\n"
+ "generates you can specify the font name using DOT_FONTNAME. You need to make\n"
+ "sure dot is able to find the font, which can be done by putting it in a\n"
+ "standard location or by setting the DOTFONTPATH environment variable or by\n"
+ "setting DOT_FONTPATH to the directory containing the font.The default value\n"
+ "is: Helvetica.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_FONTSIZE",
+ "The DOT_FONTSIZE tag can be used to set the size (in points) of the font of\n"
+ "dot graphs. Minimum value: 4, maximum value: 24, default value: 10.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_FONTPATH",
+ "By default doxygen will tell dot to use the default font as specified with\n"
+ "DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set\n"
+ "the path where dot can find it using this tag.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "CLASS_GRAPH",
+ "If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for\n"
+ "each documented class showing the direct and indirect inheritance relations.\n"
+ "Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.Default value:\n"
+ "YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "COLLABORATION_GRAPH",
+ "If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a\n"
+ "graph for each documented class showing the direct and indirect implementation\n"
+ "dependencies (inheritance, containment, and class references variables) of the\n"
+ "class with other documented classes.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "GROUP_GRAPHS",
+ "If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for\n"
+ "groups, showing the direct groups dependencies.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "UML_LOOK",
+ "If the UML_LOOK tag is set to YES doxygen will generate inheritance and\n"
+ "collaboration diagrams in a style similar to the OMG's Unified Modeling\n"
+ "Language.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "UML_LIMIT_NUM_FIELDS",
+ "If the UML_LOOK tag is enabled, the fields and methods are shown inside the\n"
+ "class node. If there are many fields or methods and many nodes the graph may\n"
+ "become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the\n"
+ "number of items for each type to make the size more manageable. Set this to 0\n"
+ "for no limit. Note that the threshold may be exceeded by 50% before the limit\n"
+ "is enforced. So when you set the threshold to 10, up to 15 fields may appear,\n"
+ "but if the number exceeds 15, the total amount of fields shown is limited to\n"
+ "10. Minimum value: 0, maximum value: 100, default value: 10.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "TEMPLATE_RELATIONS",
+ "If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and\n"
+ "collaboration graphs will show the relations between templates and their\n"
+ "instances.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "INCLUDE_GRAPH",
+ "If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to\n"
+ "YES then doxygen will generate a graph for each documented file showing the\n"
+ "direct and indirect include dependencies of the file with other documented\n"
+ "files.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "INCLUDED_BY_GRAPH",
+ "If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are\n"
+ "set to YES then doxygen will generate a graph for each documented file showing\n"
+ "the direct and indirect include dependencies of the file with other documented\n"
+ "files.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "CALL_GRAPH",
+ "If the CALL_GRAPH tag is set to YES then doxygen will generate a call\n"
+ "dependency graph for every global function or class method.\n"
+ "\n"
+ "Note that enabling this option will significantly increase the time of a run.\n"
+ "So in most cases it will be better to enable call graphs for selected\n"
+ "functions only using the \\callgraph command.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "CALLER_GRAPH",
+ "If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller\n"
+ "dependency graph for every global function or class method.\n"
+ "\n"
+ "Note that enabling this option will significantly increase the time of a run.\n"
+ "So in most cases it will be better to enable caller graphs for selected\n"
+ "functions only using the \\callergraph command.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "GRAPHICAL_HIERARCHY",
+ "If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical\n"
+ "hierarchy of all classes instead of a textual one.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DIRECTORY_GRAPH",
+ "If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the\n"
+ "dependencies a directory has on other directories in a graphical way. The\n"
+ "dependency relations are determined by the #include relations between the\n"
+ "files in the directories.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_IMAGE_FORMAT",
+ "The DOT_IMAGE_FORMAT tag can be used to set the image format of the images\n"
+ "generated by dot.\n"
+ "Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order\n"
+ "to make the SVG files visible in IE 9+ (other browsers do not have this\n"
+ "requirement).Possible values are: png, jpg, gif and svg.\n"
+ "\n"
+ "The default value is: png.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "INTERACTIVE_SVG",
+ "If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to\n"
+ "enable generation of interactive SVG images that allow zooming and panning.\n"
+ "\n"
+ "Note that this requires a modern browser other than Internet Explorer. Tested\n"
+ "and working are Firefox, Chrome, Safari, and Opera.\n"
+ "Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make\n"
+ "the SVG files visible. Older versions of IE do not have SVG support.Default\n"
+ "value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_PATH",
+ "The DOT_PATH tag can be used to specify the path where the dot tool can be\n"
+ "found. If left blank, it is assumed the dot tool can be found in the path.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOTFILE_DIRS",
+ "The DOTFILE_DIRS tag can be used to specify one or more directories that\n"
+ "contain dot files that are included in the documentation (see the \\dotfile\n"
+ "command).\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "MSCFILE_DIRS",
+ "The MSCFILE_DIRS tag can be used to specify one or more directories that\n"
+ "contain msc files that are included in the documentation (see the \\mscfile\n"
+ "command)."
+ );
+ doc->add(
+ "DOT_GRAPH_MAX_NODES",
+ "The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes\n"
+ "that will be shown in the graph. If the number of nodes in a graph becomes\n"
+ "larger than this value, doxygen will truncate the graph, which is visualized\n"
+ "by representing a node as a red box. Note that doxygen if the number of direct\n"
+ "children of the root node in a graph is already larger than\n"
+ "DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that\n"
+ "the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. Minimum\n"
+ "value: 0, maximum value: 10000, default value: 50.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "MAX_DOT_GRAPH_DEPTH",
+ "The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs\n"
+ "generated by dot. A depth value of 3 means that only nodes reachable from the\n"
+ "root by following a path via at most 3 edges will be shown. Nodes that lay\n"
+ "further from the root node will be omitted. Note that setting this option to 1\n"
+ "or 2 may greatly reduce the computation time needed for large code bases. Also\n"
+ "note that the size of a graph can be further restricted by\n"
+ "DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. Minimum\n"
+ "value: 0, maximum value: 1000, default value: 0.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_TRANSPARENT",
+ "Set the DOT_TRANSPARENT tag to YES to generate images with a transparent\n"
+ "background. This is disabled by default, because dot on Windows does not seem\n"
+ "to support this out of the box.\n"
+ "\n"
+ "Warning: Depending on the platform used, enabling this option may lead to\n"
+ "badly anti-aliased labels on the edges of a graph (i.e. they become hard to\n"
+ "read).Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_MULTI_TARGETS",
+ "Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output\n"
+ "files in one run (i.e. multiple -o and -T options on the command line). This\n"
+ "makes dot run faster, but since only newer versions of dot (>1.8.10) support\n"
+ "this, this feature is disabled by default.Default value: NO.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "GENERATE_LEGEND",
+ "If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page\n"
+ "explaining the meaning of the various boxes and arrows in the dot generated\n"
+ "graphs.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+ doc->add(
+ "DOT_CLEANUP",
+ "If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot\n"
+ "files that are used to generate the various graphs.Default value: YES.\n"
+ "\n"
+ "This tag requires that the tag HAVE_DOT is set to YES."
+ );
+}
diff --git a/addon/doxywizard/configdoc.h b/addon/doxywizard/configdoc.h
new file mode 100644
index 0000000..97ed6c3
--- /dev/null
+++ b/addon/doxywizard/configdoc.h
@@ -0,0 +1,8 @@
+#ifndef CONFIGDOC_H
+#define CONFIGDOC_H
+
+class DocIntf;
+
+void addConfigDocs(DocIntf *doc);
+
+#endif
diff --git a/addon/doxywizard/docintf.h b/addon/doxywizard/docintf.h
new file mode 100644
index 0000000..6c0ff26
--- /dev/null
+++ b/addon/doxywizard/docintf.h
@@ -0,0 +1,12 @@
+#ifndef DOCINTF_H
+#define DOCINTF_H
+
+class DocIntf
+{
+ public:
+ virtual ~DocIntf() {}
+ virtual void setHeader(const char *header) = 0;
+ virtual void add(const char *name,const char *docs) = 0;
+};
+
+#endif
diff --git a/addon/doxywizard/doxywizard.pro.in b/addon/doxywizard/doxywizard.pro.in
index 86bd38a..4ec2b0e 100644
--- a/addon/doxywizard/doxywizard.pro.in
+++ b/addon/doxywizard/doxywizard.pro.in
@@ -20,9 +20,15 @@ macx-g++ {
# Input
HEADERS += doxywizard.h version.h expert.h config.h helplabel.h \
- inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h
+ inputbool.h inputstring.h inputint.h inputstrlist.h wizard.h docintf.h
SOURCES += doxywizard.cpp ../../src/version.cpp expert.cpp wizard.cpp \
- inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp
+ inputbool.cpp inputstring.cpp inputint.cpp inputstrlist.cpp
LEXSOURCES += config.l
RESOURCES += doxywizard.qrc
win32:RC_FILE += doxywizard.rc
+
+configdoc.target = configdoc.cpp
+configdoc.commands = python ../../src/configgen.py -wiz ../../src/config.xml > configdoc.cpp
+configdoc.depends = ../../src/config.xml ../../src/configgen.py
+QMAKE_EXTRA_TARGETS += configdoc
+GENERATED_SOURCES += $$configdoc.target
diff --git a/addon/doxywizard/expert.cpp b/addon/doxywizard/expert.cpp
index e7b7507..8278641 100644
--- a/addon/doxywizard/expert.cpp
+++ b/addon/doxywizard/expert.cpp
@@ -1,16 +1,16 @@
+#include <QtGui>
+#include <QtXml>
#include "expert.h"
#include "inputbool.h"
#include "inputstring.h"
#include "inputint.h"
#include "inputstring.h"
#include "inputstrlist.h"
-#include <QtGui>
-#include <QtXml>
#include "config.h"
#include "version.h"
+#include "configdoc.h"
#include "../../src/settings.h"
-#undef SA
#define SA(x) QString::fromAscii(x)
static QString convertToComment(const QString &s)
@@ -27,6 +27,20 @@ static QString convertToComment(const QString &s)
}
}
+void Expert::setHeader(const char *header)
+{
+ m_header = SA(header);
+}
+
+void Expert::add(const char *name,const char *docs)
+{
+ Input *opt = m_options[SA(name)];
+ if (opt)
+ {
+ opt->setTemplateDocs(SA(docs));
+ }
+}
+
//------------------------------------------------------------------------------------
Expert::Expert()
@@ -53,8 +67,9 @@ Expert::Expert()
m_rootElement = configXml.documentElement();
createTopics(m_rootElement);
- m_helper = new QTextEdit;
+ m_helper = new QTextBrowser;
m_helper->setReadOnly(true);
+ m_helper->setOpenExternalLinks(TRUE);
m_splitter = new QSplitter(Qt::Vertical);
m_splitter->addWidget(m_treeWidget);
m_splitter->addWidget(m_helper);
@@ -75,6 +90,8 @@ Expert::Expert()
connect(m_next,SIGNAL(clicked()),SLOT(nextTopic()));
connect(m_prev,SIGNAL(clicked()),SLOT(prevTopic()));
+
+ addConfigDocs(this);
}
Expert::~Expert()
@@ -111,6 +128,273 @@ void Expert::createTopics(const QDomElement &rootElem)
SLOT(activateTopic(QTreeWidgetItem *,QTreeWidgetItem *)));
}
+static QString getDocsForNode(const QDomElement &child)
+{
+ QString type = child.attribute(SA("type"));
+ QString docs = SA("");
+ // read documentation text
+ QDomElement docsVal = child.firstChildElement();
+ while (!docsVal.isNull())
+ {
+ if (docsVal.tagName()==SA("docs") &&
+ docsVal.attribute(SA("doxywizard")) != SA("0"))
+ {
+ for (QDomNode n = docsVal.firstChild(); !n.isNull(); n = n.nextSibling())
+ {
+ QDomText t = n.toText();
+ if (!t.isNull()) docs+=t.data();
+ }
+ docs+=SA("<br/>");
+ }
+ docsVal = docsVal.nextSiblingElement();
+ }
+
+ // for an enum we list the values
+ if (type==SA("enum"))
+ {
+ docs += SA("Possible values are: ");
+ int numValues=0;
+ docsVal = child.firstChildElement();
+ while (!docsVal.isNull())
+ {
+ if (docsVal.tagName()==SA("value"))
+ {
+ numValues++;
+ }
+ docsVal = docsVal.nextSiblingElement();
+ }
+ int i=0;
+ docsVal = child.firstChildElement();
+ while (!docsVal.isNull())
+ {
+ if (docsVal.tagName()==SA("value"))
+ {
+ i++;
+ docs += SA("<code>") + docsVal.attribute(SA("name")) + SA("</code>");
+ QString desc = docsVal.attribute(SA("desc"));
+ if (!desc.isEmpty())
+ {
+ docs+= SA(" ")+desc;
+ }
+ if (i==numValues-1)
+ {
+ docs+=SA(" and ");
+ }
+ else if (i==numValues)
+ {
+ docs+=SA(".");
+ }
+ else
+ {
+ docs+=SA(", ");
+ }
+ }
+ docsVal = docsVal.nextSiblingElement();
+ }
+ docs+=SA("<br/>");
+ docs+=SA("The default value is: <code>")+
+ child.attribute(SA("defval"))+
+ SA("</code>.");
+ }
+ else if (type==SA("int"))
+ {
+ docs+=SA("Minimum value: ")+child.attribute(SA("minval"))+SA(", ");
+ docs+=SA("maximum value: ")+child.attribute(SA("maxval"))+SA(", ");
+ docs+=SA("default value: ")+child.attribute(SA("defval"))+SA(".");
+ }
+ else if (type==SA("bool"))
+ {
+ if (child.hasAttribute(SA("altdefval")))
+ {
+ docs+=SA("The default value is: system dependent.");
+ }
+ else
+ {
+ QString defval = child.attribute(SA("defval"));
+ docs+=SA("The default value is: <code>")+
+ (defval==SA("1")?SA("YES"):SA("NO"))+
+ SA("</code>.");
+ }
+ }
+ else if (type==SA("list"))
+ {
+ if (child.attribute(SA("format"))==SA("string"))
+ {
+ int numValues = 0;
+ docsVal = child.firstChildElement();
+ while (!docsVal.isNull())
+ {
+ if (docsVal.tagName()==SA("value"))
+ {
+ if (docsVal.attribute(SA("name"))!=SA("")) numValues++;
+ }
+ docsVal = docsVal.nextSiblingElement();
+ }
+ if (numValues>0)
+ {
+ int i = 0;
+ docsVal = child.firstChildElement();
+ while (!docsVal.isNull())
+ {
+ if (docsVal.tagName()==SA("value"))
+ {
+ i++;
+ docs += SA("<code>") + docsVal.attribute(SA("name")) + SA("</code>");
+ QString desc = docsVal.attribute(SA("desc"));
+ if (desc != SA(""))
+ {
+ docs += SA(" ") + desc;
+ }
+ if (i==numValues-1)
+ {
+ docs += SA(" and ");
+ }
+ else if (i==numValues)
+ {
+ docs += SA(".");
+ }
+ else
+ {
+ docs += SA(", ");
+ }
+ }
+ docsVal = docsVal.nextSiblingElement();
+ }
+ }
+ }
+ }
+ else if (type==SA("string"))
+ {
+ QString defval = child.attribute(SA("defval"));
+ if (child.attribute(SA("format")) == SA("dir"))
+ {
+ if (defval != SA(""))
+ {
+ docs += SA("The default directory is: <code>") + defval + SA("</code>.");
+ }
+ }
+ else if (child.attribute(SA("format")) == SA("file"))
+ {
+ QString abspath = child.attribute(SA("abspath"));
+ if (defval != SA(""))
+ {
+ if (abspath != SA("1"))
+ {
+ docs += SA("The default file is: <code>") + defval + SA("</code>.");
+ }
+ else
+ {
+ docs += SA("The default file (with absolute path) is: <code>") + defval + SA("</code>.");
+ }
+ }
+ else
+ {
+ if (abspath == SA("1"))
+ {
+ docs += SA("The file has to be specified with full path.");
+ }
+ }
+ }
+ else // if (child.attribute(SA("format")) == SA("string"))
+ {
+ if (defval != SA(""))
+ {
+ docs += SA("The default value is: <code>") + defval + SA("</code>.");
+ }
+ }
+ }
+
+ if (child.hasAttribute(SA("depends")))
+ {
+ QString dependsOn = child.attribute(SA("depends"));
+ docs += SA("<br/>");
+ docs+= SA("This tag requires that the tag \\ref cfg_");
+ docs+= dependsOn.toLower();
+ docs+= SA(" \"");
+ docs+= dependsOn.toUpper();
+ docs+= SA("\" is set to <code>YES</code>.");
+ }
+
+ // Remove / replace doxygen markup strings
+ // the regular expressions are hard to read so the intention will be given
+ QRegExp regexp;
+ // remove \n at end and replace by a space
+ regexp.setPattern(SA("\\n$"));
+ docs.replace(regexp,SA(" "));
+ // remove <br> at end
+ regexp.setPattern(SA("<br> *$"));
+ docs.replace(regexp,SA(" "));
+ // \c word -> <code>word</code>
+ regexp.setPattern(SA("\\\\c[ ]+([^ ]+) "));
+ docs.replace(regexp,SA("<code>\\1</code> "));
+ // `word` -> <code>word</code>
+ docs.replace(SA("``"),SA(""));
+ regexp.setPattern(SA("`([^`]+)`"));
+ docs.replace(regexp,SA("<code>\\1</code> "));
+ // \ref key "desc" -> <code>desc</code>
+ regexp.setPattern(SA("\\\\ref[ ]+[^ ]+[ ]+\"([^ ]+)\""));
+ docs.replace(regexp,SA("<code>\\1</code> "));
+ //\ref specials
+ // \ref <key> -> description
+ regexp.setPattern(SA("\\\\ref[ ]+doxygen_usage"));
+ docs.replace(regexp,SA("\"Doxygen usage\""));
+ regexp.setPattern(SA("\\\\ref[ ]+extsearch"));
+ docs.replace(regexp,SA("\"External Indexing and Searching\""));
+ regexp.setPattern(SA("\\\\ref[ ]+external"));
+ docs.replace(regexp,SA("\"Linking to external documentation\""));
+ // fallback for not handled
+ docs.replace(SA("\\\\ref"),SA(""));
+ // \b word -> <b>word<\b>
+ regexp.setPattern(SA("\\\\b[ ]+([^ ]+) "));
+ docs.replace(regexp,SA("<b>\\1</b> "));
+ // \e word -> <em>word<\em>
+ regexp.setPattern(SA("\\\\e[ ]+([^ ]+) "));
+ docs.replace(regexp,SA("<em>\\1</em> "));
+ // \note -> <br>Note:
+ // @note -> <br>Note:
+ docs.replace(SA("\\note"),SA("<br>Note:"));
+ docs.replace(SA("@note"),SA("<br>Note:"));
+ // \#include -> #include
+ // \#undef -> #undef
+ docs.replace(SA("\\#include"),SA("#include"));
+ docs.replace(SA("\\#undef"),SA("#undef"));
+ // -# -> <br>-
+ // " - " -> <br>-
+ docs.replace(SA("-#"),SA("<br>-"));
+ docs.replace(SA(" - "),SA("<br>-"));
+ // \verbatim -> <pre>
+ // \endverbatim -> </pre>
+ docs.replace(SA("\\verbatim"),SA("<pre>"));
+ docs.replace(SA("\\endverbatim"),SA("</pre>"));
+ // \sa -> <br>See also:
+ // \par -> <br>
+ docs.replace(SA("\\sa"),SA("<br>See also:"));
+ docs.replace(SA("\\par"),SA("<br>"));
+ // 2xbackslash -> backslash
+ // \@ -> @
+ docs.replace(SA("\\\\"),SA("\\"));
+ docs.replace(SA("\\@"),SA("@"));
+ // \& -> &
+ // \$ -> $
+ docs.replace(SA("\\&"),SA("&"));
+ docs.replace(SA("\\$"),SA("$"));
+ // \< -> &lt;
+ // \> -> &gt;
+ docs.replace(SA("\\<"),SA("&lt;"));
+ docs.replace(SA("\\>"),SA("&gt;"));
+ regexp.setPattern(SA(" (http:[^ \\)]*)([ \\)])"));
+ docs.replace(regexp,SA(" <a href=\"\\1\">\\1</a>\\2"));
+ // LaTeX name as formula -> LaTeX
+ regexp.setPattern(SA("\\\\f\\$\\\\mbox\\{\\\\LaTeX\\}\\\\f\\$"));
+ docs.replace(regexp,SA("LaTeX"));
+ // Other forula's (now just 2) so explicitely mentioned.
+ regexp.setPattern(SA("\\\\f\\$2\\^\\{\\(16\\+\\\\mbox\\{LOOKUP\\\\_CACHE\\\\_SIZE\\}\\)\\}\\\\f\\$"));
+ docs.replace(regexp,SA("2^(16+LOOKUP_CACHE_SIZE)"));
+ regexp.setPattern(SA("\\\\f\\$2\\^\\{16\\} = 65536\\\\f\\$"));
+ docs.replace(regexp,SA("2^16=65536"));
+
+ return docs.trimmed();
+}
QWidget *Expert::createTopicWidget(QDomElement &elem)
{
@@ -125,6 +409,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
{
QString type = child.attribute(SA("type"));
+ QString docs = getDocsForNode(child);
if (type==SA("bool"))
{
InputBool *boolOption =
@@ -132,7 +417,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval"))==SA("1"),
- child.attribute(SA("docs"))
+ docs
);
m_options.insert(
child.attribute(SA("id")),
@@ -163,7 +448,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
child.attribute(SA("id")),
child.attribute(SA("defval")),
mode,
- child.attribute(SA("docs")),
+ docs,
child.attribute(SA("abspath"))
);
m_options.insert(
@@ -180,12 +465,15 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
child.attribute(SA("id")),
child.attribute(SA("defval")),
InputString::StringFixed,
- child.attribute(SA("docs"))
+ docs
);
QDomElement enumVal = child.firstChildElement();
while (!enumVal.isNull())
{
- enumList->addValue(enumVal.attribute(SA("name")));
+ if (enumVal.tagName()==SA("value"))
+ {
+ enumList->addValue(enumVal.attribute(SA("name")));
+ }
enumVal = enumVal.nextSiblingElement();
}
enumList->setDefault();
@@ -203,7 +491,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
child.attribute(SA("defval")).toInt(),
child.attribute(SA("minval")).toInt(),
child.attribute(SA("maxval")).toInt(),
- child.attribute(SA("docs"))
+ docs
);
m_options.insert(
child.attribute(SA("id")),
@@ -236,7 +524,10 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
QDomElement listVal = child.firstChildElement();
while (!listVal.isNull())
{
- sl.append(listVal.attribute(SA("name")));
+ if (listVal.tagName()==SA("value"))
+ {
+ sl.append(listVal.attribute(SA("name")));
+ }
listVal = listVal.nextSiblingElement();
}
InputStrList *listOption =
@@ -245,7 +536,7 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
child.attribute(SA("id")),
sl,
mode,
- child.attribute(SA("docs"))
+ docs
);
m_options.insert(
child.attribute(SA("id")),
@@ -366,55 +657,51 @@ void Expert::loadConfig(const QString &fileName)
void Expert::saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,
bool brief)
{
- // write group header
- t << endl;
+ if (!brief)
+ {
+ t << endl;
+ }
t << "#---------------------------------------------------------------------------" << endl;
t << "# " << elem.attribute(SA("docs")) << endl;
t << "#---------------------------------------------------------------------------" << endl;
-
// write options...
QDomElement childElem = elem.firstChildElement();
while (!childElem.isNull())
{
+ QString setting = childElem.attribute(SA("setting"));
QString type = childElem.attribute(SA("type"));
QString name = childElem.attribute(SA("id"));
- QHash<QString,Input*>::const_iterator i = m_options.find(name);
- if (i!=m_options.end())
+ if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
{
- Input *option = i.value();
- if (!brief)
+ QHash<QString,Input*>::const_iterator i = m_options.find(name);
+ if (i!=m_options.end())
{
- t << endl;
- t << convertToComment(childElem.attribute(SA("docs")));
+ Input *option = i.value();
+ if (option && !brief)
+ {
+ t << endl;
+ t << convertToComment(option->templateDocs());
+ t << endl;
+ }
+ t << name.leftJustified(23) << "= ";
+ if (option)
+ {
+ option->writeValue(t,codec);
+ }
t << endl;
}
- t << name.leftJustified(23) << "= ";
- if (option)
- {
- option->writeValue(t,codec);
- }
- t << endl;
}
childElem = childElem.nextSiblingElement();
}
-
}
bool Expert::writeConfig(QTextStream &t,bool brief)
{
+ // write global header
+ t << "# Doxyfile " << versionString << endl << endl;
if (!brief)
{
- // write global header
- t << "# Doxyfile " << versionString << endl << endl; // TODO: add version
- t << "# This file describes the settings to be used by the documentation system\n";
- t << "# doxygen (www.doxygen.org) for a project\n";
- t << "#\n";
- t << "# All text after a hash (#) is considered a comment and will be ignored\n";
- t << "# The format is:\n";
- t << "# TAG = value [value, ...]\n";
- t << "# For lists items can also be appended using:\n";
- t << "# TAG += value [value, ...]\n";
- t << "# Values that contain spaces should be placed between quotes (\" \")\n";
+ t << convertToComment(m_header);
}
QTextCodec *codec = 0;
@@ -430,7 +717,10 @@ bool Expert::writeConfig(QTextStream &t,bool brief)
QDomElement childElem = m_rootElement.firstChildElement();
while (!childElem.isNull())
{
- saveTopic(t,childElem,codec,brief);
+ if (childElem.tagName()==SA("group"))
+ {
+ saveTopic(t,childElem,codec,brief);
+ }
childElem = childElem.nextSiblingElement();
}
return true;
diff --git a/addon/doxywizard/expert.h b/addon/doxywizard/expert.h
index 8d43161..2c65446 100644
--- a/addon/doxywizard/expert.h
+++ b/addon/doxywizard/expert.h
@@ -5,16 +5,18 @@
#include <QDomElement>
#include <QHash>
+#include "docintf.h"
+
class QTreeWidget;
class QTreeWidgetItem;
class QStackedWidget;
class QSettings;
-class QTextEdit;
+class QTextBrowser;
class QTextCodec;
class QPushButton;
class Input;
-class Expert : public QSplitter
+class Expert : public QSplitter, public DocIntf
{
Q_OBJECT
@@ -32,6 +34,10 @@ class Expert : public QSplitter
bool htmlOutputPresent(const QString &workingDir) const;
bool pdfOutputPresent(const QString &workingDir) const;
QString getHtmlOutputIndex(const QString &workingDir) const;
+
+ // DocIntf methods
+ void setHeader(const char *name);
+ void add(const char *name,const char *doc);
public slots:
void activateTopic(QTreeWidgetItem *,QTreeWidgetItem *);
@@ -50,7 +56,7 @@ class Expert : public QSplitter
void saveTopic(QTextStream &t,QDomElement &elem,QTextCodec *codec,bool brief);
QSplitter *m_splitter;
- QTextEdit *m_helper;
+ QTextBrowser *m_helper;
QTreeWidget *m_treeWidget;
QStackedWidget *m_topicStack;
QHash<QString,QWidget *> m_topics;
@@ -60,6 +66,7 @@ class Expert : public QSplitter
QPushButton *m_prev;
QDomElement m_rootElement;
bool m_inShowHelp;
+ QString m_header;
};
#endif
diff --git a/addon/doxywizard/input.h b/addon/doxywizard/input.h
index dd1773c..9e0a1bf 100644
--- a/addon/doxywizard/input.h
+++ b/addon/doxywizard/input.h
@@ -23,11 +23,13 @@ class Input
virtual Kind kind() const = 0;
virtual QString docs() const = 0;
virtual QString id() const = 0;
+ virtual QString templateDocs() const = 0;
virtual void addDependency(Input *option) = 0;
virtual void setEnabled(bool) = 0;
virtual void updateDependencies() = 0;
virtual void reset() = 0;
virtual void writeValue(QTextStream &t,QTextCodec *codec) = 0;
+ virtual void setTemplateDocs(const QString &docs) = 0;
};
diff --git a/addon/doxywizard/inputbool.h b/addon/doxywizard/inputbool.h
index 470127a..69a6893 100644
--- a/addon/doxywizard/inputbool.h
+++ b/addon/doxywizard/inputbool.h
@@ -36,10 +36,12 @@ class InputBool : public QObject, public Input
Kind kind() const { return Bool; }
QString docs() const { return m_docs; }
QString id() const { return m_id; }
+ QString templateDocs() const { return m_tdocs; }
void addDependency(Input *option) { m_dependencies+=option; }
void setEnabled(bool);
void updateDependencies();
void writeValue(QTextStream &t,QTextCodec *codec);
+ void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
public slots:
void reset();
@@ -64,7 +66,7 @@ class InputBool : public QObject, public Input
QList<Input*> m_dependencies;
QString m_id;
QLabel *m_lab;
-
+ QString m_tdocs;
};
#endif
diff --git a/addon/doxywizard/inputint.h b/addon/doxywizard/inputint.h
index 846b7c2..c4723be 100644
--- a/addon/doxywizard/inputint.h
+++ b/addon/doxywizard/inputint.h
@@ -39,10 +39,12 @@ class InputInt : public QObject, public Input
Kind kind() const { return Int; }
QString docs() const { return m_docs; }
QString id() const { return m_id; }
+ QString templateDocs() const { return m_tdocs; }
void addDependency(Input *) { Q_ASSERT(false); }
void setEnabled(bool);
void updateDependencies() {}
void writeValue(QTextStream &t,QTextCodec *codec);
+ void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
public slots:
void reset();
@@ -66,6 +68,7 @@ class InputInt : public QObject, public Input
QVariant m_value;
QString m_docs;
QString m_id;
+ QString m_tdocs;
};
#endif
diff --git a/addon/doxywizard/inputstring.h b/addon/doxywizard/inputstring.h
index ab2c8e2..c904dad 100644
--- a/addon/doxywizard/inputstring.h
+++ b/addon/doxywizard/inputstring.h
@@ -53,10 +53,12 @@ class InputString : public QObject, public Input
Kind kind() const { return String; }
QString docs() const { return m_docs; }
QString id() const { return m_id; }
+ QString templateDocs() const { return m_tdocs; }
void addDependency(Input *) { Q_ASSERT(false); }
void setEnabled(bool);
void updateDependencies() {}
void writeValue(QTextStream &t,QTextCodec *codec);
+ void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
public slots:
void reset();
@@ -86,6 +88,7 @@ class InputString : public QObject, public Input
QString m_docs;
QString m_id;
bool m_absPath;
+ QString m_tdocs;
};
#endif
diff --git a/addon/doxywizard/inputstrlist.h b/addon/doxywizard/inputstrlist.h
index 3a9278d..352ed5e 100644
--- a/addon/doxywizard/inputstrlist.h
+++ b/addon/doxywizard/inputstrlist.h
@@ -49,10 +49,12 @@ class InputStrList : public QObject, public Input
Kind kind() const { return StrList; }
QString docs() const { return m_docs; }
QString id() const { return m_id; }
+ QString templateDocs() const { return m_tdocs; }
void addDependency(Input *) { Q_ASSERT(false); }
void setEnabled(bool);
void updateDependencies() {}
void writeValue(QTextStream &t,QTextCodec *codec);
+ void setTemplateDocs(const QString &docs) { m_tdocs = docs; }
public slots:
void reset();
@@ -85,7 +87,7 @@ class InputStrList : public QObject, public Input
QVariant m_value;
QString m_docs;
QString m_id;
-
+ QString m_tdocs;
};
#endif