source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/IHS BMX Framework/IndianHealthService.BMXNet.GeneratedDocumentation/Help/Presentation/Style/Transforms/utilities_reference.xsl@ 1146

Last change on this file since 1146 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

File size: 75.1 KB
Line 
1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"
3 xmlns:MSHelp="http://msdn.microsoft.com/mshelp"
4 xmlns:mshelp="http://msdn.microsoft.com/mshelp"
5 xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5"
6 xmlns:xlink="http://www.w3.org/1999/xlink"
7 xmlns:msxsl="urn:schemas-microsoft-com:xslt"
8 >
9
10 <xsl:import href="../../shared/transforms/utilities_reference.xsl"/>
11
12 <xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8" />
13 <!-- <xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" /> -->
14
15 <!-- key parameter is the api identifier string -->
16 <xsl:param name="key" />
17 <xsl:param name="metadata" value="false" />
18 <xsl:param name="languages">false</xsl:param>
19 <xsl:param name="componentizeBy">namespace</xsl:param>
20
21 <xsl:include href="utilities_metadata.xsl" />
22 <xsl:include href="xamlSyntax.xsl"/>
23
24 <xsl:template match="/">
25 <html>
26 <head>
27 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>
28 <META NAME="save" CONTENT="history"/>
29 <title><xsl:call-template name="topicTitlePlain"/></title>
30 <xsl:call-template name="insertStylesheets" />
31 <xsl:call-template name="insertScripts" />
32 <xsl:call-template name="insertFilename" />
33 <xsl:call-template name="insertMetadata" />
34 </head>
35 <body>
36
37 <xsl:call-template name="upperBodyStuff"/>
38 <xsl:call-template name="main"/>
39 </body>
40 </html>
41 </xsl:template>
42
43 <!-- useful global variables -->
44
45 <xsl:variable name="group">
46 <xsl:choose>
47 <xsl:when test="/document/reference/topicdata/@group = 'api'">
48 <xsl:value-of select="/document/reference/apidata/@group" />
49 </xsl:when>
50 <xsl:otherwise>
51 <xsl:value-of select="/document/reference/topicdata/@group" />
52 </xsl:otherwise>
53 </xsl:choose>
54 </xsl:variable>
55
56 <xsl:variable name="subgroup">
57 <xsl:choose>
58 <xsl:when test="/document/reference/topicdata/@group = 'api'">
59 <xsl:value-of select="/document/reference/apidata/@subgroup" />
60 </xsl:when>
61 <xsl:otherwise>
62 <xsl:value-of select="/document/reference/topicdata/@subgroup" />
63 </xsl:otherwise>
64 </xsl:choose>
65 </xsl:variable>
66
67 <xsl:variable name="subsubgroup">
68 <xsl:choose>
69 <xsl:when test="/document/reference/topicdata/@group = 'api'">
70 <xsl:value-of select="/document/reference/apidata/@subsubgroup" />
71 </xsl:when>
72 <xsl:otherwise>
73 <xsl:value-of select="/document/reference/topicdata/@subsubgroup" />
74 </xsl:otherwise>
75 </xsl:choose>
76 </xsl:variable>
77
78 <!--<xsl:variable name="pseudo" select="boolean(/document/reference/topicdata[@pseudo='true'])"/>-->
79
80 <xsl:variable name="namespaceName" select="/document/reference/containers/namespace/apidata/@name" />
81
82 <!-- document head -->
83
84 <xsl:template name="insertStylesheets">
85 <link rel="stylesheet" type="text/css" href="../styles/presentation.css" />
86 <!-- make mshelp links work -->
87 <link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" />
88 <!--<link rel="stylesheet" type="text/css" href="ms-help://Dx/DxRuntime/DxLink.css" />-->
89 </xsl:template>
90
91 <xsl:template name="insertScripts">
92 <script type="text/javascript">
93 <includeAttribute name="src" item="scriptPath"><parameter>EventUtilities.js</parameter></includeAttribute>
94 <xsl:text> </xsl:text>
95 </script>
96 <script type="text/javascript">
97 <includeAttribute name="src" item="scriptPath"><parameter>SplitScreen.js</parameter></includeAttribute>
98 <xsl:text> </xsl:text>
99 </script>
100 <script type="text/javascript">
101 <includeAttribute name="src" item="scriptPath"><parameter>Dropdown.js</parameter></includeAttribute>
102 <xsl:text> </xsl:text>
103 </script>
104 <script type="text/javascript">
105 <includeAttribute name="src" item="scriptPath"><parameter>script_manifold.js</parameter></includeAttribute>
106 <xsl:text> </xsl:text>
107 </script>
108 <script type="text/javascript">
109 <includeAttribute name="src" item="scriptPath"><parameter>script_feedBack.js</parameter></includeAttribute>
110 <xsl:text> </xsl:text>
111 </script>
112 <script type="text/javascript">
113 <includeAttribute name="src" item="scriptPath"><parameter>CheckboxMenu.js</parameter></includeAttribute>
114 <xsl:text> </xsl:text>
115 </script>
116 <script type="text/javascript">
117 <includeAttribute name="src" item="scriptPath"><parameter>CommonUtilities.js</parameter></includeAttribute>
118 <xsl:text> </xsl:text>
119 </script>
120 </xsl:template>
121
122 <xsl:template match="parameters">
123 <div id="parameters">
124 <xsl:call-template name="subSection">
125 <xsl:with-param name="title">
126 <include item="parametersTitle"/>
127 </xsl:with-param>
128 <xsl:with-param name="content">
129 <xsl:for-each select="parameter">
130 <xsl:variable name="paramName" select="@name"/>
131 <dl paramName="{$paramName}">
132 <dt>
133 <span class="parameter">
134 <xsl:value-of select="$paramName"/>
135 </span>
136 </dt>
137 <dd>
138 <include item="typeLink">
139 <parameter>
140 <xsl:apply-templates select="*[1]" mode="link">
141 <xsl:with-param name="qualified" select="true()" />
142 </xsl:apply-templates>
143 </parameter>
144 </include>
145 <br />
146 <xsl:call-template name="getParameterDescription">
147 <xsl:with-param name="name" select="@name" />
148 </xsl:call-template>
149 </dd>
150 </dl>
151 </xsl:for-each>
152 </xsl:with-param>
153 </xsl:call-template>
154 </div>
155 </xsl:template>
156
157 <xsl:template match="implements">
158 <xsl:if test="member">
159 <xsl:call-template name="subSection">
160 <xsl:with-param name="title">
161 <include item="implementsTitle" />
162 </xsl:with-param>
163 <xsl:with-param name="content">
164 <xsl:for-each select="member">
165 <referenceLink target="{@api}" qualified="true" />
166 <br />
167 </xsl:for-each>
168 </xsl:with-param>
169 </xsl:call-template>
170 </xsl:if>
171 </xsl:template>
172
173 <xsl:template match="element" mode="root">
174 <tr>
175 <td>
176 <xsl:choose>
177 <xsl:when test="apidata/@name = ''">
178 <referenceLink target="{@api}" qualified="false">
179 <include item="defaultNamespace" />
180 </referenceLink>
181 </xsl:when>
182 <xsl:otherwise>
183 <xsl:call-template name="createReferenceLink">
184 <xsl:with-param name="id" select="@api" />
185 </xsl:call-template>
186 </xsl:otherwise>
187 </xsl:choose>
188 </td>
189 <td>
190 <xsl:call-template name="getElementDescription" />
191 </td>
192 </tr>
193 </xsl:template>
194
195 <xsl:template match="element" mode="namespace">
196 <xsl:variable name="typeVisibility">
197 <xsl:choose>
198 <xsl:when test="typedata/@visibility='family' or typedata/@visibility='family or assembly' or typedata/@visibility='assembly'">prot</xsl:when>
199 <xsl:when test="typedata/@visibility='private'">priv</xsl:when>
200 <xsl:otherwise>pub</xsl:otherwise>
201 </xsl:choose>
202 </xsl:variable>
203 <tr>
204 <xsl:attribute name="data">
205 <xsl:value-of select="apidata/@subgroup" />
206 <xsl:text>; public</xsl:text>
207 </xsl:attribute>
208 <td>
209 <xsl:call-template name="typeIcon">
210 <xsl:with-param name="typeVisibility" select="$typeVisibility" />
211 </xsl:call-template>
212 </td>
213 <td>
214 <xsl:call-template name="createReferenceLink">
215 <xsl:with-param name="id" select="@api" />
216 </xsl:call-template>
217 </td>
218 <td>
219 <xsl:call-template name="getInternalOnlyDescription" />
220 <xsl:if test="attributes/attribute/type[@api='T:System.ObsoleteAttribute']">
221 <xsl:text> </xsl:text>
222 <include item="obsoleteRed" />
223 </xsl:if>
224 <xsl:call-template name="getElementDescription" />
225 </td>
226 </tr>
227 </xsl:template>
228
229 <xsl:template match="element" mode="enumeration">
230 <xsl:variable name="supportedOnXna">
231 <xsl:call-template name="IsMemberSupportedOnXna"/>
232 </xsl:variable>
233 <xsl:variable name="supportedOnCf">
234 <xsl:call-template name="IsMemberSupportedOnCf"/>
235 </xsl:variable>
236 <tr>
237 <td>
238 <!-- platform icons -->
239 <xsl:if test="normalize-space($supportedOnCf)!=''">
240 <img data="netcfw">
241 <includeAttribute name="src" item="iconPath">
242 <parameter>CFW.gif</parameter>
243 </includeAttribute>
244 <includeAttribute name="title" item="CompactFrameworkAltText" />
245 </img>
246 </xsl:if>
247
248 <xsl:if test="normalize-space($supportedOnXna)!=''">
249 <img data="xnafw">
250 <includeAttribute name="src" item="iconPath">
251 <parameter>xna.gif</parameter>
252 </includeAttribute>
253 <includeAttribute name="title" item="XNAFrameworkAltText" />
254 </img>
255 </xsl:if>
256 </td>
257 <xsl:variable name="id" select="@api" />
258 <td target="{$id}">
259 <span class="selflink"><xsl:value-of select="apidata/@name"/></span>
260 </td>
261 <td>
262 <xsl:if test="attributes/attribute/type[@api='T:System.ObsoleteAttribute']">
263 <xsl:text> </xsl:text>
264 <include item="obsoleteRed" />
265 </xsl:if>
266 <xsl:call-template name="getElementDescription" />
267 </td>
268 </tr>
269 </xsl:template>
270
271 <xsl:template match="element" mode="derivedType">
272 <tr>
273 <td>
274 <xsl:choose>
275 <xsl:when test="@display-api">
276 <referenceLink target="{@api}" display-target="{@display-api}" />
277 </xsl:when>
278 <xsl:otherwise>
279 <referenceLink target="{@api}" />
280 </xsl:otherwise>
281 </xsl:choose>
282 </td>
283 <td>
284
285 <xsl:call-template name="getInternalOnlyDescription" />
286 <xsl:if test="attributes/attribute/type[@api='T:System.ObsoleteAttribute']">
287 <xsl:text> </xsl:text>
288 <include item="obsoleteRed" />
289 </xsl:if>
290 <xsl:call-template name="getElementDescription" />
291 </td>
292 </tr>
293 </xsl:template>
294
295 <xsl:template match="element" mode="overload">
296 <xsl:variable name="supportedOnXna">
297 <xsl:call-template name="IsMemberSupportedOnXna"/>
298 </xsl:variable>
299 <xsl:variable name="supportedOnCf">
300 <xsl:call-template name="IsMemberSupportedOnCf"/>
301 </xsl:variable>
302 <xsl:variable name="staticMember">
303 <xsl:call-template name="IsMemberStatic"/>
304 </xsl:variable>
305 <xsl:variable name="inheritedMember">
306 <xsl:call-template name="IsMemberInherited"/>
307 </xsl:variable>
308 <xsl:variable name="protectedMember">
309 <xsl:call-template name="IsMemberProtected"/>
310 </xsl:variable>
311 <xsl:variable name="privateMember">
312 <xsl:call-template name="IsMemberPrivate"/>
313 </xsl:variable>
314
315 <tr>
316 <xsl:if test="normalize-space($inheritedMember)!=''">
317 <xsl:attribute name="name">inheritedMember</xsl:attribute>
318 </xsl:if>
319 <xsl:if test="normalize-space($protectedMember)!=''">
320 <xsl:attribute name="protected">true</xsl:attribute>
321 </xsl:if>
322 <xsl:if test="normalize-space($supportedOnXna)=''">
323 <xsl:attribute name="notSupportedOnXna">true</xsl:attribute>
324 </xsl:if>
325 <xsl:if test="normalize-space($supportedOnCf)=''">
326 <xsl:attribute name="notSupportedOn">netcf</xsl:attribute>
327 </xsl:if>
328
329 <xsl:attribute name="data">
330 <xsl:value-of select="apidata/@subgroup" />
331 <xsl:choose>
332 <xsl:when test="memberdata/@visibility='public'">
333 <xsl:text>; public</xsl:text>
334 </xsl:when>
335 <xsl:when test="memberdata[@visibility='family' or @visibility='family or assembly' or @visibility='assembly']">
336 <xsl:text>; protected</xsl:text>
337 </xsl:when>
338 <xsl:when test="memberdata/@visibility='private' and not(proceduredata[@virtual = 'true'])">
339 <xsl:text>; private</xsl:text>
340 </xsl:when>
341 <!-- NOTE: EII members (private-virtual) fall through to this xsl:otherwise block -->
342 <xsl:otherwise>
343 <xsl:text>; public</xsl:text>
344 </xsl:otherwise>
345 </xsl:choose>
346 <xsl:choose>
347 <xsl:when test="memberdata/@static = 'true'">
348 <xsl:text>; static</xsl:text>
349 </xsl:when>
350 <xsl:otherwise>
351 <xsl:text>; instance</xsl:text>
352 </xsl:otherwise>
353 </xsl:choose>
354 <xsl:choose>
355 <xsl:when test="normalize-space($inheritedMember)=''">
356 <xsl:text>; declared</xsl:text>
357 </xsl:when>
358 <xsl:otherwise>
359 <xsl:text>; inherited</xsl:text>
360 </xsl:otherwise>
361 </xsl:choose>
362 </xsl:attribute>
363
364 <td>
365 <!-- item icons -->
366 <xsl:call-template name="memberIcons">
367 <xsl:with-param name="memberVisibility">
368 <xsl:choose>
369 <xsl:when test="memberdata/@visibility='family' or memberdata/@visibility='family or assembly' or memberdata/@visibility='assembly'">prot</xsl:when>
370 <xsl:when test="memberdata/@visibility='private'">priv</xsl:when>
371 <xsl:otherwise>pub</xsl:otherwise>
372 </xsl:choose>
373 </xsl:with-param>
374 <xsl:with-param name="staticMember" select="normalize-space($staticMember)" />
375 <xsl:with-param name="supportedOnXna" select="normalize-space($supportedOnXna)"/>
376 <xsl:with-param name="supportedOnCf" select="normalize-space($supportedOnCf)"/>
377 </xsl:call-template>
378 </td>
379 <td>
380 <!-- item name -->
381 <xsl:choose>
382 <xsl:when test="@display-api">
383 <referenceLink target="{@api}" display-target="{@display-api}" />
384 </xsl:when>
385 <xsl:otherwise>
386 <referenceLink target="{@api}" />
387 </xsl:otherwise>
388 </xsl:choose>
389 </td>
390 <td>
391 <!-- item description -->
392 <xsl:call-template name="getInternalOnlyDescription" />
393 <xsl:if test="attributes/attribute/type[@api='T:System.ObsoleteAttribute']">
394 <xsl:text> </xsl:text>
395 <include item="obsoleteRed" />
396 </xsl:if>
397 <xsl:call-template name="getElementDescription" />
398 <xsl:choose>
399 <xsl:when test="normalize-space($inheritedMember)!=''">
400 <xsl:text> </xsl:text>
401 <include item="inheritedFrom">
402 <parameter>
403 <xsl:apply-templates select="containers/type" mode="link" />
404 </parameter>
405 </include>
406 </xsl:when>
407 <xsl:when test="overrides">
408 <xsl:text> </xsl:text>
409 <include item="overridesMember">
410 <parameter>
411 <xsl:apply-templates select="overrides/member" mode="link" />
412 </parameter>
413 </include>
414 </xsl:when>
415 </xsl:choose>
416
417 </td>
418 </tr>
419 </xsl:template>
420
421 <xsl:template name="insertFilename">
422 <meta name="container">
423 <xsl:attribute name="content">
424 <xsl:choose>
425 <xsl:when test="$componentizeBy='assembly'">
426 <xsl:choose>
427 <xsl:when test="normalize-space(/document/reference/containers/library/@assembly)">
428 <xsl:value-of select="normalize-space(/document/reference/containers/library/@assembly)"/>
429 </xsl:when>
430 <xsl:otherwise>
431 <xsl:text>Namespaces</xsl:text>
432 </xsl:otherwise>
433 </xsl:choose>
434 </xsl:when>
435 <!-- the default is to componentize by namespace. For non-componentized builds, the <meta name="container"> value is ignored. -->
436 <xsl:otherwise>
437 <xsl:choose>
438 <!-- get the namespace name from containers/namespace/@api for most members -->
439 <xsl:when test="normalize-space(substring-after(/document/reference/containers/namespace/@api,':'))">
440 <xsl:value-of select="normalize-space(substring-after(/document/reference/containers/namespace/@api,':'))"/>
441 </xsl:when>
442 <!-- use 'default_namespace' for members in the default namespace (where namespace/@api == 'N:') -->
443 <xsl:when test="normalize-space(/document/reference/containers/namespace/@api)"><xsl:text>default_namespace</xsl:text></xsl:when>
444 <!-- for the default namespace topic, use 'default_namespace' -->
445 <xsl:when test="/document/reference/apidata[@group='namespace' and @name='']"><xsl:text>default_namespace</xsl:text></xsl:when>
446 <!-- for other namespace topics, get the name from apidata/@name -->
447 <xsl:when test="/document/reference/apidata/@group='namespace'">
448 <xsl:value-of select="normalize-space(/document/reference/apidata/@name)"/>
449 </xsl:when>
450 <xsl:otherwise><xsl:text>unknown</xsl:text></xsl:otherwise>
451 </xsl:choose>
452 </xsl:otherwise>
453 </xsl:choose>
454 </xsl:attribute>
455 </meta>
456 <meta name="file" content="{/document/reference/file/@name}" />
457 <meta name="guid">
458 <xsl:attribute name="content">
459 <xsl:value-of select="/document/reference/file/@name" />
460 </xsl:attribute>
461 </meta>
462 </xsl:template>
463
464 <!-- writing templates -->
465
466 <!--<xsl:template name="csTemplates">
467 <xsl:param name="seperator" select="string(',')" />
468 <xsl:text>&lt;</xsl:text>
469 <xsl:for-each select="template">
470 <xsl:value-of select="@name" />
471 <xsl:if test="not(position()=last())">
472 <xsl:value-of select="$seperator" />
473 </xsl:if>
474 </xsl:for-each>
475 <xsl:text>&gt;</xsl:text>
476 </xsl:template>
477
478 <xsl:template name="csTemplatesInIndex" >
479 <xsl:text>%3C</xsl:text>
480 <xsl:for-each select="template">
481 <xsl:value-of select="@name" />
482 <xsl:if test="not(position()=last())">
483 <xsl:text>%2C </xsl:text>
484 </xsl:if>
485 </xsl:for-each>
486 <xsl:text>%3E</xsl:text>
487 </xsl:template>
488
489 <xsl:template name="vbTemplates">
490 <xsl:param name="seperator" select="string(',')" />
491 <xsl:text>(Of </xsl:text>
492 <xsl:for-each select="template">
493 <xsl:value-of select="@name" />
494 <xsl:if test="not(position()=last())">
495 <xsl:value-of select="$seperator" />
496 </xsl:if>
497 </xsl:for-each>
498 <xsl:text>)</xsl:text>
499 </xsl:template>
500
501 <xsl:template name="typeTitle">
502 <xsl:if test="containers/container[@type]">
503 <xsl:for-each select="containers/container[@type]">
504 <xsl:call-template name="typeTitle" />
505 </xsl:for-each>
506 <xsl:text>.</xsl:text>
507 </xsl:if>
508 <xsl:value-of select="apidata/@name" />
509 <xsl:if test="count(templates/template) > 0">
510 <xsl:for-each select="templates"><xsl:call-template name="csTemplates" /></xsl:for-each>
511 </xsl:if>
512 </xsl:template>-->
513
514 <!-- document body -->
515
516 <!-- control window -->
517
518 <!--
519 <xsl:template name="control">
520 <div id="control">
521 <span class="topicTitle"><xsl:call-template name="topicTitleDecorated" /></span><br/>
522 </div>
523 </xsl:template>
524 -->
525
526 <!-- the plain-text title -->
527 <!-- used in TOC and on topic window bar -->
528
529 <xsl:template name="topicTitlePlain">
530 <xsl:param name="qualifyMembers" select="false()" />
531 <include>
532 <xsl:attribute name="item">
533 <xsl:choose>
534 <!-- api topic titles -->
535 <xsl:when test="$topic-group='api'">
536 <!-- use generic titles for generics -->
537 <!-- we don't do this any longer, since we now show generic parameters in the neutral syntax -->
538 <!--<xsl:if test="boolean(/document/reference/templates)">
539 <xsl:text>generic_</xsl:text>
540 </xsl:if>-->
541 <!-- the subsubgroup, subgroup, or group determines the title -->
542 <xsl:choose>
543 <xsl:when test="string($api-subsubgroup)">
544 <xsl:value-of select="$api-subsubgroup" />
545 </xsl:when>
546 <xsl:when test="string($api-subgroup)">
547 <xsl:value-of select="$api-subgroup"/>
548 </xsl:when>
549 <xsl:when test="string($api-group)">
550 <xsl:value-of select="$api-group"/>
551 </xsl:when>
552 </xsl:choose>
553 </xsl:when>
554 <!-- overload topic titles -->
555 <xsl:when test="$topic-subgroup='overload'">
556 <!-- the api subgroup (e.g. "property") determines the title; do we want to use the subsubgoup name when it is available? -->
557 <xsl:value-of select="$api-subgroup"/>
558 </xsl:when>
559 <!-- list topic titles -->
560 <xsl:when test="$topic-group='list'">
561 <!-- the topic subgroup (e.g. "methods") determines the title -->
562 <xsl:value-of select="$topic-subgroup" />
563 </xsl:when>
564 <!-- overload root titles -->
565 <xsl:when test="$topic-group='root'">
566 <xsl:value-of select="$topic-group" />
567 </xsl:when>
568 </xsl:choose>
569 <xsl:text>TopicTitle</xsl:text>
570 </xsl:attribute>
571 <parameter>
572 <xsl:call-template name="shortNamePlain">
573 <xsl:with-param name="qualifyMembers" select="$qualifyMembers" />
574 </xsl:call-template>
575 </parameter>
576 <parameter>
577 <!-- show parameters only for overloaded members -->
578 <xsl:if test="document/reference/memberdata/@overload" >
579 <xsl:for-each select="/document/reference">
580 <xsl:call-template name="parameterTypesPlain" />
581 </xsl:for-each>
582 </xsl:if>
583 </parameter>
584 </include>
585 </xsl:template>
586
587 <!-- the language-variant, marked-up topic title -->
588 <!-- used as the big title in the non-scrolling region -->
589
590 <xsl:template name="topicTitleDecorated">
591 <!--<xsl:param name="titleType" />-->
592 <include>
593 <xsl:attribute name="item">
594 <!--<xsl:choose>
595 --><!-- what is this for?! --><!--
596 --><!--<xsl:when test="$titleType = 'tocTitle' and $group='namespace'">
597 <xsl:text>tocTitle</xsl:text>
598 </xsl:when>--><!--
599 <xsl:otherwise>-->
600 <!-- we don't call out generics will special titles anymore, because their type parameters are shown
601 in the language neutral syntax -->
602 <!--<xsl:if test="boolean(/document/reference/templates) and not($group='list')">
603 <xsl:text>generic_</xsl:text>
604 </xsl:if>-->
605 <xsl:choose>
606 <!-- api topic titles -->
607 <xsl:when test="$topic-group='api'">
608 <xsl:choose>
609 <xsl:when test="string($api-subsubgroup)">
610 <xsl:value-of select="$api-subsubgroup" />
611 </xsl:when>
612 <xsl:when test="string($api-subgroup)">
613 <xsl:value-of select="$api-subgroup" />
614 </xsl:when>
615 <xsl:when test="string($api-group)">
616 <xsl:value-of select="$api-group" />
617 </xsl:when>
618 </xsl:choose>
619 </xsl:when>
620 <!-- overload topic titles -->
621 <xsl:when test="$topic-subgroup='overload'">
622 <!-- the api subgroup (e.g. "property") determines the title; do we want to use the subsubgoup name when it is available? -->
623 <xsl:value-of select="$api-subgroup"/>
624 </xsl:when>
625 <!-- list topic titles -->
626 <xsl:when test="$topic-group='list'">
627 <!-- the topic subgroup (e.g. "methods") determines the title -->
628 <xsl:value-of select="$topic-subgroup" />
629 </xsl:when>
630 <!-- overload root titles -->
631 <xsl:when test="$topic-group='root'">
632 <xsl:value-of select="$topic-group" />
633 </xsl:when>
634 </xsl:choose>
635 <xsl:text>TopicTitle</xsl:text>
636 <!--</xsl:otherwise>
637 </xsl:choose>-->
638 </xsl:attribute>
639 <parameter>
640 <xsl:call-template name="shortNameDecorated" />
641 </parameter>
642 <parameter>
643 <!-- show parameters only from overloaded members -->
644 <xsl:if test="document/reference/memberdata/@overload" >
645 <xsl:for-each select="/document/reference">
646 <xsl:call-template name="parameterTypesDecorated" />
647 </xsl:for-each>
648 </xsl:if>
649 </parameter>
650 </include>
651 </xsl:template>
652
653
654 <!-- Title in TOC -->
655
656 <!-- Index entry -->
657
658 <!-- main window -->
659
660 <xsl:template name="main">
661 <div id="mainSection">
662
663 <div id="mainBody">
664 <div id="allHistory" class="saveHistory" onsave="saveAll()" onload="loadAll()"/>
665
666 <!-- 'header' shared content item is used to show optional boilerplate at the top of the topic's scrolling region, e.g. pre-release boilerplate -->
667 <include item="header" />
668
669 <xsl:call-template name="body" />
670 </div>
671 <xsl:call-template name="foot" />
672 </div>
673
674 </xsl:template>
675
676 <xsl:template name="syntaxBlocks">
677
678 <xsl:for-each select="/document/syntax/div[@codeLanguage]">
679 <xsl:choose>
680 <xsl:when test="@codeLanguage='VisualBasic'">
681 <xsl:call-template name="languageSyntaxBlock">
682 <xsl:with-param name="language">VisualBasicDeclaration</xsl:with-param>
683 </xsl:call-template>
684 </xsl:when>
685 <xsl:when test="@codeLanguage='JSharp'">
686 <xsl:if test="not(/document/reference/versions) or boolean(/document/reference/versions/versions[@name='netfw']//version[not(@name='netfw35')])">
687 <xsl:call-template name="languageSyntaxBlock" />
688 </xsl:if>
689 </xsl:when>
690 <xsl:when test="@codeLanguage='XAML'">
691 <xsl:call-template name="XamlSyntaxBlock"/>
692 </xsl:when>
693 <xsl:otherwise>
694 <xsl:call-template name="languageSyntaxBlock" />
695 </xsl:otherwise>
696 </xsl:choose>
697 </xsl:for-each>
698 </xsl:template>
699
700 <xsl:template name="languageSyntaxBlock">
701 <xsl:param name="language" select="@codeLanguage"/>
702 <span codeLanguage="{$language}">
703 <table>
704 <tr>
705 <th>
706 <include item="{$language}" />
707 </th>
708 </tr>
709 <tr>
710 <td>
711 <pre xml:space="preserve"><xsl:text/><xsl:copy-of select="node()"/><xsl:text/></pre>
712 </td>
713 </tr>
714 </table>
715 </span>
716 </xsl:template>
717
718 <xsl:template match="elements" mode="root">
719 <xsl:if test="count(element) > 0">
720
721 <xsl:call-template name="section">
722 <xsl:with-param name="toggleSwitch" select="'namespaces'"/>
723 <xsl:with-param name="title"><include item="namespacesTitle" /></xsl:with-param>
724 <xsl:with-param name="content">
725 <table class="members" id="memberList" frame="lhs" cellpadding="2">
726 <tr>
727 <th class="nameColumn"><include item="namespaceNameHeader"/></th>
728 <th class="descriptionColumn"><include item="namespaceDescriptionHeader" /></th>
729 </tr>
730 <xsl:apply-templates select="element" mode="root">
731 <xsl:sort select="apidata/@name" />
732 </xsl:apply-templates>
733 </table>
734 </xsl:with-param>
735 </xsl:call-template>
736 </xsl:if>
737 </xsl:template>
738
739 <xsl:template name="namespaceSection">
740 <xsl:param name="listSubgroup" />
741 <xsl:variable name="header" select="concat($listSubgroup, 'TypesFilterLabel')"/>
742 <xsl:call-template name="section">
743 <xsl:with-param name="toggleSwitch" select="$listSubgroup"/>
744 <xsl:with-param name="title">
745 <include item="{$header}" />
746 </xsl:with-param>
747 <xsl:with-param name="content">
748 <xsl:call-template name="namespaceList">
749 <xsl:with-param name="listSubgroup" select="$listSubgroup" />
750 </xsl:call-template>
751 </xsl:with-param>
752 </xsl:call-template>
753 </xsl:template>
754
755 <xsl:template match="elements" mode="namespace">
756
757 <xsl:if test="element/apidata/@subgroup = 'class'">
758 <xsl:call-template name="namespaceSection">
759 <xsl:with-param name="listSubgroup" select="'class'" />
760 </xsl:call-template>
761 </xsl:if>
762
763 <xsl:if test="element/apidata/@subgroup = 'structure'">
764 <xsl:call-template name="namespaceSection">
765 <xsl:with-param name="listSubgroup" select="'structure'" />
766 </xsl:call-template>
767 </xsl:if>
768
769 <xsl:if test="element/apidata/@subgroup = 'interface'">
770 <xsl:call-template name="namespaceSection">
771 <xsl:with-param name="listSubgroup" select="'interface'" />
772 </xsl:call-template>
773 </xsl:if>
774
775 <xsl:if test="element/apidata/@subgroup = 'delegate'">
776 <xsl:call-template name="namespaceSection">
777 <xsl:with-param name="listSubgroup" select="'delegate'" />
778 </xsl:call-template>
779 </xsl:if>
780
781 <xsl:if test="element/apidata/@subgroup = 'enumeration'">
782 <xsl:call-template name="namespaceSection">
783 <xsl:with-param name="listSubgroup" select="'enumeration'" />
784 </xsl:call-template>
785 </xsl:if>
786
787 </xsl:template>
788
789 <xsl:template name="namespaceList">
790 <xsl:param name="listSubgroup" />
791
792 <table id="typeList" class="members" frame="lhs" cellpadding="2">
793 <col width="10%"/>
794 <tr>
795 <th class="iconColumn">
796 &#160;
797 </th>
798 <th class="nameColumn">
799 <include item="{$listSubgroup}NameHeader"/>
800 </th>
801 <th class="descriptionColumn">
802 <include item="typeDescriptionHeader" />
803 </th>
804 </tr>
805 <xsl:apply-templates select="element[apidata/@subgroup=$listSubgroup]" mode="namespace">
806 <xsl:sort select="@api" />
807 </xsl:apply-templates>
808 </table>
809
810 </xsl:template>
811
812 <xsl:template match="elements" mode="enumeration">
813 <div id="enumerationSection">
814 <xsl:if test="count(element) > 0">
815 <xsl:call-template name="section">
816 <xsl:with-param name="toggleSwitch" select="'members'"/>
817 <xsl:with-param name="title">
818 <include item="enumMembersTitle" />
819 </xsl:with-param>
820 <xsl:with-param name="content">
821 <table class="members" id="memberList" frame="lhs" cellpadding="2">
822 <col width="10%"/>
823 <tr>
824 <th class="iconColumn"></th>
825 <th class="nameColumn">
826 <include item="memberNameHeader"/>
827 </th>
828 <th class="descriptionColumn">
829 <include item="memberDescriptionHeader" />
830 </th>
831 </tr>
832 <xsl:apply-templates select="element" mode="enumeration"/>
833 </table>
834 </xsl:with-param>
835 </xsl:call-template>
836 </xsl:if>
837 </div>
838 </xsl:template>
839
840 <xsl:template match="element" mode="members">
841 <xsl:param name="subgroup"/>
842 <xsl:if test="memberdata[@visibility='public'] and apidata[@subgroup=$subgroup]">
843 public;
844 </xsl:if>
845 <xsl:if test="memberdata[@visibility='family' or @visibility='family or assembly' or @visibility='assembly'] and apidata[@subgroup=$subgroup]">
846 protected;
847 </xsl:if>
848 <xsl:if test="memberdata[@visibility='private'] and apidata[@subgroup=$subgroup] and not(proceduredata[@virtual = 'true'])">
849 private;
850 </xsl:if>
851 <xsl:if test="memberdata[@visibility='private'] and proceduredata[@virtual = 'true']">
852 explicit;
853 </xsl:if>
854 </xsl:template>
855
856 <xsl:template name="memberIntroBoilerplate">
857 <xsl:if test="/document/reference/elements/element/memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly']">
858 <!-- if there are exposed members, show a boilerplate intro p -->
859 <xsl:variable name="introTextItemId">
860 <xsl:choose>
861 <xsl:when test="/document/reference/containers/type/templates">genericExposedMembersTableText</xsl:when>
862 <xsl:otherwise>exposedMembersTableText</xsl:otherwise>
863 </xsl:choose>
864 </xsl:variable>
865 <p>
866 <include item="{$introTextItemId}">
867 <parameter>
868 <referenceLink target="{$typeId}" />
869 </parameter>
870 <parameter>
871 <xsl:value-of select="$subgroup"/><xsl:text>Subgroup</xsl:text>
872 </parameter>
873 </include>
874 </p>
875 </xsl:if>
876 </xsl:template>
877
878 <xsl:template match="elements" mode="member">
879
880 <xsl:call-template name="memberIntro" />
881
882 <xsl:if test="element/apidata[@subgroup='constructor']">
883 <xsl:call-template name="memberlistSection">
884 <xsl:with-param name="headerGroup" select="'constructor'" />
885 <xsl:with-param name="members" select="element[apidata[@subgroup='constructor']][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
886 </xsl:call-template>
887 </xsl:if>
888
889 <!-- method table -->
890 <xsl:if test="element/apidata[@subgroup='method' and not(@subsubgroup)]">
891 <xsl:call-template name="memberlistSection">
892 <xsl:with-param name="headerGroup">method</xsl:with-param>
893 <xsl:with-param name="members" select="element[apidata[@subgroup='method' and not(@subsubgroup)]][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
894 </xsl:call-template>
895 </xsl:if>
896
897 <!-- operator table -->
898 <xsl:if test="element/apidata[@subsubgroup='operator']">
899 <xsl:call-template name="memberlistSection">
900 <xsl:with-param name="headerGroup">operator</xsl:with-param>
901 <xsl:with-param name="members" select="element[apidata[@subsubgroup='operator']][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
902 </xsl:call-template>
903 </xsl:if>
904
905 <!-- extension method table -->
906 <xsl:if test="element/apidata[@subsubgroup='extension']">
907 <xsl:call-template name="memberlistSection">
908 <xsl:with-param name="headerGroup">extensionMethod</xsl:with-param>
909 <xsl:with-param name="members" select="element[apidata[@subsubgroup='extension']]" />
910 </xsl:call-template>
911 </xsl:if>
912
913 <!-- field table -->
914 <xsl:if test="element/apidata[@subgroup='field']">
915 <xsl:call-template name="memberlistSection">
916 <xsl:with-param name="headerGroup">field</xsl:with-param>
917 <xsl:with-param name="members" select="element[apidata[@subgroup='field']][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
918 </xsl:call-template>
919 </xsl:if>
920
921 <!-- property table -->
922 <xsl:if test="element/apidata[@subgroup='property' and not(@subsubgroup)]">
923 <xsl:call-template name="memberlistSection">
924 <xsl:with-param name="headerGroup">property</xsl:with-param>
925 <xsl:with-param name="members" select="element[apidata[@subgroup='property' and not(@subsubgroup)]][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
926 </xsl:call-template>
927 </xsl:if>
928
929 <!-- attached property table -->
930 <xsl:if test="element/apidata[@subsubgroup='attachedProperty']">
931 <xsl:call-template name="memberlistSection">
932 <xsl:with-param name="headerGroup">attachedProperty</xsl:with-param>
933 <xsl:with-param name="members" select="element[apidata[@subsubgroup='attachedProperty']]" />
934 </xsl:call-template>
935 </xsl:if>
936
937 <!-- event table -->
938 <xsl:if test="element/apidata[@subgroup='event' and not(@subsubgroup)]">
939 <xsl:call-template name="memberlistSection">
940 <xsl:with-param name="headerGroup">event</xsl:with-param>
941 <xsl:with-param name="members" select="element[apidata[@subgroup='event' and not(@subsubgroup)]][.//memberdata[@visibility='public' or @visibility='family' or @visibility='family or assembly' or @visibility='assembly'] or (.//memberdata[@visibility='private'] and not(.//proceduredata[@virtual = 'true']))]" />
942 </xsl:call-template>
943 </xsl:if>
944
945 <!-- attached event table -->
946 <xsl:if test="element/apidata[@subsubgroup='attachedEvent']">
947 <xsl:call-template name="memberlistSection">
948 <xsl:with-param name="headerGroup">attachedEvent</xsl:with-param>
949 <xsl:with-param name="members" select="element[apidata[@subsubgroup='attachedEvent']]" />
950 </xsl:call-template>
951 </xsl:if>
952
953 <!-- eii table -->
954 <xsl:if test="element[memberdata[@visibility='private'] and proceduredata[@virtual = 'true']]">
955 <xsl:call-template name="memberlistSection">
956 <xsl:with-param name="headerGroup">ExplicitInterfaceImplementation</xsl:with-param>
957 <xsl:with-param name="members" select="element[.//memberdata[@visibility='private'] and .//proceduredata[@virtual = 'true']]" />
958 </xsl:call-template>
959 </xsl:if>
960
961 </xsl:template>
962
963 <xsl:template name="memberlistSection">
964 <xsl:param name="members"/>
965 <xsl:param name="headerGroup" />
966 <xsl:param name="showParameters" select="'false'" />
967
968 <xsl:variable name="header">
969 <xsl:value-of select="concat($headerGroup, 'Table')"/>
970 </xsl:variable>
971
972 <xsl:call-template name="section">
973 <xsl:with-param name="toggleSwitch" select="$header" />
974 <xsl:with-param name="title">
975 <include item="{$header}" />
976 </xsl:with-param>
977 <xsl:with-param name="toplink" select="true()"/>
978 <xsl:with-param name="content">
979 <table id="memberList" class="members" frame="lhs" cellpadding="2">
980 <col width="10%"/>
981 <tr>
982 <th class="iconColumn">
983 &#160;
984 </th>
985 <th class="nameColumn">
986 <include item="typeNameHeader"/>
987 </th>
988 <th class="descriptionColumn">
989 <include item="typeDescriptionHeader" />
990 </th>
991 </tr>
992
993 <!-- add a row for each member of the current subgroup-visibility -->
994 <xsl:apply-templates select="$members" mode="memberlistRow">
995 <xsl:with-param name="showParameters" select="$showParameters" />
996 <xsl:sort select="apidata/@name" />
997 </xsl:apply-templates>
998 </table>
999 </xsl:with-param>
1000 </xsl:call-template>
1001
1002 </xsl:template>
1003
1004 <xsl:template match="elements" mode="type">
1005
1006 </xsl:template>
1007
1008 <xsl:template name="IsMemberUnsupportedOnNetfw">
1009 <xsl:if test="boolean(not(@netfw) and not(element/@netfw))">
1010 <xsl:text>unsupported</xsl:text>
1011 </xsl:if>
1012 </xsl:template>
1013
1014 <!-- for testing CF and XNA support, check the signature variations of @signatureset elements -->
1015 <!-- for testing inherited/protected/etc, do not check the @signatureset variations; just go with the primary .NET Framework value -->
1016 <xsl:template name="IsMemberSupportedOnXna">
1017 <xsl:choose>
1018 <xsl:when test="element">
1019 <xsl:for-each select="element">
1020 <xsl:call-template name="IsMemberSupportedOnXna"/>
1021 </xsl:for-each>
1022 </xsl:when>
1023 <xsl:otherwise>
1024 <xsl:variable name="platformFilterExcludesXna" select="boolean(platforms and not(platforms/platform[.='Xbox360']))" />
1025 <xsl:if test="boolean(not($platformFilterExcludesXna) and (@xnafw or element/@xnafw))">
1026 <xsl:text>supported</xsl:text>
1027 </xsl:if>
1028 </xsl:otherwise>
1029 </xsl:choose>
1030 </xsl:template>
1031
1032 <xsl:template name="IsMemberSupportedOnCf">
1033 <xsl:choose>
1034 <xsl:when test="element">
1035 <xsl:for-each select="element">
1036 <xsl:call-template name="IsMemberSupportedOnCf"/>
1037 </xsl:for-each>
1038 </xsl:when>
1039 <xsl:otherwise>
1040 <xsl:variable name="platformFilterExcludesCF" select="boolean( platforms and not(platforms[platform[.='PocketPC'] or platform[.='SmartPhone'] or platform[.='WindowsCE']]) )" />
1041 <xsl:if test="boolean(not($platformFilterExcludesCF) and (@netcfw or element/@netcfw))">
1042 <xsl:text>yes</xsl:text>
1043 </xsl:if>
1044 </xsl:otherwise>
1045 </xsl:choose>
1046 </xsl:template>
1047
1048 <xsl:template name="IsMemberStatic">
1049 <xsl:choose>
1050 <xsl:when test="element and not(@signatureset)">
1051 <xsl:for-each select="element">
1052 <xsl:call-template name="IsMemberStatic"/>
1053 </xsl:for-each>
1054 </xsl:when>
1055 <xsl:when test="apidata[@subsubgroup='attachedProperty' or @subsubgroup='attachedEvent']"/>
1056 <xsl:otherwise>
1057 <xsl:if test="memberdata/@static='true'">
1058 <xsl:text>yes</xsl:text>
1059 </xsl:if>
1060 </xsl:otherwise>
1061 </xsl:choose>
1062 </xsl:template>
1063
1064 <!-- returns a non-empty string if the element is inherited, or for overloads if any of the overloads is inherited -->
1065 <xsl:template name="IsMemberInherited">
1066 <xsl:choose>
1067 <xsl:when test="element and not(@signatureset)">
1068 <xsl:for-each select="element">
1069 <xsl:call-template name="IsMemberInherited"/>
1070 </xsl:for-each>
1071 </xsl:when>
1072 <xsl:otherwise>
1073 <xsl:if test="containers/type[@api!=$typeId]">
1074 <xsl:text>yes</xsl:text>
1075 </xsl:if>
1076 </xsl:otherwise>
1077 </xsl:choose>
1078 </xsl:template>
1079
1080 <!-- returns a non-empty string if the element is declared, or for overloads if any of the overloads is declared -->
1081 <xsl:template name="IsMemberDeclared">
1082 <xsl:choose>
1083 <xsl:when test="element and not(@signatureset)">
1084 <xsl:for-each select="element">
1085 <xsl:call-template name="IsMemberDeclared"/>
1086 </xsl:for-each>
1087 </xsl:when>
1088 <xsl:otherwise>
1089 <xsl:if test="containers/type[@api=$typeId]">
1090 <xsl:text>yes</xsl:text>
1091 </xsl:if>
1092 </xsl:otherwise>
1093 </xsl:choose>
1094 </xsl:template>
1095
1096 <xsl:template name="IsMemberPublic">
1097 <xsl:choose>
1098 <xsl:when test="element and not(@signatureset)">
1099 <xsl:for-each select="element">
1100 <xsl:call-template name="IsMemberPublic"/>
1101 </xsl:for-each>
1102 </xsl:when>
1103 <xsl:otherwise>
1104 <xsl:if test="memberdata[@visibility='public']">
1105 <xsl:text>yes</xsl:text>
1106 </xsl:if>
1107 </xsl:otherwise>
1108 </xsl:choose>
1109 </xsl:template>
1110
1111 <xsl:template name="IsMemberProtected">
1112 <xsl:choose>
1113 <xsl:when test="element and not(@signatureset)">
1114 <xsl:for-each select="element">
1115 <xsl:call-template name="IsMemberProtected"/>
1116 </xsl:for-each>
1117 </xsl:when>
1118 <xsl:otherwise>
1119 <xsl:if test="memberdata[@visibility='family' or @visibility='family or assembly' or @visibility='assembly']">
1120 <xsl:text>yes</xsl:text>
1121 </xsl:if>
1122 </xsl:otherwise>
1123 </xsl:choose>
1124 </xsl:template>
1125
1126 <xsl:template name="IsMemberPrivate">
1127 <xsl:choose>
1128 <xsl:when test="element and not(@signatureset)">
1129 <xsl:for-each select="element">
1130 <xsl:call-template name="IsMemberPrivate"/>
1131 </xsl:for-each>
1132 </xsl:when>
1133 <xsl:otherwise>
1134 <xsl:if test="memberdata[@visibility='private'] and not(proceduredata[@virtual = 'true'])">
1135 <xsl:text>yes</xsl:text>
1136 </xsl:if>
1137 </xsl:otherwise>
1138 </xsl:choose>
1139 </xsl:template>
1140
1141 <xsl:template name="IsMemberExplicit">
1142 <xsl:choose>
1143 <xsl:when test="element">
1144 <xsl:for-each select="element">
1145 <xsl:call-template name="IsMemberExplicit"/>
1146 </xsl:for-each>
1147 </xsl:when>
1148 <xsl:otherwise>
1149 <xsl:if test="memberdata[@visibility='private'] and proceduredata[@virtual = 'true']">
1150 <xsl:text>yes</xsl:text>
1151 </xsl:if>
1152 </xsl:otherwise>
1153 </xsl:choose>
1154 </xsl:template>
1155
1156 <xsl:template match="element" mode="memberlistRow">
1157 <xsl:param name="showParameters" select="'false'" />
1158 <xsl:variable name="notsupportedOnNetfw">
1159 <xsl:call-template name="IsMemberUnsupportedOnNetfw"/>
1160 </xsl:variable>
1161 <xsl:variable name="supportedOnXna">
1162 <xsl:call-template name="IsMemberSupportedOnXna"/>
1163 </xsl:variable>
1164 <xsl:variable name="supportedOnCf">
1165 <xsl:call-template name="IsMemberSupportedOnCf"/>
1166 </xsl:variable>
1167 <xsl:variable name="staticMember">
1168 <xsl:call-template name="IsMemberStatic"/>
1169 </xsl:variable>
1170 <xsl:variable name="inheritedMember">
1171 <xsl:call-template name="IsMemberInherited"/>
1172 </xsl:variable>
1173 <xsl:variable name="declaredMember">
1174 <xsl:call-template name="IsMemberDeclared"/>
1175 </xsl:variable>
1176 <xsl:variable name="protectedMember">
1177 <xsl:call-template name="IsMemberProtected"/>
1178 </xsl:variable>
1179 <xsl:variable name="publicMember">
1180 <xsl:call-template name="IsMemberPublic"/>
1181 </xsl:variable>
1182 <xsl:variable name="privateMember">
1183 <xsl:call-template name="IsMemberPrivate"/>
1184 </xsl:variable>
1185 <xsl:variable name="explicitMember">
1186 <xsl:call-template name="IsMemberExplicit" />
1187 </xsl:variable>
1188 <!-- do not show non-static members of static types -->
1189 <xsl:if test=".//memberdata/@static='true' or not(/document/reference/typedata[@abstract='true' and @sealed='true'])">
1190 <tr>
1191 <xsl:attribute name="data">
1192 <!-- it's possible to include both public and protected for overload topics -->
1193 <xsl:if test="normalize-space($publicMember)!=''">
1194 <xsl:text>public;</xsl:text>
1195 </xsl:if>
1196 <xsl:if test="normalize-space($protectedMember)!=''">
1197 <xsl:text>protected;</xsl:text>
1198 </xsl:if>
1199 <xsl:if test="normalize-space($privateMember)!=''">
1200 <xsl:text>private;</xsl:text>
1201 </xsl:if>
1202 <xsl:if test="normalize-space($explicitMember) != ''">
1203 <xsl:text>explicit;</xsl:text>
1204 </xsl:if>
1205 <xsl:if test="normalize-space($staticMember)!=''">
1206 <xsl:text>static;</xsl:text>
1207 </xsl:if>
1208 <xsl:if test="normalize-space($declaredMember)!=''">
1209 <xsl:text>declared;</xsl:text>
1210 </xsl:if>
1211 <xsl:if test="normalize-space($inheritedMember)!=''">
1212 <xsl:text>inherited;</xsl:text>
1213 </xsl:if>
1214 <xsl:if test="normalize-space($supportedOnCf)!=''">
1215 <xsl:text>netcfw;</xsl:text>
1216 </xsl:if>
1217 <xsl:if test="normalize-space($supportedOnXna)!=''">
1218 <xsl:text>xnafw;</xsl:text>
1219 </xsl:if>
1220 <xsl:if test="normalize-space($notsupportedOnNetfw)!=''">
1221 <xsl:text>notNetfw;</xsl:text>
1222 </xsl:if>
1223 </xsl:attribute>
1224<!--
1225 <xsl:if test="normalize-space($declaredMember)=''">
1226 <xsl:attribute name="name">inheritedMember</xsl:attribute>
1227 </xsl:if>
1228 <xsl:if test="normalize-space($protectedMember)!=''">
1229 <xsl:attribute name="protected">true</xsl:attribute>
1230 </xsl:if>
1231 <xsl:if test="normalize-space($notsupportedOnNetfw)!=''">
1232 <xsl:attribute name="notsupportedOnNetfw">true</xsl:attribute>
1233 </xsl:if>
1234 <xsl:if test="normalize-space($supportedOnXna)=''">
1235 <xsl:attribute name="notSupportedOnXna">true</xsl:attribute>
1236 </xsl:if>
1237 <xsl:if test="normalize-space($supportedOnCf)=''">
1238 <xsl:attribute name="notSupportedOn">netcf</xsl:attribute>
1239 </xsl:if>
1240-->
1241 <td>
1242 <xsl:call-template name="memberIcons">
1243 <xsl:with-param name="memberVisibility">
1244 <xsl:choose>
1245 <xsl:when test="normalize-space($publicMember)!=''">pub</xsl:when>
1246 <xsl:when test="normalize-space($protectedMember)!=''">prot</xsl:when>
1247 <xsl:when test="memberdata/@visibility='private'">priv</xsl:when>
1248 <xsl:otherwise>pub</xsl:otherwise>
1249 </xsl:choose>
1250 </xsl:with-param>
1251 <xsl:with-param name="staticMember" select="normalize-space($staticMember)" />
1252 <xsl:with-param name="supportedOnXna" select="normalize-space($supportedOnXna)"/>
1253 <xsl:with-param name="supportedOnCf" select="normalize-space($supportedOnCf)"/>
1254 </xsl:call-template>
1255 </td>
1256 <td>
1257 <xsl:choose>
1258 <xsl:when test="@display-api">
1259 <referenceLink target="{@api}" display-target="{@display-api}" show-parameters="{$showParameters}" />
1260 </xsl:when>
1261 <xsl:otherwise>
1262 <referenceLink target="{@api}" show-parameters="{$showParameters}" />
1263 </xsl:otherwise>
1264 </xsl:choose>
1265 </td>
1266 <td>
1267 <xsl:call-template name="getInternalOnlyDescription" />
1268 <xsl:if test="attributes/attribute/type[@api='T:System.ObsoleteAttribute']">
1269 <xsl:text> </xsl:text>
1270 <include item="obsoleteRed" />
1271 </xsl:if>
1272 <xsl:if test="topicdata[@subgroup='overload']">
1273 <include item="Overloaded"/>
1274 <xsl:text> </xsl:text>
1275 </xsl:if>
1276 <xsl:apply-templates select="element" mode="overloadSummary" />
1277 <xsl:call-template name="getElementDescription" />
1278 <xsl:choose>
1279 <xsl:when test="not(topicdata[@subgroup='overload'])">
1280 <xsl:choose>
1281 <xsl:when test="@source='extension' and containers/type">
1282 <xsl:text> </xsl:text>
1283 <include item="definedBy">
1284 <parameter>
1285 <xsl:apply-templates select="containers/type" mode="link" />
1286 </parameter>
1287 </include>
1288 </xsl:when>
1289 <xsl:when test="normalize-space($inheritedMember)!=''">
1290 <xsl:text> </xsl:text>
1291 <include item="inheritedFrom">
1292 <parameter>
1293 <xsl:apply-templates select="containers/type" mode="link" />
1294 </parameter>
1295 </include>
1296 </xsl:when>
1297 <xsl:when test="overrides/member">
1298 <xsl:text> </xsl:text>
1299 <include item="overridesMember">
1300 <parameter>
1301 <xsl:apply-templates select="overrides/member" mode="link" />
1302 </parameter>
1303 </include>
1304 </xsl:when>
1305 </xsl:choose>
1306 </xsl:when>
1307 </xsl:choose>
1308
1309 <!-- add boilerplate for other members in the sig set -->
1310 <xsl:if test="@signatureset and element">
1311 <xsl:variable name="primaryMember">
1312 <xsl:copy-of select="."/>
1313 </xsl:variable>
1314 <xsl:variable name="primaryFramework" select="versions/versions[1]/@name"/>
1315 <xsl:for-each select="versions/versions[@name!=$primaryFramework]">
1316 <xsl:variable name="secondaryFramework" select="@name"/>
1317 <xsl:if test="(msxsl:node-set($primaryMember)/*[not(@*[local-name()=$secondaryFramework])]) and (msxsl:node-set($primaryMember)/*[element[@*[local-name()=$secondaryFramework]]])">
1318 <xsl:for-each select="msxsl:node-set($primaryMember)/*/element[@*[local-name()=$secondaryFramework]][1]">
1319 <xsl:variable name="inheritedSecondaryMember">
1320 <xsl:call-template name="IsMemberInherited"/>
1321 </xsl:variable>
1322 <xsl:choose>
1323 <xsl:when test="overrides">
1324 <span data="{$secondaryFramework}">
1325 <include item="secondaryFrameworkOverride">
1326 <parameter>
1327 <xsl:value-of select="$secondaryFramework"/>
1328 </parameter>
1329 <!--<parameter>
1330 <xsl:value-of select="@*[local-name()=$secondaryFramework]"/>
1331 </parameter>-->
1332 <parameter>
1333 <referenceLink target="{@api}"/>
1334 </parameter>
1335 </include>
1336 </span>
1337 </xsl:when>
1338 <xsl:when test="normalize-space($inheritedSecondaryMember)!=''">
1339 <span data="{$secondaryFramework}">
1340 <include item="secondaryFrameworkInherited">
1341 <parameter>
1342 <xsl:value-of select="$secondaryFramework"/>
1343 </parameter>
1344 <parameter>
1345 <xsl:value-of select="@*[local-name()=$secondaryFramework]"/>
1346 </parameter>
1347 <parameter>
1348 <xsl:apply-templates select="containers/type" mode="link" />
1349 </parameter>
1350 <parameter>
1351 <referenceLink target="{@api}"/>
1352 </parameter>
1353 </include>
1354 </span>
1355 </xsl:when>
1356 <xsl:otherwise>
1357 <span data="{$secondaryFramework}">
1358 <include item="secondaryFrameworkMember">
1359 <parameter>
1360 <xsl:value-of select="$secondaryFramework"/>
1361 </parameter>
1362 <parameter>
1363 <xsl:value-of select="@*[local-name()=$secondaryFramework]"/>
1364 </parameter>
1365 <parameter>
1366 <referenceLink target="{@api}"/>
1367 </parameter>
1368 </include>
1369 </span>
1370 </xsl:otherwise>
1371 </xsl:choose>
1372 </xsl:for-each>
1373 </xsl:if>
1374 </xsl:for-each>
1375 </xsl:if>
1376
1377 </td>
1378 </tr>
1379 </xsl:if>
1380 </xsl:template>
1381
1382 <xsl:template match="elements" mode="derivedType">
1383 <xsl:if test="count(element) > 0">
1384 <xsl:call-template name="section">
1385 <xsl:with-param name="toggleSwitch" select="'DerivedClasses'"/>
1386 <xsl:with-param name="title">
1387 <include item="derivedClasses" />
1388 </xsl:with-param>
1389 <xsl:with-param name="content">
1390 <table class="members" id="memberList" frame="lhs" cellpadding="2">
1391 <tr>
1392 <th class="nameColumn">
1393 <include item="memberNameHeader"/>
1394 </th>
1395 <th class="descriptionColumn">
1396 <include item="memberDescriptionHeader" />
1397 </th>
1398 </tr>
1399 <xsl:apply-templates select="element" mode="derivedType">
1400 <xsl:sort select="apidata/@name" />
1401 </xsl:apply-templates>
1402 </table>
1403 </xsl:with-param>
1404 </xsl:call-template>
1405 </xsl:if>
1406 </xsl:template>
1407
1408 <xsl:template match="elements" mode="overload">
1409 <xsl:if test="count(element) > 0">
1410 <xsl:call-template name="memberlistSection">
1411 <xsl:with-param name="headerGroup" select="'overloadMembers'" />
1412 <xsl:with-param name="members" select="element" />
1413 <xsl:with-param name="showParameters" select="'true'" />
1414 </xsl:call-template>
1415 </xsl:if>
1416 <xsl:apply-templates select="element" mode="overloadSections">
1417 <xsl:sort select="apidata/@name" />
1418 </xsl:apply-templates>
1419 </xsl:template>
1420
1421 <xsl:template match="elements" mode="overloadSummary">
1422 <xsl:apply-templates select="element" mode="overloadSummary" >
1423 <xsl:sort select="apidata/@name"/>
1424 </xsl:apply-templates>
1425 </xsl:template>
1426
1427 <xsl:template match="element" mode="overloadSummary">
1428 <xsl:call-template name="getOverloadSummary" />
1429 </xsl:template>
1430
1431 <xsl:template match="element" mode="overloadSections">
1432 <xsl:call-template name="getOverloadSections" />
1433 </xsl:template>
1434
1435 <xsl:template name="typeIcon">
1436 <xsl:param name="typeVisibility" />
1437
1438 <xsl:variable name="typeSubgroup" select="apidata/@subgroup" />
1439 <img>
1440 <includeAttribute name="src" item="iconPath">
1441 <parameter>
1442 <xsl:value-of select="concat($typeVisibility,$typeSubgroup,'.gif')" />
1443 </parameter>
1444 </includeAttribute>
1445 <includeAttribute name="title" item="{concat($typeVisibility,$typeSubgroup,'AltText')}" />
1446 </img>
1447
1448 </xsl:template>
1449
1450 <xsl:template name="memberIcons">
1451 <xsl:param name="memberVisibility" />
1452 <xsl:param name="staticMember" />
1453 <xsl:param name="supportedOnXna"/>
1454 <xsl:param name="supportedOnCf"/>
1455
1456 <xsl:variable name="memberSubgroup">
1457 <xsl:choose>
1458 <xsl:when test="apidata/@subgroup='constructor'">
1459 <xsl:text>method</xsl:text>
1460 </xsl:when>
1461 <xsl:when test="apidata/@subgroup='method'">
1462 <xsl:choose>
1463 <xsl:when test="apidata/@subsubgroup='operator'">
1464 <xsl:text>operator</xsl:text>
1465 </xsl:when>
1466 <xsl:when test="apidata/@subsubgroup='extension'">
1467 <xsl:text>extension</xsl:text>
1468 </xsl:when>
1469 <xsl:otherwise>
1470 <xsl:text>method</xsl:text>
1471 </xsl:otherwise>
1472 </xsl:choose>
1473 </xsl:when>
1474 <xsl:otherwise>
1475 <xsl:value-of select="apidata/@subgroup" />
1476 </xsl:otherwise>
1477 </xsl:choose>
1478 </xsl:variable>
1479
1480 <!-- test for explicit interface implementations, which get the interface icon -->
1481 <xsl:if test="memberdata/@visibility='private' and proceduredata/@virtual='true'">
1482 <img>
1483 <includeAttribute name="src" item="iconPath">
1484 <parameter>pubinterface.gif</parameter>
1485 </includeAttribute>
1486 <includeAttribute name="title" item="ExplicitInterfaceAltText" />
1487 </img>
1488 </xsl:if>
1489
1490 <img>
1491 <includeAttribute name="src" item="iconPath">
1492 <parameter>
1493 <xsl:value-of select="concat($memberVisibility,$memberSubgroup,'.gif')" />
1494 </parameter>
1495 </includeAttribute>
1496 <xsl:choose>
1497 <xsl:when test="apidata/@subsubgroup">
1498 <includeAttribute name="title" item="{concat($memberVisibility,apidata/@subsubgroup,'AltText')}" />
1499 </xsl:when>
1500 <xsl:otherwise>
1501 <includeAttribute name="title" item="{concat($memberVisibility,$memberSubgroup,'AltText')}" />
1502 </xsl:otherwise>
1503 </xsl:choose>
1504 </img>
1505
1506 <xsl:if test="$staticMember!=''">
1507 <img>
1508 <includeAttribute name="src" item="iconPath">
1509 <parameter>static.gif</parameter>
1510 </includeAttribute>
1511 <includeAttribute name="title" item="staticAltText" />
1512 </img>
1513 </xsl:if>
1514
1515 <xsl:if test="$supportedOnCf!=''">
1516 <img data="netcfw">
1517 <includeAttribute name="src" item="iconPath">
1518 <parameter>CFW.gif</parameter>
1519 </includeAttribute>
1520 <includeAttribute name="title" item="CompactFrameworkAltText" />
1521 </img>
1522 </xsl:if>
1523
1524 <xsl:if test="$supportedOnXna!=''">
1525 <img data="xnafw">
1526 <includeAttribute name="src" item="iconPath">
1527 <parameter>xna.gif</parameter>
1528 </includeAttribute>
1529 <includeAttribute name="title" item="XNAFrameworkAltText" />
1530 </img>
1531 </xsl:if>
1532 </xsl:template>
1533
1534 <!-- Assembly information -->
1535
1536 <xsl:template name="requirementsInfo">
1537 <p/>
1538 <include item="requirementsNamespaceLayout" />
1539 <xsl:text>&#xa0;</xsl:text>
1540 <referenceLink target="{/document/reference/containers/namespace/@api}" />
1541 <br/>
1542 <xsl:call-template name="assembliesInfo"/>
1543
1544 <!-- some apis display a XAML xmlns uri -->
1545 <xsl:call-template name="xamlXmlnsInfo"/>
1546 </xsl:template>
1547
1548 <xsl:template name="assemblyNameAndModule">
1549 <xsl:param name="library" select="/document/reference/containers/library"/>
1550 <include item="assemblyNameAndModule">
1551 <parameter>
1552 <span sdata="assembly">
1553 <xsl:value-of select="$library/@assembly"/>
1554 </span>
1555 </parameter>
1556 <parameter>
1557 <xsl:value-of select="$library/@module"/>
1558 </parameter>
1559 <parameter>
1560 <xsl:choose>
1561 <xsl:when test="$library/@kind = 'DynamicallyLinkedLibrary'">
1562 <xsl:text>dll</xsl:text>
1563 </xsl:when>
1564 <xsl:otherwise>
1565 <xsl:text>exe</xsl:text>
1566 </xsl:otherwise>
1567 </xsl:choose>
1568 </parameter>
1569 </include>
1570 </xsl:template>
1571
1572 <xsl:template name="assembliesInfo">
1573 <xsl:choose>
1574 <xsl:when test="count(/document/reference/containers/library)&gt;1">
1575 <include item="requirementsAssembliesLabel"/>
1576 <xsl:for-each select="/document/reference/containers/library">
1577 <xsl:text>&#xa0;&#xa0;</xsl:text>
1578 <xsl:call-template name="assemblyNameAndModule">
1579 <xsl:with-param name="library" select="."/>
1580 </xsl:call-template>
1581 <br/>
1582 </xsl:for-each>
1583 </xsl:when>
1584 <xsl:otherwise>
1585 <include item="requirementsAssemblyLabel"/>
1586 <xsl:text>&#xa0;</xsl:text>
1587 <xsl:call-template name="assemblyNameAndModule"/>
1588 </xsl:otherwise>
1589 </xsl:choose>
1590 </xsl:template>
1591
1592 <!-- Platform information -->
1593
1594 <xsl:template match="platforms">
1595 <xsl:call-template name="section">
1596 <xsl:with-param name="toggleSwitch" select="'platformsTitle'"/>
1597 <xsl:with-param name="title">
1598 <include item="platformsTitle" />
1599 </xsl:with-param>
1600 <xsl:with-param name="content">
1601 <p>
1602 <xsl:for-each select="platform">
1603 <include item="{.}" /><xsl:if test="position()!=last()"><xsl:text>, </xsl:text></xsl:if>
1604 </xsl:for-each>
1605 </p>
1606 <xsl:if test="/document/reference/versions/versions[@name='netfw' or @name='netcfw']//version">
1607 <p>
1608 <include item="SystemRequirementsLinkBoilerplate"/>
1609 </p>
1610 </xsl:if>
1611 </xsl:with-param>
1612 </xsl:call-template>
1613 </xsl:template>
1614
1615 <!-- Version information -->
1616
1617 <xsl:template match="versions">
1618 <xsl:call-template name="section">
1619 <xsl:with-param name="toggleSwitch" select="'versionsTitle'"/>
1620 <xsl:with-param name="title">
1621 <include item="versionsTitle" />
1622 </xsl:with-param>
1623 <xsl:with-param name="content">
1624 <xsl:call-template name="processVersions" />
1625 </xsl:with-param>
1626 </xsl:call-template>
1627 </xsl:template>
1628
1629 <xsl:template name="processVersions">
1630 <xsl:param name="frameworkGroup" select="true()"/>
1631 <xsl:choose>
1632 <xsl:when test="versions and $frameworkGroup">
1633 <xsl:for-each select="versions">
1634 <!-- $platformFilterExcluded is based on platform filtering information -->
1635 <xsl:variable name="platformFilterExcluded" select="boolean(/document/reference/platforms and ( (@name='netcfw' and not(/document/reference/platforms/platform[.='PocketPC']) and not(/document/reference/platforms/platform[.='SmartPhone']) and not(/document/reference/platforms/platform[.='WindowsCE']) ) or (@name='xnafw' and not(/document/reference/platforms/platform[.='Xbox360']) ) ) )" />
1636 <xsl:if test="not($platformFilterExcluded) and count(.//version) &gt; 0">
1637 <h4 class ="subHeading">
1638 <include item="{@name}" />
1639 </h4>
1640 <xsl:call-template name="processVersions">
1641 <xsl:with-param name="frameworkGroup" select="false()"/>
1642 </xsl:call-template>
1643 </xsl:if>
1644 </xsl:for-each>
1645 </xsl:when>
1646 <xsl:otherwise>
1647 <!-- show the versions in which the api is supported, if any -->
1648 <xsl:variable name="supportedCount" select="count(version[not(@obsolete)] | versions[version[not(@obsolete)]])"/>
1649 <xsl:if test="$supportedCount &gt; 0">
1650 <include item="supportedIn_{$supportedCount}">
1651 <xsl:for-each select="version[not(@obsolete)] | versions[version[not(@obsolete)]]">
1652 <xsl:variable name="versionName">
1653 <xsl:choose>
1654 <!-- A versions[version] node at this level is for releases that had subsequent service packs.
1655 For example, versions for .NET 3.0 has version nodes for 3.0 and 3.0 SP1.
1656 We show only the first node, which is the one in which the api was first released,
1657 that is, we show 3.0 SP1 only if the api was introduced in SP1. -->
1658 <xsl:when test="local-name()='versions'">
1659 <xsl:value-of select="version[not(@obsolete)][not(preceding-sibling::version[not(@obsolete)])]/@name"/>
1660 </xsl:when>
1661 <xsl:otherwise>
1662 <xsl:value-of select="@name"/>
1663 </xsl:otherwise>
1664 </xsl:choose>
1665 </xsl:variable>
1666 <parameter>
1667 <include item="{$versionName}" />
1668 </parameter>
1669 </xsl:for-each>
1670 </include>
1671 <br/>
1672 </xsl:if>
1673 <!-- show the versions in which the api is obsolete with a compiler warning, if any -->
1674 <xsl:for-each select=".//version[@obsolete='warning']">
1675 <include item="obsoleteWarning">
1676 <parameter>
1677 <include item="{@name}" />
1678 </parameter>
1679 </include>
1680 <br/>
1681 </xsl:for-each>
1682 <!-- show the versions in which the api is obsolete and does not compile, if any -->
1683 <xsl:for-each select=".//version[@obsolete='error']">
1684 <xsl:if test="position()=last()">
1685 <include item="obsoleteError">
1686 <parameter>
1687 <include item="{@name}" />
1688 </parameter>
1689 </include>
1690 <br/>
1691 </xsl:if>
1692 </xsl:for-each>
1693 </xsl:otherwise>
1694 </xsl:choose>
1695 </xsl:template>
1696
1697 <!-- Inheritance hierarchy -->
1698
1699 <xsl:template match="family">
1700
1701 <xsl:call-template name="section">
1702 <xsl:with-param name="toggleSwitch" select="'family'"/>
1703 <xsl:with-param name="title">
1704 <include item="familyTitle" />
1705 </xsl:with-param>
1706 <xsl:with-param name="content">
1707 <xsl:variable name="ancestorCount" select="count(ancestors/*)" />
1708 <xsl:variable name="childCount" select="count(descendents/*)" />
1709
1710 <xsl:for-each select="ancestors/type">
1711 <xsl:sort select="position()" data-type="number" order="descending" />
1712 <!-- <xsl:sort select="@api"/> -->
1713
1714 <xsl:call-template name="indent">
1715 <xsl:with-param name="count" select="position()" />
1716 </xsl:call-template>
1717
1718 <xsl:apply-templates select="self::type" mode="link">
1719 <xsl:with-param name="qualified" select="true()" />
1720 </xsl:apply-templates>
1721
1722 <br/>
1723 </xsl:for-each>
1724
1725 <xsl:call-template name="indent">
1726 <xsl:with-param name="count" select="$ancestorCount + 1" />
1727 </xsl:call-template>
1728
1729 <referenceLink target="{$key}" qualified="true"/>
1730 <br/>
1731
1732 <xsl:choose>
1733
1734 <xsl:when test="descendents/@derivedTypes">
1735 <xsl:call-template name="indent">
1736 <xsl:with-param name="count" select="$ancestorCount + 2" />
1737 </xsl:call-template>
1738 <referenceLink target="{descendents/@derivedTypes}" qualified="true">
1739 <include item="derivedClasses"/>
1740 </referenceLink>
1741 </xsl:when>
1742 <xsl:otherwise>
1743
1744 <xsl:for-each select="descendents/type">
1745 <xsl:sort select="@api" />
1746 <xsl:call-template name="indent">
1747 <xsl:with-param name="count" select="$ancestorCount + 2" />
1748 </xsl:call-template>
1749
1750 <xsl:apply-templates select="self::type" mode="link">
1751 <xsl:with-param name="qualified" select="true()" />
1752 </xsl:apply-templates>
1753
1754 <br/>
1755 </xsl:for-each>
1756 </xsl:otherwise>
1757 </xsl:choose>
1758
1759 </xsl:with-param>
1760 </xsl:call-template>
1761 </xsl:template>
1762
1763 <xsl:template name="createTableEntries">
1764 <xsl:param name="count" />
1765 <xsl:if test="number($count) > 0">
1766 <td>&#x20;</td>
1767 <xsl:call-template name="createTableEntries">
1768 <xsl:with-param name="count" select="number($count)-1" />
1769 </xsl:call-template>
1770 </xsl:if>
1771 </xsl:template>
1772
1773 <!--<xsl:template name="shortName">
1774 <xsl:choose>
1775 <xsl:when test="$api-subgroup='constructor'">
1776 <xsl:value-of select="/document/reference/containers/type/apidata/@name" />
1777 </xsl:when>
1778 <xsl:otherwise>
1779 <xsl:value-of select="/document/reference/apidata/@name" />
1780 </xsl:otherwise>
1781 </xsl:choose>
1782 </xsl:template>-->
1783
1784
1785 <!-- decorated names -->
1786
1787 <xsl:template name="shortNameDecorated">
1788 <xsl:choose>
1789 <!-- type overview pages and member list pages get the type name -->
1790 <xsl:when test="($topic-group='api' and $api-group='type') or ($topic-group='list' and not($topic-subgroup='overload'))">
1791 <xsl:for-each select="/document/reference[1]">
1792 <xsl:call-template name="typeNameDecorated" />
1793 </xsl:for-each>
1794 </xsl:when>
1795 <!-- constructors and member list pages also use the type name -->
1796 <xsl:when test="($topic-group='api' and $api-subgroup='constructor') or ($topic-subgroup='overload' and $api-subgroup='constructor')">
1797 <xsl:for-each select="/document/reference/containers/type[1]">
1798 <xsl:call-template name="typeNameDecorated" />
1799 </xsl:for-each>
1800 </xsl:when>
1801 <!-- eii members -->
1802 <xsl:when test="document/reference[memberdata[@visibility='private'] and proceduredata[@virtual = 'true']]">
1803 <xsl:for-each select="/document/reference/containers/type[1]">
1804 <xsl:call-template name="typeNameDecorated" />
1805 </xsl:for-each>
1806 <span class="languageSpecificText">
1807 <span class="cs">.</span>
1808 <span class="vb">.</span>
1809 <span class="cpp">::</span>
1810 <span class="nu">.</span>
1811 </span>
1812 <xsl:for-each select="/document/reference/implements/member">
1813 <xsl:for-each select="type">
1814 <xsl:call-template name="typeNameDecorated" />
1815 </xsl:for-each>
1816 <span class="languageSpecificText">
1817 <span class="cs">.</span>
1818 <span class="vb">.</span>
1819 <span class="cpp">::</span>
1820 <span class="nu">.</span>
1821 </span>
1822 <xsl:value-of select="apidata/@name" />
1823 <xsl:apply-templates select="templates" mode="decorated" />
1824 </xsl:for-each>
1825 </xsl:when>
1826 <!-- normal member pages use the qualified member name -->
1827 <xsl:when test="($topic-group='api' and $api-group='member') or ($topic-subgroup='overload' and $api-group='member')">
1828 <xsl:for-each select="/document/reference/containers/type[1]">
1829 <xsl:call-template name="typeNameDecorated" />
1830 </xsl:for-each>
1831 <span class="languageSpecificText">
1832 <span class="cs">.</span>
1833 <span class="vb">.</span>
1834 <span class="cpp">::</span>
1835 <span class="nu">.</span>
1836 </span>
1837 <xsl:for-each select="/document/reference[1]">
1838 <xsl:value-of select="apidata/@name" />
1839 <xsl:apply-templates select="templates" mode="decorated" />
1840 </xsl:for-each>
1841 </xsl:when>
1842 <!-- namespace (and any other) topics just use the name -->
1843 <xsl:when test="/document/reference/apidata/@name = ''">
1844 <include item="defaultNamespace" />
1845 </xsl:when>
1846 <xsl:otherwise>
1847 <xsl:value-of select="/document/reference/apidata/@name" />
1848 </xsl:otherwise>
1849 </xsl:choose>
1850 </xsl:template>
1851
1852 <!-- plain names -->
1853
1854 <xsl:template name="shortNamePlain">
1855 <xsl:param name="qualifyMembers" select="false()" />
1856 <xsl:choose>
1857 <!-- type overview pages and member list pages get the type name -->
1858 <xsl:when test="($topic-group='api' and $api-group='type') or ($topic-group='list' and not($topic-subgroup='overload'))">
1859 <xsl:for-each select="/document/reference[1]">
1860 <xsl:call-template name="typeNamePlain" />
1861 </xsl:for-each>
1862 </xsl:when>
1863 <!-- constructors and member list pages also use the type name -->
1864 <xsl:when test="($topic-group='api' and $api-subgroup='constructor') or ($topic-subgroup='overload' and $api-subgroup='constructor')">
1865 <xsl:for-each select="/document/reference/containers/type[1]">
1866 <xsl:call-template name="typeNamePlain" />
1867 </xsl:for-each>
1868 </xsl:when>
1869 <!-- member pages use the member name, qualified if the qualified flag is set -->
1870 <xsl:when test="($topic-group='api' and $api-group='member') or ($topic-subgroup='overload' and $api-group='member')">
1871 <!-- check for qualify flag and qualify if it is set -->
1872 <xsl:if test="$qualifyMembers">
1873 <xsl:for-each select="/document/reference/containers/type[1]">
1874 <xsl:call-template name="typeNamePlain" />
1875 </xsl:for-each>
1876 <xsl:text>.</xsl:text>
1877 </xsl:if>
1878 <xsl:choose>
1879 <!-- EII names are interfaceName.interfaceMemberName, not memberName -->
1880 <xsl:when test="document/reference[memberdata[@visibility='private'] and proceduredata[@virtual = 'true']]">
1881 <xsl:for-each select="/document/reference/implements/member">
1882 <xsl:for-each select="type">
1883 <xsl:call-template name="typeNamePlain" />
1884 </xsl:for-each>
1885 <xsl:text>.</xsl:text>
1886 <xsl:value-of select="apidata/@name" />
1887 <xsl:apply-templates select="templates" mode="plain" />
1888 </xsl:for-each>
1889 </xsl:when>
1890 <xsl:otherwise>
1891 <!-- but other members just use the name -->
1892 <xsl:for-each select="/document/reference[1]">
1893 <xsl:value-of select="apidata/@name" />
1894 <xsl:apply-templates select="templates" mode="plain" />
1895 </xsl:for-each>
1896 </xsl:otherwise>
1897 </xsl:choose>
1898 </xsl:when>
1899 <!-- namespace, member (and any other) topics just use the name -->
1900 <xsl:when test="/document/reference/apidata/@name = ''">
1901 <include item="defaultNamespace" />
1902 </xsl:when>
1903 <xsl:otherwise>
1904 <xsl:value-of select="/document/reference/apidata/@name" />
1905 </xsl:otherwise>
1906 </xsl:choose>
1907 </xsl:template>
1908
1909</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.