<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>  
<!--<xsl:output omit-xml-declaration="yes" />-->

<!--
<xsl:template match="tr">\twocolitem<xsl:apply-templates/></xsl:template>

<xsl:template match="td">{<xsl:apply-templates/>}</xsl:template>

<xsl:template match="table">\begin{twocollist}\itemsep=0pt
<xsl:apply-templates/>
\end{twocollist}
</xsl:template>
-->

<xsl:template match="b">\bf{<xsl:value-of select="."/>}</xsl:template>

<xsl:template match="ol">\begin{enumerate}\itemsep=0pt
<xsl:apply-templates/>
\end{enumerate}</xsl:template>

<xsl:template match="ul">\begin{itemize}\itemsep=0pt
<xsl:apply-templates/>
\end{itemize}</xsl:template>

<xsl:template match="li">\item <xsl:apply-templates/>
</xsl:template>

<xsl:template match="p">


<xsl:apply-templates/>


</xsl:template>

<xsl:template match="pre">
{\small
\begin{verbatim}
<xsl:apply-templates/>
\end{verbatim}
}
</xsl:template>

<xsl:template match="classref">
  <section-link>
    <xsl:attribute name="name">#class-<xsl:value-of select="@name"/></xsl:attribute>
    <xsl:attribute name="label"><xsl:value-of select="@name"/></xsl:attribute>
  </section-link>
</xsl:template>

<xsl:template match="ref">
  <a>
    <xsl:attribute name="href"><xsl:value-of select="@target"/></xsl:attribute>
    <xsl:value-of select="."/>
  </a>
</xsl:template>

<xsl:template match="parents">
  <h1>Derived from</h1>
  <xsl:for-each select="ref">
    <xsl:apply-templates select="."/><xml:text>\\
    </xml:text>
  </xsl:for-each>
</xsl:template>

<xsl:template match="header">
  <xsl:text>&lt;</xsl:text>
  <xsl:value-of select="@name"/>
  <xsl:text>&gt;

  </xsl:text>
</xsl:template>

<xsl:template match="@platforms">
  <xsl:value-of select="."/><xsl:text> only.</xsl:text>
</xsl:template>

<xsl:template match="style">
  <xsl:text>\twocolitem{\windowstyle{</xsl:text>
  <xsl:value-of select="@name"/>
  <xsl:text>}}{</xsl:text>
  <xsl:value-of select="."/>
  <xsl:apply-templates select="@platforms"/>
  <xsl:text>}
  </xsl:text>
</xsl:template>

<xsl:template match="windowstyles">
  <h1>Window styles</h1>
  <xsl:text>
\begin{twocollist}
  </xsl:text>
  <xsl:apply-templates/>
  <xsl:text>
\end{twocollist}

See also \helpref{window styles overview}{windowstyles}.

  </xsl:text>
</xsl:template>

<xsl:template match="event">
  <xsl:text>\twocolitem{\bf{</xsl:text>
  <xsl:value-of select="@name"/>
  <xsl:text>}}{</xsl:text>
  <xsl:value-of select="."/>
  <xsl:apply-templates select="@platforms"/>
  <xsl:text>}
  </xsl:text>
</xsl:template>

<xsl:template match="events">
  <h1>Event handling</h1>
  <xsl:text>

\begin{twocollist}
  </xsl:text>
  <xsl:apply-templates/>
  <xsl:text>
\end{twocollist}
  </xsl:text>
</xsl:template>

<xsl:template match="structs">
<h1>Structs</h1>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="category">
  <h1>Category</h1>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="includes">
  <h1>Include Files</h1>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="remarks">
  <h1>Remark</h1>
  <xsl:value-of select="."/>
</xsl:template>

<xsl:template match="parameter">
  <xsl:text>
\docparam{</xsl:text>
  <xsl:value-of select="@name"/>}{<xsl:apply-templates/>}
</xsl:template>

<xsl:template match="parameters">
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="function">
  <xsl:text>
\func{</xsl:text>
  <xsl:value-of select="@type"/>

  <xsl:text>}{</xsl:text>

  <xsl:value-of select="@name"/>

  <xsl:text>}{</xsl:text>
  
  <xsl:for-each select="parameters/parameter">
    \param{<xsl:value-of select="@type"/>}{<xsl:value-of select="@name"/>
    <xsl:if test="@value != ''">
      <xsl:text> = </xsl:text><xsl:value-of select="@value"/>
    </xsl:if>
    <xsl:text>}</xsl:text>
    <xsl:if test="position() != last()">, </xsl:if>
  </xsl:for-each>
  <xsl:if test="count(parameters/parameter) = 0">
    <xsl:text>\void</xsl:text>
  </xsl:if>
  <xsl:text>}

  </xsl:text>
  <xsl:apply-templates select="description"/>
  <xsl:if test="count(parameters/parameter) != 0">
  <h1>Parameters</h1>
  </xsl:if>
  <xsl:apply-templates select="parameters"/>
  <xsl:apply-templates select="seealso"/>
