1<?xml version="1.0" ?>
2<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3<xsl:output method="xml" encoding="UTF-8" indent="yes" />
4<xsl:param name="which" />
5
6<xsl:template match="/">
7  <xsl:apply-templates select="/doxygen/compounddef[@kind!='file' and @kind!='dir']" />
8
9  <section id="{$which}-Functions">
10    <title>Functions</title>
11    <para />
12    <variablelist>
13      <xsl:apply-templates select="/doxygen/compounddef[@kind='file']/sectiondef/memberdef" />
14    </variablelist>
15  </section>
16
17</xsl:template>
18
19<xsl:template match="parameteritem">
20    <varlistentry>
21        <term>
22          <xsl:apply-templates select="parameternamelist/parametername"/>
23        </term>
24      <listitem>
25        <simpara><xsl:apply-templates select="parameterdescription"/></simpara>
26      </listitem>
27    </varlistentry>
28</xsl:template>
29
30<xsl:template match="parameterlist">
31  <xsl:if test="parameteritem">
32      <variablelist>
33        <xsl:apply-templates select="parameteritem" />
34      </variablelist>
35  </xsl:if>
36</xsl:template>
37
38<xsl:template match="ref">
39  <link linkend="{$which}-{@refid}"><xsl:value-of select="." /></link>
40</xsl:template>
41
42<xsl:template match="simplesect[@kind='return']">
43  <variablelist>
44    <varlistentry>
45      <term>Returns:</term>
46      <listitem>
47        <simpara><xsl:apply-templates /></simpara>
48      </listitem>
49    </varlistentry>
50  </variablelist>
51</xsl:template>
52
53<xsl:template match="simplesect[@kind='see']">
54  See also: <xsl:apply-templates />
55</xsl:template>
56
57<xsl:template match="simplesect[@kind='since']">
58  Since: <xsl:apply-templates />
59</xsl:template>
60
61<xsl:template match="simplesect[@kind='note']">
62  <emphasis>Note: <xsl:apply-templates /></emphasis>
63</xsl:template>
64
65<xsl:template match="sp">
66  <xsl:text> </xsl:text>
67</xsl:template>
68
69<xsl:template match="programlisting">
70  <programlisting><xsl:apply-templates /></programlisting>
71</xsl:template>
72
73<xsl:template match="itemizedlist">
74  <itemizedlist><xsl:apply-templates select="listitem" /></itemizedlist>
75</xsl:template>
76
77<xsl:template match="listitem">
78  <listitem><simpara><xsl:apply-templates /></simpara></listitem>
79</xsl:template>
80
81<!-- stops cross-references in the section titles -->
82<xsl:template match="briefdescription">
83  <xsl:value-of select="." />
84</xsl:template>
85
86<!-- this opens a para for each detaileddescription/para. I could not find a
87     way to extract the right text for the description from the
88     source otherwise. Downside: we can't use para for return value, "see
89     also", etc.  because they're already inside a para. So they're lists.
90
91     It also means we don't control the order of when something is added to
92     the output, it matches the input file
93     -->
94<xsl:template match="detaileddescription/para">
95  <para><xsl:apply-templates /></para>
96</xsl:template>
97
98<xsl:template match="detaileddescription">
99  <xsl:apply-templates select="para" />
100</xsl:template>
101
102<!-- methods -->
103<xsl:template match="memberdef" >
104  <xsl:if test="@kind = 'function' and @static = 'no' and @prot = 'public' or
105                @kind !='function' and normalize-space(briefdescription) != ''">
106    <varlistentry id="{$which}-{@id}">
107        <term>
108          <xsl:value-of select="name"/>
109          <xsl:if test="normalize-space(briefdescription) != ''">
110            - <xsl:apply-templates select="briefdescription" />
111          </xsl:if>
112        </term>
113        <listitem>
114          <synopsis>
115            <xsl:apply-templates select="definition"/><xsl:apply-templates select="argsstring"/>
116          </synopsis>
117          <xsl:apply-templates select="detaileddescription" />
118        </listitem>
119    </varlistentry>
120  </xsl:if>
121</xsl:template>
122
123<!-- classes -->
124<xsl:template match="compounddef" >
125    <section id="{$which}-{@id}">
126        <title>
127            <xsl:value-of select="compoundname" />
128            <xsl:if test="normalize-space(briefdescription) != ''">
129                - <xsl:apply-templates select="briefdescription" />
130            </xsl:if>
131        </title>
132        <xsl:choose>
133          <xsl:when test="normalize-space(detaileddescription) != ''">
134            <xsl:apply-templates select="detaileddescription" />
135          </xsl:when>
136          <xsl:otherwise>
137            <para />
138          </xsl:otherwise>
139        </xsl:choose>
140        <xsl:if test="sectiondef/memberdef[@kind='function' and @static='no']">
141          <variablelist>
142            <xsl:apply-templates select="sectiondef/memberdef" />
143          </variablelist>
144        </xsl:if>
145    </section>
146</xsl:template>
147</xsl:stylesheet>
148