source: trunk/third/gtk-doc/doc/gnome.txt @ 20745

Revision 20745, 3.0 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20744, which included commits to RCS files with non-trunk default branches.
Line 
1
2These are the comment blocks used in Gnome source files to document
3functions (and macros, signals and properties, if you want).
4
5/**
6 * function_name:
7 * @par1:  description of parameter 1. These can extend over more than
8 * one line.
9 * @par2:  description of parameter 2
10 *
11 * The function description goes here. You can use @par1 to refer to parameters
12 * so that they are highlighted in the output. You can also use %constant
13 * for constants, function_name2() for functions and #GtkWidget for links to
14 * other declarations (which may be documented elsewhere).
15 *
16 * Returns: an integer.
17 */
18
19The block starts with '/**'.
20Each line starts with ' * '.
21
22The second line is the function name, optionally followed by a ':'. In
23order to document signals in inline comments, use a name of the form
24class::signal, e.g. GtkWidget::notify-child. For properties, use a
25name of the form class:property, e.g. GtkAlignment:top-padding. Note
26that gtk-doc expects the signal and property names to be spelled with
27hyphens, not underlines.
28
29Following the function name are the parameters, e.g. '@par1:' above.
30
31A blank line MUST be used to separate parameter descriptions from the main
32description (otherwise it is assumed to be a continuation of the parameter
33description.)
34
35After the main description is a 'Returns:' line to describe the
36returned value of the function (if it is not void).
37
38Text inside the descriptions can use these special characters (they
39will be expanded into appropriate DocBook tags):
40
41   @name   a parameter.
42   %name   a constant.
43   name()  reference to a function, or a macro which works like a function
44           (this will be turned into a hypertext link if the function is
45           documented anywhere).
46   #name   reference to any other type of declaration, e.g. a struct, enum,
47           union, or macro (this will also be turned into a link if possible).
48
49To avoid problems, the characters '<', '>' and '&' in the descriptions are
50converted into the SGML entities &lt; &gt; and &amp;.
51This means that you can't use Docbook SGML tags, unless specify the --sgml-mode
52option for gtkdoc-mkdb, which suppresses the escaping of '<', '>' and
53'&' and allows Docbook markup in inline comments.
54
55If you are using markup in inline comments, you must be careful to to
56not run into problems with the automatic splitting of the comment in
57paragraphs at empty lines. A line counts as empty for this purpose, if
58it is empty after the removal of the initial ' * ' prefix. Thus you
59can work around this problem by adding some trailing whitespace to
60lines which should appear as empty, but not end a paragraph. This is
61especially relevant in code examples, which often contain empty lines.
62
63Some more hints regarding examples: Hyperlinks in the formatted examples
64are confusing, therefore you should suppress the gtk-doc markup by using
65function(<!-- -->) instead of function(). Use character entities to refer
66to the characters %, &, < or #, e.g.
67
68   if (a < b && verbose)
69      printf ("bla %s %#x", bla, a);
70
71would become
72
73   if (a &lt; b &amp;&amp; verbose)
74      printf ("bla &percnt;s &percnt;&num;x", bla, a);
75
Note: See TracBrowser for help on using the repository browser.