2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
4 <xsl:output method="html" indent="no"/>
5 <!-- <xsl:output method="xml"/>-->
6 <!-- Will not work: <xsl:strip-space elements="*"/> -->
8 <xsl:template match="/">
14 <SCRIPT src="rapistatus.js"></SCRIPT>
15 <LINK rel="stylesheet" type="text/css" href="rapistatus.css"></LINK>
17 <BODY onLoad="onLoad();">
19 <H1>ReactOS API Status</H1>
24 <TD> <INPUT type="checkbox" ID="implemented" onClick="selectImplemented();" checked="1"/> </TD>
25 <TD> <IMG src="i.gif"/> </TD>
26 <TD> Implemented </TD>
30 <TD> <INPUT type="checkbox" ID="unimplemented" onClick="selectUnimplemented();" checked="1"/> </TD>
31 <TD> <IMG src="u.gif"/> </TD>
32 <TD> Unimplemented </TD>
38 <xsl:apply-templates/>
44 <TD> <IMG src="c.gif"/> </TD>
46 <TD> <IMG src="i.gif"/> </TD>
47 <TD> Implemented </TD>
48 <TD> <IMG src="sc.gif"/> </TD>
52 <TD> <IMG src="f.gif"/> </TD>
54 <TD> <IMG src="u.gif"/> </TD>
55 <TD> Unimplemented </TD>
68 <xsl:template match="/components">
69 <xsl:apply-templates select="component">
70 <xsl:sort select="@name"/>
71 </xsl:apply-templates>
74 <xsl:template match="components/component[@implemented_total or @unimplemented_total]">
76 <xsl:call-template name="ELEMENT">
77 <xsl:with-param name="class">c</xsl:with-param>
80 <xsl:with-param name="base"><xsl:value-of select="@base"/></xsl:with-param>
81 </xsl:apply-templates>
87 <xsl:template match="functions">
88 <xsl:param name="base"/>
89 <xsl:apply-templates select="f">
90 <xsl:sort select="@n"/>
91 <xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
92 </xsl:apply-templates>
95 <xsl:template match="functions/f">
96 <xsl:param name="base"/>
98 <xsl:call-template name="ELEMENT">
99 <xsl:with-param name="class">f</xsl:with-param>
100 <xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
102 <xsl:apply-templates/>
107 <!-- support templates -->
109 <xsl:template name="ELEMENT">
110 <xsl:param name="class"/>
111 <xsl:param name="base"/>
112 <xsl:param name="image"/>
113 <xsl:attribute name="class">
114 <xsl:value-of select="$class"/>
115 <xsl:text>_</xsl:text>
117 <xsl:call-template name="toggle"/>
119 <xsl:when test="./node() and local-name() != 'component' and @i = 'true'">
120 <img src="i.gif" class="i"/>
122 <xsl:when test="./node() and local-name() != 'component' and @i = 'false'">
123 <img src="u.gif" class="u"/>
125 <xsl:when test="./node() and local-name() = 'component' and @complete >= 100">
129 <img src="tb.gif" with="12" height="12"/>
133 <xsl:when test="$image">
134 <img src="{$image}.gif" class="t"/>
137 <img src="{$class}.gif" class="t"/>
140 <xsl:call-template name="name"/>
141 <xsl:call-template name="n"/>
142 <xsl:call-template name="file">
143 <xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
145 <xsl:call-template name="status"/>
148 <xsl:template name="status">
149 <xsl:if test="@complete and @complete != 0">
152 <xsl:text>: </xsl:text>
153 <xsl:value-of select="@complete"/>
154 <xsl:text>%</xsl:text>
157 <xsl:if test="@implemented_total">
159 <img src="i.gif"/>: <xsl:value-of select="@implemented_total"/>
162 <xsl:if test="@unimplemented_total">
164 <img src="u.gif"/>: <xsl:value-of select="@unimplemented_total"/>
169 <xsl:template name="toggle">
171 <xsl:when test="local-name() = 'component'">
172 <IMG src="tp.gif" class="t"/>
180 <xsl:template name="name">
181 <xsl:if test="@name">
182 <SPAN class="l"><xsl:value-of select="@name"/></SPAN>
186 <xsl:template name="n">
188 <SPAN class="l"><xsl:value-of select="@n"/></SPAN>
192 <xsl:template name="file">
193 <xsl:param name="base"/>
195 <SPAN class="h"><xsl:value-of select="$base"/><xsl:value-of select="@f"/></SPAN>