Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 6f66f87ec44b6c623ed0b141648cc132 > files > 1280

doxygen-1.8.1.1-3.fc17.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Automatic link generation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen_manual.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('autolink.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Automatic link generation </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#linkurl">Links to web pages and mail addresses</a></li>
<li class="level1"><a href="#linkclass">Links to classes</a></li>
<li class="level1"><a href="#linkfile">Links to files</a></li>
<li class="level1"><a href="#linkfunc">Links to functions</a></li>
<li class="level1"><a href="#linkother">Links to other members</a></li>
<li class="level1"><a href="#resolving">typedefs</a></li>
</ul>
</div>
<div class="textblock"><p>Most documentation systems have special `see also' sections where links to other pieces of documentation can be inserted. Although doxygen also has a command to start such a section (See section <a class="el" href="commands.html#cmdsa">\sa</a>), it does allow you to put these kind of links anywhere in the documentation. For <img class="formulaInl" alt="$\mbox{\LaTeX}$" src="form_0.png"/> documentation a reference to the page number is written instead of a link. Furthermore, the index at the end of the document can be used to quickly find the documentation of a member, class, namespace or file. For man pages no reference information is generated.</p>
<p>The next sections show how to generate links to the various documented entities in a source file.</p>
<h1><a class="anchor" id="linkurl"></a>
Links to web pages and mail addresses</h1>
<p>Doxygen will automatically replace any URLs and mail addresses found in the documentation by links (in HTML). To manually specify link text, use the HTML '<code>a</code>' tag: </p>
<pre class="fragment">&lt;a href="linkURL"&gt;link text&lt;/a&gt; </pre><p> which will be automatically translated to other output formats by Doxygen.</p>
<h1><a class="anchor" id="linkclass"></a>
Links to classes</h1>
<p>All words in the documentation that correspond to a documented class and contain at least one non-lower case character will automatically be replaced by a link to the page containing the documentation of the class. If you want to prevent that a word that corresponds to a documented class is replaced by a link you should put a % in front of the word. To link to an all lower case symbol, use <a class="el" href="commands.html#cmdref">\ref</a>.</p>
<h1><a class="anchor" id="linkfile"></a>
Links to files</h1>
<p>All words that contain a dot (<code>.</code>) that is not the last character in the word are considered to be file names. If the word is indeed the name of a documented input file, a link will automatically be created to the documentation of that file.</p>
<h1><a class="anchor" id="linkfunc"></a>
Links to functions</h1>
<p>Links to functions are created if one of the following patterns is encountered: </p>
<ol>
<li>
<code>&lt;functionName&gt;"("&lt;argument-list&gt;")"</code> </li>
<li>
<code>&lt;functionName&gt;"()"</code> </li>
<li>
<code>"::"&lt;functionName&gt;</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"("&lt;argument-list&gt;")"</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"("&lt;argument-list&gt;")"&lt;modifiers&gt;</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;"()"</code> </li>
<li>
<code>(&lt;className&gt;"::")<sup>n</sup>&lt;functionName&gt;</code> </li>
</ol>
<p>where n&gt;0.</p>
<dl class="section user"><dt>Note 1: </dt><dd>Function arguments should be specified with correct types, i.e. 'fun(const std::string&amp;,bool)' or '()' to match any prototype. </dd></dl>
<dl class="section user"><dt>Note 2:</dt><dd>Member function modifiers (like 'const' and 'volatile') are required to identify the target, i.e. 'func(int) const' and 'fun(int)' target different member functions. </dd></dl>
<dl class="section user"><dt>Note 3: </dt><dd>For JavaDoc compatibility a # may be used instead of a :: in the patterns above. </dd></dl>
<dl class="section user"><dt>Note 4:</dt><dd>In the documentation of a class containing a member foo, a reference to a global variable is made using "::foo", whereas #foo will link to the member.</dd></dl>
<p>For non overloaded members the argument list may be omitted.</p>
<p>If a function is overloaded and no matching argument list is specified (i.e. pattern 2 or 6 is used), a link will be created to the documentation of one of the overloaded members.</p>
<p>For member functions the class scope (as used in patterns 4 to 7) may be omitted, if: </p>
<ol>
<li>
The pattern points to a documented member that belongs to the same class as the documentation block that contains the pattern. </li>
<li>
The class that corresponds to the documentation blocks that contains the pattern has a base class that contains a documented member that matches the pattern. </li>
</ol>
<h1><a class="anchor" id="linkother"></a>
Links to other members</h1>
<p>All of these entities can be linked to in the same way as described in the previous section. For sake of clarity it is advised to only use patterns 3 and 7 in this case.</p>
<dl class="section user"><dt>Example:</dt><dd><pre class="fragment">/*! \file autolink.cpp
  Testing automatic link generation.
  
  A link to a member of the Test class: Test::member, 
  
  More specific links to the each of the overloaded members:
  Test::member(int) and Test#member(int,int)

  A link to a protected member variable of Test: Test#var, 

  A link to the global enumeration type #GlobEnum.
 
  A link to the define #ABS(x).
  
  A link to the destructor of the Test class: Test::~Test, 
  
  A link to the typedef ::B.
 
  A link to the enumeration type Test::EType
  
  A link to some enumeration values Test::Val1 and ::GVal2
*/

/*!
  Since this documentation block belongs to the class Test no link to 
  Test is generated.

  Two ways to link to a constructor are: #Test and Test().

  Links to the destructor are: #~Test and ~Test().
  
  A link to a member in this class: member().

  More specific links to the each of the overloaded members: 
  member(int) and member(int,int). 
  
  A link to the variable #var.

  A link to the global typedef ::B.

  A link to the global enumeration type #GlobEnum.
  
  A link to the define ABS(x).
  
  A link to a variable \link #var using another text\endlink as a link.
  
  A link to the enumeration type #EType.

  A link to some enumeration values: \link Test::Val1 Val1 \endlink and ::GVal1.

  And last but not least a link to a file: autolink.cpp.
  
  \sa Inside a see also section any word is checked, so EType, 
      Val1, GVal1, ~Test and member will be replaced by links in HTML.
*/

class Test
{
  public:
    Test();               //!&lt; constructor 
   ~Test();               //!&lt; destructor 
    void member(int);     /**&lt; A member function. Details. */
    void member(int,int); /**&lt; An overloaded member function. Details */

    /** An enum type. More details */
    enum EType { 
      Val1,               /**&lt; enum value 1 */ 
      Val2                /**&lt; enum value 2 */ 
    };                

  protected:
    int var;              /**&lt; A member variable */
};

/*! details. */
Test::Test() { }

/*! details. */
Test::~Test() { }

/*! A global variable. */
int globVar;

/*! A global enum. */
enum GlobEnum { 
                GVal1,    /*!&lt; global enum value 1 */ 
                GVal2     /*!&lt; global enum value 2 */ 
              };

/*!
 *  A macro definition.
 */ 
#define ABS(x) (((x)&gt;0)?(x):-(x))

typedef Test B;

/*! \fn typedef Test B
 *  A type definition. 
 */
</pre>  
  Click <a href="../examples/autolink/html/index.html">here</a> 
  for the corresponding HTML documentation that is generated by Doxygen.
  </dd></dl>
<h1><a class="anchor" id="resolving"></a>
typedefs</h1>
<p>Typedefs that involve classes, structs and unions, like </p>
<pre class="fragment">typedef struct StructName TypeName
</pre><p> create an alias for StructName, so links will be generated to StructName, when either StructName itself or TypeName is encountered.</p>
<dl class="section user"><dt>Example:</dt><dd><pre class="fragment">/*! \file restypedef.cpp
 * An example of resolving typedefs.
 */

/*! \struct CoordStruct
 * A coordinate pair.
 */
struct CoordStruct
{
  /*! The x coordinate */
  float x;
  /*! The y coordinate */
  float y;
};

/*! Creates a type name for CoordStruct */ 
typedef CoordStruct Coord;

/*! 
 * This function returns the addition of \a c1 and \a c2, i.e:
 * (c1.x+c2.x,c1.y+c2.y)
 */
Coord add(Coord c1,Coord c2)
{
}
</pre>  
  Click <a href="../examples/restypedef/html/restypedef_8cpp.html">here</a> 
  for the corresponding HTML documentation that is generated by Doxygen.
   </dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>