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>
79 <xsl:apply-templates/>
85 <xsl:template match="functions">
86 <xsl:apply-templates select="function">
87 <xsl:sort select="@name"/>
88 </xsl:apply-templates>
91 <xsl:template match="functions/function">
93 <xsl:call-template name="ELEMENT">
94 <xsl:with-param name="class">f</xsl:with-param>
96 <xsl:apply-templates/>
101 <!-- support templates -->
103 <xsl:template name="ELEMENT">
104 <xsl:param name="class"/>
105 <xsl:param name="image"/>
106 <xsl:attribute name="class">
107 <xsl:value-of select="$class"/>
108 <xsl:text>_</xsl:text>
110 <xsl:call-template name="toggle"/>
112 <xsl:when test="./node() and local-name() != 'component' and @implemented = 'true'">
113 <img src="i.gif" class="i"/>
115 <xsl:when test="./node() and local-name() != 'component' and @implemented = 'false'">
116 <img src="u.gif" class="u"/>
118 <xsl:when test="./node() and local-name() = 'component' and @complete >= 100">
122 <img src="tb.gif" with="12" height="12"/>
126 <xsl:when test="$image">
127 <img src="{$image}.gif" class="t"/>
130 <img src="{$class}.gif" class="t"/>
133 <xsl:call-template name="name"/>
134 <xsl:call-template name="file"/>
135 <xsl:call-template name="status"/>
138 <xsl:template name="status">
139 <xsl:if test="@complete and @complete != 0">
142 <xsl:text>: </xsl:text>
143 <xsl:value-of select="@complete"/>
144 <xsl:text>%</xsl:text>
147 <xsl:if test="@implemented_total">
149 <img src="i.gif"/>: <xsl:value-of select="@implemented_total"/>
152 <xsl:if test="@unimplemented_total">
154 <img src="u.gif"/>: <xsl:value-of select="@unimplemented_total"/>
159 <xsl:template name="toggle">
161 <xsl:when test="local-name() = 'component'">
162 <IMG src="tp.gif" class="t"/>
170 <xsl:template name="name">
171 <xsl:if test="@name">
172 <SPAN class="l"><xsl:value-of select="@name"/></SPAN>
176 <xsl:template name="file">
177 <xsl:if test="@file">
178 <SPAN class="h"><xsl:value-of select="@file"/></SPAN>