1<?xml version="1.0" ?> 2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 4 <xsl:output method="html" indent="no"/> 5 <!-- <xsl:output method="xml"/>--> 6<!-- Will not work: <xsl:strip-space elements="*"/> --> 7 8 <xsl:template match="/"> 9 <HTML> 10 <HEAD> 11 <TITLE> 12 ReactOS API Status 13 </TITLE> 14 <SCRIPT src="rapistatus.js"></SCRIPT> 15 <LINK rel="stylesheet" type="text/css" href="rapistatus.css"></LINK> 16 </HEAD> 17 <BODY onLoad="onLoad();"> 18 <P> 19 <H1>ReactOS API Status</H1> 20 </P> 21 <P> 22 <TABLE> 23 <TR> 24 <TD> <INPUT type="checkbox" ID="implemented" onClick="selectImplemented();" checked="1"/> </TD> 25 <TD> <IMG src="i.gif"/> </TD> 26 <TD> Implemented </TD> 27 <TD width="20"/> 28 </TR> 29 <TR> 30 <TD> <INPUT type="checkbox" ID="unimplemented" onClick="selectUnimplemented();" checked="1"/> </TD> 31 <TD> <IMG src="u.gif"/> </TD> 32 <TD> Unimplemented </TD> 33 <TD width="20"/> 34 </TR> 35 </TABLE> 36 </P> 37 <DIV ID="ROOT"> 38 <xsl:apply-templates/> 39 </DIV> 40 <P> 41 Legend :<BR/> 42 <TABLE> 43 <TR> 44 <TD> <IMG src="c.gif"/> </TD> 45 <TD> Component </TD> 46 <TD> <IMG src="i.gif"/> </TD> 47 <TD> Implemented </TD> 48 <TD> <IMG src="sc.gif"/> </TD> 49 <TD> Complete </TD> 50 </TR> 51 <TR> 52 <TD> <IMG src="f.gif"/> </TD> 53 <TD> Function </TD> 54 <TD> <IMG src="u.gif"/> </TD> 55 <TD> Unimplemented </TD> 56 <TD></TD> 57 <TD></TD> 58 </TR> 59 </TABLE> 60 61 </P> 62 </BODY> 63 </HTML> 64 </xsl:template> 65 66 67 <!-- component --> 68 <xsl:template match="/components"> 69 <xsl:apply-templates select="component"> 70 <xsl:sort select="@name"/> 71 </xsl:apply-templates> 72 </xsl:template> 73 74 <xsl:template match="components/component[@implemented_total or @unimplemented_total]"> 75 <DIV> 76 <xsl:call-template name="ELEMENT"> 77 <xsl:with-param name="class">c</xsl:with-param> 78 </xsl:call-template> 79 <xsl:apply-templates> 80 <xsl:with-param name="base"><xsl:value-of select="@base"/></xsl:with-param> 81 </xsl:apply-templates> 82 </DIV> 83 </xsl:template> 84 85 86 <!-- function --> 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> 93 </xsl:template> 94 95 <xsl:template match="functions/f"> 96 <xsl:param name="base"/> 97 <DIV> 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> 101 </xsl:call-template> 102 <xsl:apply-templates/> 103 </DIV> 104 </xsl:template> 105 106 107 <!-- support templates --> 108 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> 116 </xsl:attribute> 117 <xsl:call-template name="toggle"/> 118 <xsl:choose> 119 <xsl:when test="local-name() != 'component' and @i = 'true'"> 120 <img src="i.gif" class="i"/> 121 </xsl:when> 122 <xsl:when test="local-name() != 'component' and @i = 'false'"> 123 <img src="u.gif" class="u"/> 124 </xsl:when> 125 <xsl:when test="local-name() = 'component' and @complete >= 100"> 126 <img src="sc.gif"/> 127 </xsl:when> 128 <xsl:otherwise> 129 <xsl:value-of select="@i"/><img src="tb.gif" with="12" height="12"/> 130 </xsl:otherwise> 131 </xsl:choose> 132 <xsl:choose> 133 <xsl:when test="$image"> 134 <img src="{$image}.gif" class="t"/> 135 </xsl:when> 136 <xsl:otherwise> 137 <img src="{$class}.gif" class="t"/> 138 </xsl:otherwise> 139 </xsl:choose> 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> 144 </xsl:call-template> 145 <xsl:call-template name="status"/> 146 </xsl:template> 147 148 <xsl:template name="status"> 149 <xsl:if test="@complete and @complete != 0"> 150 <SPAN class="st"> 151 <img src="sc.gif"/> 152 <xsl:text>: </xsl:text> 153 <xsl:value-of select="@complete"/> 154 <xsl:text>%</xsl:text> 155 </SPAN> 156 </xsl:if> 157 <xsl:if test="@implemented_total"> 158 <SPAN class="st"> 159 <img src="i.gif"/>: <xsl:value-of select="@implemented_total"/> 160 </SPAN> 161 </xsl:if> 162 <xsl:if test="@unimplemented_total"> 163 <SPAN class="st"> 164 <img src="u.gif"/>: <xsl:value-of select="@unimplemented_total"/> 165 </SPAN> 166 </xsl:if> 167 </xsl:template> 168 169 <xsl:template name="toggle"> 170 <xsl:choose> 171 <xsl:when test="local-name() = 'component'"> 172 <IMG src="tp.gif" class="t"/> 173 </xsl:when> 174 <xsl:otherwise> 175 <IMG src="tb.gif"/> 176 </xsl:otherwise> 177 </xsl:choose> 178 </xsl:template> 179 180 <xsl:template name="name"> 181 <xsl:if test="@name"> 182 <SPAN class="l"><xsl:value-of select="@name"/></SPAN> 183 </xsl:if> 184 </xsl:template> 185 186 <xsl:template name="n"> 187 <xsl:if test="@n"> 188 <SPAN class="l"><xsl:value-of select="@n"/></SPAN> 189 </xsl:if> 190 </xsl:template> 191 192 <xsl:template name="file"> 193 <xsl:param name="base"/> 194 <xsl:if test="@f"> 195 <SPAN class="h"><xsl:value-of select="$base"/><xsl:value-of select="@f"/></SPAN> 196 </xsl:if> 197 </xsl:template> 198 199</xsl:stylesheet> 200