diff options
Diffstat (limited to 'giscanner/mallard-C-function.tmpl')
-rw-r--r-- | giscanner/mallard-C-function.tmpl | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/giscanner/mallard-C-function.tmpl b/giscanner/mallard-C-function.tmpl new file mode 100644 index 00000000..2da4710f --- /dev/null +++ b/giscanner/mallard-C-function.tmpl @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<% +page_style = 'function' +if node.is_constructor: + page_style = 'constructor' +elif node.is_method: + page_style = 'method' +%> +<page id="${page_id}" + type="topic" + style="${page_style}" + xmlns="http://projectmallard.org/1.0/" + xmlns:api="http://projectmallard.org/experimental/api/" + xmlns:ui="http://projectmallard.org/experimental/ui/"> + <info> +% if node.parent is not None: + <link type="guide" xref="${namespace.name}.${node.parent.name}" group="${page_style}"/> +% else: + <link type="guide" xref="index" group="${page_style}"/> +% endif + <api:function> + <api:returns> + <api:type>${formatter.format_type(node.retval.type) | x}</api:type> + </api:returns> + <api:name>${node.symbol}</api:name> +% if node.is_method: + <api:arg> + <api:type>${node.parent.ctype} *</api:type> + <api:name>self</api:name> + </api:arg> +% endif +% for arg in node.parameters: +% if arg.type.ctype == '<varargs>': + <api:varargs/> +% else: + <api:arg> + <api:type>${formatter.format_type(arg.type) | x}</api:type> + <api:name>${arg.argname}</api:name> + </api:arg> +% endif +% endfor + </api:function> + </info> + <title>${node.symbol}</title> +<synopsis><code mime="text/x-csrc"> +${node.retval.type.ctype} ${node.symbol} (\ +% if node.is_method: +${node.parent.ctype} *self\ +%endif +% if len(node.parameters) == 0: +% if not node.is_method: +void\ +%endif +); +% elif node.is_method: +, +% endif +% for arg, ix in zip(node.parameters, range(len(node.parameters))): +% if ix != 0: +${' ' * (len(formatter.format_type(node.retval.type)) + len(node.symbol) + 3)}\ +% endif +% if arg.type.ctype == '<varargs>': +...\ +% else: +${formatter.format_type(arg.type) | x} ${arg.argname}\ +% endif +% if ix == len(node.parameters) - 1: +); +% else: +, +%endif +% endfor +</code></synopsis> +${formatter.format(node.doc)} + +% if node.parameters or node.retval: +<table> +% for arg, ix in zip(node.parameters, range(len(node.parameters))): +<tr> +<td><p>${arg.argname} :</p></td> +<td>${formatter.format(arg.doc)}</td> +</tr> +% endfor +% if node.retval: +<tr> +<td><p>Returns :</p></td> +<td>${formatter.format(node.retval.doc)}</td> +</tr> +% endif +</table> +% endif +% if node.version: +<p>Since ${node.version}</p> +% endif +</page> |