Orb/Doxygen/doc/commands.doc
changeset 0 42188c7ea2d9
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 /******************************************************************************
       
     2  *
       
     3  * 
       
     4  *
       
     5  * Copyright (C) 1997-2008 by Dimitri van Heesch.
       
     6  *
       
     7  * Permission to use, copy, modify, and distribute this software and its
       
     8  * documentation under the terms of the GNU General Public License is hereby 
       
     9  * granted. No representations are made about the suitability of this software 
       
    10  * for any purpose. It is provided "as is" without express or implied warranty.
       
    11  * See the GNU General Public License for more details.
       
    12  *
       
    13  * Documents produced by Doxygen are derivative works derived from the
       
    14  * input used in their production; they are not affected by this license.
       
    15  *
       
    16  */
       
    17 /*! \page commands Special Commands
       
    18 
       
    19 \section cmd_intro Introduction
       
    20 
       
    21 All commands in the documentation start with a backslash (<b>\\</b>) or an
       
    22 at-sign (<b>\@</b>). If you prefer you can replace all commands starting with a 
       
    23 backslash below by their counterparts that start with an at-sign.
       
    24 
       
    25 Some commands have one or more arguments. 
       
    26 Each argument has a certain range:
       
    27 <ul>
       
    28 <li>If \<sharp\> braces are used the argument is a single word.
       
    29 <li>If (round) braces are used the argument extends until the end of the line
       
    30     on which the command was found.
       
    31 <li>If {curly} braces are used the argument extends until the next paragraph.
       
    32     Paragraphs are delimited by a blank line or by a section indicator.
       
    33 </ul>
       
    34 If [square] brackets are used the argument is optional.
       
    35 
       
    36 Here is an alphabetically sorted list of all commands with references to their 
       
    37 documentation:
       
    38 \secreflist
       
    39 \refitem cmda \\a
       
    40 \refitem cmdaddindex \\addindex
       
    41 \refitem cmdaddtogroup \\addtogroup
       
    42 \refitem cmdanchor \\anchor
       
    43 \refitem cmdarg \\arg
       
    44 \refitem cmdattention \\attention
       
    45 \refitem cmdauthor \\author
       
    46 \refitem cmdb \\b
       
    47 \refitem cmdbrief \\brief
       
    48 \refitem cmdbug \\bug
       
    49 \refitem cmdc \\c
       
    50 \refitem cmdcallgraph \\callgraph
       
    51 \refitem cmdcallergraph \\callergraph
       
    52 \refitem cmdcategory \\category
       
    53 \refitem cmdclass \\class
       
    54 \refitem cmdcode \\code
       
    55 \refitem cmdcond \\cond
       
    56 \refitem cmdcopybrief \\copybrief
       
    57 \refitem cmdcopydetails \\copydetails
       
    58 \refitem cmdcopydoc \\copydoc
       
    59 \refitem cmddate \\date
       
    60 \refitem cmddef \\def
       
    61 \refitem cmddefgroup \\defgroup
       
    62 \refitem cmddeprecated \\deprecated
       
    63 \refitem cmddetails \\details
       
    64 \refitem cmddir \\dir
       
    65 \refitem cmddontinclude \\dontinclude
       
    66 \refitem cmddot \\dot
       
    67 \refitem cmddotfile \\dotfile
       
    68 \refitem cmde \\e
       
    69 \refitem cmdelse \\else
       
    70 \refitem cmdelseif \\elseif
       
    71 \refitem cmdem \\em
       
    72 \refitem cmdendcode \\endcode
       
    73 \refitem cmdendcond \\endcond
       
    74 \refitem cmdenddot \\enddot
       
    75 \refitem cmdendhtmlonly \\endhtmlonly
       
    76 \refitem cmdendif \\endif
       
    77 \refitem cmdendlatexonly \\endlatexonly
       
    78 \refitem cmdendlink \\endlink
       
    79 \refitem cmdendmanonly \\endmanonly
       
    80 \refitem cmdendmsc \\endmsc
       
    81 \refitem cmdendverbatim \\endverbatim
       
    82 \refitem cmdendxmlonly \\endxmlonly
       
    83 \refitem cmdenum \\enum
       
    84 \refitem cmdexample \\example
       
    85 \refitem cmdexception \\exception
       
    86 \refitem cmdextends \\extends
       
    87 \refitem cmdfdollar \\f\$
       
    88 \refitem cmdfbropen \\f[
       
    89 \refitem cmdfbrclose \\f]
       
    90 \refitem cmdfcurlyopen \\f{
       
    91 \refitem cmdfcurlyclose \\f}
       
    92 \refitem cmdfile \\file
       
    93 \refitem cmdfn \\fn
       
    94 \refitem cmdheaderfile \\headerfile
       
    95 \refitem cmdhideinitializer \\hideinitializer
       
    96 \refitem cmdhtmlinclude \\htmlinclude
       
    97 \refitem cmdhtmlonly \\htmlonly
       
    98 \refitem cmdif \\if
       
    99 \refitem cmdifnot \\ifnot
       
   100 \refitem cmdimage \\image
       
   101 \refitem cmdimplements \\implements
       
   102 \refitem cmdinclude \\include
       
   103 \refitem cmdincludelineno \\includelineno
       
   104 \refitem cmdingroup \\ingroup
       
   105 \refitem cmdinternal \\internal
       
   106 \refitem cmdinvariant \\invariant
       
   107 \refitem cmdinterface \\interface
       
   108 \refitem cmdlatexonly \\latexonly
       
   109 \refitem cmdli \\li
       
   110 \refitem cmdline \\line
       
   111 \refitem cmdlink \\link
       
   112 \refitem cmdmainpage \\mainpage
       
   113 \refitem cmdmanonly \\manonly
       
   114 \refitem cmdmemberof \\memberof
       
   115 \refitem cmdmsc \\msc
       
   116 \refitem cmdn \\n
       
   117 \refitem cmdname \\name
       
   118 \refitem cmdnamespace \\namespace
       
   119 \refitem cmdnosubgrouping \\nosubgrouping
       
   120 \refitem cmdnote \\note
       
   121 \refitem cmdoverload \\overload
       
   122 \refitem cmdp \\p
       
   123 \refitem cmdpackage \\package
       
   124 \refitem cmdpage \\page
       
   125 \refitem cmdpar \\par
       
   126 \refitem cmdparagraph \\paragraph
       
   127 \refitem cmdparam \\param
       
   128 \refitem cmdpost \\post
       
   129 \refitem cmdpre \\pre
       
   130 \refitem cmdprivate \\private
       
   131 \refitem cmdprivate \\privatesection
       
   132 \refitem cmdproperty \\property
       
   133 \refitem cmdprotected \\protected
       
   134 \refitem cmdprotected \\protectedsection
       
   135 \refitem cmdprotocol \\protocol
       
   136 \refitem cmdpublic \\public
       
   137 \refitem cmdpublic \\publicsection
       
   138 \refitem cmdref \\ref
       
   139 \refitem cmdrelates \\relates
       
   140 \refitem cmdrelatesalso \\relatesalso
       
   141 \refitem cmdremarks \\remarks
       
   142 \refitem cmdreturn \\return
       
   143 \refitem cmdretval \\retval
       
   144 \refitem cmdsa \\sa
       
   145 \refitem cmdsection \\section
       
   146 \refitem cmdsee \\see
       
   147 \refitem cmdshowinitializer \\showinitializer
       
   148 \refitem cmdsince \\since
       
   149 \refitem cmdskip \\skip
       
   150 \refitem cmdskipline \\skipline
       
   151 \refitem cmdstruct \\struct
       
   152 \refitem cmdsubpage \\subpage
       
   153 \refitem cmdsubsection \\subsection
       
   154 \refitem cmdsubsubsection \\subsubsection
       
   155 \refitem cmdtest \\test
       
   156 \refitem cmdthrow \\throw
       
   157 \refitem cmdtodo \\todo
       
   158 \refitem cmdtparam \\tparam
       
   159 \refitem cmdtypedef \\typedef
       
   160 \refitem cmdunion \\union
       
   161 \refitem cmduntil \\until
       
   162 \refitem cmdvar \\var
       
   163 \refitem cmdverbatim \\verbatim
       
   164 \refitem cmdverbinclude \\verbinclude
       
   165 \refitem cmdversion \\version
       
   166 \refitem cmdwarning \\warning
       
   167 \refitem cmdweakgroup \\weakgroup
       
   168 \refitem cmdxmlonly \\xmlonly
       
   169 \refitem cmdxrefitem \\xrefitem
       
   170 \refitem cmddollar \\\$
       
   171 \refitem cmdat \\\@
       
   172 \refitem cmdbackslash \\\\
       
   173 \refitem cmdamp \\\&
       
   174 \refitem cmdtilde \\~
       
   175 \refitem cmdlt \\\<
       
   176 \refitem cmdgt \\\>
       
   177 \refitem cmdhash \\\#
       
   178 \refitem cmdperc \\\%
       
   179 \refitem cmdquot \\\"
       
   180 \endsecreflist
       
   181 
       
   182 The following subsections provide a list of all commands that are recognized by
       
   183 doxygen. Unrecognized commands are treated as normal text.
       
   184 
       
   185 
       
   186 \htmlonly <center> \endhtmlonly 
       
   187 <h2>
       
   188 \htmlonly --- \endhtmlonly 
       
   189 Structural indicators
       
   190 \htmlonly --- \endhtmlonly 
       
   191 </h2>
       
   192 \htmlonly </center> \endhtmlonly
       
   193 
       
   194 \section cmdaddtogroup \\addtogroup <name> [(title)]
       
   195   \addindex \\addtogroup
       
   196   Defines a group just like \ref cmddefgroup "\\defgroup", but in contrast to
       
   197   that command using the same \<name\> more than once will not result in a warning,
       
   198   but rather one group with a merged documentation and the first title found in
       
   199   any of the commands.
       
   200 
       
   201   The title is optional, so this command can also be used to add a number of 
       
   202   entities to an existing group using \@{ and \@} like this:
       
   203 
       
   204 \verbatim
       
   205   /*! \addtogroup mygrp
       
   206    *  Additional documentation for group `mygrp'
       
   207    *  @{
       
   208    */
       
   209 
       
   210   /*!
       
   211    *  A function 
       
   212    */
       
   213   void func1()
       
   214   {
       
   215   }
       
   216 
       
   217   /*! Another function */
       
   218   void func2()
       
   219   {
       
   220   }
       
   221 
       
   222   /*! @} */
       
   223 \endverbatim
       
   224 
       
   225   \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup" and
       
   226   \ref cmdweakgroup "\\weakgroup".
       
   227 
       
   228 <hr>
       
   229 \section cmdcallgraph \\callgraph 
       
   230 
       
   231   \addindex \\callgraph
       
   232   When this command is put in a comment block of a function or method
       
   233   and \ref cfg_have_dot "HAVE_DOT" is set to YES, then doxygen will 
       
   234   generate a call graph for that function (provided the implementation of the
       
   235   function or method calls other documented functions). The call graph will 
       
   236   generated regardless of the value of \ref cfg_call_graph "CALL_GRAPH".
       
   237   \note The completeness (and correctness) of the call graph depends on the 
       
   238   doxygen code parser which is not perfect.
       
   239 
       
   240 <hr>
       
   241 \section cmdcallergraph \\callergraph 
       
   242 
       
   243   \addindex \\callergraph
       
   244   When this command is put in a comment block of a function or method
       
   245   and \ref cfg_have_dot "HAVE_DOT" is set to YES, then doxygen will 
       
   246   generate a caller graph for that function (provided the implementation of the
       
   247   function or method calls other documented functions). The caller graph will 
       
   248   generated regardless of the value of \ref cfg_caller_graph "CALLER_GRAPH".
       
   249   \note The completeness (and correctness) of the caller graph depends on the 
       
   250   doxygen code parser which is not perfect.
       
   251 
       
   252 <hr>
       
   253 \section cmdcategory \\category <name> [<header-file>] [<header-name>]
       
   254 
       
   255   \addindex \\category
       
   256   For Objective-C only: Indicates that a comment block contains documentation 
       
   257   for a class category with name \<name\>. The arguments are 
       
   258   equal to the \\class command.
       
   259 
       
   260   \sa section \ref cmdclass "\\class".
       
   261 
       
   262 <hr>
       
   263 \section cmdclass \\class <name> [<header-file>] [<header-name>]
       
   264 
       
   265   \addindex \\class
       
   266   Indicates that a comment block contains documentation for a
       
   267   class with name \<name\>. Optionally a header file and a header name 
       
   268   can be specified. If the header-file is specified, a link to a verbatim copy 
       
   269   of the header will be included in the HTML documentation. 
       
   270   The \<header-name\> argument can be used to overwrite the 
       
   271   name of the link that is used in the class documentation to something other 
       
   272   than \<header-file\>. This can be useful if the include name is not located 
       
   273   on the default include path (like \<X11/X.h\>). With the \<header-name\>
       
   274   argument you can also specify how the include statement should look like, 
       
   275   by adding either quotes or sharp brackets around the name. 
       
   276   Sharp brackets are used if just the name is given. Note that the 
       
   277   last two arguments can also specified using 
       
   278   the \ref cmdheaderfile "\\headerfile" command.
       
   279   
       
   280   \par Example: 
       
   281   \verbinclude class.h  
       
   282   \htmlonly
       
   283   Click <a href="$(DOXYGEN_DOCDIR)/examples/class/html/index.html">here</a> 
       
   284   for the corresponding HTML documentation that is generated by doxygen.
       
   285   \endhtmlonly
       
   286 
       
   287 <hr>
       
   288 \section cmddef \\def <name>
       
   289 
       
   290   \addindex \\def
       
   291   Indicates that a comment block contains documentation for a 
       
   292   \c \#define macro. 
       
   293 
       
   294   \par Example:
       
   295   \verbinclude define.h  
       
   296   \htmlonly
       
   297   Click <a href="$(DOXYGEN_DOCDIR)/examples/define/html/define_8h.html">here</a> 
       
   298   for the corresponding HTML documentation that is generated by doxygen.
       
   299   \endhtmlonly
       
   300 
       
   301 <hr>
       
   302 \section cmddefgroup \\defgroup <name> (group title)
       
   303 
       
   304   \addindex \\defgroup
       
   305   Indicates that a comment block contains documentation for a
       
   306   \ref modules "group" of classes, files or namespaces. This can be used to
       
   307   categorize classes, files or namespaces, and document those
       
   308   categories. You can also use groups as members of other groups,
       
   309   thus building a hierarchy of groups.
       
   310 
       
   311   The \<name\> argument should be a single-word identifier.
       
   312   
       
   313   \sa page \ref grouping "Grouping", sections \ref cmdingroup "\\ingroup", \ref cmdaddtogroup "\\addtogroup",
       
   314   \ref cmdweakgroup "\\weakgroup".
       
   315 
       
   316 <hr>
       
   317 \section cmddir \\dir [<path fragment>]
       
   318   
       
   319   \addindex \\dir
       
   320   Indicates that a comment block contains documentation for a directory.
       
   321   The "path fragment" argument should include the directory name and 
       
   322   enough of the path to be unique w.r.t. the other directories in the project.
       
   323   The \ref cfg_show_dirs "SHOW_DIRECTORIES" option determines whether 
       
   324   or not the directory information is shown and the
       
   325   \ref cfg_strip_from_path "STRIP_FROM_PATH" option determines what is 
       
   326   stripped from the full path before it appears in the output.
       
   327 
       
   328 <hr>
       
   329 \section cmdenum \\enum <name>
       
   330 
       
   331   \addindex \\enum
       
   332   Indicates that a comment block contains documentation for an 
       
   333   enumeration, with name \<name\>. If the enum is a member of a class and
       
   334   the documentation block is located outside the class definition,
       
   335   the scope of the class should be specified as well.
       
   336   If a comment block is located directly in front of an enum declaration,
       
   337   the \\enum comment may be omitted.
       
   338 
       
   339   \par Note:
       
   340   The type of an anonymous enum cannot be documented, but the values 
       
   341   of an anonymous enum can.
       
   342   
       
   343   \par Example:
       
   344   \verbinclude enum.h  
       
   345   \htmlonly
       
   346   Click <a href="$(DOXYGEN_DOCDIR)/examples/enum/html/class_test.html">here</a> 
       
   347   for the corresponding HTML documentation that is generated by doxygen.
       
   348   \endhtmlonly
       
   349 
       
   350 <hr>
       
   351 \section cmdexample \\example <file-name>
       
   352   
       
   353   \addindex \\example
       
   354   Indicates that a comment block contains documentation for a source code 
       
   355   example. The name of the source file is \<file-name\>. The text of
       
   356   this file will be included in the documentation, just after the 
       
   357   documentation contained in the comment block. All examples are placed
       
   358   in a list. The source code is scanned for documented members and classes.
       
   359   If any are found, the names are cross-referenced with the documentation. 
       
   360   Source files or directories can be specified using the 
       
   361   \ref cfg_example_path "EXAMPLE_PATH" 
       
   362   tag of doxygen's configuration file.
       
   363 
       
   364   If \<file-name\> itself is not unique for the set of example files specified
       
   365   by the 
       
   366   \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path
       
   367   to disambiguate it.
       
   368 
       
   369   If more that one source file is needed for the example,
       
   370   the \\include command can be used.
       
   371 
       
   372   \par Example:
       
   373   \verbinclude example.cpp
       
   374   Where the example file \c example_test.cpp looks as follows:
       
   375   \verbinclude example_test.cpp
       
   376   \htmlonly
       
   377   Click <a href="$(DOXYGEN_DOCDIR)/examples/example/html/examples.html">here</a> 
       
   378   for the corresponding HTML documentation that is generated by doxygen.
       
   379   \endhtmlonly
       
   380 
       
   381   \sa section \ref cmdinclude "\\include".
       
   382 
       
   383 <hr>
       
   384 \section cmdextends \\extends <name>
       
   385 
       
   386   \addindex \\extends
       
   387   This command can be used to manually indicate an inheritance relation,
       
   388   when the programming language does not support this concept natively
       
   389   (e.g. C).
       
   390  
       
   391   The file \c manual.c in the example directory shows how to use this command.
       
   392 
       
   393   \htmlonly
       
   394   Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> 
       
   395   for the corresponding HTML documentation that is generated by doxygen.
       
   396   \endhtmlonly
       
   397 
       
   398   \sa section \ref cmdimplements "\\implements" and section
       
   399       \ref cmdmemberof "\\memberof"
       
   400 
       
   401 <hr>
       
   402 \section cmdfile \\file [<name>]
       
   403   
       
   404   \addindex \\file
       
   405   Indicates that a comment block contains documentation for a source or 
       
   406   header file with name \<name\>. The file name may include (part of) the
       
   407   path if the file-name alone is not unique. If the file name is omitted
       
   408   (i.e. the line after \\file is left blank) then the documentation block that 
       
   409   contains the \\file command will belong to the file it is located in.
       
   410 
       
   411   \par Important:
       
   412   The documentation of global functions, variables, typedefs, and enums will 
       
   413   only be included in the output if the file they are in is documented as well.
       
   414 
       
   415   \par Example:
       
   416   \verbinclude file.h  
       
   417   \htmlonly
       
   418   Click <a href="$(DOXYGEN_DOCDIR)/examples/file/html/file_8h.html">here</a> 
       
   419   for the corresponding HTML documentation that is generated by doxygen.
       
   420   \endhtmlonly
       
   421 
       
   422   \note In the above example \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF"
       
   423   has been set to YES in the configuration file.
       
   424 
       
   425 <hr>
       
   426 \section cmdfn \\fn (function declaration)
       
   427  
       
   428   \addindex \\fn
       
   429   Indicates that a comment block contains documentation for a function
       
   430   (either global or as a member of a class). This command is \em only 
       
   431   needed if a comment block is \e not placed in front (or behind) 
       
   432   the function declaration or definition. 
       
   433   
       
   434   If your comment block \e is in front of the function 
       
   435   declaration or definition this command can (and to avoid redundancy
       
   436   should) be omitted. 
       
   437 
       
   438   A full function declaration including arguments should be specified after the
       
   439   \\fn command on a \e single line, since the argument ends at the end 
       
   440   of the line!
       
   441 
       
   442   \warning Do not use this command
       
   443   if it is not absolutely needed, since it will lead to duplication of 
       
   444   information and thus to errors.
       
   445 
       
   446   \par Example:
       
   447   \verbinclude func.h  
       
   448   \htmlonly
       
   449   Click <a href="$(DOXYGEN_DOCDIR)/examples/func/html/class_test.html">here</a> 
       
   450   for the corresponding HTML documentation that is generated by doxygen.
       
   451   \endhtmlonly
       
   452 
       
   453 
       
   454   \sa section \ref cmdvar "\\var" and \ref cmdtypedef "\\typedef".
       
   455 
       
   456 <hr>
       
   457 \section cmdheaderfile \\headerfile <header-file> [<header-name>]
       
   458 
       
   459   \addindex \\headerfile
       
   460   Intended to be used for class, struct, or union documentation, where
       
   461   the documentation is in front of the definition. The arguments of
       
   462   this command are the same as the second and third argument of 
       
   463   \ref cmdclass "\\cmdclass".
       
   464   The header-file name refers to the file that should by included by the 
       
   465   application to obtain the definition of the class, struct, or union.
       
   466   The \<header-name\> argument can be used to overwrite the 
       
   467   name of the link that is used in the class documentation to something other 
       
   468   than \<header-file\>. This can be useful if the include name is not located 
       
   469   on the default include path (like \<X11/X.h\>). 
       
   470 
       
   471   With the \<header-name\>
       
   472   argument you can also specify how the include statement should look like, 
       
   473   by adding either double quotes or sharp brackets around the name. 
       
   474   By default sharp brackets are used if just the name is given. 
       
   475 
       
   476   If a pair of double quotes is given for either the header-file or 
       
   477   header-name argument, the current file (in which the command was found) 
       
   478   will be used but with quotes. So for a comment block with a \\headerfile
       
   479   command inside a file test.h, the following three commands are equivalent:
       
   480   \verbatim
       
   481   \headerfile test.h "test.h"
       
   482   \headerfile test.h ""
       
   483   \headerfile "" \endverbatim
       
   484   To get sharp brackets you do not need to specify anything,
       
   485   but if you want to be explicit you could use any of the following:
       
   486   \verbatim
       
   487   \headerfile test.h <test.h>
       
   488   \headerfile test.h <>
       
   489   \headerfile <> \endverbatim
       
   490 
       
   491   To globally reverse the default include representation to 
       
   492   local includes you can set
       
   493   \ref cfg_force_local_includes "FORCE_LOCAL_INCLUDES" to \c YES.
       
   494 
       
   495   To disable the include information altogether set
       
   496   \ref cfg_show_include_files "SHOW_INCLUDE_FILES" to \c NO.
       
   497 
       
   498 <hr>
       
   499 \section cmdhideinitializer \\hideinitializer
       
   500 
       
   501   \addindex \\hideinitializer
       
   502   By default the value of a define and the initializer of a variable
       
   503   are displayed unless they are longer than 30 lines. By putting
       
   504   this command in a comment block of a define or variable, the 
       
   505   initializer is always hidden.
       
   506 
       
   507   \sa section \ref cmdshowinitializer "\\showinitializer".
       
   508 
       
   509 <hr>
       
   510 \section cmdimplements \\implements <name>
       
   511 
       
   512   \addindex \\implements
       
   513   This command can be used to manually indicate an inheritance relation,
       
   514   when the programming language does not support this concept natively
       
   515   (e.g. C).
       
   516  
       
   517   The file \c manual.c in the example directory shows how to use this command.
       
   518 
       
   519   \htmlonly
       
   520   Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> 
       
   521   for the corresponding HTML documentation that is generated by doxygen.
       
   522   \endhtmlonly
       
   523 
       
   524   \sa section \ref cmdextends "\\extends" and section
       
   525       \ref cmdmemberof "\\memberof"
       
   526 
       
   527 <hr>
       
   528 \section cmdingroup \\ingroup (<groupname> [<groupname> <groupname>])
       
   529 
       
   530   \addindex \\ingroup
       
   531   If the \\ingroup command is placed in a comment block of a
       
   532   class, file or namespace, then it will be added to the group or
       
   533   groups identified by \<groupname\>.
       
   534 
       
   535   \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup",
       
   536   \ref cmdaddtogroup "\\addtogroup" and \ref cmdweakgroup "\\weakgroup"
       
   537 
       
   538 <hr>
       
   539 \section cmdinterface \\interface <name> [<header-file>] [<header-name>]
       
   540 
       
   541   \addindex \\interface
       
   542   Indicates that a comment block contains documentation for an
       
   543   interface with name \<name\>. The arguments are equal to the \\class
       
   544   command.
       
   545 
       
   546   \sa section \ref cmdclass "\\class".
       
   547 
       
   548 <hr>
       
   549 \section cmdinternal \\internal
       
   550   
       
   551   \addindex \\internal
       
   552   This command writes the message `For internal use only' to the output and
       
   553   all text \e after an \c \\internal command until the end of the
       
   554   comment block or the end of the section (whichever comes first) is 
       
   555   marked as "internal". 
       
   556 
       
   557   If the \\internal command is put inside a section 
       
   558   (see for example \ref cmdsection "\\section") all subsection after the 
       
   559   command are considered to be internal as well. Only a new section at the 
       
   560   same level will be visible again. 
       
   561 
       
   562   You can use \ref cfg_internal_docs "INTERNAL_DOCS" in the config file
       
   563   to show or hide the internal documentation.
       
   564 
       
   565 <hr>
       
   566 \section cmdmainpage \\mainpage [(title)]
       
   567 
       
   568   \addindex \\mainpage
       
   569 
       
   570   If the \\mainpage command is placed in a comment block the 
       
   571   block is used to customize the index page (in HTML) or
       
   572   the first chapter (in \f$\mbox{\LaTeX}\f$). 
       
   573 
       
   574   The title argument is optional and replaces the default title that
       
   575   doxygen normally generates. If you do not want any title you can
       
   576   specify \c notitle as the argument of \\mainpage.
       
   577 
       
   578   Here is an example:
       
   579 \verbatim
       
   580 /*! \mainpage My Personal Index Page
       
   581  *
       
   582  * \section intro_sec Introduction
       
   583  *
       
   584  * This is the introduction.
       
   585  *
       
   586  * \section install_sec Installation
       
   587  *
       
   588  * \subsection step1 Step 1: Opening the box
       
   589  *  
       
   590  * etc...
       
   591  */
       
   592 \endverbatim
       
   593 
       
   594  You can refer to the main page using \\ref index (if the treeview
       
   595  is disabled, otherwise you should use \\ref main).
       
   596 
       
   597  \sa section \ref cmdsection "\\section", 
       
   598      section \ref cmdsubsection "\\subsection" and 
       
   599      section \ref cmdpage "\\page".
       
   600 
       
   601 <hr>
       
   602 \section cmdmemberof \\memberof <name>
       
   603 
       
   604   \addindex \\memberof
       
   605   This command make a function a member of a class in a similar way
       
   606   as \ref cmdrelates "\\relates" does, only with this command the function
       
   607   is represented as a real member of the class.
       
   608   This can be useful when the programming language does not support 
       
   609   the concept of member functions natively (e.g. C).
       
   610 
       
   611   It is also possible to use this command together with
       
   612   \ref cmdpublic "\\public", \ref cmdprotected "\\protected" or
       
   613   \ref cmdprivate "\\private".
       
   614  
       
   615   The file \c manual.c in the example directory shows how to use this command.
       
   616 
       
   617   \htmlonly
       
   618   Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> 
       
   619   for the corresponding HTML documentation that is generated by doxygen.
       
   620   \endhtmlonly
       
   621 
       
   622   \sa sections \ref cmdextends "\\extends", \ref cmdimplements "\\implements",
       
   623       \ref cmdpublic "\\public", \ref cmdprotected "\\protected" and
       
   624       \ref cmdprivate "\\private".
       
   625 
       
   626 <hr>
       
   627 \section cmdname \\name (header)  
       
   628 
       
   629   \addindex \\name
       
   630 
       
   631   This command turns a comment block into a header
       
   632   definition of a member group. The
       
   633   comment block should be followed by a 
       
   634   <code>//\@{ ... //\@}</code> block containing the
       
   635   members of the group.
       
   636 
       
   637   See section \ref memgroup for an example.
       
   638 
       
   639 <hr>
       
   640 \section cmdnamespace \\namespace <name> 
       
   641 
       
   642   \addindex \\namespace
       
   643   Indicates that a comment block contains documentation for a
       
   644   namespace with name \<name\>. 
       
   645   
       
   646 <hr>
       
   647 \section cmdnosubgrouping \\nosubgrouping
       
   648 
       
   649   \addindex \\nosubgrouping
       
   650   This command can be put in the documentation
       
   651   of a class. It can be used in combination with member grouping
       
   652   to avoid that doxygen puts a member group as a subgroup of a
       
   653   Public/Protected/Private/... section.
       
   654 
       
   655 <hr>
       
   656 \section cmdoverload \\overload [(function declaration)]
       
   657 
       
   658   \addindex \\overload
       
   659   This command can be used to generate the following 
       
   660   standard text for an overloaded member function:
       
   661 
       
   662    `This is an overloaded member function, provided for convenience. 
       
   663     It differs from the above function only in what argument(s) it accepts.'
       
   664 
       
   665   If the documentation for the overloaded member function is not located
       
   666   in front of the function declaration or definition, the optional 
       
   667   argument should be used to specify the correct function.
       
   668  
       
   669   Any other documentation that is inside the documentation block will
       
   670   by appended after the generated message.
       
   671 
       
   672   \par Note 1:
       
   673     You are responsible that there is indeed an
       
   674     earlier documented member that is overloaded by this one.
       
   675     To prevent that document reorders the documentation you should set
       
   676     \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" to NO in this case.
       
   677   \par Note 2:
       
   678     The \\overload command does not work inside a one-line comment.
       
   679   \par Example:
       
   680   \verbinclude examples/overload.cpp
       
   681   \htmlonly
       
   682   Click <a href="$(DOXYGEN_DOCDIR)/examples/overload/html/class_test.html">here</a> 
       
   683   for the corresponding HTML documentation that is generated by doxygen.
       
   684   \endhtmlonly
       
   685 
       
   686 <hr>
       
   687 \section cmdpackage \\package <name>
       
   688   
       
   689   \addindex \\package
       
   690   Indicates that a comment block contains documentation for a
       
   691   Java package with name \<name\>. 
       
   692 
       
   693 <hr>
       
   694 \section cmdpage \\page <name> (title)
       
   695 
       
   696   \addindex \\page
       
   697   Indicates that a comment block contains a piece of documentation that is
       
   698   not directly related to one specific class, file or member. 
       
   699   The HTML generator creates a page containing the documentation. The
       
   700   \f$\mbox{\LaTeX}\f$ generator 
       
   701   starts a new section in the chapter `Page documentation'.
       
   702   
       
   703   \par Example:
       
   704   \verbinclude page.doc  
       
   705   \htmlonly
       
   706   Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a> 
       
   707   for the corresponding HTML documentation that is generated by doxygen.
       
   708   \endhtmlonly
       
   709 
       
   710   \par Note: 
       
   711      The \<name\> argument consists of a combination of letters and number
       
   712      digits. If you wish to use upper case letters (e.g. \c MYPAGE1), or 
       
   713      mixed case letters (e.g. \c MyPage1) in the \<name\> argument, you 
       
   714      should set \c CASE_SENSE_NAMES to \c YES. However, this is advisable 
       
   715      only if your file system is case sensitive. Otherwise (and for better 
       
   716      portability) you should use all lower case letters (e.g. \c mypage1) 
       
   717      for \<name\> in all references to the page.
       
   718   
       
   719   \sa section \ref cmdsection "\\section", section 
       
   720               \ref cmdsubsection "\\subsection", and section 
       
   721               \ref cmdref "\\ref".
       
   722 
       
   723 <hr>
       
   724 \section cmdprivate \\private
       
   725 
       
   726   \addindex \\private
       
   727   \addindex \\privatesection
       
   728   Indicates that the member documented in the comment block is private,
       
   729   i.e., should only be accessed by other members in the same class.
       
   730 
       
   731   Note that Doxygen automatically detects the protection level of members
       
   732   in object-oriented languages. This command is intended for use only when
       
   733   the language does not support the concept of protection level natively
       
   734   (e.g. C, PHP 4).
       
   735 
       
   736   For starting a section of private members, in a way similar to the
       
   737   "private:" class marker in C++, use \\privatesection.
       
   738 
       
   739   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
       
   740       and \ref cmdprotected "\\protected".
       
   741 
       
   742 <hr>
       
   743 \section cmdproperty \\property (qualified property name)
       
   744 
       
   745   \addindex \\property
       
   746   Indicates that a comment block contains documentation for a
       
   747   property (either global or as a member of a class). 
       
   748   This command is equivalent to \\var and \\fn.
       
   749 
       
   750   \sa section \ref cmdfn "\\fn" and \ref cmdvar "\\var".
       
   751 
       
   752 <hr>
       
   753 \section cmdprotected \\protected
       
   754 
       
   755   \addindex \\protected
       
   756   \addindex \\protectedsection
       
   757   Indicates that the member documented in the comment block is protected,
       
   758   i.e., should only be accessed by other members in the same or derived
       
   759   classes.
       
   760 
       
   761   Note that Doxygen automatically detects the protection level of members
       
   762   in object-oriented languages. This command is intended for use only when
       
   763   the language does not support the concept of protection level natively
       
   764   (e.g. C, PHP 4).
       
   765 
       
   766   For starting a section of protected members, in a way similar to the
       
   767   "protected:" class marker in C++, use \\protectedsection.
       
   768 
       
   769   \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public",
       
   770       and \ref cmdprivate "\\private".
       
   771 
       
   772 <hr>
       
   773 \section cmdprotocol \\protocol <name> [<header-file>] [<header-name>]
       
   774 
       
   775   \addindex \\protocol
       
   776   Indicates that a comment block contains documentation for a
       
   777   protocol in Objective-C with name \<name\>. The arguments are equal 
       
   778   to the \\class command.
       
   779 
       
   780   \sa section \ref cmdclass "\\class".
       
   781 
       
   782 <hr>
       
   783 \section cmdpublic \\public
       
   784 
       
   785   \addindex \\public
       
   786   \addindex \\publicsection
       
   787   Indicates that the member documented in the comment block is public,
       
   788   i.e., can be accessed by any other class or function.
       
   789 
       
   790   Note that Doxygen automatically detects the protection level of members
       
   791   in object-oriented languages. This command is intended for use only when
       
   792   the language does not support the concept of protection level natively
       
   793   (e.g. C, PHP 4).
       
   794 
       
   795   For starting a section of public members, in a way similar to the
       
   796   "public:" class marker in C++, use \\publicsection.
       
   797 
       
   798   \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected"
       
   799       and \ref cmdprivate "\\private".
       
   800 
       
   801 <hr>
       
   802 \section cmdrelates \\relates <name>
       
   803 
       
   804   \addindex \\relates
       
   805   This command can be used in the documentation of a non-member function
       
   806   \<name\>. It puts the function inside the `related function' section 
       
   807   of the class documentation. This command is useful for documenting 
       
   808   non-friend functions that are nevertheless strongly coupled to a certain
       
   809   class. It prevents the need of having to document a file, but
       
   810   only works for functions.  
       
   811 
       
   812   \par Example:
       
   813   \verbinclude relates.cpp  
       
   814   \htmlonly
       
   815   Click <a href="$(DOXYGEN_DOCDIR)/examples/relates/html/class_string.html">here</a> 
       
   816   for the corresponding HTML documentation that is generated by doxygen.
       
   817   \endhtmlonly
       
   818 
       
   819 <hr>
       
   820 \section cmdrelatesalso \\relatesalso <name>
       
   821 
       
   822   \addindex \\relatesalso
       
   823   This command can be used in the documentation of a non-member function
       
   824   \<name\>. It puts the function both inside the `related function' section 
       
   825   of the class documentation as well as leaving its normal file documentation
       
   826   location. This command is useful for documenting 
       
   827   non-friend functions that are nevertheless strongly coupled to a certain
       
   828   class. It only works for functions.  
       
   829 
       
   830 <hr>
       
   831 \section cmdshowinitializer \\showinitializer
       
   832 
       
   833   \addindex \\showinitializer
       
   834   By default the value of a define and the initializer of a variable
       
   835   are only displayed if they are less than 30 lines long. By putting
       
   836   this command in a comment block of a define or variable, the 
       
   837   initializer is shown unconditionally.
       
   838 
       
   839   \sa section \ref cmdhideinitializer "\\hideinitializer".
       
   840 
       
   841 <hr>
       
   842 \section cmdstruct \\struct <name> [<header-file>] [<header-name>]
       
   843 
       
   844   \addindex \\struct
       
   845   Indicates that a comment block contains documentation for a
       
   846   struct with name \<name\>. The arguments are equal to the \\class
       
   847   command.
       
   848 
       
   849   \sa section \ref cmdclass "\\class".
       
   850 
       
   851 <hr>
       
   852 \section cmdtypedef \\typedef (typedef declaration)
       
   853 
       
   854   \addindex \\typedef
       
   855   Indicates that a comment block contains documentation for a
       
   856   typedef (either global or as a member of a class). 
       
   857   This command is equivalent to \\var and \\fn.
       
   858 
       
   859   \sa section \ref cmdfn "\\fn" and \ref cmdvar "\\var".
       
   860 
       
   861 <hr>
       
   862 \section cmdunion \\union <name> [<header-file>] [<header-name>]
       
   863 
       
   864   \addindex \\union
       
   865   Indicates that a comment block contains documentation for a
       
   866   union with name \<name\>. The arguments are equal to the \\class
       
   867   command.
       
   868 
       
   869   \sa section \ref cmdclass "\\class".
       
   870 
       
   871 <hr>
       
   872 \section cmdvar \\var (variable declaration)
       
   873 
       
   874   \addindex \\var
       
   875   Indicates that a comment block contains documentation for a variable or
       
   876   enum value (either global or as a member of a class). 
       
   877   This command is equivalent to \\typedef and \\fn.
       
   878 
       
   879   \sa section \ref cmdfn "\\fn" and \ref cmdtypedef "\\typedef".
       
   880 
       
   881 <hr>
       
   882 \section cmdweakgroup \\weakgroup <name> [(title)]
       
   883   \addindex \\addtogroup
       
   884   Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has
       
   885   a lower priority when it comes to resolving conflicting grouping
       
   886   definitions.
       
   887 
       
   888   \sa page \ref grouping "Grouping" and \ref cmdaddtogroup "\\addtogroup".
       
   889 
       
   890 <hr>
       
   891 
       
   892 \htmlonly <center> \endhtmlonly 
       
   893 <h2>
       
   894 \htmlonly --- \endhtmlonly 
       
   895 Section indicators
       
   896 \htmlonly --- \endhtmlonly 
       
   897 </h2>
       
   898 \htmlonly </center>\endhtmlonly
       
   899 
       
   900 <hr>
       
   901 \section cmdattention \\attention { attention text }
       
   902 
       
   903   \addindex \\attention
       
   904   Starts a paragraph where a message that needs attention may be entered. 
       
   905   The paragraph will be indented. 
       
   906   The text of the paragraph has no special internal structure. All visual
       
   907   enhancement commands may be used inside the paragraph.
       
   908   Multiple adjacent \\attention commands will be joined into a single paragraph.
       
   909   The \\attention command ends when a blank line or some other 
       
   910   sectioning command is encountered. 
       
   911 
       
   912 <hr>
       
   913 \section cmdauthor \\author { list of authors }
       
   914 
       
   915   \addindex \\author
       
   916   Starts a paragraph where one or more author names may be entered. 
       
   917   The paragraph will be indented. 
       
   918   The text of the paragraph has no special internal structure. All visual
       
   919   enhancement commands may be used inside the paragraph.
       
   920   Multiple adjacent \\author commands will be joined into a single paragraph.
       
   921   Each author description will start a new line. Alternatively, one \\author command 
       
   922   may mention several authors. The \\author command ends when a blank line or some other 
       
   923   sectioning command is encountered.
       
   924 
       
   925   \par Example:
       
   926   \verbinclude author.cpp  
       
   927   \htmlonly
       
   928   Click <a href="$(DOXYGEN_DOCDIR)/examples/author/html/class_windows_n_t.html">here</a> 
       
   929   for the corresponding HTML documentation that is generated by doxygen.
       
   930   \endhtmlonly
       
   931 
       
   932 <hr>
       
   933 \section cmdbrief \\brief {brief description}
       
   934 
       
   935   \addindex \\brief
       
   936   Starts a paragraph that serves as a brief description. For classes and files
       
   937   the brief description will be used in lists and at the start of the
       
   938   documentation page. For class and file members, the brief description
       
   939   will be placed at the declaration of the member and prepended to the
       
   940   detailed description. A brief description may span several lines (although
       
   941   it is advised to keep it brief!). A brief description ends when a 
       
   942   blank line or another sectioning command is encountered. If multiple
       
   943   \\brief commands are present they will be joined. See section 
       
   944   \ref cmdauthor "\\author" for an example. 
       
   945 
       
   946   Synonymous to \\short.
       
   947  
       
   948 <hr>
       
   949 \section cmdbug \\bug { bug description }
       
   950 
       
   951   \addindex \\bug
       
   952   Starts a paragraph where one or more bugs may be reported. 
       
   953   The paragraph will be indented. 
       
   954   The text of the paragraph has no special internal structure. All visual
       
   955   enhancement commands may be used inside the paragraph.
       
   956   Multiple adjacent \\bug commands will be joined into a single paragraph.
       
   957   Each bug description will start on a new line.
       
   958   Alternatively, one \\bug command may mention 
       
   959   several bugs. The \\bug command ends when a blank line or some other 
       
   960   sectioning command is encountered. See section \ref cmdauthor "\\author"
       
   961   for an example.
       
   962 
       
   963 <hr>
       
   964 \section cmdcond \\cond [<section-label>]
       
   965 
       
   966   \addindex \\cond
       
   967   Starts a conditional section that ends with a corresponding 
       
   968   \ref cmdendcond "\\endcond" command, which is typically found in 
       
   969   another comment block. The main purpose of this pair of
       
   970   commands is to (conditionally) exclude part of a file from processing
       
   971   (in older version of doxygen this could only be achieved using C preprocessor commands). 
       
   972 
       
   973   The section between \\cond and \\endcond commands can be included by
       
   974   adding its section label to the \ref cfg_enabled_sections "ENABLED_SECTIONS"
       
   975   configuration option. If the section label is omitted, the section will
       
   976   be excluded from processing unconditionally.
       
   977 
       
   978   For conditional sections within a comment block one should 
       
   979   use a \ref cmdif "\\if" ... \ref cmdendif "\\endif" block.
       
   980 
       
   981   Conditional sections can be nested. In this case a nested section will only
       
   982   be shown if it and its containing section are included.
       
   983 
       
   984   Here is an example showing the commands in action:
       
   985 
       
   986 \verbatim
       
   987 /** An interface */
       
   988 class Intf
       
   989 {
       
   990   public:
       
   991     /** A method */
       
   992     virtual void func() = 0;
       
   993 
       
   994     /// @cond TEST
       
   995 
       
   996     /** A method used for testing */
       
   997     virtual void test() = 0;
       
   998 
       
   999     /// @endcond
       
  1000 };
       
  1001 
       
  1002 /// @cond DEV
       
  1003 /*
       
  1004  *  The implementation of the interface 
       
  1005  */
       
  1006 class Implementation : public Intf
       
  1007 {
       
  1008   public:
       
  1009     void func();
       
  1010 
       
  1011     /// @cond TEST
       
  1012     void test();
       
  1013     /// @endcond
       
  1014 
       
  1015     /// @cond
       
  1016     /** This method is obsolete and does
       
  1017      *  not show up in the documentation.
       
  1018      */
       
  1019     void obsolete();
       
  1020     /// @endcond
       
  1021 };
       
  1022 
       
  1023 /// @endcond 
       
  1024 \endverbatim
       
  1025 
       
  1026 The output will be different depending on whether or not \c ENABLED_SECTIONS
       
  1027 contains \c TEST, or \c DEV
       
  1028 
       
  1029 <hr>
       
  1030 \section cmddate \\date { date description }
       
  1031 
       
  1032   \addindex \\date
       
  1033   Starts a paragraph where one or more dates may be entered. 
       
  1034   The paragraph will be indented. 
       
  1035   The text of the paragraph has no special internal structure. All visual
       
  1036   enhancement commands may be used inside the paragraph.
       
  1037   Multiple adjacent \\date commands will be joined into a single paragraph.
       
  1038   Each date description will start on a new line.
       
  1039   Alternatively, one \\date command may mention 
       
  1040   several dates. The \\date command ends when a blank line or some other 
       
  1041   sectioning command is encountered. See section \ref cmdauthor "\\author" 
       
  1042   for an example.
       
  1043 
       
  1044 <hr>
       
  1045 \section cmddeprecated \\deprecated { description }
       
  1046 
       
  1047   \addindex \\deprecated
       
  1048   Starts a paragraph indicating that this documentation block belongs to
       
  1049   a deprecated entity. Can be used to describe alternatives, 
       
  1050   expected life span, etc.
       
  1051 
       
  1052 <hr>
       
  1053 \section cmddetails \\details {detailed decription}
       
  1054 
       
  1055   \addindex \\details
       
  1056   Just like \ref cmdbrief "\\brief" starts a brief description, \\details
       
  1057   starts the detailed description. You can also start a new paragraph (blank line)
       
  1058   then the \\details command is not needed.
       
  1059 
       
  1060 <hr>
       
  1061 \section cmdelse \\else 
       
  1062 
       
  1063   \addindex \\else
       
  1064   Starts a conditional section if the previous conditional section 
       
  1065   was not enabled. The previous section should have been started with 
       
  1066   a \c \\if, \c \\ifnot, or \c \\elseif command.
       
  1067 
       
  1068   \sa \ref cmdif "\\if", \ref cmdifnot "\\ifnot", \ref cmdelseif "\\elseif",
       
  1069       \ref cmdendif "\\endif."
       
  1070 
       
  1071 <hr>
       
  1072 \section cmdelseif \\elseif <section-label>
       
  1073 
       
  1074   \addindex \\elseif
       
  1075   Starts a conditional documentation section if the previous section 
       
  1076   was not enabled. A conditional section is
       
  1077   disabled by default. To enable it you must put the
       
  1078   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" 
       
  1079   tag in the configuration
       
  1080   file. Conditional blocks can be nested. A nested section is
       
  1081   only enabled if all enclosing sections are enabled as well.
       
  1082 
       
  1083   \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot", 
       
  1084               \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
       
  1085 
       
  1086 <hr>
       
  1087 \section cmdendcond \\endcond
       
  1088 
       
  1089   \addindex \\endcond
       
  1090   Ends a conditional section that was started by \ref cmdcond "\\cond".
       
  1091 
       
  1092   \sa \ref cmdcond "\\cond".
       
  1093 
       
  1094 <hr>
       
  1095 \section cmdendif \\endif 
       
  1096 
       
  1097   \addindex \\endif
       
  1098   Ends a conditional section that was started by \c \\if or \c \\ifnot
       
  1099   For each \c \\if or \c \\ifnot one and only one matching \c \\endif must follow.
       
  1100 
       
  1101   \sa \ref cmdif "\\if", and \ref cmdifnot "\\ifnot".
       
  1102 
       
  1103 <hr>
       
  1104 \section cmdexception \\exception <exception-object> { exception description }
       
  1105 
       
  1106   \addindex \\exception
       
  1107   Starts an exception description for an exception object with name 
       
  1108   \<exception-object\>. Followed by a description of the exception. 
       
  1109   The existence of the exception object is not checked.
       
  1110   The text of the paragraph has no special internal structure. All visual
       
  1111   enhancement commands may be used inside the paragraph.
       
  1112   Multiple adjacent \\exception commands will be joined into a single paragraph.
       
  1113   Each parameter description will start on a new line.
       
  1114   The \\exception description ends when a blank line or some other 
       
  1115   sectioning command is encountered. See section \ref cmdfn "\\fn" for an 
       
  1116   example.
       
  1117 
       
  1118   \par Note: 
       
  1119   the tag \\exceptions is a synonym for this tag.
       
  1120 
       
  1121 <hr>
       
  1122 \section cmdif \\if <section-label>
       
  1123 
       
  1124   \addindex \\if
       
  1125   Starts a conditional documentation section. The section ends 
       
  1126   with a matching \c \\endif command. A conditional section is
       
  1127   disabled by default. To enable it you must put the
       
  1128   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" 
       
  1129   tag in the configuration
       
  1130   file. Conditional blocks can be nested. A nested section is
       
  1131   only enabled if all enclosing sections are enabled as well.
       
  1132 
       
  1133   \par Example:
       
  1134 \verbatim
       
  1135   /*! Unconditionally shown documentation.
       
  1136    *  \if Cond1
       
  1137    *    Only included if Cond1 is set.
       
  1138    *  \endif
       
  1139    *  \if Cond2
       
  1140    *    Only included if Cond2 is set.
       
  1141    *    \if Cond3
       
  1142    *      Only included if Cond2 and Cond3 are set.
       
  1143    *    \endif
       
  1144    *    More text.
       
  1145    *  \endif
       
  1146    *  Unconditional text.
       
  1147    */
       
  1148 \endverbatim  
       
  1149 
       
  1150   You can also use conditional commands inside aliases. To 
       
  1151   document a class in two languages you could for instance use:
       
  1152 
       
  1153 \par Example 2:
       
  1154 \verbatim
       
  1155 /*! \english
       
  1156  *  This is English.
       
  1157  *  \endenglish
       
  1158  *  \dutch
       
  1159  *  Dit is Nederlands.
       
  1160  *  \enddutch
       
  1161  */
       
  1162 class Example
       
  1163 {
       
  1164 };
       
  1165 \endverbatim
       
  1166 
       
  1167   Where the following aliases are defined in the configuration file:
       
  1168 
       
  1169 \verbatim
       
  1170 ALIASES  = "english=\if english" \
       
  1171            "endenglish=\endif" \
       
  1172            "dutch=\if dutch" \
       
  1173            "enddutch=\endif"
       
  1174 \endverbatim
       
  1175 
       
  1176   and \c ENABLED_SECTIONS can be used to enable either \c english or \c dutch.
       
  1177 
       
  1178   \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot", 
       
  1179               \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
       
  1180 
       
  1181 <hr>
       
  1182 \section cmdifnot \\ifnot <section-label>
       
  1183 
       
  1184   \addindex \\ifnot
       
  1185   Starts a conditional documentation section. The section ends 
       
  1186   with a matching \c \\endif command. This conditional section is
       
  1187   enabled by default. To disable it you must put the
       
  1188   section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" 
       
  1189   tag in the configuration
       
  1190   file. 
       
  1191 
       
  1192   \sa sections \ref cmdendif "\\endif", \ref cmdif "\\if", 
       
  1193               \ref cmdelse "\\else", and \ref cmdelseif "\\elseif".
       
  1194 
       
  1195 <hr>
       
  1196 \section cmdinvariant \\invariant { description of invariant }
       
  1197 
       
  1198   \addindex \\invariant
       
  1199   Starts a paragraph where the invariant of an entity can be described.
       
  1200   The paragraph will be indented. 
       
  1201   The text of the paragraph has no special internal structure. All visual
       
  1202   enhancement commands may be used inside the paragraph.
       
  1203   Multiple adjacent \\invariant commands will be joined into a single paragraph.
       
  1204   Each invariant description will start on a new line.
       
  1205   Alternatively, one \\invariant command may mention 
       
  1206   several invariants. The \\invariant command ends when a blank line or some other 
       
  1207   sectioning command is encountered.
       
  1208 
       
  1209 <hr>
       
  1210 \section cmdnote \\note { text }
       
  1211 
       
  1212   \addindex \\note
       
  1213   Starts a paragraph where a note can be entered. The paragraph will be 
       
  1214   indented. The text of the paragraph has no special internal structure. 
       
  1215   All visual enhancement commands may be used inside the paragraph.
       
  1216   Multiple adjacent \\note commands will be joined into a single paragraph.
       
  1217   Each note description will start on a new line.
       
  1218   Alternatively, one \\note command may mention 
       
  1219   several notes. The \\note command ends when a blank line or some other 
       
  1220   sectioning command is encountered. See section \ref cmdpar "\\par" 
       
  1221   for an example.
       
  1222 
       
  1223 <hr>
       
  1224 \section cmdpar \\par [(paragraph title)] { paragraph }
       
  1225 
       
  1226   \addindex \\par
       
  1227   If a paragraph title is given this command starts a paragraph with a 
       
  1228   user defined heading. The heading extends until the end of the
       
  1229   line. The paragraph following the command will be indented.
       
  1230 
       
  1231   If no paragraph title is given this command will start a new paragraph.
       
  1232   This will also work inside other paragraph commands 
       
  1233   (like \\param or \\warning) without ending the that command. 
       
  1234  
       
  1235   The text of the paragraph has no special internal structure. All visual
       
  1236   enhancement commands may be used inside the paragraph.
       
  1237   The \\par command ends when a blank line or some other 
       
  1238   sectioning command is encountered. 
       
  1239 
       
  1240   \par Example:
       
  1241   \verbinclude par.cpp  
       
  1242   \htmlonly
       
  1243   Click <a href="$(DOXYGEN_DOCDIR)/examples/par/html/class_test.html">here</a> 
       
  1244   for the corresponding HTML documentation that is generated by doxygen.
       
  1245   \endhtmlonly
       
  1246 
       
  1247 <hr>
       
  1248 \section cmdparam \\param <parameter-name> { parameter description }
       
  1249 
       
  1250   \addindex \\param
       
  1251   Starts a parameter description for a function parameter with name 
       
  1252   \<parameter-name\>, followed by a description of the parameter. 
       
  1253   The existence of the parameter is checked and a warning is given if
       
  1254   the documentation of this (or any other) parameter is missing or not
       
  1255   present in the function declaration or definition.
       
  1256 
       
  1257   The \\param command has an optional attribute specifying the direction
       
  1258   of the attribute. Possible values are "in" and "out". Here is an example
       
  1259   for the function memcpy:
       
  1260   \code
       
  1261 /*!
       
  1262  * Copies bytes from a source memory area to a destination memory area,
       
  1263  * where both areas may not overlap.
       
  1264  * @param[out] dest The memory area to copy to.
       
  1265  * @param[in]  src  The memory area to copy from.
       
  1266  * @param[in]  n    The number of bytes to copy
       
  1267  */
       
  1268 void memcpy(void *dest, const void *src, size_t n);
       
  1269   \endcode
       
  1270   If a parameter is both input and output, use [in,out] as an attribute.
       
  1271 
       
  1272   The parameter description is a paragraph with no special internal structure. 
       
  1273   All visual enhancement commands may be used inside the paragraph.
       
  1274 
       
  1275   Multiple adjacent \\param commands will be joined into a single paragraph.
       
  1276   Each parameter description will start on a new line.
       
  1277   The \\param description ends when a blank line or some other 
       
  1278   sectioning command is encountered. See section \ref cmdfn "\\fn" for an 
       
  1279   example.
       
  1280 
       
  1281 <hr>
       
  1282 \section cmdtparam \\tparam <template-parameter-name> { description }
       
  1283 
       
  1284   \addindex \\tparam
       
  1285   Starts a template parameters for a class or function template parameter
       
  1286   with name \<template-parameter-name\>, followed by a description of the
       
  1287   template parameter.
       
  1288 
       
  1289   Otherwise similar to \ref cmdparam "\\cmdparam".
       
  1290 
       
  1291 <hr>
       
  1292 \section cmdpost \\post { description of the postcondition }
       
  1293 
       
  1294   \addindex \\post
       
  1295   Starts a paragraph where the postcondition of an entity can be described.
       
  1296   The paragraph will be indented. 
       
  1297   The text of the paragraph has no special internal structure. All visual
       
  1298   enhancement commands may be used inside the paragraph.
       
  1299   Multiple adjacent \\post commands will be joined into a single paragraph.
       
  1300   Each postcondition will start on a new line.
       
  1301   Alternatively, one \\post command may mention 
       
  1302   several postconditions. The \\post command ends when a blank line or some other 
       
  1303   sectioning command is encountered.
       
  1304 
       
  1305 <hr>
       
  1306 \section cmdpre \\pre { description of the precondition }
       
  1307 
       
  1308   \addindex \\pre
       
  1309   Starts a paragraph where the precondition of an entity can be described.
       
  1310   The paragraph will be indented. 
       
  1311   The text of the paragraph has no special internal structure. All visual
       
  1312   enhancement commands may be used inside the paragraph.
       
  1313   Multiple adjacent \\pre commands will be joined into a single paragraph.
       
  1314   Each precondition will start on a new line.
       
  1315   Alternatively, one \\pre command may mention 
       
  1316   several preconditions. The \\pre command ends when a blank line or some other 
       
  1317   sectioning command is encountered.
       
  1318   
       
  1319 <hr>
       
  1320 \section cmdremarks \\remarks { remark text }
       
  1321 
       
  1322   \addindex \\remarks
       
  1323   Starts a paragraph where one or more remarks may be entered. 
       
  1324   The paragraph will be indented. 
       
  1325   The text of the paragraph has no special internal structure. All visual
       
  1326   enhancement commands may be used inside the paragraph.
       
  1327   Multiple adjacent \\remark commands will be joined into a single paragraph.
       
  1328   Each remark will start on a new line.
       
  1329   Alternatively, one \\remark command may mention 
       
  1330   several remarks. The \\remark command ends when a blank line or some other 
       
  1331   sectioning command is encountered. 
       
  1332 
       
  1333 <hr>
       
  1334 \section cmdreturn \\return { description of the return value }
       
  1335 
       
  1336   \addindex \\return
       
  1337   Starts a return value description for a function. 
       
  1338   The text of the paragraph has no special internal structure. All visual
       
  1339   enhancement commands may be used inside the paragraph.
       
  1340   Multiple adjacent \\return commands will be joined into a single paragraph.
       
  1341   The \\return description ends when a blank line or some other 
       
  1342   sectioning command is encountered. See section \ref cmdfn "\\fn" for an 
       
  1343   example.
       
  1344   
       
  1345 <hr>
       
  1346 \section cmdretval \\retval <return value> { description }
       
  1347 
       
  1348   \addindex \\retval
       
  1349   Starts a return value description for a function with name 
       
  1350   \<return value\>. Followed by a description of the return value. 
       
  1351   The text of the paragraph that forms the description has no special
       
  1352   internal structure. All visual enhancement commands may be used inside the 
       
  1353   paragraph.
       
  1354   Multiple adjacent \\retval commands will be joined into a single paragraph.
       
  1355   Each return value description will start on a new line.
       
  1356   The \\retval description ends when a blank line or some other 
       
  1357   sectioning command is encountered. 
       
  1358 
       
  1359 <hr>
       
  1360 \section cmdsa \\sa { references }
       
  1361 
       
  1362   \addindex \\sa
       
  1363   Starts a paragraph where one or more cross-references to classes, 
       
  1364   functions, methods, variables, files or URL may be specified.
       
  1365   Two names joined by either <code>::</code> or <code>\#</code> 
       
  1366   are understood as referring to a class and one of its members. 
       
  1367   One of several overloaded methods or constructors 
       
  1368   may be selected by including a parenthesized list of argument types after 
       
  1369   the method name. 
       
  1370 
       
  1371   Synonymous to \\see.
       
  1372 
       
  1373   \sa section \ref autolink "autolink" for information on how to create links 
       
  1374       to objects.
       
  1375 
       
  1376 <hr>
       
  1377 \section cmdsee \\see { references }
       
  1378 
       
  1379   \addindex \\see
       
  1380   Equivalent to \ref cmdsa "\\sa". Introduced for compatibility with Javadoc.
       
  1381 
       
  1382 <hr>
       
  1383 \section cmdsince \\since { text }
       
  1384 
       
  1385   \addindex \\since
       
  1386   This tag can be used to specify since when (version or time) an
       
  1387   entity is available. The paragraph that follows \\since does not have any
       
  1388   special internal structure. All visual enhancement commands may be 
       
  1389   used inside the paragraph. The \\since description ends when a blank 
       
  1390   line or some other sectioning command is encountered. 
       
  1391 
       
  1392 <hr>
       
  1393 \section cmdtest \\test { paragraph describing a test case }
       
  1394 
       
  1395   \addindex \\test
       
  1396   Starts a paragraph where a test case can be described. 
       
  1397   The description will also add the test case to a separate test list. 
       
  1398   The two instances of the description will be cross-referenced.
       
  1399   Each test case in the test list will be preceded by a header that
       
  1400   indicates the origin of the test case.
       
  1401 
       
  1402 <hr>
       
  1403 \section cmdthrow \\throw <exception-object> { exception description }
       
  1404 
       
  1405   \addindex \\throw
       
  1406   Synonymous to \\exception (see section \ref cmdexception "\\exception").
       
  1407 
       
  1408   \par Note: 
       
  1409   the tag \\throws is a synonym for this tag.
       
  1410 
       
  1411 <hr>
       
  1412 \section cmdtodo \\todo { paragraph describing what is to be done }
       
  1413 
       
  1414   \addindex \\todo
       
  1415   Starts a paragraph where a TODO item is described. 
       
  1416   The description will also add an item to a separate TODO list. 
       
  1417   The two instances of the description will be cross-referenced.
       
  1418   Each item in the TODO list will be preceded by a header that
       
  1419   indicates the origin of the item.
       
  1420 
       
  1421 <hr>
       
  1422 \section cmdversion \\version { version number }
       
  1423 
       
  1424   \addindex \\version
       
  1425   Starts a paragraph where one or more version strings may be entered. 
       
  1426   The paragraph will be indented. 
       
  1427   The text of the paragraph has no special internal structure. All visual
       
  1428   enhancement commands may be used inside the paragraph.
       
  1429   Multiple adjacent \\version commands will be joined into a single paragraph.
       
  1430   Each version description will start on a new line.
       
  1431   Alternatively, one \\version command may mention 
       
  1432   several version strings. 
       
  1433   The \\version command ends when a blank line or some other 
       
  1434   sectioning command is encountered. See section \ref cmdauthor "\\author" 
       
  1435   for an example.
       
  1436  
       
  1437 <hr>
       
  1438 \section cmdwarning \\warning { warning message }
       
  1439 
       
  1440   \addindex \\warning
       
  1441   Starts a paragraph where one or more warning messages may be entered. 
       
  1442   The paragraph will be indented. 
       
  1443   The text of the paragraph has no special internal structure. All visual
       
  1444   enhancement commands may be used inside the paragraph.
       
  1445   Multiple adjacent \\warning commands will be joined into a single paragraph.
       
  1446   Each warning description will start on a new line.
       
  1447   Alternatively, one \\warning command may mention 
       
  1448   several warnings. The \\warning command ends when a blank line or some other 
       
  1449   sectioning command is encountered. See section \ref cmdauthor "\\author" 
       
  1450   for an example.
       
  1451 
       
  1452 <hr>
       
  1453 \section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" {text}
       
  1454 
       
  1455  \addindex \\xrefitem
       
  1456  This command is a generalization of commands such as \ref cmdtodo "\\todo" 
       
  1457  and \ref cmdbug "\\bug".
       
  1458  It can be used to create user-defined text sections which are automatically 
       
  1459  cross-referenced between the place of occurrence and a related page, 
       
  1460  which will be generated. On the related page all sections of 
       
  1461  the same type will be collected. 
       
  1462  
       
  1463  The first argument \<key\> is a
       
  1464  identifier uniquely representing the type of the section. The second argument 
       
  1465  is a quoted string representing the heading of the section under which 
       
  1466  text passed as the forth argument is put. The third argument (list title)
       
  1467  is used as the title for the related page containing all items with the 
       
  1468  same key. The keys "todo", "test", "bug", and "deprecated" are predefined.
       
  1469  
       
  1470  To get an idea on how to use the \\xrefitem command and what its effect 
       
  1471  is, consider the todo list, which (for English output) can be seen an 
       
  1472  alias for the command
       
  1473  \verbatim \xrefitem todo "Todo" "Todo List" \endverbatim
       
  1474 
       
  1475  Since it is very tedious and error-prone to repeat the first three 
       
  1476  parameters of the command for each section, the command is meant to 
       
  1477  be used in combination with the \ref cfg_aliases "ALIASES" option in the 
       
  1478  configuration file.
       
  1479  To define a new command \\reminder, for instance, one should add the following
       
  1480  line to the configuration file:
       
  1481  \verbatim ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\"" \endverbatim
       
  1482  Note the use of escaped quotes for the second and third argument of the
       
  1483  \\xrefitem command.
       
  1484 
       
  1485 <hr>
       
  1486 
       
  1487 \htmlonly <center> \endhtmlonly 
       
  1488 <h2>
       
  1489 \htmlonly --- \endhtmlonly 
       
  1490 Commands to create links
       
  1491 \htmlonly --- \endhtmlonly 
       
  1492 </h2>
       
  1493 \htmlonly </center>\endhtmlonly
       
  1494 
       
  1495 <hr>
       
  1496 \section cmdaddindex \\addindex (text)
       
  1497 
       
  1498   \addindex \\addindex
       
  1499   This command adds (text) to the \f$\mbox{\LaTeX}\f$ index.
       
  1500 
       
  1501 <hr>
       
  1502 \section cmdanchor \\anchor <word>
       
  1503 
       
  1504   \addindex \\anchor
       
  1505   This command places an invisible, named anchor into the documentation
       
  1506   to which you can refer with the \\ref command. 
       
  1507 
       
  1508   \note Anchors can currently only be put into a comment block
       
  1509   that is marked as a page (using \ref cmdpage "\\page") or mainpage
       
  1510   (\ref cmdmainpage "\\mainpage"). 
       
  1511 
       
  1512   \sa section \ref cmdref "\\ref".
       
  1513 
       
  1514 <hr>
       
  1515 \section cmdendlink \\endlink
       
  1516 
       
  1517   \addindex \\endlink 
       
  1518   This command ends a link that is started with the \\link command.
       
  1519   
       
  1520   \sa section \ref cmdlink "\\link".
       
  1521 
       
  1522 <hr>
       
  1523 \section cmdlink \\link <link-object> 
       
  1524 
       
  1525   \addindex \\link
       
  1526   The links that are automatically generated by doxygen always have the
       
  1527   name of the object they point to as link-text. 
       
  1528 
       
  1529   The \\link command can be used to create a link to an object (a file, 
       
  1530   class, or member) with a user specified link-text. 
       
  1531   The link command should end with an \\endlink command. All text between
       
  1532   the \\link and \\endlink commands serves as text for a link to 
       
  1533   the \<link-object\> specified as the first argument of \\link.
       
  1534   
       
  1535   See section \ref autolink "autolink" for more information on automatically 
       
  1536   generated links and valid link-objects.
       
  1537 
       
  1538 <hr>
       
  1539 \section cmdref \\ref <name> ["(text)"]
       
  1540 
       
  1541   \addindex \\ref
       
  1542   Creates a reference to a named section, subsection, page or anchor.
       
  1543   For HTML documentation the reference command will generate a link to 
       
  1544   the section. For a sections or subsections the title of the section will be 
       
  1545   used as the text of the link. For anchor the optional text between quotes
       
  1546   will be used or \<name\> if no text is specified.
       
  1547   For \f$\mbox{\LaTeX}\f$ documentation the reference command will 
       
  1548   generate a section number for sections or the text followed by a 
       
  1549   page number if \<name\> refers to an anchor.
       
  1550 
       
  1551   \sa
       
  1552     Section \ref cmdpage "\\page" for an example of the \\ref command.
       
  1553 
       
  1554 <hr>
       
  1555 \section cmdsubpage \\subpage <name> ["(text)"]
       
  1556 
       
  1557   \addindex \\subpage
       
  1558   This command can be used to create a hierarchy of pages. The
       
  1559   same structure can be made using the \ref cmddefgroup "\\defgroup" and
       
  1560   \ref cmdingroup "\\ingroup" commands, but for pages the \\subpage command
       
  1561   is often more convenient. The main page (see \ref cmdmainpage "\\mainpage") 
       
  1562   is typically the root of hierarchy. 
       
  1563 
       
  1564   This command behaves similar as \ref cmdref "\\ref" in the sense that
       
  1565   it creates a reference to a page labeled \<name\> with the optional
       
  1566   link text as specified in the second argument. 
       
  1567 
       
  1568   It differs from the \\ref command in that it only works for pages,
       
  1569   and creates a parent-child relation between pages, where the
       
  1570   child page (or sub page) is identified by label \<name\>. 
       
  1571   
       
  1572   See the \ref cmdsection "\\section"
       
  1573   and \ref cmdsubsection "\\subsection" commands if you want to add structure
       
  1574   without creating multiple pages.
       
  1575 
       
  1576   \note Each page can be the sub page of only one other page and
       
  1577   no cyclic relations are allowed, i.e. the page hierarchy must have a tree 
       
  1578   structure.
       
  1579   
       
  1580   Here is an example:
       
  1581 \verbatim
       
  1582 /*! \mainpage A simple manual
       
  1583 
       
  1584 Some general info.
       
  1585   
       
  1586 This manual is divided in the following sections:
       
  1587 - \subpage intro 
       
  1588 - \subpage advanced "Advanced usage"
       
  1589 */
       
  1590 
       
  1591 //-----------------------------------------------------------
       
  1592 
       
  1593 /*! \page intro Introduction
       
  1594 This page introduces the user to the topic.
       
  1595 Now you can proceed to the \ref advanced "advanced section".  
       
  1596 */
       
  1597 
       
  1598 //-----------------------------------------------------------
       
  1599 
       
  1600 /*! \page advanced Advanced Usage
       
  1601 This page is for advanced users.
       
  1602 Make sure you have first read \ref intro "the introduction".
       
  1603 */
       
  1604 \endverbatim
       
  1605 
       
  1606 <hr>
       
  1607 \section cmdsection \\section <section-name> (section title)
       
  1608   
       
  1609   \addindex \\section
       
  1610   Creates a section with name \<section-name\>. The title of the
       
  1611   section should be specified as the second argument of the \\section 
       
  1612   command.
       
  1613 
       
  1614   \warning This command only works inside related page documentation and
       
  1615            \e not in other documentation blocks!
       
  1616 
       
  1617 <hr>
       
  1618 \section cmdsubsection \\subsection <subsection-name> (subsection title)
       
  1619 
       
  1620   \addindex \\subsection
       
  1621   Creates a subsection with name \<subsection-name\>. The title of the
       
  1622   subsection should be specified as the second argument of the \\subsection
       
  1623   command.
       
  1624 
       
  1625   \warning This command only works inside a section of a related page 
       
  1626            documentation block and
       
  1627            \e not in other documentation blocks!
       
  1628 
       
  1629   \sa
       
  1630    Section \ref cmdpage "\\page" for an example of the 
       
  1631            \ref cmdsubsection "\\subsection" command.
       
  1632 
       
  1633 <hr>
       
  1634 \section cmdsubsubsection \\subsubsection <subsubsection-name> (subsubsection title)
       
  1635 
       
  1636   \addindex \\subsubsection
       
  1637   Creates a subsubsection with name \<subsubsection-name\>. The title of the
       
  1638   subsubsection should be specified as the second argument of the 
       
  1639   \\subsubsection command.
       
  1640 
       
  1641   \warning This command only works inside a subsection of a 
       
  1642            related page documentation block and
       
  1643            \e not in other documentation blocks!
       
  1644 
       
  1645   \sa
       
  1646    Section \ref cmdpage "\\page" for an example of the 
       
  1647            \ref cmdsubsubsection "\\subsubsection" command.
       
  1648 
       
  1649 <hr>
       
  1650 \section cmdparagraph \\paragraph <paragraph-name> (paragraph title)
       
  1651 
       
  1652   \addindex \\paragraph
       
  1653   Creates a named paragraph with name \<paragraph-name\>. The title of the
       
  1654   paragraph should be specified as the second argument of the 
       
  1655   \\paragraph command.
       
  1656 
       
  1657   \warning This command only works inside a subsubsection of a 
       
  1658            related page documentation block and
       
  1659            \e not in other documentation blocks!
       
  1660 
       
  1661   \sa
       
  1662    Section \ref cmdpage "\\page" for an example of the 
       
  1663            \ref cmdparagraph "\\paragraph" command.
       
  1664 
       
  1665 <hr>
       
  1666 
       
  1667 \htmlonly <center> \endhtmlonly 
       
  1668 <h2>
       
  1669 \htmlonly --- \endhtmlonly 
       
  1670 Commands for displaying examples
       
  1671 \htmlonly --- \endhtmlonly 
       
  1672 </h2>
       
  1673 \htmlonly </center>\endhtmlonly
       
  1674 
       
  1675 <hr>
       
  1676 \section cmddontinclude \\dontinclude <file-name>
       
  1677 
       
  1678   \addindex \\dontinclude
       
  1679   This command can be used to parse a source file without actually 
       
  1680   verbatim including it in the documentation (as the \\include command does). 
       
  1681   This is useful if you want to divide the source file into smaller pieces and
       
  1682   add documentation between the pieces.
       
  1683   Source files or directories can be specified using the 
       
  1684   \ref cfg_example_path "EXAMPLE_PATH" 
       
  1685   tag of doxygen's configuration file.
       
  1686 
       
  1687   The class and member declarations and definitions inside the code fragment
       
  1688   are `remembered' during the parsing of the comment block that contained 
       
  1689   the \\dontinclude command. 
       
  1690 
       
  1691   For line by line descriptions of source files, one or more lines 
       
  1692   of the example can be displayed using the \\line, \\skip, \\skipline, and 
       
  1693   \\until commands. An internal pointer is used for these commands. The
       
  1694   \\dontinclude command sets the pointer to the first line of the example.
       
  1695 
       
  1696   \par Example:
       
  1697   \verbinclude include.cpp
       
  1698   Where the example file \c example_test.cpp looks as follows:
       
  1699   \verbinclude example_test.cpp
       
  1700   \htmlonly
       
  1701   Click <a href="$(DOXYGEN_DOCDIR)/examples/include/html/example.html">here</a> 
       
  1702   for the corresponding HTML documentation that is generated by doxygen.
       
  1703   \endhtmlonly
       
  1704 
       
  1705   \sa sections \ref cmdline "\\line", \ref cmdskip "\\skip", 
       
  1706                \ref cmdskipline "\\skipline", and \ref cmduntil "\\until".
       
  1707 
       
  1708 <hr>
       
  1709 \section cmdinclude \\include <file-name>
       
  1710 
       
  1711   \addindex \\include
       
  1712   This command can be used to include a source file as a block of code.
       
  1713   The command takes the name of an include file as an argument. 
       
  1714   Source files or directories can be specified using the 
       
  1715   \ref cfg_example_path "EXAMPLE_PATH" 
       
  1716   tag of doxygen's configuration file.
       
  1717 
       
  1718   If \<file-name\> itself is not unique for the set of example files specified
       
  1719   by the \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part 
       
  1720   of the absolute path to disambiguate it.
       
  1721 
       
  1722   Using the \\include command is equivalent to inserting the file into 
       
  1723   the documentation block and surrounding it 
       
  1724   with \ref cmdcode "\\code" and \ref cmdendcode "\\endcode" commands.
       
  1725 
       
  1726   The main purpose of the \\include command is to avoid code 
       
  1727   duplication in case of example blocks that consist of multiple
       
  1728   source and header files.
       
  1729 
       
  1730   For a line by line description of a source files use the 
       
  1731   \ref cmddontinclude "\\dontinclude" command in combination with 
       
  1732   the \ref cmdline "\\line", \ref cmdskip "\\skip", 
       
  1733   \ref cmdskipline "\\skipline", 
       
  1734   and \\until commands.  
       
  1735 
       
  1736   \note Doxygen's special commands do not work inside blocks of code. 
       
  1737   It is allowed to nest C-style comments inside a code block though.
       
  1738 
       
  1739   \sa section \ref cmdexample "\\example", \ref cmddontinclude "\\dontinclude", and
       
  1740       section \ref cmdverbatim "\\verbatim".
       
  1741 
       
  1742 <hr>
       
  1743 \section cmdincludelineno \\includelineno <file-name>
       
  1744 
       
  1745   \addindex \\includelineno
       
  1746   This command works the same way as \\include, but will add line 
       
  1747   numbers to the included file.
       
  1748 
       
  1749   \sa section \ref cmdinclude "\\include".
       
  1750 
       
  1751 <hr>
       
  1752 \section cmdline \\line ( pattern )
       
  1753 
       
  1754   \addindex \\line
       
  1755   This command searches line by line through the example that was last
       
  1756   included using \\include or \\dontinclude until it finds a non-blank
       
  1757   line. If that line contains the specified pattern, it is written 
       
  1758   to the output.
       
  1759   
       
  1760   The internal pointer that is used to keep track of the current line in
       
  1761   the example, is set to the start of the line following the non-blank
       
  1762   line that was found (or to the end of the example if no such line could
       
  1763   be found).
       
  1764 
       
  1765   See section \ref cmddontinclude "\\dontinclude" for an example.
       
  1766 
       
  1767 <hr>
       
  1768 \section cmdskip \\skip ( pattern )
       
  1769 
       
  1770   \addindex \\skip
       
  1771   This command searches line by line through the example that was last
       
  1772   included using \\include or \\dontinclude until it finds a line that contains
       
  1773   the specified pattern. 
       
  1774   
       
  1775   The internal pointer that is used to keep track of the current line in
       
  1776   the example, is set to the start of the line that contains the specified
       
  1777   pattern (or to the end of the example if the pattern could not be found). 
       
  1778 
       
  1779   See section \ref cmddontinclude "\\dontinclude" for an example.
       
  1780 
       
  1781 <hr>
       
  1782 \section cmdskipline \\skipline ( pattern ) 
       
  1783 
       
  1784   \addindex \\skipline
       
  1785   This command searches line by line through the example that was last
       
  1786   included using \\include or \\dontinclude until it finds a line that contains
       
  1787   the specified pattern. It then writes the line to the output.
       
  1788   
       
  1789   The internal pointer that is used to keep track of the current line in
       
  1790   the example, is set to the start of the line following the line that is
       
  1791   written (or to the end of the example if the pattern could not be found). 
       
  1792 
       
  1793   \par Note:
       
  1794     The command:
       
  1795     \verbatim\skipline pattern\endverbatim 
       
  1796     is equivalent to:
       
  1797 \verbatim
       
  1798 \skip pattern
       
  1799 \line pattern\endverbatim
       
  1800 
       
  1801   See section \ref cmddontinclude "\\dontinclude" for an example.
       
  1802 
       
  1803 <hr>
       
  1804 \section cmduntil \\until ( pattern )
       
  1805 
       
  1806   \addindex \\until
       
  1807   This command writes all lines of the example that was last
       
  1808   included using \\include or \\dontinclude to the output, until it finds 
       
  1809   a line containing the specified pattern. The line containing the pattern
       
  1810   will be written as well.
       
  1811   
       
  1812   The internal pointer that is used to keep track of the current line in
       
  1813   the example, is set to the start of the line following last written
       
  1814   line (or to the end of the example if the pattern could not be found).
       
  1815 
       
  1816   See section \ref cmddontinclude "\\dontinclude" for an example.
       
  1817 
       
  1818 <hr>
       
  1819 \section cmdverbinclude \\verbinclude <file-name>
       
  1820 
       
  1821   \addindex \\verbinclude
       
  1822   This command includes the file \<file-name\> verbatim in the documentation.
       
  1823   The command is equivalent to pasting the file in the documentation and
       
  1824   placing \\verbatim and \\endverbatim commands around it. 
       
  1825 
       
  1826   Files or directories that doxygen should look for can be specified using the 
       
  1827   \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
       
  1828 
       
  1829 <hr>
       
  1830 \section cmdhtmlinclude \\htmlinclude <file-name>
       
  1831 
       
  1832   \addindex \\htmlinclude
       
  1833   This command includes the file \<file-name\> as is in the HTML documentation.
       
  1834   The command is equivalent to pasting the file in the documentation and
       
  1835   placing \\htmlonly and \\endhtmlonly commands around it.
       
  1836 
       
  1837   Files or directories that doxygen should look for can be specified using the 
       
  1838   \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
       
  1839 
       
  1840 <hr>
       
  1841 
       
  1842 \htmlonly <center> \endhtmlonly 
       
  1843 <h2>
       
  1844 \htmlonly --- \endhtmlonly 
       
  1845 Commands for visual enhancements
       
  1846 \htmlonly --- \endhtmlonly 
       
  1847 </h2>
       
  1848 \htmlonly </center>\endhtmlonly
       
  1849 
       
  1850 \section cmda \\a <word>
       
  1851  
       
  1852   \addindex \\a
       
  1853   Displays the argument \<word\> using a special font.
       
  1854   Use this command to refer to member arguments in the running text.
       
  1855 
       
  1856   \par Example:
       
  1857   \verbatim
       
  1858   ... the \a x and \a y coordinates are used to ...
       
  1859   \endverbatim 
       
  1860   This will result in the following text:<br><br>
       
  1861   ... the \a x and \a y coordinates are used to ...
       
  1862 
       
  1863 <hr>
       
  1864 \section cmdarg \\arg { item-description }
       
  1865   
       
  1866   \addindex \\arg
       
  1867   This command has one argument that continues until the first
       
  1868   blank line or until another \\arg is encountered.
       
  1869   The command can be used to generate a simple, not nested list of
       
  1870   arguments. 
       
  1871   Each argument should start with a \\arg command.
       
  1872   
       
  1873   \par Example:
       
  1874   Typing:
       
  1875   \verbatim
       
  1876   \arg \c AlignLeft left alignment.
       
  1877   \arg \c AlignCenter center alignment.
       
  1878   \arg \c AlignRight right alignment
       
  1879   
       
  1880   No other types of alignment are supported.
       
  1881   \endverbatim
       
  1882   will result in the following text:<br><br>
       
  1883   <ul>
       
  1884   <li> \c AlignLeft left alignment.
       
  1885   <li> \c AlignCenter center alignment.
       
  1886   <li> \c AlignRight right alignment
       
  1887   </ul><br>
       
  1888   No other types of alignment are supported.
       
  1889 
       
  1890   \par Note:
       
  1891   For nested lists, HTML commands should be used.
       
  1892 
       
  1893   Equivalent to \ref cmdli "\\li"
       
  1894 
       
  1895 
       
  1896 <hr>
       
  1897 \section cmdb \\b <word>
       
  1898 
       
  1899   \addindex \\b
       
  1900   Displays the argument \<word\> using a bold font.
       
  1901   Equivalent to \<b\>word\</b\>.
       
  1902   To put multiple words in bold use \<b\>multiple words\</b\>.
       
  1903   
       
  1904 <hr>
       
  1905 \section cmdc \\c <word>
       
  1906 
       
  1907   \addindex \\c
       
  1908   Displays the argument \<word\> using a typewriter font.
       
  1909   Use this to refer to a word of code.
       
  1910   Equivalent to \<tt\>word\</tt\>.
       
  1911 
       
  1912   \par Example:
       
  1913   Typing:
       
  1914   \verbatim
       
  1915      ... This function returns \c void and not \c int ...
       
  1916   \endverbatim
       
  1917   will result in the following text:<br><br>
       
  1918      ... This function returns \c void and not \c int ...
       
  1919 
       
  1920   Equivalent to \ref cmdp "\\p"
       
  1921   To have multiple words in typewriter font use \<tt\>multiple words\</tt\>.
       
  1922 
       
  1923 <hr>
       
  1924 \section cmdcode \\code
       
  1925 
       
  1926   \addindex \\code
       
  1927   Starts a block of code. A code block is treated differently
       
  1928   from ordinary text. It is interpreted as C/C++ code. The names of the
       
  1929   classes and members that are documented are automatically replaced by 
       
  1930   links to the documentation. 
       
  1931 
       
  1932   \sa section \ref cmdendcode "\\endcode", section \ref cmdverbatim "\\verbatim".
       
  1933 
       
  1934 <hr>
       
  1935 \section cmdcopydoc \\copydoc <link-object>
       
  1936 
       
  1937   \addindex \\copydoc
       
  1938   Copies a documentation block from the object specified by \<link-object\>
       
  1939   and pastes it at the location of the command. This command can be useful 
       
  1940   to avoid cases where a documentation block would otherwise have to be 
       
  1941   duplicated or it can be used to extend the documentation of an inherited 
       
  1942   member.
       
  1943   
       
  1944   The link object can point to a member (of a class, file or group), 
       
  1945   a class, a namespace, a group, a page, or a file (checked in that order). 
       
  1946   Note that if the object pointed to is a member (function, variable, 
       
  1947   typedef, etc), the compound (class, file, or group) containing it 
       
  1948   should also be documented for the copying to work. 
       
  1949 
       
  1950   To copy the documentation for a member of a 
       
  1951   class for instance one can put the following in the documentation
       
  1952 
       
  1953 \verbatim
       
  1954   /*! @copydoc MyClass::myfunction() 
       
  1955    *  More documentation.
       
  1956    */
       
  1957 \endverbatim
       
  1958 
       
  1959   if the member is overloaded, you should specify the argument types 
       
  1960   explicitly (without spaces!), like in the following:
       
  1961 
       
  1962 \verbatim
       
  1963   /*! @copydoc MyClass::myfunction(type1,type2) */
       
  1964 \endverbatim
       
  1965 
       
  1966   Qualified names are only needed if the context in which the documentation
       
  1967   block is found requires them.
       
  1968 
       
  1969   The copydoc command can be used recursively, but cycles in the copydoc
       
  1970   relation will be broken and flagged as an error.
       
  1971 
       
  1972   Note that both the brief description and the detailed documentation
       
  1973   will be copied. See \ref cmdcopybrief "\\cmdcopybrief" and
       
  1974   \ref cmdcopydetails "\\cmdcopydetails" for copying only the brief or
       
  1975   detailed part of the comment block.
       
  1976 
       
  1977 <hr>
       
  1978 \section cmdcopybrief \\copybrief <link-object>
       
  1979 
       
  1980 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
       
  1981 only copy the brief description, not the detailed documentation.
       
  1982 
       
  1983 <hr>
       
  1984 \section cmdcopydetails \\copydetails <link-object>
       
  1985 
       
  1986 Works in a similar way as \ref cmdcopydoc "\\copydoc" but will
       
  1987 only copy the detailed documentation, not the brief description.
       
  1988 
       
  1989 <hr>
       
  1990 \section cmddot \\dot
       
  1991 
       
  1992   \addindex \\dot
       
  1993   Starts a text fragment which should contain a valid description of a
       
  1994   dot graph. The text fragment ends with \ref cmdenddot "\\enddot". 
       
  1995   Doxygen will pass the text on to dot and include the resulting 
       
  1996   image (and image map) into the output.
       
  1997   The nodes of a graph can be made clickable by using the URL attribute.
       
  1998   By using the command \\ref inside the URL value you can conveniently 
       
  1999   link to an item inside doxygen. Here is an example:
       
  2000 \code
       
  2001 /*! class B */
       
  2002 class B {};
       
  2003 
       
  2004 /*! class C */
       
  2005 class C {};
       
  2006 
       
  2007 /*! \mainpage
       
  2008  *
       
  2009  *  Class relations expressed via an inline dot graph:
       
  2010  *  \dot
       
  2011  *  digraph example {
       
  2012  *      node [shape=record, fontname=Helvetica, fontsize=10];
       
  2013  *      b [ label="class B" URL="\ref B"];
       
  2014  *      c [ label="class C" URL="\ref C"];
       
  2015  *      b -> c [ arrowhead="open", style="dashed" ];
       
  2016  *  }
       
  2017  *  \enddot
       
  2018  *  Note that the classes in the above graph are clickable 
       
  2019  *  (in the HTML output).
       
  2020  */
       
  2021 \endcode
       
  2022   
       
  2023 <hr>
       
  2024 \section cmdmsc \\msc
       
  2025 
       
  2026   \addindex \\msc
       
  2027   Starts a text fragment which should contain a valid description of a
       
  2028   message sequence chart. See http://www.mcternan.me.uk/mscgen/ for examples.
       
  2029   The text fragment ends with \ref cmdendmsc "\\endmsc". 
       
  2030   \note The text fragment should only include the part of the message 
       
  2031   sequence chart that is
       
  2032   within the <code>msc {...}</code> block.
       
  2033   \note You need to install the <code>mscgen</code> tool, if you want to use this
       
  2034   command. 
       
  2035 
       
  2036 Here is an example of the use of the \\msc command.
       
  2037 \code
       
  2038 /** Sender class. Can be used to send a command to the server.
       
  2039  *  The receiver will acknowlegde the command by calling Ack().
       
  2040  *  \msc
       
  2041  *    Sender,Receiver;
       
  2042  *    Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
       
  2043  *    Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
       
  2044  *  \endmsc
       
  2045  */
       
  2046 class Sender
       
  2047 {
       
  2048   public:
       
  2049     /** Acknowledgement from server */
       
  2050     void Ack(bool ok);
       
  2051 };
       
  2052 
       
  2053 /** Receiver class. Can be used to receive and execute commands.
       
  2054  *  After execution of a command, the receiver will send an acknowledgement
       
  2055  *  \msc
       
  2056  *    Receiver,Sender;
       
  2057  *    Receiver<-Sender [label="Command()", URL="\ref Command()"];
       
  2058  *    Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
       
  2059  *  \endmsc
       
  2060  */
       
  2061 class Receiver
       
  2062 {
       
  2063   public:
       
  2064     /** Executable a command on the server */
       
  2065     void Command(int commandId);
       
  2066 };
       
  2067 
       
  2068 \endcode  
       
  2069 
       
  2070 <hr>
       
  2071 \section cmddotfile \\dotfile <file> ["caption"] 
       
  2072 
       
  2073   \addindex \\dotfile
       
  2074   Inserts an image generated by dot from \<file\> into the documentation. 
       
  2075 
       
  2076   The first argument specifies the file name of the image. 
       
  2077   doxygen will look for files in the paths (or files) that you specified 
       
  2078   after the \ref cfg_dotfile_dirs "DOTFILE_DIRS" tag. 
       
  2079   If the dot file is found it will be used as an input file to the dot tool. 
       
  2080   The resulting image will be put into the correct output directory.
       
  2081   If the dot file name contains spaces you'll have to put quotes ("...") around it.
       
  2082 
       
  2083   The second argument is optional and can be used to specify the caption
       
  2084   that is displayed below the image. This argument has to be specified
       
  2085   between quotes even if it does not contain any spaces. The quotes are
       
  2086   stripped before the caption is displayed.
       
  2087 
       
  2088 <hr>
       
  2089 \section cmde \\e <word>
       
  2090 
       
  2091   \addindex \\e 
       
  2092   Displays the argument \<word\> in italics.
       
  2093   Use this command to emphasize words.
       
  2094 
       
  2095   \par Example:
       
  2096   Typing:
       
  2097   \verbatim
       
  2098   ... this is a \e really good example ... 
       
  2099   \endverbatim
       
  2100   will result in the following text:<br><br>
       
  2101   ... this is a \e really good example ...
       
  2102 
       
  2103   Equivalent to \ref cmdem "\\em". 
       
  2104   To emphasis multiple words use \<em\>multiple words\</em\>.
       
  2105 
       
  2106 <hr>
       
  2107 \section cmdem \\em <word>
       
  2108 
       
  2109   \addindex \\em 
       
  2110   Displays the argument \<word\> in italics.
       
  2111   Use this command to emphasize words.
       
  2112 
       
  2113   \par Example:
       
  2114   Typing:
       
  2115   \verbatim
       
  2116   ... this is a \em really good example ... 
       
  2117   \endverbatim
       
  2118   will result in the following text:<br><br>
       
  2119   ... this is a \em really good example ...
       
  2120 
       
  2121   Equivalent to \ref cmde "\\e"
       
  2122 
       
  2123 <hr>
       
  2124 \section cmdendcode \\endcode
       
  2125 
       
  2126   \addindex \\endcode
       
  2127   Ends a block of code.
       
  2128   \sa section \ref cmdcode "\\code"
       
  2129  
       
  2130 <hr>
       
  2131 \section cmdenddot \\enddot
       
  2132 
       
  2133   \addindex \\enddot
       
  2134   Ends a blocks that was started with \ref cmddot "\\dot".
       
  2135 
       
  2136 <hr>
       
  2137 \section cmdendmsc \\endmsc
       
  2138 
       
  2139   \addindex \\endmsc
       
  2140   Ends a blocks that was started with \ref cmdmsc "\\msc".
       
  2141 
       
  2142 <hr>
       
  2143 \section cmdendhtmlonly \\endhtmlonly
       
  2144 
       
  2145   \addindex \\endhtmlonly
       
  2146   Ends a block of text that was started with a \\htmlonly command.
       
  2147 
       
  2148   \sa section \ref cmdhtmlonly "\\htmlonly".
       
  2149 
       
  2150 <hr>
       
  2151 \section cmdendlatexonly \\endlatexonly
       
  2152 
       
  2153   \addindex \\endlatexonly
       
  2154   Ends a block of text that was started with a \\latexonly command.
       
  2155 
       
  2156   \sa section \ref cmdlatexonly "\\latexonly".
       
  2157 
       
  2158 <hr>
       
  2159 \section cmdendmanonly \\endmanonly
       
  2160 
       
  2161   \addindex \\endmanonly
       
  2162   Ends a block of text that was started with a \\manonly command.
       
  2163 
       
  2164   \sa section \ref cmdmanonly "\\manonly".
       
  2165 
       
  2166 <hr>
       
  2167 \section cmdendverbatim \\endverbatim
       
  2168 
       
  2169   \addindex \\endverbatim
       
  2170   Ends a block of text that was started with a \\verbatim command.
       
  2171   
       
  2172   \sa section \ref cmdendcode "\\endcode", section \ref cmdverbatim "\\verbatim".
       
  2173 
       
  2174 <hr>
       
  2175 \section cmdendxmlonly \\endxmlonly
       
  2176 
       
  2177   \addindex \\endxmlonly
       
  2178   Ends a block of text that was started with a \\xmlonly command.
       
  2179   
       
  2180   \sa section \ref cmdxmlonly "\\xmlonly".
       
  2181 
       
  2182 <hr>
       
  2183 \section cmdfdollar \\f$
       
  2184 
       
  2185   \addindex \\f\$
       
  2186 
       
  2187   Marks the start and end of an in-text formula. 
       
  2188   \sa section \ref formulas "formulas" for an example.
       
  2189   
       
  2190 <hr>
       
  2191 \section cmdfbropen \\f[
       
  2192 
       
  2193   \addindex \\f[
       
  2194 
       
  2195   Marks the start of a long formula that is displayed 
       
  2196   centered on a separate line.
       
  2197   \sa section \ref cmdfbrclose "\\f]" and section \ref formulas "formulas".
       
  2198 
       
  2199 <hr>
       
  2200 \section cmdfbrclose \\f]
       
  2201 
       
  2202   \addindex \\f]
       
  2203   
       
  2204   Marks the end of a long formula that is displayed
       
  2205   centered on a separate line.
       
  2206   \sa section \ref cmdfbropen "\\f[" and section \ref formulas "formulas".
       
  2207 
       
  2208 <hr>
       
  2209 \section cmdfcurlyopen \\f{environment}{
       
  2210 
       
  2211   Marks the start of a formula that is in a specific environment.
       
  2212   \note The second \{ is optional and is only to help editors (such as Vim) to
       
  2213   do proper syntax highlighting by making the number of opening and closing braces
       
  2214   the same.
       
  2215 
       
  2216 <hr>
       
  2217 \section cmdfcurlyclose \\f}
       
  2218 
       
  2219   Marks the end of a formula that is in a specific environment.
       
  2220 
       
  2221 <hr>
       
  2222 \section cmdhtmlonly \\htmlonly
       
  2223 
       
  2224   \addindex \\htmlonly
       
  2225   Starts a block of text that will be verbatim included in the
       
  2226   generated HTML documentation only. The block ends with a
       
  2227   endhtmlonly command.
       
  2228 
       
  2229   This command can be used to include HTML code that is too complex
       
  2230   for doxygen (i.e. applets, java-scripts, and HTML tags that
       
  2231   require attributes). You can use the \\latexonly and \\endlatexonly
       
  2232   pair to provide a proper \f$\mbox{\LaTeX}\f$ alternative.
       
  2233 
       
  2234   \b Note:
       
  2235     environment variables (like \$(HOME) ) are resolved inside a 
       
  2236     HTML-only block.
       
  2237 
       
  2238   \sa section \ref cmdmanonly "\\manonly" and section 
       
  2239               \ref cmdlatexonly "\\latexonly".
       
  2240 
       
  2241 <hr>
       
  2242 \section cmdimage \\image <format> <file> ["caption"] [<sizeindication>=<size>]
       
  2243 
       
  2244   \addindex \\image
       
  2245   Inserts an image into the documentation. This command is format
       
  2246   specific, so if you want to insert an image for more than one
       
  2247   format you'll have to repeat this command for each format.
       
  2248 
       
  2249   The first argument specifies the output format. Currently, the 
       
  2250   following values are supported: \c html and \c latex.
       
  2251   
       
  2252   The second argument specifies the file name of the image. 
       
  2253   doxygen will look for files in the paths (or files) that you specified 
       
  2254   after the \ref cfg_image_path "IMAGE_PATH" tag. 
       
  2255   If the image is found it will be copied to the correct output directory.
       
  2256   If the image name contains spaces you'll have to put quotes ("...") around it.
       
  2257   You can also specify an absolute URL instead of a file name, but then
       
  2258   doxygen does not copy the image nor check its existance.
       
  2259 
       
  2260   The third argument is optional and can be used to specify the caption
       
  2261   that is displayed below the image. This argument has to be specified
       
  2262   on a single line and between quotes even if it does not contain any 
       
  2263   spaces. The quotes are stripped before the caption is displayed.
       
  2264 
       
  2265   The fourth argument is also optional and can be used to specify the 
       
  2266   width or height of the image. This is only useful 
       
  2267   for \f$\mbox{\LaTeX}\f$ output
       
  2268   (i.e. format=<code>latex</code>). The \c sizeindication can be 
       
  2269   either \c width or \c height. The size should be a valid 
       
  2270   size specifier in \f$\mbox{\LaTeX}\f$ (for example <code>10cm</code> or 
       
  2271   <code>6in</code> or a symbolic width like <code>\\textwidth</code>).
       
  2272 
       
  2273   Here is example of a comment block:
       
  2274 
       
  2275 \verbatim
       
  2276   /*! Here is a snapshot of my new application:
       
  2277    *  \image html application.jpg
       
  2278    *  \image latex application.eps "My application" width=10cm
       
  2279    */
       
  2280 \endverbatim
       
  2281 
       
  2282   And this is an example of how the relevant part of the configuration file 
       
  2283   may look:
       
  2284 
       
  2285 \verbatim
       
  2286   IMAGE_PATH     = my_image_dir
       
  2287 \endverbatim
       
  2288 
       
  2289   \warning The image format for HTML is limited to what your
       
  2290            browser supports. For \f$\mbox{\LaTeX}\f$, the image format
       
  2291            must be Encapsulated PostScript (eps).
       
  2292            <br><br>
       
  2293            Doxygen does not check if the image is in the correct format. 
       
  2294            So \e you have to make sure this is the case!
       
  2295 
       
  2296 <hr>
       
  2297 \section cmdlatexonly \\latexonly
       
  2298 
       
  2299   \addindex \\latexonly
       
  2300   Starts a block of text that will be verbatim included in the
       
  2301   generated \f$\mbox{\LaTeX}\f$ documentation only. The block ends with a
       
  2302   endlatexonly command.
       
  2303 
       
  2304   This command can be used to include \f$\mbox{\LaTeX}\f$ code that is too 
       
  2305   complex for doxygen (i.e. images, formulas, special characters). You can 
       
  2306   use the \\htmlonly and \\endhtmlonly pair to provide a proper HTML 
       
  2307   alternative.
       
  2308 
       
  2309   \b Note:
       
  2310     environment variables (like \$(HOME) ) are resolved inside a 
       
  2311     \f$\mbox{\LaTeX}\f$-only block.
       
  2312 
       
  2313   \sa section \ref cmdlatexonly "\\latexonly" 
       
  2314   and section \ref cmdhtmlonly "\\htmlonly".
       
  2315 
       
  2316 <hr>
       
  2317 \section cmdmanonly \\manonly
       
  2318 
       
  2319   \addindex \\manonly
       
  2320   Starts a block of text that will be verbatim included in the
       
  2321   generated MAN documentation only. The block ends with a
       
  2322   endmanonly command.
       
  2323 
       
  2324   This command can be used to include groff code directly into
       
  2325   MAN pages. You can use the \\htmlonly and \\latexonly and 
       
  2326   \\endhtmlonly and \\endlatexonly pairs to provide proper 
       
  2327   HTML and \f$\mbox{\LaTeX}\f$ alternatives.
       
  2328 
       
  2329   \sa section \ref cmdhtmlonly "\\htmlonly" and section 
       
  2330               \ref cmdlatexonly "\\latexonly".
       
  2331 
       
  2332 <hr>
       
  2333 \section cmdli \\li { item-description }
       
  2334   
       
  2335   \addindex \\li
       
  2336   This command has one argument that continues until the first
       
  2337   blank line or until another \\li is encountered.
       
  2338   The command can be used to generate a simple, not nested list of
       
  2339   arguments. 
       
  2340   Each argument should start with a \\li command.
       
  2341   
       
  2342   \par Example:
       
  2343   Typing:
       
  2344   \verbatim
       
  2345   \li \c AlignLeft left alignment.
       
  2346   \li \c AlignCenter center alignment.
       
  2347   \li \c AlignRight right alignment
       
  2348   
       
  2349   No other types of alignment are supported.
       
  2350   \endverbatim
       
  2351   will result in the following text:<br><br>
       
  2352   <ul>
       
  2353   <li> \c AlignLeft left alignment.
       
  2354   <li> \c AlignCenter center alignment.
       
  2355   <li> \c AlignRight right alignment
       
  2356   </ul><br>
       
  2357   No other types of alignment are supported.
       
  2358 
       
  2359   \par Note:
       
  2360   For nested lists, HTML commands should be used.
       
  2361 
       
  2362   Equivalent to \ref cmdarg "\\arg"
       
  2363 
       
  2364 <hr>
       
  2365 \section cmdn \\n 
       
  2366   
       
  2367   \addindex \\n
       
  2368   Forces a new line. Equivalent to \<br\> and inspired by
       
  2369   the printf function.
       
  2370 
       
  2371 <hr>
       
  2372 \section cmdp \\p <word>
       
  2373  
       
  2374   \addindex \\p
       
  2375   Displays the parameter \<word\> using a typewriter font.
       
  2376   You can use this command to refer to member function parameters in 
       
  2377   the running text.
       
  2378 
       
  2379   \par Example:
       
  2380   \verbatim
       
  2381   ... the \p x and \p y coordinates are used to ...
       
  2382   \endverbatim 
       
  2383   This will result in the following text:<br><br>
       
  2384   ... the \p x and \p y coordinates are used to ...
       
  2385 
       
  2386   Equivalent to \ref cmdc "\\c"
       
  2387  
       
  2388 <hr>
       
  2389 \section cmdverbatim \\verbatim
       
  2390 
       
  2391   \addindex \\verbatim
       
  2392   Starts a block of text that will be verbatim included in both the
       
  2393   HTML and the 
       
  2394   \f$\mbox{\LaTeX}\f$ documentation. The block should end with a 
       
  2395   \\endverbatim block. All commands are disabled in a verbatim block.
       
  2396 
       
  2397   \warning Make sure you include a \\endverbatim command for each 
       
  2398   \\verbatim command or the parser will get confused!
       
  2399 
       
  2400   \sa section \ref cmdcode "\\code", and section \ref cmdverbinclude "\\verbinclude".
       
  2401 
       
  2402 <hr>
       
  2403 \section cmdxmlonly \\xmlonly
       
  2404 
       
  2405   \addindex \\xmlonly
       
  2406   Starts a block of text that will be verbatim included in the
       
  2407   generated XML output only. The block ends with a
       
  2408   endxmlonly command.
       
  2409 
       
  2410   This command can be used to include custom XML tags. 
       
  2411 
       
  2412   \sa section \ref cmdhtmlonly "\\htmlonly" and section 
       
  2413               \ref cmdlatexonly "\\latexonly".
       
  2414 
       
  2415 <hr>
       
  2416 \section cmdbackslash \\\\
       
  2417 
       
  2418   \addindex \\\\
       
  2419   This command writes a backslash character (\\) to the HTML and 
       
  2420   \f$\mbox{\LaTeX}\f$ output. The backslash has to be escaped in some 
       
  2421   cases because doxygen uses it to detect commands.
       
  2422 
       
  2423 <hr>
       
  2424 \section cmdat \\\@
       
  2425 
       
  2426   \addindex \\\@
       
  2427   This command writes an at-sign (\@) to the HTML and 
       
  2428   \f$\mbox{\LaTeX}\f$ output. The at-sign has to be escaped in some cases 
       
  2429   because doxygen uses it to detect JavaDoc commands.
       
  2430 
       
  2431 <hr>
       
  2432 \section cmdtilde \\~[LanguageId]
       
  2433   \addindex \\~
       
  2434   This command enables/disables a language specific filter. This can be
       
  2435   used to put documentation for different language into one comment block
       
  2436   and use the \c OUTPUT_LANGUAGE tag to filter out only a specific language.
       
  2437   Use \\~language_id to enable output for a specific language only and
       
  2438   \\~ to enable output for all languages (this is also the default mode).
       
  2439 
       
  2440   Example:
       
  2441 \verbatim
       
  2442 /*! \~english This is english \~dutch Dit is Nederlands \~german Dieses ist
       
  2443     deutsch. \~ output for all languages.
       
  2444  */
       
  2445 \endverbatim
       
  2446    
       
  2447 
       
  2448 <hr>
       
  2449 \section cmdamp \\\&
       
  2450 
       
  2451   \addindex \\\&
       
  2452   This command writes the \& character to output. 
       
  2453   This character has to be escaped because it has a special meaning in HTML.
       
  2454 
       
  2455 <hr>
       
  2456 \section cmddollar \\\$
       
  2457 
       
  2458   \addindex \\\$
       
  2459   This command writes the \$ character to the output. 
       
  2460   This character has to be escaped in some cases, because it is used to expand 
       
  2461   environment variables.
       
  2462 
       
  2463 <hr>
       
  2464 \section cmdhash \\\#
       
  2465 
       
  2466   \addindex \\\#
       
  2467   This command writes the \# character to the output. This 
       
  2468   character has to be escaped in some cases, because it is used to refer
       
  2469   to documented entities. 
       
  2470 
       
  2471 <hr>
       
  2472 \section cmdlt \\\<
       
  2473 
       
  2474   \addindex \\\<
       
  2475   This command writes the \< character to the output. 
       
  2476   This character has to be escaped because it has a special meaning in HTML.
       
  2477 
       
  2478 <hr>
       
  2479 \section cmdgt \\\>
       
  2480 
       
  2481   \addindex \\\>
       
  2482   This command writes the \> character to the output. This 
       
  2483   character has to be escaped because it has a special meaning in HTML.
       
  2484 
       
  2485 <hr>
       
  2486 \section cmdperc \\\%
       
  2487 
       
  2488   \addindex \\\%
       
  2489   This command writes the \% character to the output. This 
       
  2490   character has to be escaped in some cases, because it is used to 
       
  2491   prevent auto-linking to word that is also a documented class or struct. 
       
  2492 
       
  2493 <hr>
       
  2494 \section cmdquot \\"
       
  2495 
       
  2496   \addindex \\\"
       
  2497   This command writes the \" character to the output. This 
       
  2498   character has to be escaped in some cases, because it is used in pairs
       
  2499   to indicate an unformated text fragment.
       
  2500 
       
  2501 <hr>
       
  2502 \htmlonly <center> \endhtmlonly 
       
  2503 <h2>
       
  2504 \htmlonly --- \endhtmlonly 
       
  2505 Commands included for Qt compatibility
       
  2506 \htmlonly --- \endhtmlonly 
       
  2507 </h2>
       
  2508 \htmlonly </center>\endhtmlonly
       
  2509 
       
  2510 The following commands are supported to remain compatible to the Qt class
       
  2511 browser generator. Do \e not use these commands in your own documentation.
       
  2512 <ul>
       
  2513 <li>\\annotatedclasslist
       
  2514 <li>\\classhierarchy
       
  2515 <li>\\define
       
  2516 <li>\\functionindex
       
  2517 <li>\\header
       
  2518 <li>\\headerfilelist
       
  2519 <li>\\inherit
       
  2520 <li>\\l
       
  2521 <li>\\postheader
       
  2522 </ul>
       
  2523 <hr>
       
  2524 
       
  2525 */
       
  2526