</xsl:template>

<xsl:template match="member">
  <xsl:text>
\membersection{</xsl:text>
  <xsl:value-of select="@class"/>
  <xsl:text>::</xsl:text>
  <xsl:value-of select="@name"/>
  <xsl:text>}\label{</xsl:text>
  <xsl:value-of select="translate(@class,$uc,$lc)"/>
  <!--<xsl:text>::</xsl:text>-->
  <xsl:value-of select="translate(@name,$uc,$lc)"/>
  <xsl:text>}
  </xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="members">
  <h1>Members</h1>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="seealso">
  <h1>See also</h1>
  <xsl:apply-templates/>
</xsl:template>

  <!--<xsl:call-template name="LaTeXChar">
    <xsl:with-param name="inputstring" select="."/>
  </xsl:call-template>-->
<xsl:template match="description">
<xsl:apply-templates/>
</xsl:template>

<xsl:variable name="uc" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:variable name="lc" select="'abcdefghijklmnopqrstuvwxyz'" />

<xsl:template match="class">
  <section>
  <xsl:attribute name="name">class-<xsl:value-of select="@name"/></xsl:attribute>
  <xsl:attribute name="label"><xsl:value-of select="@name"/></xsl:attribute>

  <!--<xsl:apply-templates select="description"/>
  <xsl:apply-templates select="example"/>
  <xsl:apply-templates select="category"/>
  <xsl:apply-templates select="parents"/>
  <xsl:apply-templates select="friends"/>
  <xsl:apply-templates select="includes"/>
  <xsl:apply-templates select="library"/>
  <xsl:apply-templates select="windowstyles"/>
  <xsl:apply-templates select="events"/>
  <xsl:apply-templates select="constants"/>
  <xsl:apply-templates select="predefs"/>
  <xsl:apply-templates select="structs"/>
  <xsl:apply-templates select="types"/>
  <xsl:apply-templates select="iterators"/>
  <xsl:apply-templates select="override"/>
  <xsl:apply-templates select="remarks"/>
  <xsl:apply-templates select="note"/>
  <xsl:apply-templates select="seealso"/>
  <xsl:apply-templates select="members"/>-->
  </section>
</xsl:template>

<xsl:template match="classes">
<document>
  <document-meta-info>
    <title>wxWidgets Reference Manual (generated from XML with Aurigadoc)</title>
    <attribute name="Author">Julian Smart et al</attribute>
  </document-meta-info>

  <document-formatting-info>
    <generate-toc-page>yes</generate-toc-page>
  </document-formatting-info>
  <document-header>
    This is the page header.
  </document-header>

  <document-body>
  <table-of-content>
    <link href="#classes">Alphabetical Class Reference
      <!--<link href="#classes-wxString">wxString</link>-->
    </link>
  </table-of-content>
  <section name="classes" label="Alphabetical Class Reference">
    This is the Alphabetical Class Reference: <section-link href="#class-wxString">wxString</section-link> That was a link.
  </section>
  <!-- here come the class pages themselves -->
  <xsl:apply-templates select="class"/>
  </document-body>

  <!-- alphabetical class reference -->
  <!--
  <xsl:document href="output/classes.tex" method="text">
    <xsl:text>
\chapter{Alphabetical class reference}\label{classref}
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%

% NB: the files should be in alphabetic order of the classes documented in
%     them and *not* in alphabetic order of the file names!

This file was generated from the XML version of the wxWidgets documentation.

</xsl:text>
    <xsl:for-each select="class">
      <xsl:text>\include </xsl:text><xsl:value-of select="translate(@name,$uc,$lc)"/>
      <xsl:text>.tex
</xsl:text>
    </xsl:for-each>
  </xsl:document>
  -->
</document>
</xsl:template>

<xsl:template name="nonewlines">
  <xsl:param name="inputstring"/>
   <xsl:choose>
   <xsl:when test='contains($inputstring, "\n")'>
     <xsl:value-of select='substring-before($inputstring, "\n")'/>
     <xsl:call-template name="nonewlines">
       <xsl:with-param name="inputstring"
         select='substring-after($inputstring, "\n")'/>
     </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
     <xsl:value-of select="$inputstring"/>
   </xsl:otherwise>
   </xsl:choose> 
</xsl:template>


<!-- Not used anymore - strange characters are
  now weeded out with perl in merge.sh -->
<xsl:template name="LaTeXChar">
  <xsl:param name="inputstring"/>
   <xsl:choose>
   <xsl:when test='contains($inputstring, "_")'>
     <xsl:value-of select='substring-before($inputstring, "_")'/>
     <xsl:text>\_</xsl:text>
     <xsl:call-template name="LaTeXChar">
       <xsl:with-param name="inputstring"
         select='substring-after($inputstring, "_")'/>
     </xsl:call-template>
   </xsl:when>
   <xsl:otherwise>
     <xsl:value-of select="$inputstring"/>
   </xsl:otherwise>
   </xsl:choose> 
</xsl:template>

</xsl:stylesheet>

