<?xml version="1.0" encoding="utf-8"?>\r
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">\r
+<xsl:stylesheet version="1.0"\r
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+ xmlns:str="http://exslt.org/strings">\r
\r
<xsl:output \r
method="html" \r
\r
<!-- ====================================================================== -->\r
\r
+ <!-- Hack Glossary menu highlight -->\r
+\r
+ <xsl:template match="div[@class='tabs menu']/ul[1]">\r
+ <xsl:choose>\r
+ <xsl:when test="//h1[.//text()='Glossary']">\r
+ <xsl:call-template name="add-class">\r
+ <xsl:with-param name="class">glossary</xsl:with-param>\r
+ </xsl:call-template>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <xsl:copy>\r
+ <xsl:call-template name="copy-attributes"/>\r
+ <xsl:apply-templates/>\r
+ </xsl:copy>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ </xsl:template>\r
+\r
+ <!-- Autogenerate table-of-contents for a page -->\r
+\r
+ <xsl:template match="div[@id='autotoc']">\r
+ <xsl:copy>\r
+ <xsl:call-template name="copy-attributes"/>\r
+ <h1>Contents</h1>\r
+ <ul>\r
+ <xsl:for-each select="following::h2|following::h3|following::h4">\r
+ <xsl:element name="li">\r
+ <xsl:attribute name="class">\r
+ <xsl:value-of select="concat('level_',local-name())"/>\r
+ </xsl:attribute>\r
+ <b><xsl:call-template name="section-number"/><xsl:text> </xsl:text></b>\r
+ <xsl:element name="a">\r
+ <xsl:choose>\r
+ <xsl:when test="a/@name">\r
+ <xsl:attribute name="href">\r
+ <xsl:value-of select="concat('#',a/@name)"/>\r
+ </xsl:attribute>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <xsl:attribute name="href">\r
+ <xsl:text>#autotoc-</xsl:text>\r
+ <xsl:call-template name="section-number"/>\r
+ </xsl:attribute>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ <xsl:value-of select="string(current())"/>\r
+ </xsl:element>\r
+ </xsl:element>\r
+ </xsl:for-each>\r
+ </ul>\r
+ </xsl:copy>\r
+ </xsl:template>\r
+\r
+ <xsl:template name="section-number">\r
+ <xsl:number level="any" from="div[@id='autotoc']" count="h2"/>\r
+ <xsl:text>.</xsl:text>\r
+ <xsl:if test="self::h3|self::h4">\r
+ <xsl:number level="any" from="h2" count="h3"/>\r
+ <xsl:text>.</xsl:text>\r
+ </xsl:if>\r
+ <xsl:if test="self::h4">\r
+ <xsl:number level="any" from="h3" count="h4"/>\r
+ <xsl:text>.</xsl:text>\r
+ </xsl:if>\r
+ </xsl:template>\r
+ \r
+ <xsl:template match="h2|h3|h4">\r
+ <xsl:copy>\r
+ <xsl:call-template name="copy-attributes"/>\r
+ <xsl:choose>\r
+ <xsl:when test="preceding::div[@id='autotoc']">\r
+ <xsl:call-template name="section-number"/>\r
+ <xsl:text> </xsl:text>\r
+ <xsl:choose>\r
+ <xsl:when test="a">\r
+ <xsl:apply-templates/>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <xsl:element name="a">\r
+ <xsl:attribute name="class"><xsl:text>anchor</xsl:text></xsl:attribute>\r
+ <xsl:attribute name="name">\r
+ <xsl:text>autotoc-</xsl:text>\r
+ <xsl:call-template name="section-number"/>\r
+ </xsl:attribute>\r
+ <xsl:apply-templates/>\r
+ </xsl:element>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ </xsl:when>\r
+ <xsl:otherwise>\r
+ <xsl:apply-templates/>\r
+ </xsl:otherwise>\r
+ </xsl:choose>\r
+ </xsl:copy>\r
+ </xsl:template>\r
+\r
+ <!-- Build dia image-map from special div/span elements -->\r
+ <xsl:template match="div[@class='diamap']">\r
+ <xsl:element name="map">\r
+ <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>\r
+ <xsl:for-each select="span">\r
+ <xsl:if test="a">\r
+ <xsl:variable name="name" select="string(a[1])"/>\r
+ <xsl:element name="area">\r
+ <xsl:attribute name="shape">rect</xsl:attribute>\r
+ <xsl:attribute name="alt"><xsl:value-of select="$name"/></xsl:attribute>\r
+ <xsl:attribute name="title"><xsl:value-of select="$name"/></xsl:attribute>\r
+ <xsl:attribute name="href"><xsl:value-of select="a[1]/@href"/></xsl:attribute>\r
+ <xsl:attribute name="coords"><xsl:value-of select="@coords"/></xsl:attribute>\r
+ </xsl:element>\r
+ </xsl:if>\r
+ </xsl:for-each>\r
+ </xsl:element>\r
+ </xsl:template>\r
+\r
+ <!-- Add grouping to all-members page -->\r
+\r
+ <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]">\r
+ <table class="allmembers">\r
+ <tr><td colspan="3"><h2>Public static member functions</h2></td></tr>\r
+ <xsl:apply-templates select="tr[contains(td[3],'static')][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'<'),'<'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))]"/>\r
+\r
+ <tr><td colspan="3"><h2>Public member functions</h2></td></tr>\r
+ <xsl:apply-templates select="tr[not(contains(td[1],'typedef'))][not(contains(td[3],'static'))][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'<'),'<'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+ <tr><td colspan="r"><h2>Public typedefs</h2></td></tr>\r
+ <xsl:apply-templates select="tr[contains(td[1],'typedef')][not(contains(td[3],'protected'))][not(contains(td[3],'private'))][not(contains(td[3],'friend'))][str:split(substring-before(concat(td[2]/a,'<'),'<'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+ <tr><td colspan="3"><h2>Non-public members</h2></td></tr>\r
+ <xsl:apply-templates select="tr[contains(td[3],'protected') or contains(td[3],'private') or contains(td[3],'friend')][str:split(substring-before(concat(td[2]/a,'<'),'<'),'::')[position()=last()]!=string(td[1]/a)][not(starts-with(td[1]/a,'~'))][not(contains(td[3],'pure virtual'))]"/>\r
+\r
+ </table>\r
+ </xsl:template>\r
+\r
+ <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]/tr/td[2]/a/text()[contains(.,'<')]">\r
+ <xsl:value-of select="substring-before(.,'<')"/>\r
+ </xsl:template>\r
+\r
+ <xsl:template match="table[preceding-sibling::h1[1][contains(text(),'Member List')]]/tr/td[1]/a/text()[contains(.,'::')]">\r
+ <xsl:value-of select="str:split(.,'::')[position()=last()]"/>\r
+ </xsl:template>\r
+\r
<!-- Remove the automatically inserted search form (we build our own) -->\r
<xsl:template match="li[form]"> \r
</xsl:template>\r
+\r
+ <xsl:template match="table[preceding-sibling::*[1][self::div][@class='qindex']]">\r
+ <xsl:call-template name="add-class">\r
+ <xsl:with-param name="class">qindextable</xsl:with-param>\r
+ </xsl:call-template>\r
+ </xsl:template>\r
\r
<xsl:template match="dl[dt/b/a/text()='Bug:']">\r
<xsl:call-template name="add-class">\r
</xsl:call-template>\r
</xsl:template>\r
\r
- <xsl:template match="dl[dt/b/text()='Parameters:']">\r
+ <xsl:template match="dl[dt/b/text()='Parameters:']|dl[dt/b/text()='Template Parameters:']">\r
<xsl:call-template name="add-class">\r
<xsl:with-param name="class">parameters</xsl:with-param>\r
</xsl:call-template>\r
<!-- Remove [external] references from the modules page -->\r
<xsl:template match="div[@id='content2']/ul/li[a/@class='elRef'][a/@doxygen][code/text()='[external]'][not(ul)]">\r
</xsl:template>\r
- \r
+\r
+ <!-- Insert 'senf/' into include paths -->\r
+ <xsl:template match="code[starts-with(text(),'#include <')]/a">\r
+ <xsl:copy>\r
+ <xsl:call-template name="copy-attributes"/>\r
+ <xsl:text>senf/</xsl:text>\r
+ <xsl:apply-templates/>\r
+ </xsl:copy>\r
+ </xsl:template>\r
+\r
</xsl:stylesheet>\r