diff options
Diffstat (limited to 'templates')
29 files changed, 775 insertions, 241 deletions
diff --git a/templates/html/htmlallmembers.tpl b/templates/html/htmlallmembers.tpl index 98f88d6..b44110d 100644 --- a/templates/html/htmlallmembers.tpl +++ b/templates/html/htmlallmembers.tpl @@ -9,12 +9,63 @@ <p>{{ tr.theListOfAllMembers }} <a class="el" href="{{ compound.fileName }}{{ config.HTML_FILE_EXTENSION }}">{{ compound.name }}</a>{{ tr.incInheritedMembers }}</p> <table class="directory"> {% for mi in compound.allMembersList %} - <tr {% cycle 'class="even"' '' %}> - {# TODO: objective-C #} - <td>{% with obj=mi.member text=mi.ambiguityScope|append:mi.member.name %} - {% include 'htmlobjlink.tpl' %} + <tr class="{% cycle 'even' 'odd' %}"> + {% spaceless %} + {% with member=mi.member %} + {% if member.language=='objc' %} + <td class="entry"> + {% if member.isObjCMethod %} + {% if member.isStatic %}+ {% else %}- {% endif %} + {% endif %} + </td> + {% endif %} + {% if member.isObjCMethod %} + <td class="entry"> + {% with obj=member text=member.name %} + {% include 'htmlobjlink.tpl' %} + {% endwith %} + </td> + {%else %} + {# name #} + <td class="entry"> + {% with obj=member text=mi.ambiguityScope|append:member.name %} + {% include 'htmlobjlink.tpl' %} {% endwith %} + {% if member.isEnumeration %} +  {{ tr.enumName }} + {% elif member.isEnumValue %} +  {{ tr.enumValue }} + {% elif member.isTypedef %} +  typedef + {% elif member.isFriend and member.type=='friend class' %} +  class + {% elif member.isFunction or member.isSignal or member.isSlot or (member.isFriend and member.hasParameters) %} + {{ member.declArgs }} + {% endif %} + </td> + {% endif %} + {# class link #} + <td class="entry"> + {% if member.category %} + {% with obj=member.category text=member.category.name %} + {% include 'htmlobjlink.tpl' %} + {% endwith %} + {% else %} + {% with obj=member.class text=member.class.name %} + {% include 'htmlobjlink.tpl' %} + {% endwith %} + {% endif %} </td> + {# labels #} + {% if member.labels %} + <td class="entry"> + {% for label in member.labels %} + <span class="mlabel">{{ label }}</span> + {% endfor %} + </td> + {% endif %} + {% endwith %} + {% endspaceless %} </tr> {% endfor %} </table> diff --git a/templates/html/htmlbase.tpl b/templates/html/htmlbase.tpl index d394b45..84807ec 100644 --- a/templates/html/htmlbase.tpl +++ b/templates/html/htmlbase.tpl @@ -21,6 +21,9 @@ {% endif %} {% if config.SEARCHENGINE %} <link href="{{ page.relPath }}search/search.css" rel="stylesheet" type="text/css"/> + {% if not config.SERVER_BASED_SEARCH %} +<script type="text/javascript" src="{{ page.relPath }}search/searchdata.js"></script> + {% endif %} <script type="text/javascript" src="{{ page.relPath }}search/search.js"></script> {% if config.SERVER_BASED_SEARCH %} <script type="text/javascript"> @@ -38,13 +41,13 @@ {% if config.USE_MATHJAX %} <script type="text/x-mathjax-config"> MathJax.Hub.Config({ - extensions: ["tex2jax.js"], {# TODO: support MATHJAX_EXTENSIONS #} - jax: ["input/TeX","output/{{ config.MATHJAX_FORMAT }}"], + extensions: ["tex2jax.js"{% for ext in config.MATHJAX_EXTENSIONS %}, "{{ ext }}"{% endfor %}], + jax: ["input/TeX","output/{{ config.MATHJAX_FORMAT|default:'HTML-CSS' }}"], }); -{# TODO: support MATHJAX_CODEFILE #} +{{ doxygen.mathJaxCodeFile }} </script> -<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script> -{% endif %} +<script type="text/javascript" src="{{ config.MATHJAX_RELPATH }}{% if config.MATHJAX_RELPATH|relative %}{{ page.relPath }}{% endif %}MathJax.js"></script> +{% endif %}{# MathJax #} <link href="{{ page.relPath }}{{ config.HTML_STYLESHEET|default:'doxygen.css' }}" rel="stylesheet" type="text/css" /> {% if config.HTML_EXTRA_STYLESHEET %} <link href="{{ page.relPath }}{{ config.HTML_EXTRA_STYLESHEET }}" rel="stylesheet" type="text/css" /> @@ -117,7 +120,7 @@ <!-- end header part --> <!-- Generated by Doxygen {{ doxygen.version }} --> {% block search %} -{% if config.SEARCHENGINE %}{# TODO: can't we move this to the header? #} +{% if config.SEARCHENGINE %} <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "{{ page.relPath }}search",false,'{{ tr.search }}'); </script> @@ -160,14 +163,13 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> -{# TODO: get search categories dynamically, since we don't know them here #} </div> -{% endif %} <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> +{% endif %} {% endblock %} <div class="header"> @@ -194,7 +196,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% if config.HTML_TIMESTAMP %} {{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }} {% else %} -{{ tr.generatedby }} +{{ tr.generatedBy }} {% endif %} <a href="http://www.doxygen.org/index.html"> <img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a> {{ doxygen.version }} </li> @@ -205,7 +207,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% if config.HTML_TIMESTAMP %} {{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }} {% else %} -{{ tr.generatedby }} +{{ tr.generatedBy }} {% endif %}  <a href="http://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a> {{ doxygen.version }} diff --git a/templates/html/htmlclass.tpl b/templates/html/htmlclass.tpl index bb734b6..24694b3 100644 --- a/templates/html/htmlclass.tpl +++ b/templates/html/htmlclass.tpl @@ -180,7 +180,6 @@ </div> {% endif %} {# memberdecls #} - {# TODO: isSimple #} {# nestedClasses #} {% with list=compound.classes label='nested-classes' title=tr.classes local=1 %} {% include 'htmldeclcomp.tpl' %} @@ -379,9 +378,9 @@ {% endif %} {# member definitions #} {# inline classes #} - {% if compound.classes %} - {# TODO write inlined simple classes: tr.classDocumentation / tr.typeDocumentation #} - {% endif %} + {% with classList=compound.classes %} + {% include 'htmlinlineclasses.tpl' %} + {% endwith %} {# typedefs #} {% with memberListInfo=compound.detailedTypedefs %} {% include 'htmlmemdef.tpl' %} diff --git a/templates/html/htmlclasses.tpl b/templates/html/htmlclasses.tpl index 803b1a9..8a1bf18 100644 --- a/templates/html/htmlclasses.tpl +++ b/templates/html/htmlclasses.tpl @@ -22,7 +22,7 @@ <li> <span class="ai"> {% if forloop.first %} - <a name="#letter_{{ section.label }}"></a> + <a name="letter_{{ section.label }}"></a> <span class="ah">  {{ section.letter }}  </span><br/> {% endif %} {% with obj=cls text=cls.name %} diff --git a/templates/html/htmldir.tpl b/templates/html/htmldir.tpl index 7417f7b..a399759 100644 --- a/templates/html/htmldir.tpl +++ b/templates/html/htmldir.tpl @@ -45,7 +45,18 @@ {% endif %} {% endif %} {# dir graph #} -{# TODO #} + {% if compound.hasDirGraph %} + {% with obj=compound %} + {% include 'htmldynheader.tpl' %} + {% endwith %} + {{ tr.dirDependencyGraphFor:compound.dirName }} + </div> + {% with obj=compound %} + {% include 'htmldyncontents.tpl' %} + {% endwith %} + {{ compound.dirGraph }} + </div> + {% endif %} {# member declarations #} {# directories #} {% with list=compound.dirs label='subdirs' title=tr.directories local=False %} diff --git a/templates/html/htmlfile.tpl b/templates/html/htmlfile.tpl index 67af096..dbf0841 100644 --- a/templates/html/htmlfile.tpl +++ b/templates/html/htmlfile.tpl @@ -160,76 +160,9 @@ {% endif %} {# member definitions #} {# inline classes #} - {% if compound.inlineClasses %} - <h2 class="groupheader">{{ tr.classDocumentation }}</h2> - {% for class in compound.inlineClasses %} - {# write anchor #} - <a class="anchor" id="{{ class.anchor }}"></a> - <div class="memitem"> - <div class="memproto"> - <table class="memname"> - <tr><td class="memname">{{ class.compoundType }} {{ class.name }}</td></tr> - </table> - </div> - <div class="memdoc"> - <div class="textblock"> - {# TODO: the stuff inside textblock can be the same as in htmlclass.tpl!! #} - {# template specifier #} - {% if class.language=='cpp' and class.templateDecls %} - <h3>{% spaceless %} - {% for targList in class.templateDecls %} - template< - {% for targ in targList %} - {{ targ.type }}{% if targ.name %} {{ targ.name }}{% endif %}{% if targ.defVal %} = {{ targ.defVal }}{% endif %}{% if not forloop.last %}, {% endif %} - {% endfor %} - ><br/> - {% endfor %} - {% endspaceless %} - {{ class.classType }} {{ class.name }} - </h3> - {% endif %} - {# brief description #} - {% if class.brief and config.REPEAT_BRIEF %} - <p>{{ class.brief }}</p> - {% endif %} - {# detailed docs #} - {{ class.details }} - {# source def #} - {% if class.sourceDef %} - {% markers obj in class.sourceDef with tr.definedAtLineInSourceFile %} - {% with text=obj.text %} - {% include 'htmlobjlink.tpl' %} - {% endwith %} - {% endmarkers %} - {% endif %} - </div><!-- textblock --> - {# table with fields #} - <table class="fieldtable"> - <tr><th colspan="3">{{ tr.compoundMembers }}</td></tr> - {% for member in class.members %} - <tr><td class="fieldtype"> - <a class="anchor" id="{{ member.anchor }}"></a>{{ member.fieldType }} - </td> - <td class="fieldname"> - {{ member.name }} - {% if member.isVariable and member.declArgs %}{{ member.declArgs }}{% endif %} - {{ member.bitfields }} - </td> - <td class="fielddoc"> - {% if member.brief and not member.details %}{# only brief #} - {{ member.brief }} - {% else %} {# only details or both #} - {% if member.brief %}<p>{{ member.brief }}</p>{% endif %} - {{ member.details }} - {% endif %} - </td> - </tr> - {% endfor %} - </table> - </div><!-- memdoc --> - </div><!-- memitem --> - {% endfor %} - {% endif %} + {% with classList=compound.inlineClasses %} + {% include 'htmlinlineclasses.tpl' %} + {% endwith %} {# defines #} {% with memberListInfo=compound.detailedMacros %} {% include 'htmlmemdef.tpl' %} diff --git a/templates/html/htmlinlineclasses.tpl b/templates/html/htmlinlineclasses.tpl new file mode 100644 index 0000000..876c491 --- /dev/null +++ b/templates/html/htmlinlineclasses.tpl @@ -0,0 +1,70 @@ +{# input: classList #} +{% if classList %} + <h2 class="groupheader">{{ tr.classDocumentation }}</h2> + {% for class in classList %} + {# write anchor #} + <a class="anchor" id="{{ class.anchor }}"></a> + <div class="memitem"> + <div class="memproto"> + <table class="memname"> + <tr><td class="memname">{{ class.compoundType }} {{ class.name }}</td></tr> + </table> + </div> + <div class="memdoc"> + <div class="textblock"> + {# template specifier #} + {% if class.language=='cpp' and class.templateDecls %} + <h3>{% spaceless %} + {% for targList in class.templateDecls %} + template< + {% for targ in targList %} + {{ targ.type }}{% if targ.name %} {{ targ.name }}{% endif %}{% if targ.defVal %} = {{ targ.defVal }}{% endif %}{% if not forloop.last %}, {% endif %} + {% endfor %} + ><br/> + {% endfor %} + {% endspaceless %} + {{ class.classType }} {{ class.name }} + </h3> + {% endif %} + {# brief description #} + {% if class.brief and config.REPEAT_BRIEF %} + <p>{{ class.brief }}</p> + {% endif %} + {# detailed docs #} + {{ class.details }} + {# source def #} + {% if class.sourceDef %} + {% markers obj in class.sourceDef with tr.definedAtLineInSourceFile %} + {% with text=obj.text %} + {% include 'htmlobjlink.tpl' %} + {% endwith %} + {% endmarkers %} + {% endif %} + </div><!-- textblock --> + {# table with fields #} + <table class="fieldtable"> + <tr><th colspan="3">{{ tr.compoundMembers }}</th></tr> + {% for member in class.members %} + <tr><td class="fieldtype"> + <a class="anchor" id="{{ member.anchor }}"></a>{{ member.fieldType }} + </td> + <td class="fieldname"> + {{ member.name }} + {% if member.isVariable and member.declArgs %}{{ member.declArgs }}{% endif %} + {{ member.bitfields }} + </td> + <td class="fielddoc"> + {% if member.brief and not member.details %}{# only brief #} + {{ member.brief }} + {% else %} {# only details or both #} + {% if member.brief %}<p>{{ member.brief }}</p>{% endif %} + {{ member.details }} + {% endif %} + </td> + </tr> + {% endfor %} + </table> + </div><!-- memdoc --> + </div><!-- memitem --> + {% endfor %} +{% endif %} diff --git a/templates/html/htmljsnavtree.tpl b/templates/html/htmljsnavtree.tpl index a7ad88e..99a269e 100644 --- a/templates/html/htmljsnavtree.tpl +++ b/templates/html/htmljsnavtree.tpl @@ -18,3 +18,6 @@ var NAVTREEINDEX = {% endfor %} {% endwith %} ]; + +var SYNCONMSG = '{{ tr.panelSyncOn }}'; +var SYNCOFFMSG = '{{ tr.panelSyncOff }}'; diff --git a/templates/html/htmljssearchdata.tpl b/templates/html/htmljssearchdata.tpl new file mode 100644 index 0000000..c48ea1d --- /dev/null +++ b/templates/html/htmljssearchdata.tpl @@ -0,0 +1,31 @@ +{# input: si: SymbolIndex #} +var indexSectionsWithContent = +{ +{% set count=0 %} +{% for idx in searchIndices %} + {% if idx.symbolIndices %} + {{ count }}:"{% for si in idx.symbolIndices %}{{ si.letter }}{% endfor %}"{%if not forloop.last %},{% endif %} + {% set count=count+1 %} + {% endif %} +{% endfor %} +}; +var indexSectionNames = +{ +{% set count=0 %} +{% for idx in searchIndices %} + {% if idx.symbolIndices %} + {{ count }}:"{{ idx.name }}"{% if not forloop.last %},{% endif %} + {% set count=count+1 %} + {% endif %} +{% endfor %} +}; +var IndexSectionLabels = +{ +{% set count=0 %} +{% for idx in searchIndices %} + {% if idx.symbolIndices %} + {{ count }}:"{{ idx.text }}"{% if not forloop.last %},{% endif %} + {% set count=count+1 %} + {% endif %} +{% endfor %} +}; diff --git a/templates/html/htmljssearchindex.tpl b/templates/html/htmljssearchindex.tpl new file mode 100644 index 0000000..a16fa4f --- /dev/null +++ b/templates/html/htmljssearchindex.tpl @@ -0,0 +1,15 @@ +{# input: si symbolIndex #} +var searchData = +[ +{% for group in si.symbolGroups %}['{{ group.id }}',['{{ group.name }}', +{% for sym in group.symbols %} +{% spaceless %} +['{{ sym.relPath }}{{ sym.fileName }}{{ config.HTML_FILE_EXTENSION }}{% if sym.anchor %}#{{ sym.anchor }}{% endif %}', +{% if not config.EXT_LINKS_IN_WINDOW %}1{% else %}0{% endif %}, +'{{ sym.scope|nowrap }}'] +{% endspaceless %} +{% if not forloop.last %},{% endif %} +{% endfor %} +]]{% if not forloop.last %},{% endif %} +{% endfor %} +]; diff --git a/templates/html/htmllayout.tpl b/templates/html/htmllayout.tpl index 9b82238..c21ef91 100644 --- a/templates/html/htmllayout.tpl +++ b/templates/html/htmllayout.tpl @@ -24,6 +24,14 @@ {% resource 'nav_g.png' %} {% resource 'nav_h.lum' %} {% resource 'navtree.css' %} +{% resource 'navtree.js' %} +{% resource 'resize.js' %} +{% resource 'doc.luma' %} +{% resource 'folderopen.luma' %} +{% resource 'folderclosed.luma' %} +{% resource 'arrowdown.luma' %} +{% resource 'arrowright.luma' %} +{% resource 'splitbar.lum' %} {# general search resources #} {% resource 'search_l.png' as 'search/search_l.png' %} @@ -183,7 +191,9 @@ {% endwith %} {% with page=classHierarchy %} {% if config.HAVE_DOT and config.GRAPHICAL_HIERARCHY %} - {% create 'inherits'|append:config.HTML_FILE_EXTENSION from 'htmlgraphhierarchy.tpl' %} + {% with fileName='inherits' %} + {% create fileName|append:config.HTML_FILE_EXTENSION from 'htmlgraphhierarchy.tpl' %} + {% endwith %} {% endif %} {% endwith %} {% endif %} @@ -229,6 +239,19 @@ {# close the global navigation index #} {% closesubindex nav %} +{# write search data #} +{% if config.SEARCHENGINE and not config.SERVER_BASED_SEARCH %} + {% create 'search/searchdata.js' from 'htmljssearchdata.tpl' %} + {% for idx in searchIndices %} + {% for si in idx.symbolIndices %} + {% with baseName=si.name|append:'_'|append:forloop.counter0 %} + {% create baseName|prepend:'search/'|append:config.HTML_FILE_EXTENSION from 'htmlsearchresult.tpl' %} + {% create baseName|prepend:'search/'|append:'.js' from 'htmljssearchindex.tpl' %} + {% endwith %} + {% endfor %} + {% endfor %} +{% endif %} + {# write the navigation tree data #} {% if config.GENERATE_TREEVIEW %} {% create 'navtreedata.js' from 'htmljsnavtree.tpl' %} diff --git a/templates/html/htmlmemdef.tpl b/templates/html/htmlmemdef.tpl index c469f1f..be4d94e 100644 --- a/templates/html/htmlmemdef.tpl +++ b/templates/html/htmlmemdef.tpl @@ -1,6 +1,6 @@ {# inputs: memberListInfo #} {% if memberListInfo %} - {% if memberListInfo.members|length>0 %} + {% if memberListInfo.members %} <h2 class="groupheader">{{ memberListInfo.title }}</h2> {% for member in memberListInfo.members %} {% if member.hasDetails %} {# TODO: not the same as isDetailedSectionVisible! #} @@ -9,7 +9,7 @@ <div class="memitem"> <div class="memproto"> {# write template declarations #} - {% if member.language=='cpp' and member.templateDecls|length>0 %} + {% if member.language=='cpp' and member.templateDecls %} {% for targList in member.templateDecls %} {% spaceless %} <div class="memtemplate"> @@ -23,7 +23,7 @@ {% endfor %} {% endif %} {# start of labels if present #} - {% if member.labels|length>0 %} + {% if member.labels %} <table class="mlabels"><tr><td class="mlabels-left"> {% endif %} <table class="memname"> @@ -31,9 +31,11 @@ {{ member.definition }} {# write argument list #} {# TODO: TCL #} - {% if member.hasParameterList %} + {% if member.hasParameters %} {% if member.isObjCMethod %} + {% if member.parameters %} </td><td></td> + {% endif %} {% for arg in member.parameters %} {% if not forloop.first %} <tr><td class="paramkey">{{ arg.namePart }}</td><td></td> @@ -43,7 +45,7 @@ <em>{% if not arg.name %}{{ arg.type }}{% else %}{{ arg.name }}{% endif %}</em> {% endif %} {% if not forloop.last %} - ,</td></tr> + </td></tr> {% endif %} {% endfor %} {% else %} @@ -109,7 +111,7 @@ </td></tr> </table> {# end of labels if present #} - {% if member.labels|length>0 %} + {% if member.labels %} </td><td class="mlabels-right">{% spaceless %} {% for label in member.labels %} <span class="mlabel">{{ label }}</span> diff --git a/templates/html/htmlmodule.tpl b/templates/html/htmlmodule.tpl index ff97b2c..887da1b 100644 --- a/templates/html/htmlmodule.tpl +++ b/templates/html/htmlmodule.tpl @@ -214,76 +214,9 @@ {% endif %} {# member definitions #} {# inline classes #} - {% if compound.inlineClasses %} - <h2 class="groupheader">{{ tr.classDocumentation }}</h2> - {% for class in compound.inlineClasses %} - {# write anchor #} - <a class="anchor" id="{{ class.anchor }}"></a> - <div class="memitem"> - <div class="memproto"> - <table class="memname"> - <tr><td class="memname">{{ class.compoundType }} {{ class.name }}</td></tr> - </table> - </div> - <div class="memdoc"> - <div class="textblock"> - {# TODO: the stuff inside textblock can be the same as in htmlclass.tpl!! #} - {# template specifier #} - {% if class.language=='cpp' and class.templateDecls %} - <h3>{% spaceless %} - {% for targList in class.templateDecls %} - template< - {% for targ in targList %} - {{ targ.type }}{% if targ.name %} {{ targ.name }}{% endif %}{% if targ.defVal %} = {{ targ.defVal }}{% endif %}{% if not forloop.last %}, {% endif %} - {% endfor %} - ><br/> - {% endfor %} - {% endspaceless %} - {{ class.classType }} {{ class.name }} - </h3> - {% endif %} - {# brief description #} - {% if class.brief and config.REPEAT_BRIEF %} - <p>{{ class.brief }}</p> - {% endif %} - {# detailed docs #} - {{ class.details }} - {# source def #} - {% if class.sourceDef %} - {% markers obj in class.sourceDef with tr.definedAtLineInSourceFile %} - {% with text=obj.text %} - {% include 'htmlobjlink.tpl' %} - {% endwith %} - {% endmarkers %} - {% endif %} - </div><!-- textblock --> - {# table with fields #} - <table class="fieldtable"> - <tr><th colspan="3">{{ tr.compoundMembers }}</td></tr> - {% for member in class.members %} - <tr><td class="fieldtype"> - <a class="anchor" id="{{ member.anchor }}"></a>{{ member.fieldType }} - </td> - <td class="fieldname"> - {{ member.name }} - {% if member.isVariable and member.declArgs %}{{ member.declArgs }}{% endif %} - {{ member.bitfields }} - </td> - <td class="fielddoc"> - {% if member.brief and not member.details %}{# only brief #} - {{ member.brief }} - {% else %} {# only details or both #} - {% if member.brief %}<p>{{ member.brief }}</p>{% endif %} - {{ member.details }} - {% endif %} - </td> - </tr> - {% endfor %} - </table> - </div><!-- memdoc --> - </div><!-- memitem --> - {% endfor %} - {% endif %} + {% with classList=compound.inlineClasses %} + {% include 'htmlinlineclasses.tpl' %} + {% endwith %} {# defines #} {% with memberListInfo=compound.detailedMacros %} {% include 'htmlmemdef.tpl' %} diff --git a/templates/html/htmlnamespace.tpl b/templates/html/htmlnamespace.tpl index e21ba9d..eb127de 100644 --- a/templates/html/htmlnamespace.tpl +++ b/templates/html/htmlnamespace.tpl @@ -114,76 +114,9 @@ {% endif %} {# member definitions #} {# inline classes #} - {% if compound.inlineClasses %} - <h2 class="groupheader">{{ tr.classDocumentation }}</h2> - {% for class in compound.inlineClasses %} - {# write anchor #} - <a class="anchor" id="{{ class.anchor }}"></a> - <div class="memitem"> - <div class="memproto"> - <table class="memname"> - <tr><td class="memname">{{ class.compoundType }} {{ class.name }}</td></tr> - </table> - </div> - <div class="memdoc"> - <div class="textblock"> - {# TODO: the stuff inside textblock can be the same as in htmlclass.tpl!! #} - {# template specifier #} - {% if class.language=='cpp' and class.templateDecls %} - <h3>{% spaceless %} - {% for targList in class.templateDecls %} - template< - {% for targ in targList %} - {{ targ.type }}{% if targ.name %} {{ targ.name }}{% endif %}{% if targ.defVal %} = {{ targ.defVal }}{% endif %}{% if not forloop.last %}, {% endif %} - {% endfor %} - ><br/> - {% endfor %} - {% endspaceless %} - {{ class.classType }} {{ class.name }} - </h3> - {% endif %} - {# brief description #} - {% if class.brief and config.REPEAT_BRIEF %} - <p>{{ class.brief }}</p> - {% endif %} - {# detailed docs #} - {{ class.details }} - {# source def #} - {% if class.sourceDef %} - {% markers obj in class.sourceDef with tr.definedAtLineInSourceFile %} - {% with text=obj.text %} - {% include 'htmlobjlink.tpl' %} - {% endwith %} - {% endmarkers %} - {% endif %} - </div><!-- textblock --> - {# table with fields #} - <table class="fieldtable"> - <tr><th colspan="3">{{ tr.compoundMembers }}</td></tr> - {% for member in class.members %} - <tr><td class="fieldtype"> - <a class="anchor" id="{{ member.anchor }}"></a>{{ member.fieldType }} - </td> - <td class="fieldname"> - {{ member.name }} - {% if member.isVariable and member.declArgs %}{{ member.declArgs }}{% endif %} - {{ member.bitfields }} - </td> - <td class="fielddoc"> - {% if member.brief and not member.details %}{# only brief #} - {{ member.brief }} - {% else %} {# only details or both #} - {% if member.brief %}<p>{{ member.brief }}</p>{% endif %} - {{ member.details }} - {% endif %} - </td> - </tr> - {% endfor %} - </table> - </div><!-- memdoc --> - </div><!-- memitem --> - {% endfor %} - {% endif %} + {% with classList=compound.inlineClasses %} + {% include 'htmlinlineclasses.tpl' %} + {% endwith %} {# typedefs #} {% with memberListInfo=compound.detailedTypedefs %} {% include 'htmlmemdef.tpl' %} diff --git a/templates/html/htmlsearchresult.tpl b/templates/html/htmlsearchresult.tpl new file mode 100644 index 0000000..2cf45fc --- /dev/null +++ b/templates/html/htmlsearchresult.tpl @@ -0,0 +1,27 @@ +{# input: baseName #} +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta name="generator" content="Doxygen {{ doxygen.version }}"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="{{ baseName }}.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">{{ tr.loading }}</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">{{ tr.searching }}</div> +<div class="SRStatus" id="NoMatches">{{ tr.noMatches }}</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/templates/html/htmltabs.tpl b/templates/html/htmltabs.tpl index 9ce8c44..4c48f54 100644 --- a/templates/html/htmltabs.tpl +++ b/templates/html/htmltabs.tpl @@ -69,6 +69,7 @@ </ul> </div> {# second navigation row #} +{% if page.highlight=='namespace' or page.highlight=='classes' or page.highlight=='files' %} <div id="navrow2" class="tabs2"> <ul class="tablist"> {# namespace subtabs #} @@ -94,3 +95,4 @@ {% endif %} </ul> </div> +{% endif %} diff --git a/templates/html/htmltypeconstraints.tpl b/templates/html/htmltypeconstraints.tpl index 12c9581..b5a8cd0 100644 --- a/templates/html/htmltypeconstraints.tpl +++ b/templates/html/htmltypeconstraints.tpl @@ -1,5 +1,5 @@ {# obj should be a class or member #} -{% if obj.typeConstraints|length>0 %} +{% if obj.typeConstraints %} <div class="typecontraint"> <dl><dt><b>{{ tr.typeConstraints }}</b></dt> <dd><table border="0" cellspacing="2" cellpadding="0"> diff --git a/templates/latex/doxygen.sty b/templates/latex/doxygen.sty index 2051b30..3f21871 100644 --- a/templates/latex/doxygen.sty +++ b/templates/latex/doxygen.sty @@ -409,10 +409,10 @@ % Used by parameter lists and simple sections \newenvironment{Desc} {\begin{list}{}{% - \settowidth{\labelwidth}{40pt}% - \setlength{\leftmargin}{\labelwidth}% + \settowidth{\labelwidth}{20pt}% \setlength{\parsep}{0pt}% - \setlength{\itemsep}{-4pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% \renewcommand{\makelabel}{\entrylabel}% } }{% diff --git a/templates/latex/latexannotated.tpl b/templates/latex/latexannotated.tpl new file mode 100644 index 0000000..0b6ecb5 --- /dev/null +++ b/templates/latex/latexannotated.tpl @@ -0,0 +1,9 @@ +\section{<{ tr.classList }>} +<{ tr.classListDescription }> +\begin{DoxyCompactList} +<% for cls in classList %> +\item\contentsline{section} +{<% with obj=cls text=cls.name %><% include 'latexobjlink.tpl' %><% endwith %><% if cls.brief %>\\*<{ cls.brief }><% endif %>} +{\pageref{<{ cls.fileName|raw }>}}{} +<% endfor %> +\end{DoxyCompactList} diff --git a/templates/latex/latexclass.tpl b/templates/latex/latexclass.tpl new file mode 100644 index 0000000..7671de0 --- /dev/null +++ b/templates/latex/latexclass.tpl @@ -0,0 +1,114 @@ +<# input: compound #> +<% msg %>Generating LaTeX output for class <{ compound.name }><% endmsg %> +\hypertarget{<{ compound.fileName|raw }>}{}\section{<{ compound.title }>} +\label{<{ compound.fileName|raw }>}\index{<{ compound.name|texLabel }>@{<{ compound.name|texIndex }>}} +<# brief description #> +<% if compound.brief %> + <{ compound.brief }> + +<% endif %> +<# compound includes #> +<% if compound.includeInfo %> + <% with ii=compound.includeInfo %> + <% include 'latexinclude.tpl' %> + <% endwith %> + + +<% endif %> +<# inheritance graph #> + <% if compound.hasInheritanceDiagram %> + <{ tr.inheritanceDiagramFor:compound.name }> + <{ compound.inheritanceDiagram }> + <% else %> + <# textual inheritance list #> + <% if compound.inherits|length>0 %> + <% markers c in compound.inherits with tr.inheritsList:compound.inherits|length %> + <% with obj=c.class text=c.name %> + <% include 'latexobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + + + <% endif %> + <% if compound.inheritedBy|length>0 %> + <% markers c in compound.inheritedBy with tr.inheritedByList:compound.inheritedBy|length %> + <% with obj=c.class text=c.name %> + <% include 'latexobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + + + <% endif %> + <% endif %> +<# collaboration graph #> + <% if compound.hasCollaborationDiagram %> + <{ tr.collaborationDiagramFor:compound.name }> + <{ compound.collaborationDiagram }> + + + <% endif %> +<# member declarations #> +<% if compound.hasDetails %> + <% if compound.anchor %> + \label{<{ compound.anchor|raw }>} + <% if config.PDF_HYPERLINKS and config.USE_PDFLATEX %> + \hypertarget{<% if compound.fileName %><{ compound.fileName|raw }>_<% endif %><{ compound.anchor|raw }>}{} + <% endif %> + <% endif %> + <% if config.COMPACT_LATEX %>\subsubsection<% else %>\subsection<% endif %>{<{ tr.detailedDesc }>} + <# template specifier #> + <% if compound.language=='cpp' and compound.templateDecls %> + <% spaceless %> + \subsubsection*{ + <% for targList in compound.templateDecls %> + template$<$ + <% for targ in targList %> + <{ targ.type }><% if targ.name %><{ space }><{ targ.name }><% endif %><% if targ.defVal %><{ space }>= <{ targ.defVal }><% endif %><% if not forloop.last %>, <% endif %> + <% endfor %> + $>$\\* + <% endfor %> + <{ compound.compoundType }><{ space }><{ compound.name }> + } + <% endspaceless %> + + + <% endif %> + <% if compound.brief and config.REPEAT_BRIEF %> + <{ compound.brief }> + + + <% endif %> + <{ compound.details }> + + + <# type constraints #> + <% with obj=compound %> + <% include 'latextypeconstraints.tpl' %> + <% endwith %> + + +<% endif %> +<% msg %> + <# examples #> + <% if compound.examples %> + <dl><dt><b><{ tr.examples }></b><dd> + <% markers obj in compound.examples with tr.exampleList:compound.examples|length %> + <% with text=obj.text %> + <% include 'htmlobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + </dd></dl> + <% endif %> + <# source definition #> + <% if compound.sourceDef %> + <% markers obj in compound.sourceDef with tr.definedAtLineInSourceFile %> + <% with text=obj.text %> + <% include 'htmlobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + <% endif %> +<% endmsg %> +<# detailed description #> +<# member definitions #> +<# used files #> +<# separate member pages #> diff --git a/templates/latex/latexfiles.tpl b/templates/latex/latexfiles.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexfiles.tpl diff --git a/templates/latex/latexinclude.tpl b/templates/latex/latexinclude.tpl new file mode 100644 index 0000000..c333056 --- /dev/null +++ b/templates/latex/latexinclude.tpl @@ -0,0 +1,32 @@ +<# input: ii with attributes (file,name,isImport,isLocal), compound with attribute language #> +<% spaceless %> +<% if ii.file or ii.name %> +{\ttfamily<{ space }> + <% if compound.language=='java' or compound.language=='idl' %> + import + <% else %> + <% if ii.isImport %> + \#import + <% else %> + \#include + <% endif %> + <% endif %> + <{ space }> + <% if ii.isLocal %> + \char`\"{} + <% else %> + $<$ + <% endif %> + <% if ii.name %> + <{ ii.name }> + <% else %> + <{ ii.file.name }> + <% endif %> + <% if ii.isLocal %> + \char`\"{} + <% else %> + $>$ + <% endif %> +} +<% endif %> +<% endspaceless %> diff --git a/templates/latex/latexlayout.tpl b/templates/latex/latexlayout.tpl new file mode 100644 index 0000000..290a4d5 --- /dev/null +++ b/templates/latex/latexlayout.tpl @@ -0,0 +1,35 @@ +{% msg %}----- Start generating LaTeX output for {{ config.PROJECT_NAME }} from template ----{% endmsg %} + +{% create 'refman.tex' from 'latexrefman.tpl' %} +{% create 'Makefile' from 'latexmakefile.tpl' %} + +{# module index #} +{% if moduleTree.tree %} + {% create 'modules.tex' from 'latexmodules.tpl' %} +{% endif %} + +{# namespace index #} +{% if namespaceTree.tree %} + {% create 'namespaces.tex' from 'latexnamespaces.tpl' %} +{% endif %} + +{# class index #} +{% if classTree.tree %} + {% create 'annotated.tex' from 'latexannotated.tpl' %} +{% endif %} + +{# file index #} +{% if fileTree.tree %} + {% create 'files.tex' from 'latexfiles.tpl' %} +{% endif %} + +{# TODO: pages #} +{# TODO: examples #} +{# TODO: directories #} + +{# write class documentation pages #} +{% for compound in classList %} + {% create compound.fileName|append:'.tex' from 'latexclass.tpl' %} +{% endfor %} + +{% msg %}----- End generating LaTeX output for {{ config.PROJECT_NAME }} from template ----{% endmsg %} diff --git a/templates/latex/latexmakefile.tpl b/templates/latex/latexmakefile.tpl new file mode 100644 index 0000000..ba1eb76 --- /dev/null +++ b/templates/latex/latexmakefile.tpl @@ -0,0 +1,64 @@ +{% if config.USE_PDFLATEX %} +all: refman.pdf + +pdf: refman.pdf + +refman.pdf: clean refman.tex + pdflatex refman + {{ config.MAKEINDEX_CMD_NAME }} refman.idx +{# TODO: generateBib #} + pdflatex refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + {{ config.MAKEINDEX_CMD_NAME }} refman.idx + pdflatex refman +{% else %} +all: refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: clean refman.tex doxygen.sty + echo "Running latex..." + {{ config.LATEX_CMD_NAME }} refman.tex + echo "Running makeindex..." + {{ config.MAKEINDEX_CMD_NAME }} refman.idx +{# TODO: generateBib #} + echo "Rerunning latex...." + {{ config.LATEX_CMD_NAME }} refman.tex + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + {{ config.LATEX_CMD_NAME }} refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + {{ config.MAKEINDEX_CMD_NAME }} refman.idx + {{ config.LATEX_CMD_NAME }} refman.tex + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf +{% endif %} + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + diff --git a/templates/latex/latexmodules.tpl b/templates/latex/latexmodules.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexmodules.tpl diff --git a/templates/latex/latexnamespaces.tpl b/templates/latex/latexnamespaces.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexnamespaces.tpl diff --git a/templates/latex/latexobjlink.tpl b/templates/latex/latexobjlink.tpl new file mode 100644 index 0000000..89ecc2e --- /dev/null +++ b/templates/latex/latexobjlink.tpl @@ -0,0 +1,6 @@ +<# inputs: obj, text #> +<% if config.PDF_HYPERLINKS %> +\hyperlink{<{ obj.fileName|raw }><% if obj.anchor %>_<{ obj.anchor }><% endif %>}{<{ text }>} +<% else %> +{\bf <{ text }>} +<% endif %> diff --git a/templates/latex/latexrefman.tpl b/templates/latex/latexrefman.tpl new file mode 100644 index 0000000..27b7ea0 --- /dev/null +++ b/templates/latex/latexrefman.tpl @@ -0,0 +1,227 @@ +\documentclass[twoside]{<% if config.COMPACT_LATEX %>article<% else %>book<% endif %>} + +% Packages required by doxygen +\usepackage{fixltx2e} +\usepackage{calc} +\usepackage{doxygen} +\usepackage[export]{adjustbox} % also loads graphicx +<% for package in config.LATEX_EXTRA_STYLESHEET %> +\usepackage{<{package|stripExtension:'.sty'}>} +<% endfor %> +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\usepackage{multicol} +\usepackage{multirow} +\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage[nointegrals]{wasysym} +\usepackage[table]{xcolor} + +<# TODO: languageSupportCommand #> + +% Font selection +\usepackage[T1]{fontenc} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\usepackage{amssymb} +\usepackage{sectsty} +\renewcommand{\familydefault}{\sfdefault} +\allsectionsfont{ + \fontseries{bc}\selectfont + \color{darkgray} +} +\renewcommand{\DoxyLabelFont}{ + \fontseries{bc}\selectfont + \color{darkgray} +} +\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + +% Page & text layout +\usepackage{geometry} +\geometry{ + <{ config.PAPER_TYPE }>paper, + top=2.5cm, + bottom=2.5cm, + left=2.5cm, + right=2.5cm +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\makeatletter +\renewcommand{\paragraph}{ + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{ + \normalfont\normalsize\bfseries\SS@parafont + } +} +\renewcommand{\subparagraph}{ + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{ + \normalfont\normalsize\bfseries\SS@subparafont + } +} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} +\fancyhead[CE]{\fancyplain{}{}} +\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} +\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} +\fancyhead[CO]{\fancyplain{}{}} +\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} +\fancyfoot[LE]{\fancyplain{}{}} +\fancyfoot[CE]{\fancyplain{}{}} +\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize <{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }>}} +\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize <{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }>}} +\fancyfoot[CO]{\fancyplain{}{}} +\fancyfoot[RO]{\fancyplain{}{}} +\renewcommand{\footrulewidth}{0.4pt} +<% if not config.COMPACT_LATEX %> +\renewcommand{\chaptermark}[1]{ + \markboth{ #1}{}% +} +<% endif %> +\renewcommand{\sectionmark}[1]{ + \markright{\thesection\ #1} +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +<% if config.EXTRA_PACKAGES %> +% Packages requested by user +<% for package in config.EXTRA_PACKAGES %> +\usepackage{<{ package }>} +<% endfor %> +<% endif %> + +<% if config.PDF_HYPERLINKS %> +% Hyperlinks (required, but should be loaded last) +\usepackage{ifpdf} +\ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} +\else + \usepackage[ps2pdf,pagebackref=true]{hyperref} +\fi +\hypersetup{ + colorlinks=true, + linkcolor=blue, + citecolor=blue, + unicode +} +<% endif %> + +% Custom commands +\newcommand{\clearemptydoublepage}{ + \newpage{\pagestyle{empty}\cleardoublepage} +} + +%===== C O N T E N T S ===== + +\begin{document} +<# TODO: select language for greek #> + +% Titlepage & ToC +<% if config.USE_PDFLATEX and config.PDF_HYPERLINKS %> +\hypersetup{pageanchor=false, + bookmarks=true, + bookmarksnumbered=true, + pdfencoding=unicode + } +<% endif %> +\pagenumbering{roman} +\begin{titlepage} +<% tabbing %> +\vspace*{7cm} +\begin{center}% +{\Large +<% if config.PROJECT_NAME %> + <{ config.PROJECT_NAME }> +<% else %> + <{ tr.referenceManual }> +<% endif %> +<% if config.PROJECT_NUMBER %> +\\[1ex]\large <{ config.PROJECT_NUMBER }> +<% endif %> +}\\ +\vspace*{1cm}{\large <{ tr.generatedBy }> Doxygen <{ doxygen.version }>}\\ +\vspace*{0.5cm}{\small <{ doxygen.date }>}\\ +\end{center} +<% endtabbing %> +\end{titlepage} +<% if not config.COMPACT_LATEX %>\clearemptydoublepage<% endif %> + +\tableofcontents +<% if not config.COMPACT_LATEX %>\clearemptydoublepage<% endif %> +\pagenumbering{arabic} +<% if config.USE_PDFLATEX and config.PDF_HYPERLINKS %> +\hypersetup{pageanchor=true} +<% endif %> + +%--- Begin generated contents --- +<# TODO: loop over pages #> +<% if moduleTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.moduleIndex }>} +\input{modules} +<% endif %> +<% if namespaceTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.namespaceIndex }>} +\input{namespaces} +<% endif %> +<% if classTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.classIndex }>} +\input{annotated} +<% endif %> +<% if fileTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.fileIndex }>} +\input{files} +<% endif %> +<% if moduleList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.moduleDocumentation }>} +<% for compound in moduleList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if namespaceList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.namespaceDocumentation }>} +<% for compound in namespaceList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if classList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.classDocumentation }>} +<% for compound in classList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if fileList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.fileDocumentation }>} +<% for compound in fileList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +%--- End generated contents --- + +<# TODO: write bibliography #> +% Index +<% if not config.COMPACT_LATEX %> +\backmatter +<% endif %> +\newpage +\phantomsection +\clearemptydoublepage +\addcontentsline{toc}{<% if config.COMPACT_LATEX %>section<% else %>chapter<% endif %>}{<{ tr.index }>} +\printindex + +\end{document} + + diff --git a/templates/latex/latextypeconstraints.tpl b/templates/latex/latextypeconstraints.tpl new file mode 100644 index 0000000..2853ab2 --- /dev/null +++ b/templates/latex/latextypeconstraints.tpl @@ -0,0 +1,12 @@ +<# obj should be a class or member #> +<% msg %>type constraints = <{ obj.typeConstraints|length }><% endmsg %> +<% if obj.typeConstraints %> +\begin{Desc} +\item[<{ tr.typeConstraints }>] +\begin{description} +<% for arg in obj.typeConstraints %> + \item[{\em <{ arg.name }>} : {\em <{ arg.type }>}] <{ arg.docs }> +<% endfor %> +\end{description} +\end{Desc} +<% endif %> |