Minor documentation changes.
2
compile
@ -28,9 +28,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "Building library documentation manual..."
|
echo -n "Building library documentation manual..."
|
||||||
cd docs
|
|
||||||
doxygen doxygen.sty >/dev/null 2>/dev/null
|
doxygen doxygen.sty >/dev/null 2>/dev/null
|
||||||
cd ..
|
|
||||||
echo "OK"
|
echo "OK"
|
||||||
|
|
||||||
rm *.o
|
rm *.o
|
||||||
|
Before Width: | Height: | Size: 676 B |
Before Width: | Height: | Size: 132 B |
@ -1,192 +0,0 @@
|
|||||||
/*
|
|
||||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
||||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
||||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
@licend The above is the entire license notice for the JavaScript code in this file
|
|
||||||
*/
|
|
||||||
function toggleVisibility(linkObj)
|
|
||||||
{
|
|
||||||
var base = $(linkObj).attr('id');
|
|
||||||
var summary = $('#'+base+'-summary');
|
|
||||||
var content = $('#'+base+'-content');
|
|
||||||
var trigger = $('#'+base+'-trigger');
|
|
||||||
var src=$(trigger).attr('src');
|
|
||||||
if (content.is(':visible')===true) {
|
|
||||||
content.hide();
|
|
||||||
summary.show();
|
|
||||||
$(linkObj).addClass('closed').removeClass('opened');
|
|
||||||
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
|
||||||
} else {
|
|
||||||
content.show();
|
|
||||||
summary.hide();
|
|
||||||
$(linkObj).removeClass('closed').addClass('opened');
|
|
||||||
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateStripes()
|
|
||||||
{
|
|
||||||
$('table.directory tr').
|
|
||||||
removeClass('even').filter(':visible:even').addClass('even');
|
|
||||||
$('table.directory tr').
|
|
||||||
removeClass('odd').filter(':visible:odd').addClass('odd');
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleLevel(level)
|
|
||||||
{
|
|
||||||
$('table.directory tr').each(function() {
|
|
||||||
var l = this.id.split('_').length-1;
|
|
||||||
var i = $('#img'+this.id.substring(3));
|
|
||||||
var a = $('#arr'+this.id.substring(3));
|
|
||||||
if (l<level+1) {
|
|
||||||
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
|
|
||||||
a.html('▼');
|
|
||||||
$(this).show();
|
|
||||||
} else if (l==level+1) {
|
|
||||||
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
|
|
||||||
a.html('►');
|
|
||||||
$(this).show();
|
|
||||||
} else {
|
|
||||||
$(this).hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
updateStripes();
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleFolder(id)
|
|
||||||
{
|
|
||||||
// the clicked row
|
|
||||||
var currentRow = $('#row_'+id);
|
|
||||||
|
|
||||||
// all rows after the clicked row
|
|
||||||
var rows = currentRow.nextAll("tr");
|
|
||||||
|
|
||||||
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
|
||||||
|
|
||||||
// only match elements AFTER this one (can't hide elements before)
|
|
||||||
var childRows = rows.filter(function() { return this.id.match(re); });
|
|
||||||
|
|
||||||
// first row is visible we are HIDING
|
|
||||||
if (childRows.filter(':first').is(':visible')===true) {
|
|
||||||
// replace down arrow by right arrow for current row
|
|
||||||
var currentRowSpans = currentRow.find("span");
|
|
||||||
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
|
||||||
currentRowSpans.filter(".arrow").html('►');
|
|
||||||
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
|
|
||||||
} else { // we are SHOWING
|
|
||||||
// replace right arrow by down arrow for current row
|
|
||||||
var currentRowSpans = currentRow.find("span");
|
|
||||||
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
|
|
||||||
currentRowSpans.filter(".arrow").html('▼');
|
|
||||||
// replace down arrows by right arrows for child rows
|
|
||||||
var childRowsSpans = childRows.find("span");
|
|
||||||
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
|
|
||||||
childRowsSpans.filter(".arrow").html('►');
|
|
||||||
childRows.show(); //show all children
|
|
||||||
}
|
|
||||||
updateStripes();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function toggleInherit(id)
|
|
||||||
{
|
|
||||||
var rows = $('tr.inherit.'+id);
|
|
||||||
var img = $('tr.inherit_header.'+id+' img');
|
|
||||||
var src = $(img).attr('src');
|
|
||||||
if (rows.filter(':first').is(':visible')===true) {
|
|
||||||
rows.css('display','none');
|
|
||||||
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
|
||||||
} else {
|
|
||||||
rows.css('display','table-row'); // using show() causes jump in firefox
|
|
||||||
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var opened=true;
|
|
||||||
// in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes
|
|
||||||
var plusImg = [ "var(--fold-plus-image)", "var(--fold-plus-image-relpath)" ];
|
|
||||||
var minusImg = [ "var(--fold-minus-image)", "var(--fold-minus-image-relpath)" ];
|
|
||||||
|
|
||||||
// toggle all folding blocks
|
|
||||||
function codefold_toggle_all(relPath) {
|
|
||||||
if (opened) {
|
|
||||||
$('#fold_all').css('background-image',plusImg[relPath]);
|
|
||||||
$('div[id^=foldopen]').hide();
|
|
||||||
$('div[id^=foldclosed]').show();
|
|
||||||
} else {
|
|
||||||
$('#fold_all').css('background-image',minusImg[relPath]);
|
|
||||||
$('div[id^=foldopen]').show();
|
|
||||||
$('div[id^=foldclosed]').hide();
|
|
||||||
}
|
|
||||||
opened=!opened;
|
|
||||||
}
|
|
||||||
|
|
||||||
// toggle single folding block
|
|
||||||
function codefold_toggle(id) {
|
|
||||||
$('#foldopen'+id).toggle();
|
|
||||||
$('#foldclosed'+id).toggle();
|
|
||||||
}
|
|
||||||
function init_codefold(relPath) {
|
|
||||||
$('span[class=lineno]').css(
|
|
||||||
{'padding-right':'4px',
|
|
||||||
'margin-right':'2px',
|
|
||||||
'display':'inline-block',
|
|
||||||
'width':'54px',
|
|
||||||
'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'
|
|
||||||
});
|
|
||||||
// add global toggle to first line
|
|
||||||
$('span[class=lineno]:first').append('<span class="fold" id="fold_all" '+
|
|
||||||
'onclick="javascript:codefold_toggle_all('+relPath+');" '+
|
|
||||||
'style="background-image:'+minusImg[relPath]+';"></span>');
|
|
||||||
// add vertical lines to other rows
|
|
||||||
$('span[class=lineno]').not(':eq(0)').append('<span class="fold"></span>');
|
|
||||||
// add toggle controls to lines with fold divs
|
|
||||||
$('div[class=foldopen]').each(function() {
|
|
||||||
// extract specific id to use
|
|
||||||
var id = $(this).attr('id').replace('foldopen','');
|
|
||||||
// extract start and end foldable fragment attributes
|
|
||||||
var start = $(this).attr('data-start');
|
|
||||||
var end = $(this).attr('data-end');
|
|
||||||
// replace normal fold span with controls for the first line of a foldable fragment
|
|
||||||
$(this).find('span[class=fold]:first').replaceWith('<span class="fold" '+
|
|
||||||
'onclick="javascript:codefold_toggle(\''+id+'\');" '+
|
|
||||||
'style="background-image:'+minusImg[relPath]+';"></span>');
|
|
||||||
// append div for folded (closed) representation
|
|
||||||
$(this).after('<div id="foldclosed'+id+'" class="foldclosed" style="display:none;"></div>');
|
|
||||||
// extract the first line from the "open" section to represent closed content
|
|
||||||
var line = $(this).children().first().clone();
|
|
||||||
// remove any glow that might still be active on the original line
|
|
||||||
$(line).removeClass('glow');
|
|
||||||
if (start) {
|
|
||||||
// if line already ends with a start marker (e.g. trailing {), remove it
|
|
||||||
$(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
|
|
||||||
}
|
|
||||||
// replace minus with plus symbol
|
|
||||||
$(line).find('span[class=fold]').css('background-image',plusImg[relPath]);
|
|
||||||
// append ellipsis
|
|
||||||
$(line).append(' '+start+'<a href="javascript:codefold_toggle(\''+id+'\')">…</a>'+end);
|
|
||||||
// insert constructed line into closed div
|
|
||||||
$('#foldclosed'+id).html(line);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/* @license-end */
|
|
@ -1,141 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
||||||
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
||||||
<title>My Project: Graph Legend</title>
|
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
|
||||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
||||||
<script type="text/javascript" src="search/search.js"></script>
|
|
||||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
||||||
<div id="titlearea">
|
|
||||||
<table cellspacing="0" cellpadding="0">
|
|
||||||
<tbody>
|
|
||||||
<tr id="projectrow">
|
|
||||||
<td id="projectalign">
|
|
||||||
<div id="projectname">My Project
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- end header part -->
|
|
||||||
<!-- Generated by Doxygen 1.9.8 -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
||||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
||||||
/* @license-end */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="menudata.js"></script>
|
|
||||||
<script type="text/javascript" src="menu.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
||||||
$(function() {
|
|
||||||
initMenu('',true,false,'search.php','Search');
|
|
||||||
$(document).ready(function() { init_search(); });
|
|
||||||
});
|
|
||||||
/* @license-end */
|
|
||||||
</script>
|
|
||||||
<div id="main-nav"></div>
|
|
||||||
</div><!-- top -->
|
|
||||||
<!-- window showing the filter options -->
|
|
||||||
<div id="MSearchSelectWindow"
|
|
||||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
||||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
||||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- iframe showing the search results (closed by default) -->
|
|
||||||
<div id="MSearchResultsWindow">
|
|
||||||
<div id="MSearchResults">
|
|
||||||
<div class="SRPage">
|
|
||||||
<div id="SRIndex">
|
|
||||||
<div id="SRResults"></div>
|
|
||||||
<div class="SRStatus" id="Loading">Loading...</div>
|
|
||||||
<div class="SRStatus" id="Searching">Searching...</div>
|
|
||||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<div class="headertitle"><div class="title">Graph Legend</div></div>
|
|
||||||
</div><!--header-->
|
|
||||||
<div class="contents">
|
|
||||||
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
|
|
||||||
<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>Invisible { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
|
|
||||||
<div class="line"> </div>
|
|
||||||
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! A template class */</span></div>
|
|
||||||
<div class="line"><span class="keyword">template</span><<span class="keyword">class</span> T> <span class="keyword">class </span>Templ { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>Used { };</div>
|
|
||||||
<div class="line"><span class="comment"></span> </div>
|
|
||||||
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
|
|
||||||
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
|
|
||||||
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
|
|
||||||
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
|
|
||||||
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
|
|
||||||
<div class="line"> <span class="keyword">public</span> Templ<int></div>
|
|
||||||
<div class="line">{</div>
|
|
||||||
<div class="line"> <span class="keyword">private</span>:</div>
|
|
||||||
<div class="line"> Used *m_usedClass;</div>
|
|
||||||
<div class="line">};</div>
|
|
||||||
</div><!-- fragment --><p> This will result in the following graph:</p>
|
|
||||||
<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
A filled gray box represents the struct or class for which the graph is generated. </li>
|
|
||||||
<li>
|
|
||||||
A box with a black border denotes a documented struct or class. </li>
|
|
||||||
<li>
|
|
||||||
A box with a gray border denotes an undocumented struct or class. </li>
|
|
||||||
<li>
|
|
||||||
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
|
|
||||||
</ul>
|
|
||||||
<p>The arrows have the following meaning: </p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
A blue arrow is used to visualize a public inheritance relation between two classes. </li>
|
|
||||||
<li>
|
|
||||||
A dark green arrow is used for protected inheritance. </li>
|
|
||||||
<li>
|
|
||||||
A dark red arrow is used for private inheritance. </li>
|
|
||||||
<li>
|
|
||||||
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
|
|
||||||
<li>
|
|
||||||
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- contents -->
|
|
||||||
<!-- start footer part -->
|
|
||||||
<hr class="footer"/><address class="footer"><small>
|
|
||||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
|
|
||||||
</small></address>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1 +0,0 @@
|
|||||||
f74606a252eb303675caf37987d0b7af
|
|
Before Width: | Height: | Size: 23 KiB |
@ -1,81 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
||||||
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
||||||
<title>My Project: Main Page</title>
|
|
||||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="jquery.js"></script>
|
|
||||||
<script type="text/javascript" src="dynsections.js"></script>
|
|
||||||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
||||||
<script type="text/javascript" src="search/search.js"></script>
|
|
||||||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
||||||
<div id="titlearea">
|
|
||||||
<table cellspacing="0" cellpadding="0">
|
|
||||||
<tbody>
|
|
||||||
<tr id="projectrow">
|
|
||||||
<td id="projectalign">
|
|
||||||
<div id="projectname">My Project
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<!-- end header part -->
|
|
||||||
<!-- Generated by Doxygen 1.9.8 -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
||||||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
||||||
/* @license-end */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="menudata.js"></script>
|
|
||||||
<script type="text/javascript" src="menu.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
||||||
$(function() {
|
|
||||||
initMenu('',true,false,'search.php','Search');
|
|
||||||
$(document).ready(function() { init_search(); });
|
|
||||||
});
|
|
||||||
/* @license-end */
|
|
||||||
</script>
|
|
||||||
<div id="main-nav"></div>
|
|
||||||
</div><!-- top -->
|
|
||||||
<!-- window showing the filter options -->
|
|
||||||
<div id="MSearchSelectWindow"
|
|
||||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
||||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
||||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- iframe showing the search results (closed by default) -->
|
|
||||||
<div id="MSearchResultsWindow">
|
|
||||||
<div id="MSearchResults">
|
|
||||||
<div class="SRPage">
|
|
||||||
<div id="SRIndex">
|
|
||||||
<div id="SRResults"></div>
|
|
||||||
<div class="SRStatus" id="Loading">Loading...</div>
|
|
||||||
<div class="SRStatus" id="Searching">Searching...</div>
|
|
||||||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="header">
|
|
||||||
<div class="headertitle"><div class="title">My Project Documentation</div></div>
|
|
||||||
</div><!--header-->
|
|
||||||
<div class="contents">
|
|
||||||
</div><!-- contents -->
|
|
||||||
<!-- start footer part -->
|
|
||||||
<hr class="footer"/><address class="footer"><small>
|
|
||||||
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
|
|
||||||
</small></address>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
34
docs/html/jquery.js
vendored
@ -1,136 +0,0 @@
|
|||||||
/*
|
|
||||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
||||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
||||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
@licend The above is the entire license notice for the JavaScript code in this file
|
|
||||||
*/
|
|
||||||
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
|
|
||||||
function makeTree(data,relPath) {
|
|
||||||
var result='';
|
|
||||||
if ('children' in data) {
|
|
||||||
result+='<ul>';
|
|
||||||
for (var i in data.children) {
|
|
||||||
var url;
|
|
||||||
var link;
|
|
||||||
link = data.children[i].url;
|
|
||||||
if (link.substring(0,1)=='^') {
|
|
||||||
url = link.substring(1);
|
|
||||||
} else {
|
|
||||||
url = relPath+link;
|
|
||||||
}
|
|
||||||
result+='<li><a href="'+url+'">'+
|
|
||||||
data.children[i].text+'</a>'+
|
|
||||||
makeTree(data.children[i],relPath)+'</li>';
|
|
||||||
}
|
|
||||||
result+='</ul>';
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
var searchBoxHtml;
|
|
||||||
if (searchEnabled) {
|
|
||||||
if (serverSide) {
|
|
||||||
searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
|
||||||
'<div class="left">'+
|
|
||||||
'<form id="FSearchBox" action="'+relPath+searchPage+
|
|
||||||
'" method="get"><span id="MSearchSelectExt"> </span>'+
|
|
||||||
'<input type="text" id="MSearchField" name="query" value="" placeholder="'+search+
|
|
||||||
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
|
|
||||||
' onblur="searchBox.OnSearchFieldFocus(false)"/>'+
|
|
||||||
'</form>'+
|
|
||||||
'</div>'+
|
|
||||||
'<div class="right"></div>'+
|
|
||||||
'</div>';
|
|
||||||
} else {
|
|
||||||
searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+
|
|
||||||
'<span class="left">'+
|
|
||||||
'<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()"'+
|
|
||||||
' onmouseout="return searchBox.OnSearchSelectHide()"> </span>'+
|
|
||||||
'<input type="text" id="MSearchField" value="" placeholder="'+search+
|
|
||||||
'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
|
|
||||||
'onblur="searchBox.OnSearchFieldFocus(false)" '+
|
|
||||||
'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
|
|
||||||
'</span>'+
|
|
||||||
'<span class="right"><a id="MSearchClose" '+
|
|
||||||
'href="javascript:searchBox.CloseResultsWindow()">'+
|
|
||||||
'<img id="MSearchCloseImg" border="0" src="'+relPath+
|
|
||||||
'search/close.svg" alt=""/></a>'+
|
|
||||||
'</span>'+
|
|
||||||
'</div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
|
|
||||||
'<label class="main-menu-btn" for="main-menu-state">'+
|
|
||||||
'<span class="main-menu-btn-icon"></span> '+
|
|
||||||
'Toggle main menu visibility</label>'+
|
|
||||||
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
|
|
||||||
'</div>');
|
|
||||||
$('#main-nav').append(makeTree(menudata,relPath));
|
|
||||||
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
|
|
||||||
if (searchBoxHtml) {
|
|
||||||
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
|
|
||||||
}
|
|
||||||
var $mainMenuState = $('#main-menu-state');
|
|
||||||
var prevWidth = 0;
|
|
||||||
if ($mainMenuState.length) {
|
|
||||||
function initResizableIfExists() {
|
|
||||||
if (typeof initResizable==='function') initResizable();
|
|
||||||
}
|
|
||||||
// animate mobile menu
|
|
||||||
$mainMenuState.change(function(e) {
|
|
||||||
var $menu = $('#main-menu');
|
|
||||||
var options = { duration: 250, step: initResizableIfExists };
|
|
||||||
if (this.checked) {
|
|
||||||
options['complete'] = function() { $menu.css('display', 'block') };
|
|
||||||
$menu.hide().slideDown(options);
|
|
||||||
} else {
|
|
||||||
options['complete'] = function() { $menu.css('display', 'none') };
|
|
||||||
$menu.show().slideUp(options);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// set default menu visibility
|
|
||||||
function resetState() {
|
|
||||||
var $menu = $('#main-menu');
|
|
||||||
var $mainMenuState = $('#main-menu-state');
|
|
||||||
var newWidth = $(window).outerWidth();
|
|
||||||
if (newWidth!=prevWidth) {
|
|
||||||
if ($(window).outerWidth()<768) {
|
|
||||||
$mainMenuState.prop('checked',false); $menu.hide();
|
|
||||||
$('#searchBoxPos1').html(searchBoxHtml);
|
|
||||||
$('#searchBoxPos2').hide();
|
|
||||||
} else {
|
|
||||||
$menu.show();
|
|
||||||
$('#searchBoxPos1').empty();
|
|
||||||
$('#searchBoxPos2').html(searchBoxHtml);
|
|
||||||
$('#searchBoxPos2').show();
|
|
||||||
}
|
|
||||||
if (typeof searchBox!=='undefined') {
|
|
||||||
searchBox.CloseResultsWindow();
|
|
||||||
}
|
|
||||||
prevWidth = newWidth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$(window).ready(function() { resetState(); initResizableIfExists(); });
|
|
||||||
$(window).resize(resetState);
|
|
||||||
}
|
|
||||||
$('#main-menu').smartmenus();
|
|
||||||
}
|
|
||||||
/* @license-end */
|
|
@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
||||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
||||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
@licend The above is the entire license notice for the JavaScript code in this file
|
|
||||||
*/
|
|
||||||
var menudata={children:[
|
|
||||||
{text:"Main Page",url:"index.html"}]}
|
|
Before Width: | Height: | Size: 153 B |
Before Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 98 B |
Before Width: | Height: | Size: 123 B |
@ -1,291 +0,0 @@
|
|||||||
/*---------------- Search Box positioning */
|
|
||||||
|
|
||||||
#main-menu > li:last-child {
|
|
||||||
/* This <li> object is the parent of the search bar */
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 36px;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------- Search box styling */
|
|
||||||
|
|
||||||
.SRPage * {
|
|
||||||
font-weight: normal;
|
|
||||||
line-height: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
dark-mode-toggle {
|
|
||||||
margin-left: 5px;
|
|
||||||
display: flex;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchBox {
|
|
||||||
display: inline-block;
|
|
||||||
white-space : nowrap;
|
|
||||||
background: var(--search-background-color);
|
|
||||||
border-radius: 0.65em;
|
|
||||||
box-shadow: var(--search-box-shadow);
|
|
||||||
z-index: 102;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchBox .left {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
height: 1.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchSelect {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 20px;
|
|
||||||
height: 19px;
|
|
||||||
background-image: var(--search-magnification-select-image);
|
|
||||||
margin: 0 0 0 0.3em;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchSelectExt {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 10px;
|
|
||||||
height: 19px;
|
|
||||||
background-image: var(--search-magnification-image);
|
|
||||||
margin: 0 0 0 0.5em;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#MSearchField {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 7.5em;
|
|
||||||
height: 19px;
|
|
||||||
margin: 0 0.15em;
|
|
||||||
padding: 0;
|
|
||||||
line-height: 1em;
|
|
||||||
border:none;
|
|
||||||
color: var(--search-foreground-color);
|
|
||||||
outline: none;
|
|
||||||
font-family: var(--font-family-search);
|
|
||||||
-webkit-border-radius: 0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media(hover: none) {
|
|
||||||
/* to avoid zooming on iOS */
|
|
||||||
#MSearchField {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchBox .right {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 1.4em;
|
|
||||||
height: 1.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchClose {
|
|
||||||
display: none;
|
|
||||||
font-size: inherit;
|
|
||||||
background : none;
|
|
||||||
border: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
outline: none;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchCloseImg {
|
|
||||||
padding: 0.3em;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.MSearchBoxActive #MSearchField {
|
|
||||||
color: var(--search-active-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------- Search filter selection */
|
|
||||||
|
|
||||||
#MSearchSelectWindow {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
left: 0; top: 0;
|
|
||||||
border: 1px solid var(--search-filter-border-color);
|
|
||||||
background-color: var(--search-filter-background-color);
|
|
||||||
z-index: 10001;
|
|
||||||
padding-top: 4px;
|
|
||||||
padding-bottom: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
-webkit-border-top-left-radius: 4px;
|
|
||||||
-webkit-border-top-right-radius: 4px;
|
|
||||||
-webkit-border-bottom-left-radius: 4px;
|
|
||||||
-webkit-border-bottom-right-radius: 4px;
|
|
||||||
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
|
||||||
|
|
||||||
.SelectItem {
|
|
||||||
font: 8pt var(--font-family-search);
|
|
||||||
padding-left: 2px;
|
|
||||||
padding-right: 12px;
|
|
||||||
border: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.SelectionMark {
|
|
||||||
margin-right: 4px;
|
|
||||||
font-family: var(--font-family-monospace);
|
|
||||||
outline-style: none;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.SelectItem {
|
|
||||||
display: block;
|
|
||||||
outline-style: none;
|
|
||||||
color: var(--search-filter-foreground-color);
|
|
||||||
text-decoration: none;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-right: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.SelectItem:focus,
|
|
||||||
a.SelectItem:active {
|
|
||||||
color: var(--search-filter-foreground-color);
|
|
||||||
outline-style: none;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.SelectItem:hover {
|
|
||||||
color: var(--search-filter-highlight-text-color);
|
|
||||||
background-color: var(--search-filter-highlight-bg-color);
|
|
||||||
outline-style: none;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------- Search results window */
|
|
||||||
|
|
||||||
iframe#MSearchResults {
|
|
||||||
/*width: 60ex;*/
|
|
||||||
height: 15em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#MSearchResultsWindow {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
left: 0; top: 0;
|
|
||||||
border: 1px solid var(--search-results-border-color);
|
|
||||||
background-color: var(--search-results-background-color);
|
|
||||||
z-index:10000;
|
|
||||||
width: 300px;
|
|
||||||
height: 400px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ----------------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
#SRIndex {
|
|
||||||
clear:both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SREntry {
|
|
||||||
font-size: 10pt;
|
|
||||||
padding-left: 1ex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRPage .SREntry {
|
|
||||||
font-size: 8pt;
|
|
||||||
padding: 1px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.SRPage {
|
|
||||||
margin: 5px 2px;
|
|
||||||
background-color: var(--search-results-background-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRChildren {
|
|
||||||
padding-left: 3ex; padding-bottom: .5em
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRPage .SRChildren {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRSymbol {
|
|
||||||
font-weight: bold;
|
|
||||||
color: var(--search-results-foreground-color);
|
|
||||||
font-family: var(--font-family-search);
|
|
||||||
text-decoration: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.SRScope {
|
|
||||||
display: block;
|
|
||||||
color: var(--search-results-foreground-color);
|
|
||||||
font-family: var(--font-family-search);
|
|
||||||
font-size: 8pt;
|
|
||||||
text-decoration: none;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.SRSymbol:focus, a.SRSymbol:active,
|
|
||||||
a.SRScope:focus, a.SRScope:active {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
span.SRScope {
|
|
||||||
padding-left: 4px;
|
|
||||||
font-family: var(--font-family-search);
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRPage .SRStatus {
|
|
||||||
padding: 2px 5px;
|
|
||||||
font-size: 8pt;
|
|
||||||
font-style: italic;
|
|
||||||
font-family: var(--font-family-search);
|
|
||||||
}
|
|
||||||
|
|
||||||
.SRResult {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.searchresults {
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------- External search page results */
|
|
||||||
|
|
||||||
.pages b {
|
|
||||||
color: white;
|
|
||||||
padding: 5px 5px 3px 5px;
|
|
||||||
background-image: var(--nav-gradient-active-image-parent);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
text-shadow: 0 1px 1px #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pages {
|
|
||||||
line-height: 17px;
|
|
||||||
margin-left: 4px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hl {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#searchresults {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchpages {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
@ -1,840 +0,0 @@
|
|||||||
/*
|
|
||||||
@licstart The following is the entire license notice for the JavaScript code in this file.
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (C) 1997-2020 by Dimitri van Heesch
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
||||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
||||||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
|
|
||||||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
@licend The above is the entire license notice for the JavaScript code in this file
|
|
||||||
*/
|
|
||||||
function convertToId(search)
|
|
||||||
{
|
|
||||||
var result = '';
|
|
||||||
for (i=0;i<search.length;i++)
|
|
||||||
{
|
|
||||||
var c = search.charAt(i);
|
|
||||||
var cn = c.charCodeAt(0);
|
|
||||||
if (c.match(/[a-z0-9\u0080-\uFFFF]/))
|
|
||||||
{
|
|
||||||
result+=c;
|
|
||||||
}
|
|
||||||
else if (cn<16)
|
|
||||||
{
|
|
||||||
result+="_0"+cn.toString(16);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result+="_"+cn.toString(16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getXPos(item)
|
|
||||||
{
|
|
||||||
var x = 0;
|
|
||||||
if (item.offsetWidth)
|
|
||||||
{
|
|
||||||
while (item && item!=document.body)
|
|
||||||
{
|
|
||||||
x += item.offsetLeft;
|
|
||||||
item = item.offsetParent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getYPos(item)
|
|
||||||
{
|
|
||||||
var y = 0;
|
|
||||||
if (item.offsetWidth)
|
|
||||||
{
|
|
||||||
while (item && item!=document.body)
|
|
||||||
{
|
|
||||||
y += item.offsetTop;
|
|
||||||
item = item.offsetParent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
var searchResults = new SearchResults("searchResults");
|
|
||||||
|
|
||||||
/* A class handling everything associated with the search panel.
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
name - The name of the global variable that will be
|
|
||||||
storing this instance. Is needed to be able to set timeouts.
|
|
||||||
resultPath - path to use for external files
|
|
||||||
*/
|
|
||||||
function SearchBox(name, resultsPath, extension)
|
|
||||||
{
|
|
||||||
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
|
|
||||||
if (!extension || extension == "") { extension = ".html"; }
|
|
||||||
|
|
||||||
// ---------- Instance variables
|
|
||||||
this.name = name;
|
|
||||||
this.resultsPath = resultsPath;
|
|
||||||
this.keyTimeout = 0;
|
|
||||||
this.keyTimeoutLength = 500;
|
|
||||||
this.closeSelectionTimeout = 300;
|
|
||||||
this.lastSearchValue = "";
|
|
||||||
this.lastResultsPage = "";
|
|
||||||
this.hideTimeout = 0;
|
|
||||||
this.searchIndex = 0;
|
|
||||||
this.searchActive = false;
|
|
||||||
this.extension = extension;
|
|
||||||
|
|
||||||
// ----------- DOM Elements
|
|
||||||
|
|
||||||
this.DOMSearchField = function()
|
|
||||||
{ return document.getElementById("MSearchField"); }
|
|
||||||
|
|
||||||
this.DOMSearchSelect = function()
|
|
||||||
{ return document.getElementById("MSearchSelect"); }
|
|
||||||
|
|
||||||
this.DOMSearchSelectWindow = function()
|
|
||||||
{ return document.getElementById("MSearchSelectWindow"); }
|
|
||||||
|
|
||||||
this.DOMPopupSearchResults = function()
|
|
||||||
{ return document.getElementById("MSearchResults"); }
|
|
||||||
|
|
||||||
this.DOMPopupSearchResultsWindow = function()
|
|
||||||
{ return document.getElementById("MSearchResultsWindow"); }
|
|
||||||
|
|
||||||
this.DOMSearchClose = function()
|
|
||||||
{ return document.getElementById("MSearchClose"); }
|
|
||||||
|
|
||||||
this.DOMSearchBox = function()
|
|
||||||
{ return document.getElementById("MSearchBox"); }
|
|
||||||
|
|
||||||
// ------------ Event Handlers
|
|
||||||
|
|
||||||
// Called when focus is added or removed from the search field.
|
|
||||||
this.OnSearchFieldFocus = function(isActive)
|
|
||||||
{
|
|
||||||
this.Activate(isActive);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.OnSearchSelectShow = function()
|
|
||||||
{
|
|
||||||
var searchSelectWindow = this.DOMSearchSelectWindow();
|
|
||||||
var searchField = this.DOMSearchSelect();
|
|
||||||
|
|
||||||
var left = getXPos(searchField);
|
|
||||||
var top = getYPos(searchField);
|
|
||||||
top += searchField.offsetHeight;
|
|
||||||
|
|
||||||
// show search selection popup
|
|
||||||
searchSelectWindow.style.display='block';
|
|
||||||
searchSelectWindow.style.left = left + 'px';
|
|
||||||
searchSelectWindow.style.top = top + 'px';
|
|
||||||
|
|
||||||
// stop selection hide timer
|
|
||||||
if (this.hideTimeout)
|
|
||||||
{
|
|
||||||
clearTimeout(this.hideTimeout);
|
|
||||||
this.hideTimeout=0;
|
|
||||||
}
|
|
||||||
return false; // to avoid "image drag" default event
|
|
||||||
}
|
|
||||||
|
|
||||||
this.OnSearchSelectHide = function()
|
|
||||||
{
|
|
||||||
this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this),
|
|
||||||
this.closeSelectionTimeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when the content of the search field is changed.
|
|
||||||
this.OnSearchFieldChange = function(evt)
|
|
||||||
{
|
|
||||||
if (this.keyTimeout) // kill running timer
|
|
||||||
{
|
|
||||||
clearTimeout(this.keyTimeout);
|
|
||||||
this.keyTimeout = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var e = (evt) ? evt : window.event; // for IE
|
|
||||||
if (e.keyCode==40 || e.keyCode==13)
|
|
||||||
{
|
|
||||||
if (e.shiftKey==1)
|
|
||||||
{
|
|
||||||
this.OnSearchSelectShow();
|
|
||||||
var win=this.DOMSearchSelectWindow();
|
|
||||||
for (i=0;i<win.childNodes.length;i++)
|
|
||||||
{
|
|
||||||
var child = win.childNodes[i]; // get span within a
|
|
||||||
if (child.className=='SelectItem')
|
|
||||||
{
|
|
||||||
child.focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var elem = searchResults.NavNext(0);
|
|
||||||
if (elem) elem.focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (e.keyCode==27) // Escape out of the search field
|
|
||||||
{
|
|
||||||
e.stopPropagation();
|
|
||||||
this.DOMSearchField().blur();
|
|
||||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
|
||||||
this.DOMSearchClose().style.display = 'none';
|
|
||||||
this.lastSearchValue = '';
|
|
||||||
this.Activate(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// strip whitespaces
|
|
||||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
|
||||||
|
|
||||||
if (searchValue != this.lastSearchValue) // search value has changed
|
|
||||||
{
|
|
||||||
if (searchValue != "") // non-empty search
|
|
||||||
{
|
|
||||||
// set timer for search update
|
|
||||||
this.keyTimeout = setTimeout(this.Search.bind(this),
|
|
||||||
this.keyTimeoutLength);
|
|
||||||
}
|
|
||||||
else // empty search field
|
|
||||||
{
|
|
||||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
|
||||||
this.DOMSearchClose().style.display = 'none';
|
|
||||||
this.lastSearchValue = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.SelectItemCount = function(id)
|
|
||||||
{
|
|
||||||
var count=0;
|
|
||||||
var win=this.DOMSearchSelectWindow();
|
|
||||||
for (i=0;i<win.childNodes.length;i++)
|
|
||||||
{
|
|
||||||
var child = win.childNodes[i]; // get span within a
|
|
||||||
if (child.className=='SelectItem')
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.SelectItemSet = function(id)
|
|
||||||
{
|
|
||||||
var i,j=0;
|
|
||||||
var win=this.DOMSearchSelectWindow();
|
|
||||||
for (i=0;i<win.childNodes.length;i++)
|
|
||||||
{
|
|
||||||
var child = win.childNodes[i]; // get span within a
|
|
||||||
if (child.className=='SelectItem')
|
|
||||||
{
|
|
||||||
var node = child.firstChild;
|
|
||||||
if (j==id)
|
|
||||||
{
|
|
||||||
node.innerHTML='•';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
node.innerHTML=' ';
|
|
||||||
}
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called when an search filter selection is made.
|
|
||||||
// set item with index id as the active item
|
|
||||||
this.OnSelectItem = function(id)
|
|
||||||
{
|
|
||||||
this.searchIndex = id;
|
|
||||||
this.SelectItemSet(id);
|
|
||||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
|
||||||
if (searchValue!="" && this.searchActive) // something was found -> do a search
|
|
||||||
{
|
|
||||||
this.Search();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.OnSearchSelectKey = function(evt)
|
|
||||||
{
|
|
||||||
var e = (evt) ? evt : window.event; // for IE
|
|
||||||
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
|
|
||||||
{
|
|
||||||
this.searchIndex++;
|
|
||||||
this.OnSelectItem(this.searchIndex);
|
|
||||||
}
|
|
||||||
else if (e.keyCode==38 && this.searchIndex>0) // Up
|
|
||||||
{
|
|
||||||
this.searchIndex--;
|
|
||||||
this.OnSelectItem(this.searchIndex);
|
|
||||||
}
|
|
||||||
else if (e.keyCode==13 || e.keyCode==27)
|
|
||||||
{
|
|
||||||
e.stopPropagation();
|
|
||||||
this.OnSelectItem(this.searchIndex);
|
|
||||||
this.CloseSelectionWindow();
|
|
||||||
this.DOMSearchField().focus();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// --------- Actions
|
|
||||||
|
|
||||||
// Closes the results window.
|
|
||||||
this.CloseResultsWindow = function()
|
|
||||||
{
|
|
||||||
this.DOMPopupSearchResultsWindow().style.display = 'none';
|
|
||||||
this.DOMSearchClose().style.display = 'none';
|
|
||||||
this.Activate(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.CloseSelectionWindow = function()
|
|
||||||
{
|
|
||||||
this.DOMSearchSelectWindow().style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Performs a search.
|
|
||||||
this.Search = function()
|
|
||||||
{
|
|
||||||
this.keyTimeout = 0;
|
|
||||||
|
|
||||||
// strip leading whitespace
|
|
||||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
|
||||||
|
|
||||||
var code = searchValue.toLowerCase().charCodeAt(0);
|
|
||||||
var idxChar = searchValue.substr(0, 1).toLowerCase();
|
|
||||||
if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
|
|
||||||
{
|
|
||||||
idxChar = searchValue.substr(0, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
var jsFile;
|
|
||||||
|
|
||||||
var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
|
|
||||||
if (idx!=-1)
|
|
||||||
{
|
|
||||||
var hexCode=idx.toString(16);
|
|
||||||
jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';
|
|
||||||
}
|
|
||||||
|
|
||||||
var loadJS = function(url, impl, loc){
|
|
||||||
var scriptTag = document.createElement('script');
|
|
||||||
scriptTag.src = url;
|
|
||||||
scriptTag.onload = impl;
|
|
||||||
scriptTag.onreadystatechange = impl;
|
|
||||||
loc.appendChild(scriptTag);
|
|
||||||
}
|
|
||||||
|
|
||||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
|
||||||
var domSearchBox = this.DOMSearchBox();
|
|
||||||
var domPopupSearchResults = this.DOMPopupSearchResults();
|
|
||||||
var domSearchClose = this.DOMSearchClose();
|
|
||||||
var resultsPath = this.resultsPath;
|
|
||||||
|
|
||||||
var handleResults = function() {
|
|
||||||
document.getElementById("Loading").style.display="none";
|
|
||||||
if (typeof searchData !== 'undefined') {
|
|
||||||
createResults(resultsPath);
|
|
||||||
document.getElementById("NoMatches").style.display="none";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (idx!=-1) {
|
|
||||||
searchResults.Search(searchValue);
|
|
||||||
} else { // no file with search results => force empty search results
|
|
||||||
searchResults.Search('====');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (domPopupSearchResultsWindow.style.display!='block')
|
|
||||||
{
|
|
||||||
domSearchClose.style.display = 'inline-block';
|
|
||||||
var left = getXPos(domSearchBox) + 150;
|
|
||||||
var top = getYPos(domSearchBox) + 20;
|
|
||||||
domPopupSearchResultsWindow.style.display = 'block';
|
|
||||||
left -= domPopupSearchResults.offsetWidth;
|
|
||||||
var maxWidth = document.body.clientWidth;
|
|
||||||
var maxHeight = document.body.clientHeight;
|
|
||||||
var width = 300;
|
|
||||||
if (left<10) left=10;
|
|
||||||
if (width+left+8>maxWidth) width=maxWidth-left-8;
|
|
||||||
var height = 400;
|
|
||||||
if (height+top+8>maxHeight) height=maxHeight-top-8;
|
|
||||||
domPopupSearchResultsWindow.style.top = top + 'px';
|
|
||||||
domPopupSearchResultsWindow.style.left = left + 'px';
|
|
||||||
domPopupSearchResultsWindow.style.width = width + 'px';
|
|
||||||
domPopupSearchResultsWindow.style.height = height + 'px';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (jsFile) {
|
|
||||||
loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow());
|
|
||||||
} else {
|
|
||||||
handleResults();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.lastSearchValue = searchValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------- Activation Functions
|
|
||||||
|
|
||||||
// Activates or deactivates the search panel, resetting things to
|
|
||||||
// their default values if necessary.
|
|
||||||
this.Activate = function(isActive)
|
|
||||||
{
|
|
||||||
if (isActive || // open it
|
|
||||||
this.DOMPopupSearchResultsWindow().style.display == 'block'
|
|
||||||
)
|
|
||||||
{
|
|
||||||
this.DOMSearchBox().className = 'MSearchBoxActive';
|
|
||||||
this.searchActive = true;
|
|
||||||
}
|
|
||||||
else if (!isActive) // directly remove the panel
|
|
||||||
{
|
|
||||||
this.DOMSearchBox().className = 'MSearchBoxInactive';
|
|
||||||
this.searchActive = false;
|
|
||||||
this.lastSearchValue = ''
|
|
||||||
this.lastResultsPage = '';
|
|
||||||
this.DOMSearchField().value = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
// The class that handles everything on the search results page.
|
|
||||||
function SearchResults(name)
|
|
||||||
{
|
|
||||||
// The number of matches from the last run of <Search()>.
|
|
||||||
this.lastMatchCount = 0;
|
|
||||||
this.lastKey = 0;
|
|
||||||
this.repeatOn = false;
|
|
||||||
|
|
||||||
// Toggles the visibility of the passed element ID.
|
|
||||||
this.FindChildElement = function(id)
|
|
||||||
{
|
|
||||||
var parentElement = document.getElementById(id);
|
|
||||||
var element = parentElement.firstChild;
|
|
||||||
|
|
||||||
while (element && element!=parentElement)
|
|
||||||
{
|
|
||||||
if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren')
|
|
||||||
{
|
|
||||||
return element;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes())
|
|
||||||
{
|
|
||||||
element = element.firstChild;
|
|
||||||
}
|
|
||||||
else if (element.nextSibling)
|
|
||||||
{
|
|
||||||
element = element.nextSibling;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
element = element.parentNode;
|
|
||||||
}
|
|
||||||
while (element && element!=parentElement && !element.nextSibling);
|
|
||||||
|
|
||||||
if (element && element!=parentElement)
|
|
||||||
{
|
|
||||||
element = element.nextSibling;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.Toggle = function(id)
|
|
||||||
{
|
|
||||||
var element = this.FindChildElement(id);
|
|
||||||
if (element)
|
|
||||||
{
|
|
||||||
if (element.style.display == 'block')
|
|
||||||
{
|
|
||||||
element.style.display = 'none';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
element.style.display = 'block';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Searches for the passed string. If there is no parameter,
|
|
||||||
// it takes it from the URL query.
|
|
||||||
//
|
|
||||||
// Always returns true, since other documents may try to call it
|
|
||||||
// and that may or may not be possible.
|
|
||||||
this.Search = function(search)
|
|
||||||
{
|
|
||||||
if (!search) // get search word from URL
|
|
||||||
{
|
|
||||||
search = window.location.search;
|
|
||||||
search = search.substring(1); // Remove the leading '?'
|
|
||||||
search = unescape(search);
|
|
||||||
}
|
|
||||||
|
|
||||||
search = search.replace(/^ +/, ""); // strip leading spaces
|
|
||||||
search = search.replace(/ +$/, ""); // strip trailing spaces
|
|
||||||
search = search.toLowerCase();
|
|
||||||
search = convertToId(search);
|
|
||||||
|
|
||||||
var resultRows = document.getElementsByTagName("div");
|
|
||||||
var matches = 0;
|
|
||||||
|
|
||||||
var i = 0;
|
|
||||||
while (i < resultRows.length)
|
|
||||||
{
|
|
||||||
var row = resultRows.item(i);
|
|
||||||
if (row.className == "SRResult")
|
|
||||||
{
|
|
||||||
var rowMatchName = row.id.toLowerCase();
|
|
||||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
|
|
||||||
|
|
||||||
if (search.length<=rowMatchName.length &&
|
|
||||||
rowMatchName.substr(0, search.length)==search)
|
|
||||||
{
|
|
||||||
row.style.display = 'block';
|
|
||||||
matches++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
row.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
document.getElementById("Searching").style.display='none';
|
|
||||||
if (matches == 0) // no results
|
|
||||||
{
|
|
||||||
document.getElementById("NoMatches").style.display='block';
|
|
||||||
}
|
|
||||||
else // at least one result
|
|
||||||
{
|
|
||||||
document.getElementById("NoMatches").style.display='none';
|
|
||||||
}
|
|
||||||
this.lastMatchCount = matches;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the first item with index index or higher that is visible
|
|
||||||
this.NavNext = function(index)
|
|
||||||
{
|
|
||||||
var focusItem;
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
var focusName = 'Item'+index;
|
|
||||||
focusItem = document.getElementById(focusName);
|
|
||||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (!focusItem) // last element
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
focusItem=null;
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
return focusItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.NavPrev = function(index)
|
|
||||||
{
|
|
||||||
var focusItem;
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
var focusName = 'Item'+index;
|
|
||||||
focusItem = document.getElementById(focusName);
|
|
||||||
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (!focusItem) // last element
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
focusItem=null;
|
|
||||||
index--;
|
|
||||||
}
|
|
||||||
return focusItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.ProcessKeys = function(e)
|
|
||||||
{
|
|
||||||
if (e.type == "keydown")
|
|
||||||
{
|
|
||||||
this.repeatOn = false;
|
|
||||||
this.lastKey = e.keyCode;
|
|
||||||
}
|
|
||||||
else if (e.type == "keypress")
|
|
||||||
{
|
|
||||||
if (!this.repeatOn)
|
|
||||||
{
|
|
||||||
if (this.lastKey) this.repeatOn = true;
|
|
||||||
return false; // ignore first keypress after keydown
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (e.type == "keyup")
|
|
||||||
{
|
|
||||||
this.lastKey = 0;
|
|
||||||
this.repeatOn = false;
|
|
||||||
}
|
|
||||||
return this.lastKey!=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.Nav = function(evt,itemIndex)
|
|
||||||
{
|
|
||||||
var e = (evt) ? evt : window.event; // for IE
|
|
||||||
if (e.keyCode==13) return true;
|
|
||||||
if (!this.ProcessKeys(e)) return false;
|
|
||||||
|
|
||||||
if (this.lastKey==38) // Up
|
|
||||||
{
|
|
||||||
var newIndex = itemIndex-1;
|
|
||||||
var focusItem = this.NavPrev(newIndex);
|
|
||||||
if (focusItem)
|
|
||||||
{
|
|
||||||
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
|
|
||||||
if (child && child.style.display == 'block') // children visible
|
|
||||||
{
|
|
||||||
var n=0;
|
|
||||||
var tmpElem;
|
|
||||||
while (1) // search for last child
|
|
||||||
{
|
|
||||||
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
|
|
||||||
if (tmpElem)
|
|
||||||
{
|
|
||||||
focusItem = tmpElem;
|
|
||||||
}
|
|
||||||
else // found it!
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
n++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (focusItem)
|
|
||||||
{
|
|
||||||
focusItem.focus();
|
|
||||||
}
|
|
||||||
else // return focus to search field
|
|
||||||
{
|
|
||||||
document.getElementById("MSearchField").focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (this.lastKey==40) // Down
|
|
||||||
{
|
|
||||||
var newIndex = itemIndex+1;
|
|
||||||
var focusItem;
|
|
||||||
var item = document.getElementById('Item'+itemIndex);
|
|
||||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
|
||||||
if (elem && elem.style.display == 'block') // children visible
|
|
||||||
{
|
|
||||||
focusItem = document.getElementById('Item'+itemIndex+'_c0');
|
|
||||||
}
|
|
||||||
if (!focusItem) focusItem = this.NavNext(newIndex);
|
|
||||||
if (focusItem) focusItem.focus();
|
|
||||||
}
|
|
||||||
else if (this.lastKey==39) // Right
|
|
||||||
{
|
|
||||||
var item = document.getElementById('Item'+itemIndex);
|
|
||||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
|
||||||
if (elem) elem.style.display = 'block';
|
|
||||||
}
|
|
||||||
else if (this.lastKey==37) // Left
|
|
||||||
{
|
|
||||||
var item = document.getElementById('Item'+itemIndex);
|
|
||||||
var elem = this.FindChildElement(item.parentNode.parentNode.id);
|
|
||||||
if (elem) elem.style.display = 'none';
|
|
||||||
}
|
|
||||||
else if (this.lastKey==27) // Escape
|
|
||||||
{
|
|
||||||
e.stopPropagation();
|
|
||||||
searchBox.CloseResultsWindow();
|
|
||||||
document.getElementById("MSearchField").focus();
|
|
||||||
}
|
|
||||||
else if (this.lastKey==13) // Enter
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.NavChild = function(evt,itemIndex,childIndex)
|
|
||||||
{
|
|
||||||
var e = (evt) ? evt : window.event; // for IE
|
|
||||||
if (e.keyCode==13) return true;
|
|
||||||
if (!this.ProcessKeys(e)) return false;
|
|
||||||
|
|
||||||
if (this.lastKey==38) // Up
|
|
||||||
{
|
|
||||||
if (childIndex>0)
|
|
||||||
{
|
|
||||||
var newIndex = childIndex-1;
|
|
||||||
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
|
|
||||||
}
|
|
||||||
else // already at first child, jump to parent
|
|
||||||
{
|
|
||||||
document.getElementById('Item'+itemIndex).focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (this.lastKey==40) // Down
|
|
||||||
{
|
|
||||||
var newIndex = childIndex+1;
|
|
||||||
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
|
|
||||||
if (!elem) // last child, jump to parent next parent
|
|
||||||
{
|
|
||||||
elem = this.NavNext(itemIndex+1);
|
|
||||||
}
|
|
||||||
if (elem)
|
|
||||||
{
|
|
||||||
elem.focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (this.lastKey==27) // Escape
|
|
||||||
{
|
|
||||||
e.stopPropagation();
|
|
||||||
searchBox.CloseResultsWindow();
|
|
||||||
document.getElementById("MSearchField").focus();
|
|
||||||
}
|
|
||||||
else if (this.lastKey==13) // Enter
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function setKeyActions(elem,action)
|
|
||||||
{
|
|
||||||
elem.setAttribute('onkeydown',action);
|
|
||||||
elem.setAttribute('onkeypress',action);
|
|
||||||
elem.setAttribute('onkeyup',action);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setClassAttr(elem,attr)
|
|
||||||
{
|
|
||||||
elem.setAttribute('class',attr);
|
|
||||||
elem.setAttribute('className',attr);
|
|
||||||
}
|
|
||||||
|
|
||||||
function createResults(resultsPath)
|
|
||||||
{
|
|
||||||
var results = document.getElementById("SRResults");
|
|
||||||
results.innerHTML = '';
|
|
||||||
for (var e=0; e<searchData.length; e++)
|
|
||||||
{
|
|
||||||
var id = searchData[e][0];
|
|
||||||
var srResult = document.createElement('div');
|
|
||||||
srResult.setAttribute('id','SR_'+id);
|
|
||||||
setClassAttr(srResult,'SRResult');
|
|
||||||
var srEntry = document.createElement('div');
|
|
||||||
setClassAttr(srEntry,'SREntry');
|
|
||||||
var srLink = document.createElement('a');
|
|
||||||
srLink.setAttribute('id','Item'+e);
|
|
||||||
setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
|
|
||||||
setClassAttr(srLink,'SRSymbol');
|
|
||||||
srLink.innerHTML = searchData[e][1][0];
|
|
||||||
srEntry.appendChild(srLink);
|
|
||||||
if (searchData[e][1].length==2) // single result
|
|
||||||
{
|
|
||||||
srLink.setAttribute('href',resultsPath+searchData[e][1][1][0]);
|
|
||||||
srLink.setAttribute('onclick','searchBox.CloseResultsWindow()');
|
|
||||||
if (searchData[e][1][1][1])
|
|
||||||
{
|
|
||||||
srLink.setAttribute('target','_parent');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
srLink.setAttribute('target','_blank');
|
|
||||||
}
|
|
||||||
var srScope = document.createElement('span');
|
|
||||||
setClassAttr(srScope,'SRScope');
|
|
||||||
srScope.innerHTML = searchData[e][1][1][2];
|
|
||||||
srEntry.appendChild(srScope);
|
|
||||||
}
|
|
||||||
else // multiple results
|
|
||||||
{
|
|
||||||
srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
|
|
||||||
var srChildren = document.createElement('div');
|
|
||||||
setClassAttr(srChildren,'SRChildren');
|
|
||||||
for (var c=0; c<searchData[e][1].length-1; c++)
|
|
||||||
{
|
|
||||||
var srChild = document.createElement('a');
|
|
||||||
srChild.setAttribute('id','Item'+e+'_c'+c);
|
|
||||||
setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
|
|
||||||
setClassAttr(srChild,'SRScope');
|
|
||||||
srChild.setAttribute('href',resultsPath+searchData[e][1][c+1][0]);
|
|
||||||
srChild.setAttribute('onclick','searchBox.CloseResultsWindow()');
|
|
||||||
if (searchData[e][1][c+1][1])
|
|
||||||
{
|
|
||||||
srChild.setAttribute('target','_parent');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
srChild.setAttribute('target','_blank');
|
|
||||||
}
|
|
||||||
srChild.innerHTML = searchData[e][1][c+1][2];
|
|
||||||
srChildren.appendChild(srChild);
|
|
||||||
}
|
|
||||||
srEntry.appendChild(srChildren);
|
|
||||||
}
|
|
||||||
srResult.appendChild(srEntry);
|
|
||||||
results.appendChild(srResult);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function init_search()
|
|
||||||
{
|
|
||||||
var results = document.getElementById("MSearchSelectWindow");
|
|
||||||
results.tabIndex=0;
|
|
||||||
for (var key in indexSectionLabels)
|
|
||||||
{
|
|
||||||
var link = document.createElement('a');
|
|
||||||
link.setAttribute('class','SelectItem');
|
|
||||||
link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
|
|
||||||
link.href='javascript:void(0)';
|
|
||||||
link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key];
|
|
||||||
results.appendChild(link);
|
|
||||||
}
|
|
||||||
searchBox.OnSelectItem(0);
|
|
||||||
|
|
||||||
var input = document.getElementById("MSearchSelect");
|
|
||||||
var searchSelectWindow = document.getElementById("MSearchSelectWindow");
|
|
||||||
input.tabIndex=0;
|
|
||||||
input.addEventListener("keydown", function(event) {
|
|
||||||
if (event.keyCode==13 || event.keyCode==40) {
|
|
||||||
event.preventDefault();
|
|
||||||
if (searchSelectWindow.style.display == 'block') {
|
|
||||||
searchBox.CloseSelectionWindow();
|
|
||||||
} else {
|
|
||||||
searchBox.OnSearchSelectShow();
|
|
||||||
searchBox.DOMSearchSelectWindow().focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/* @license-end */
|
|
@ -1,12 +0,0 @@
|
|||||||
var indexSectionsWithContent =
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
var indexSectionNames =
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
var indexSectionLabels =
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
Before Width: | Height: | Size: 314 B |
Before Width: | Height: | Size: 853 B |
Before Width: | Height: | Size: 845 B |
Before Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 177 B |
Before Width: | Height: | Size: 184 B |
@ -1,27 +0,0 @@
|
|||||||
LATEX_CMD?=pdflatex
|
|
||||||
MKIDX_CMD?=makeindex
|
|
||||||
BIBTEX_CMD?=bibtex
|
|
||||||
LATEX_COUNT?=8
|
|
||||||
MANUAL_FILE?=refman
|
|
||||||
|
|
||||||
all: $(MANUAL_FILE).pdf
|
|
||||||
|
|
||||||
pdf: $(MANUAL_FILE).pdf
|
|
||||||
|
|
||||||
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
|
|
||||||
$(LATEX_CMD) $(MANUAL_FILE)
|
|
||||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
|
||||||
$(LATEX_CMD) $(MANUAL_FILE)
|
|
||||||
latex_count=$(LATEX_COUNT) ; \
|
|
||||||
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
|
|
||||||
do \
|
|
||||||
echo "Rerunning latex...." ;\
|
|
||||||
$(LATEX_CMD) $(MANUAL_FILE) ;\
|
|
||||||
latex_count=`expr $$latex_count - 1` ;\
|
|
||||||
done
|
|
||||||
$(MKIDX_CMD) $(MANUAL_FILE).idx
|
|
||||||
$(LATEX_CMD) $(MANUAL_FILE)
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf
|
|
@ -1,694 +0,0 @@
|
|||||||
\NeedsTeXFormat{LaTeX2e}
|
|
||||||
\ProvidesPackage{doxygen}
|
|
||||||
|
|
||||||
% Packages used by this style file
|
|
||||||
\RequirePackage{alltt}
|
|
||||||
%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
|
||||||
\RequirePackage{calc}
|
|
||||||
\RequirePackage{float}
|
|
||||||
%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
|
|
||||||
\RequirePackage{verbatim}
|
|
||||||
\RequirePackage[table]{xcolor}
|
|
||||||
\RequirePackage{longtable_doxygen}
|
|
||||||
\RequirePackage{tabu_doxygen}
|
|
||||||
\RequirePackage{fancyvrb}
|
|
||||||
\RequirePackage{tabularx}
|
|
||||||
\RequirePackage{multicol}
|
|
||||||
\RequirePackage{multirow}
|
|
||||||
\RequirePackage{hanging}
|
|
||||||
\RequirePackage{ifpdf}
|
|
||||||
\RequirePackage{adjustbox}
|
|
||||||
\RequirePackage{amssymb}
|
|
||||||
\RequirePackage{stackengine}
|
|
||||||
\RequirePackage{enumitem}
|
|
||||||
\RequirePackage{alphalph}
|
|
||||||
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
|
|
||||||
|
|
||||||
%---------- Internal commands used in this style file ----------------
|
|
||||||
|
|
||||||
\newcommand{\ensurespace}[1]{%
|
|
||||||
\begingroup%
|
|
||||||
\setlength{\dimen@}{#1}%
|
|
||||||
\vskip\z@\@plus\dimen@%
|
|
||||||
\penalty -100\vskip\z@\@plus -\dimen@%
|
|
||||||
\vskip\dimen@%
|
|
||||||
\penalty 9999%
|
|
||||||
\vskip -\dimen@%
|
|
||||||
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
|
|
||||||
\endgroup%
|
|
||||||
}
|
|
||||||
|
|
||||||
\newcommand{\DoxyHorRuler}[1]{%
|
|
||||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
|
||||||
\ifthenelse{#1=0}%
|
|
||||||
{%
|
|
||||||
\hrule%
|
|
||||||
}%
|
|
||||||
{%
|
|
||||||
\hrulefilll%
|
|
||||||
}%
|
|
||||||
}
|
|
||||||
\newcommand{\DoxyLabelFont}{}
|
|
||||||
\newcommand{\entrylabel}[1]{%
|
|
||||||
{%
|
|
||||||
\parbox[b]{\labelwidth-4pt}{%
|
|
||||||
\makebox[0pt][l]{\DoxyLabelFont#1}%
|
|
||||||
\vspace{1.5\baselineskip}%
|
|
||||||
}%
|
|
||||||
}%
|
|
||||||
}
|
|
||||||
|
|
||||||
\newenvironment{DoxyDesc}[1]{%
|
|
||||||
\ensurespace{4\baselineskip}%
|
|
||||||
\begin{list}{}{%
|
|
||||||
\settowidth{\labelwidth}{20pt}%
|
|
||||||
%\setlength{\parsep}{0pt}%
|
|
||||||
\setlength{\itemsep}{0pt}%
|
|
||||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
|
||||||
\renewcommand{\makelabel}{\entrylabel}%
|
|
||||||
}%
|
|
||||||
\item[#1]%
|
|
||||||
}{%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
\newsavebox{\xrefbox}
|
|
||||||
\newlength{\xreflength}
|
|
||||||
\newcommand{\xreflabel}[1]{%
|
|
||||||
\sbox{\xrefbox}{#1}%
|
|
||||||
\setlength{\xreflength}{\wd\xrefbox}%
|
|
||||||
\ifthenelse{\xreflength>\labelwidth}{%
|
|
||||||
\begin{minipage}{\textwidth}%
|
|
||||||
\setlength{\parindent}{0pt}%
|
|
||||||
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
|
|
||||||
\end{minipage}%
|
|
||||||
}{%
|
|
||||||
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
|
|
||||||
}%
|
|
||||||
}
|
|
||||||
|
|
||||||
%---------- Commands used by doxygen LaTeX output generator ----------
|
|
||||||
|
|
||||||
% Used by <pre> ... </pre>
|
|
||||||
\newenvironment{DoxyPre}{%
|
|
||||||
\small%
|
|
||||||
\begin{alltt}%
|
|
||||||
}{%
|
|
||||||
\end{alltt}%
|
|
||||||
\normalsize%
|
|
||||||
}
|
|
||||||
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
|
|
||||||
\newlength{\CodeWidthChar}
|
|
||||||
\newlength{\CodeHeightChar}
|
|
||||||
\settowidth{\CodeWidthChar}{?}
|
|
||||||
\settoheight{\CodeHeightChar}{?}
|
|
||||||
% Necessary for hanging indent
|
|
||||||
\newlength{\DoxyCodeWidth}
|
|
||||||
|
|
||||||
\newcommand\DoxyCodeLine[1]{
|
|
||||||
\ifthenelse{\equal{\detokenize{#1}}{}}
|
|
||||||
{
|
|
||||||
\vspace*{\baselineskip}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
\hangpara{\DoxyCodeWidth}{1}{#1}\par
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
\newcommand\NiceSpace{%
|
|
||||||
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @code ... @endcode
|
|
||||||
\newenvironment{DoxyCode}[1]{%
|
|
||||||
\par%
|
|
||||||
\scriptsize%
|
|
||||||
\normalfont\ttfamily%
|
|
||||||
\rightskip0pt plus 1fil%
|
|
||||||
\settowidth{\DoxyCodeWidth}{000000}%
|
|
||||||
\settowidth{\CodeWidthChar}{?}%
|
|
||||||
\settoheight{\CodeHeightChar}{?}%
|
|
||||||
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
|
|
||||||
\ifthenelse{\equal{#1}{0}}
|
|
||||||
{
|
|
||||||
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
|
|
||||||
}
|
|
||||||
{
|
|
||||||
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
|
|
||||||
}
|
|
||||||
|
|
||||||
}{%
|
|
||||||
\normalfont%
|
|
||||||
\normalsize%
|
|
||||||
\settowidth{\CodeWidthChar}{?}%
|
|
||||||
\settoheight{\CodeHeightChar}{?}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
|
|
||||||
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
|
|
||||||
\textcolor{white}{\sffamily\bfseries\small ?}}{%
|
|
||||||
\rotatebox{45}{$\blacksquare$}}}}
|
|
||||||
|
|
||||||
% Used by @example, @include, @includelineno and @dontinclude
|
|
||||||
\newenvironment{DoxyCodeInclude}[1]{%
|
|
||||||
\DoxyCode{#1}%
|
|
||||||
}{%
|
|
||||||
\endDoxyCode%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @verbatim ... @endverbatim
|
|
||||||
\newenvironment{DoxyVerb}{%
|
|
||||||
\par%
|
|
||||||
\footnotesize%
|
|
||||||
\verbatim%
|
|
||||||
}{%
|
|
||||||
\endverbatim%
|
|
||||||
\normalsize%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @verbinclude
|
|
||||||
\newenvironment{DoxyVerbInclude}{%
|
|
||||||
\DoxyVerb%
|
|
||||||
}{%
|
|
||||||
\endDoxyVerb%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
|
||||||
\setlistdepth{12}
|
|
||||||
\newlist{DoxyEnumerate}{enumerate}{12}
|
|
||||||
\setlist[DoxyEnumerate,1]{label=\arabic*.}
|
|
||||||
\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)}
|
|
||||||
\setlist[DoxyEnumerate,3]{label=\roman*.}
|
|
||||||
\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.}
|
|
||||||
\setlist[DoxyEnumerate,5]{label=\arabic*.}
|
|
||||||
\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)}
|
|
||||||
\setlist[DoxyEnumerate,7]{label=\roman*.}
|
|
||||||
\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.}
|
|
||||||
\setlist[DoxyEnumerate,9]{label=\arabic*.}
|
|
||||||
\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)}
|
|
||||||
\setlist[DoxyEnumerate,11]{label=\roman*.}
|
|
||||||
\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.}
|
|
||||||
|
|
||||||
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
|
||||||
\setlistdepth{12}
|
|
||||||
\newlist{DoxyItemize}{itemize}{12}
|
|
||||||
\setlist[DoxyItemize]{label=\textperiodcentered}
|
|
||||||
|
|
||||||
\setlist[DoxyItemize,1]{label=\textbullet}
|
|
||||||
\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash}
|
|
||||||
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
|
|
||||||
\setlist[DoxyItemize,4]{label=\textperiodcentered}
|
|
||||||
|
|
||||||
% Used by description lists (using <dl> ... </dl>)
|
|
||||||
\newenvironment{DoxyDescription}{%
|
|
||||||
\description%
|
|
||||||
}{%
|
|
||||||
\enddescription%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
|
||||||
% (only if caption is specified)
|
|
||||||
\newenvironment{DoxyImage}{%
|
|
||||||
\begin{figure}[H]%
|
|
||||||
\centering%
|
|
||||||
}{%
|
|
||||||
\end{figure}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
|
||||||
% (only if no caption is specified)
|
|
||||||
\newenvironment{DoxyImageNoCaption}{%
|
|
||||||
\begin{center}%
|
|
||||||
}{%
|
|
||||||
\end{center}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @image
|
|
||||||
% (only if inline is specified)
|
|
||||||
\newenvironment{DoxyInlineImage}{%
|
|
||||||
}{%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @attention
|
|
||||||
\newenvironment{DoxyAttention}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @author and @authors
|
|
||||||
\newenvironment{DoxyAuthor}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @date
|
|
||||||
\newenvironment{DoxyDate}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @invariant
|
|
||||||
\newenvironment{DoxyInvariant}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @note
|
|
||||||
\newenvironment{DoxyNote}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @post
|
|
||||||
\newenvironment{DoxyPostcond}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @pre
|
|
||||||
\newenvironment{DoxyPrecond}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @copyright
|
|
||||||
\newenvironment{DoxyCopyright}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @remark
|
|
||||||
\newenvironment{DoxyRemark}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @return and @returns
|
|
||||||
\newenvironment{DoxyReturn}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @since
|
|
||||||
\newenvironment{DoxySince}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @see
|
|
||||||
\newenvironment{DoxySeeAlso}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @version
|
|
||||||
\newenvironment{DoxyVersion}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @warning
|
|
||||||
\newenvironment{DoxyWarning}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @par and @paragraph
|
|
||||||
\newenvironment{DoxyParagraph}[1]{%
|
|
||||||
\begin{DoxyDesc}{#1}%
|
|
||||||
}{%
|
|
||||||
\end{DoxyDesc}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by parameter lists
|
|
||||||
\newenvironment{DoxyParams}[2][]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\ifthenelse{\equal{#1}{}}%
|
|
||||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
|
|
||||||
{\ifthenelse{\equal{#1}{1}}%
|
|
||||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
|
|
||||||
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
|
|
||||||
}
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for fields of simple structs
|
|
||||||
\newenvironment{DoxyFields}[1]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
|
|
||||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for fields simple class style enums
|
|
||||||
\newenvironment{DoxyEnumFields}[1]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for parameters within a detailed function description
|
|
||||||
\newenvironment{DoxyParamCaption}{%
|
|
||||||
\renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
|
|
||||||
}{%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by return value lists
|
|
||||||
\newenvironment{DoxyRetVals}[1]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by exception lists
|
|
||||||
\newenvironment{DoxyExceptions}[1]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by template parameter lists
|
|
||||||
\newenvironment{DoxyTemplParams}[1]{%
|
|
||||||
\tabulinesep=1mm%
|
|
||||||
\par%
|
|
||||||
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endfirsthead%
|
|
||||||
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
|
|
||||||
\hline%
|
|
||||||
\endhead%
|
|
||||||
}{%
|
|
||||||
\end{longtabu*}%
|
|
||||||
\vspace{6pt}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for member lists
|
|
||||||
\newenvironment{DoxyCompactItemize}{%
|
|
||||||
\begin{itemize}%
|
|
||||||
\setlength{\itemsep}{-3pt}%
|
|
||||||
\setlength{\parsep}{0pt}%
|
|
||||||
\setlength{\topsep}{0pt}%
|
|
||||||
\setlength{\partopsep}{0pt}%
|
|
||||||
}{%
|
|
||||||
\end{itemize}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for member descriptions
|
|
||||||
\newenvironment{DoxyCompactList}{%
|
|
||||||
\begin{list}{}{%
|
|
||||||
\setlength{\leftmargin}{0.5cm}%
|
|
||||||
\setlength{\itemsep}{0pt}%
|
|
||||||
\setlength{\parsep}{0pt}%
|
|
||||||
\setlength{\topsep}{0pt}%
|
|
||||||
\renewcommand{\makelabel}{\hfill}%
|
|
||||||
}%
|
|
||||||
}{%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used for reference lists (@bug, @deprecated, @todo, etc.)
|
|
||||||
\newenvironment{DoxyRefList}{%
|
|
||||||
\begin{list}{}{%
|
|
||||||
\setlength{\labelwidth}{10pt}%
|
|
||||||
\setlength{\leftmargin}{\labelwidth}%
|
|
||||||
\addtolength{\leftmargin}{\labelsep}%
|
|
||||||
\renewcommand{\makelabel}{\xreflabel}%
|
|
||||||
}%
|
|
||||||
}{%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @bug, @deprecated, @todo, etc.
|
|
||||||
\newenvironment{DoxyRefDesc}[1]{%
|
|
||||||
\begin{list}{}{%
|
|
||||||
\renewcommand\makelabel[1]{\textbf{##1}}%
|
|
||||||
\settowidth\labelwidth{\makelabel{#1}}%
|
|
||||||
\setlength\leftmargin{\labelwidth+\labelsep}%
|
|
||||||
}%
|
|
||||||
}{%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by parameter lists and simple sections
|
|
||||||
\newenvironment{Desc}
|
|
||||||
{\begin{list}{}{%
|
|
||||||
\settowidth{\labelwidth}{20pt}%
|
|
||||||
\setlength{\parsep}{0pt}%
|
|
||||||
\setlength{\itemsep}{0pt}%
|
|
||||||
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
|
||||||
\renewcommand{\makelabel}{\entrylabel}%
|
|
||||||
}
|
|
||||||
}{%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by tables
|
|
||||||
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
|
|
||||||
\newenvironment{TabularC}[1]%
|
|
||||||
{\tabulinesep=1mm
|
|
||||||
\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
|
|
||||||
{\end{longtabu*}\par}%
|
|
||||||
|
|
||||||
\newenvironment{TabularNC}[1]%
|
|
||||||
{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
|
|
||||||
{\end{tabu}\par}%
|
|
||||||
|
|
||||||
% Used for member group headers
|
|
||||||
\newenvironment{Indent}{%
|
|
||||||
\begin{list}{}{%
|
|
||||||
\setlength{\leftmargin}{0.5cm}%
|
|
||||||
}%
|
|
||||||
\item[]\ignorespaces%
|
|
||||||
}{%
|
|
||||||
\unskip%
|
|
||||||
\end{list}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used when hyperlinks are turned on
|
|
||||||
\newcommand{\doxylink}[2]{%
|
|
||||||
\mbox{\hyperlink{#1}{#2}}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used when hyperlinks are turned on
|
|
||||||
% Third argument is the SectionType, see the doxygen internal
|
|
||||||
% documentation for the values (relevant: Page ... Subsubsection).
|
|
||||||
\newcommand{\doxysectlink}[3]{%
|
|
||||||
\mbox{\hyperlink{#1}{#2}}%
|
|
||||||
}
|
|
||||||
% Used when hyperlinks are turned off
|
|
||||||
\newcommand{\doxyref}[3]{%
|
|
||||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used when hyperlinks are turned off
|
|
||||||
% Fourth argument is the SectionType, see the doxygen internal
|
|
||||||
% documentation for the values (relevant: Page ... Subsubsection).
|
|
||||||
\newcommand{\doxysectref}[4]{%
|
|
||||||
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used to link to a table when hyperlinks are turned on
|
|
||||||
\newcommand{\doxytablelink}[2]{%
|
|
||||||
\ref{#1}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used to link to a table when hyperlinks are turned off
|
|
||||||
\newcommand{\doxytableref}[3]{%
|
|
||||||
\ref{#3}%
|
|
||||||
}
|
|
||||||
|
|
||||||
% Used by @addindex
|
|
||||||
\newcommand{\lcurly}{\{}
|
|
||||||
\newcommand{\rcurly}{\}}
|
|
||||||
|
|
||||||
% Colors used for syntax highlighting
|
|
||||||
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
|
||||||
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
|
||||||
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
|
||||||
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
|
||||||
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
|
||||||
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
|
||||||
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
|
||||||
\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0}
|
|
||||||
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
|
||||||
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
|
||||||
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
|
||||||
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
|
||||||
|
|
||||||
% Color used for table heading
|
|
||||||
\newcommand{\tableheadbgcolor}{lightgray}%
|
|
||||||
|
|
||||||
% Version of hypertarget with correct landing location
|
|
||||||
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
|
|
||||||
|
|
||||||
% possibility to have sections etc. be within the margins
|
|
||||||
% unfortunately had to copy part of book.cls and add \raggedright
|
|
||||||
\makeatletter
|
|
||||||
\newcounter{subsubsubsection}[subsubsection]
|
|
||||||
\newcounter{subsubsubsubsection}[subsubsubsection]
|
|
||||||
\newcounter{subsubsubsubsubsection}[subsubsubsubsection]
|
|
||||||
\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection]
|
|
||||||
\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}
|
|
||||||
\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}}
|
|
||||||
\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}}
|
|
||||||
\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}}
|
|
||||||
\newcommand{\subsubsubsectionmark}[1]{}
|
|
||||||
\newcommand{\subsubsubsubsectionmark}[1]{}
|
|
||||||
\newcommand{\subsubsubsubsubsectionmark}[1]{}
|
|
||||||
\newcommand{\subsubsubsubsubsubsectionmark}[1]{}
|
|
||||||
\def\toclevel@subsubsubsection{4}
|
|
||||||
\def\toclevel@subsubsubsubsection{5}
|
|
||||||
\def\toclevel@subsubsubsubsubsection{6}
|
|
||||||
\def\toclevel@subsubsubsubsubsubsection{7}
|
|
||||||
\def\toclevel@paragraph{8}
|
|
||||||
\def\toclevel@subparagraph{9}
|
|
||||||
|
|
||||||
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
|
|
||||||
{-3.5ex \@plus -1ex \@minus -.2ex}%
|
|
||||||
{2.3ex \@plus.2ex}%
|
|
||||||
{\raggedright\normalfont\Large\bfseries}}
|
|
||||||
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\large\bfseries}}
|
|
||||||
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}%
|
|
||||||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
|
||||||
{1.5ex \@plus .2ex}%
|
|
||||||
{\raggedright\normalfont\normalsize\bfseries}}
|
|
||||||
|
|
||||||
\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}}
|
|
||||||
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}}
|
|
||||||
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}}
|
|
||||||
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}}
|
|
||||||
\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}}
|
|
||||||
\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}}
|
|
||||||
\makeatother
|
|
||||||
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
|
|
||||||
% LaTeX Warning: Command \underline has changed.
|
|
||||||
% Check if current package is valid.
|
|
||||||
% unfortunately had to copy the relevant part
|
|
||||||
\newcommand*{\doxypartfont} [1]
|
|
||||||
{\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1}
|
|
||||||
\gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}}
|
|
||||||
\newcommand*{\doxychapterfont} [1]
|
|
||||||
{\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1}
|
|
||||||
\gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}}
|
|
||||||
\newcommand*{\doxysectionfont} [1]
|
|
||||||
{\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}}
|
|
||||||
\newcommand*{\doxysubsectionfont} [1]
|
|
||||||
{\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}}
|
|
||||||
\newcommand*{\doxysubsubsectionfont} [1]
|
|
||||||
{\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}}
|
|
||||||
\newcommand*{\doxyparagraphfont} [1]
|
|
||||||
{\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}}
|
|
||||||
\newcommand*{\doxysubparagraphfont} [1]
|
|
||||||
{\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}}
|
|
||||||
\newcommand*{\doxyminisecfont} [1]
|
|
||||||
{\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}}
|
|
||||||
\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}%
|
|
||||||
\doxychapterfont{#1}%
|
|
||||||
\doxysectionfont{#1}%
|
|
||||||
\doxysubsectionfont{#1}%
|
|
||||||
\doxysubsubsectionfont{#1}%
|
|
||||||
\doxyparagraphfont{#1}%
|
|
||||||
\doxysubparagraphfont{#1}%
|
|
||||||
\doxyminisecfont{#1}}%
|
|
||||||
% Define caption that is also suitable in a table
|
|
||||||
\makeatletter
|
|
||||||
\def\doxyfigcaption{%
|
|
||||||
\H@refstepcounter{figure}%
|
|
||||||
\@dblarg{\@caption{figure}}}
|
|
||||||
\makeatother
|
|
||||||
|
|
||||||
% Define alpha enumarative names for counters > 26
|
|
||||||
\makeatletter
|
|
||||||
\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname}
|
|
||||||
\def\@enumalphalphcnt#1{\alphalph{#1}}
|
|
||||||
\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname}
|
|
||||||
\def\@enumAlphAlphcnt#1{\AlphAlph{#1}}
|
|
||||||
\makeatother
|
|
||||||
\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa}
|
|
||||||
\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA}
|
|
@ -1,456 +0,0 @@
|
|||||||
%%
|
|
||||||
%% This is file `longtable.sty',
|
|
||||||
%% generated with the docstrip utility.
|
|
||||||
%%
|
|
||||||
%% The original source files were:
|
|
||||||
%%
|
|
||||||
%% longtable.dtx (with options: `package')
|
|
||||||
%%
|
|
||||||
%% This is a generated file.
|
|
||||||
%%
|
|
||||||
%% The source is maintained by the LaTeX Project team and bug
|
|
||||||
%% reports for it can be opened at http://latex-project.org/bugs.html
|
|
||||||
%% (but please observe conditions on bug reports sent to that address!)
|
|
||||||
%%
|
|
||||||
%% Copyright 1993-2016
|
|
||||||
%% The LaTeX3 Project and any individual authors listed elsewhere
|
|
||||||
%% in this file.
|
|
||||||
%%
|
|
||||||
%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
|
|
||||||
%% --------------------------------------------------------------------------
|
|
||||||
%%
|
|
||||||
%% It may be distributed and/or modified under the
|
|
||||||
%% conditions of the LaTeX Project Public License, either version 1.3c
|
|
||||||
%% of this license or (at your option) any later version.
|
|
||||||
%% The latest version of this license is in
|
|
||||||
%% http://www.latex-project.org/lppl.txt
|
|
||||||
%% and version 1.3c or later is part of all distributions of LaTeX
|
|
||||||
%% version 2005/12/01 or later.
|
|
||||||
%%
|
|
||||||
%% This file may only be distributed together with a copy of the LaTeX
|
|
||||||
%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
|
|
||||||
%% without such generated files.
|
|
||||||
%%
|
|
||||||
%% The list of all files belonging to the LaTeX `Tools Bundle' is
|
|
||||||
%% given in the file `manifest.txt'.
|
|
||||||
%%
|
|
||||||
%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
|
|
||||||
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
|
||||||
\ProvidesPackage{longtable_doxygen}
|
|
||||||
[2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
|
|
||||||
\def\LT@err{\PackageError{longtable}}
|
|
||||||
\def\LT@warn{\PackageWarning{longtable}}
|
|
||||||
\def\LT@final@warn{%
|
|
||||||
\AtEndDocument{%
|
|
||||||
\LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
|
|
||||||
\global\let\LT@final@warn\relax}
|
|
||||||
\DeclareOption{errorshow}{%
|
|
||||||
\def\LT@warn{\PackageInfo{longtable}}}
|
|
||||||
\DeclareOption{pausing}{%
|
|
||||||
\def\LT@warn#1{%
|
|
||||||
\LT@err{#1}{This is not really an error}}}
|
|
||||||
\DeclareOption{set}{}
|
|
||||||
\DeclareOption{final}{}
|
|
||||||
\ProcessOptions
|
|
||||||
\newskip\LTleft \LTleft=\fill
|
|
||||||
\newskip\LTright \LTright=\fill
|
|
||||||
\newskip\LTpre \LTpre=\bigskipamount
|
|
||||||
\newskip\LTpost \LTpost=\bigskipamount
|
|
||||||
\newcount\LTchunksize \LTchunksize=20
|
|
||||||
\let\c@LTchunksize\LTchunksize
|
|
||||||
\newdimen\LTcapwidth \LTcapwidth=4in
|
|
||||||
\newbox\LT@head
|
|
||||||
\newbox\LT@firsthead
|
|
||||||
\newbox\LT@foot
|
|
||||||
\newbox\LT@lastfoot
|
|
||||||
\newcount\LT@cols
|
|
||||||
\newcount\LT@rows
|
|
||||||
\newcounter{LT@tables}
|
|
||||||
\newcounter{LT@chunks}[LT@tables]
|
|
||||||
\ifx\c@table\undefined
|
|
||||||
\newcounter{table}
|
|
||||||
\def\fnum@table{\tablename~\thetable}
|
|
||||||
\fi
|
|
||||||
\ifx\tablename\undefined
|
|
||||||
\def\tablename{Table}
|
|
||||||
\fi
|
|
||||||
\newtoks\LT@p@ftn
|
|
||||||
\mathchardef\LT@end@pen=30000
|
|
||||||
\def\longtable{%
|
|
||||||
\par
|
|
||||||
\ifx\multicols\@undefined
|
|
||||||
\else
|
|
||||||
\ifnum\col@number>\@ne
|
|
||||||
\@twocolumntrue
|
|
||||||
\fi
|
|
||||||
\fi
|
|
||||||
\if@twocolumn
|
|
||||||
\LT@err{longtable not in 1-column mode}\@ehc
|
|
||||||
\fi
|
|
||||||
\begingroup
|
|
||||||
\@ifnextchar[\LT@array{\LT@array[x]}}
|
|
||||||
\def\LT@array[#1]#2{%
|
|
||||||
\refstepcounter{table}\stepcounter{LT@tables}%
|
|
||||||
\if l#1%
|
|
||||||
\LTleft\z@ \LTright\fill
|
|
||||||
\else\if r#1%
|
|
||||||
\LTleft\fill \LTright\z@
|
|
||||||
\else\if c#1%
|
|
||||||
\LTleft\fill \LTright\fill
|
|
||||||
\fi\fi\fi
|
|
||||||
\let\LT@mcol\multicolumn
|
|
||||||
\let\LT@@tabarray\@tabarray
|
|
||||||
\let\LT@@hl\hline
|
|
||||||
\def\@tabarray{%
|
|
||||||
\let\hline\LT@@hl
|
|
||||||
\LT@@tabarray}%
|
|
||||||
\let\\\LT@tabularcr\let\tabularnewline\\%
|
|
||||||
\def\newpage{\noalign{\break}}%
|
|
||||||
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
|
|
||||||
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
|
|
||||||
\let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
|
|
||||||
\@tempdima\ht\strutbox
|
|
||||||
\let\@endpbox\LT@endpbox
|
|
||||||
\ifx\extrarowheight\@undefined
|
|
||||||
\let\@acol\@tabacol
|
|
||||||
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
|
|
||||||
\def\@startpbox{\vtop\LT@startpbox}%
|
|
||||||
\let\@@startpbox\@startpbox
|
|
||||||
\let\@@endpbox\@endpbox
|
|
||||||
\let\LT@LL@FM@cr\@tabularcr
|
|
||||||
\else
|
|
||||||
\advance\@tempdima\extrarowheight
|
|
||||||
\col@sep\tabcolsep
|
|
||||||
\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
|
|
||||||
\fi
|
|
||||||
\setbox\@arstrutbox\hbox{\vrule
|
|
||||||
\@height \arraystretch \@tempdima
|
|
||||||
\@depth \arraystretch \dp \strutbox
|
|
||||||
\@width \z@}%
|
|
||||||
\let\@sharp##\let\protect\relax
|
|
||||||
\begingroup
|
|
||||||
\@mkpream{#2}%
|
|
||||||
\xdef\LT@bchunk{%
|
|
||||||
\global\advance\c@LT@chunks\@ne
|
|
||||||
\global\LT@rows\z@\setbox\z@\vbox\bgroup
|
|
||||||
\LT@setprevdepth
|
|
||||||
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
|
|
||||||
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
|
|
||||||
\endgroup
|
|
||||||
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
|
|
||||||
\LT@make@row
|
|
||||||
\m@th\let\par\@empty
|
|
||||||
\everycr{}\lineskip\z@\baselineskip\z@
|
|
||||||
\LT@bchunk}
|
|
||||||
\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
|
|
||||||
\def\LT@start{%
|
|
||||||
\let\LT@start\endgraf
|
|
||||||
\endgraf\penalty\z@\vskip\LTpre
|
|
||||||
\dimen@\pagetotal
|
|
||||||
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
|
|
||||||
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
|
|
||||||
\advance\dimen@ \ht\LT@foot
|
|
||||||
\dimen@ii\vfuzz
|
|
||||||
\vfuzz\maxdimen
|
|
||||||
\setbox\tw@\copy\z@
|
|
||||||
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
|
|
||||||
\setbox\tw@\vbox{\unvbox\tw@}%
|
|
||||||
\vfuzz\dimen@ii
|
|
||||||
\advance\dimen@ \ht
|
|
||||||
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
|
|
||||||
\advance\dimen@\dp
|
|
||||||
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
|
|
||||||
\advance\dimen@ -\pagegoal
|
|
||||||
\ifdim \dimen@>\z@\vfil\break\fi
|
|
||||||
\global\@colroom\@colht
|
|
||||||
\ifvoid\LT@foot\else
|
|
||||||
\advance\vsize-\ht\LT@foot
|
|
||||||
\global\advance\@colroom-\ht\LT@foot
|
|
||||||
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
|
|
||||||
\maxdepth\z@
|
|
||||||
\fi
|
|
||||||
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
|
|
||||||
\output{\LT@output}}
|
|
||||||
\def\endlongtable{%
|
|
||||||
\crcr
|
|
||||||
\noalign{%
|
|
||||||
\let\LT@entry\LT@entry@chop
|
|
||||||
\xdef\LT@save@row{\LT@save@row}}%
|
|
||||||
\LT@echunk
|
|
||||||
\LT@start
|
|
||||||
\unvbox\z@
|
|
||||||
\LT@get@widths
|
|
||||||
\if@filesw
|
|
||||||
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
|
|
||||||
\gdef\expandafter\noexpand
|
|
||||||
\csname LT@\romannumeral\c@LT@tables\endcsname
|
|
||||||
{\LT@save@row}}}%
|
|
||||||
\fi
|
|
||||||
\ifx\LT@save@row\LT@@save@row
|
|
||||||
\else
|
|
||||||
\LT@warn{Column \@width s have changed\MessageBreak
|
|
||||||
in table \thetable}%
|
|
||||||
\LT@final@warn
|
|
||||||
\fi
|
|
||||||
\endgraf\penalty -\LT@end@pen
|
|
||||||
\endgroup
|
|
||||||
\global\@mparbottom\z@
|
|
||||||
\pagegoal\vsize
|
|
||||||
\endgraf\penalty\z@\addvspace\LTpost
|
|
||||||
\ifvoid\footins\else\insert\footins{}\fi}
|
|
||||||
\def\LT@nofcols#1&{%
|
|
||||||
\futurelet\@let@token\LT@n@fcols}
|
|
||||||
\def\LT@n@fcols{%
|
|
||||||
\advance\LT@cols\@ne
|
|
||||||
\ifx\@let@token\LT@nofcols
|
|
||||||
\expandafter\@gobble
|
|
||||||
\else
|
|
||||||
\expandafter\LT@nofcols
|
|
||||||
\fi}
|
|
||||||
\def\LT@tabularcr{%
|
|
||||||
\relax\iffalse{\fi\ifnum0=`}\fi
|
|
||||||
\@ifstar
|
|
||||||
{\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
|
|
||||||
\LT@t@bularcr}%
|
|
||||||
{\LT@t@bularcr}}
|
|
||||||
\let\LT@crcr\crcr
|
|
||||||
\let\LT@setprevdepth\relax
|
|
||||||
\def\LT@t@bularcr{%
|
|
||||||
\global\advance\LT@rows\@ne
|
|
||||||
\ifnum\LT@rows=\LTchunksize
|
|
||||||
\gdef\LT@setprevdepth{%
|
|
||||||
\prevdepth\z@\global
|
|
||||||
\global\let\LT@setprevdepth\relax}%
|
|
||||||
\expandafter\LT@xtabularcr
|
|
||||||
\else
|
|
||||||
\ifnum0=`{}\fi
|
|
||||||
\expandafter\LT@LL@FM@cr
|
|
||||||
\fi}
|
|
||||||
\def\LT@xtabularcr{%
|
|
||||||
\@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
|
|
||||||
\def\LT@ntabularcr{%
|
|
||||||
\ifnum0=`{}\fi
|
|
||||||
\LT@echunk
|
|
||||||
\LT@start
|
|
||||||
\unvbox\z@
|
|
||||||
\LT@get@widths
|
|
||||||
\LT@bchunk}
|
|
||||||
\def\LT@argtabularcr[#1]{%
|
|
||||||
\ifnum0=`{}\fi
|
|
||||||
\ifdim #1>\z@
|
|
||||||
\unskip\@xargarraycr{#1}%
|
|
||||||
\else
|
|
||||||
\@yargarraycr{#1}%
|
|
||||||
\fi
|
|
||||||
\LT@echunk
|
|
||||||
\LT@start
|
|
||||||
\unvbox\z@
|
|
||||||
\LT@get@widths
|
|
||||||
\LT@bchunk}
|
|
||||||
\def\LT@echunk{%
|
|
||||||
\crcr\LT@save@row\cr\egroup
|
|
||||||
\global\setbox\@ne\lastbox
|
|
||||||
\unskip
|
|
||||||
\egroup}
|
|
||||||
\def\LT@entry#1#2{%
|
|
||||||
\ifhmode\@firstofone{&}\fi\omit
|
|
||||||
\ifnum#1=\c@LT@chunks
|
|
||||||
\else
|
|
||||||
\kern#2\relax
|
|
||||||
\fi}
|
|
||||||
\def\LT@entry@chop#1#2{%
|
|
||||||
\noexpand\LT@entry
|
|
||||||
{\ifnum#1>\c@LT@chunks
|
|
||||||
1}{0pt%
|
|
||||||
\else
|
|
||||||
#1}{#2%
|
|
||||||
\fi}}
|
|
||||||
\def\LT@entry@write{%
|
|
||||||
\noexpand\LT@entry^^J%
|
|
||||||
\@spaces}
|
|
||||||
\def\LT@kill{%
|
|
||||||
\LT@echunk
|
|
||||||
\LT@get@widths
|
|
||||||
\expandafter\LT@rebox\LT@bchunk}
|
|
||||||
\def\LT@rebox#1\bgroup{%
|
|
||||||
#1\bgroup
|
|
||||||
\unvbox\z@
|
|
||||||
\unskip
|
|
||||||
\setbox\z@\lastbox}
|
|
||||||
\def\LT@blank@row{%
|
|
||||||
\xdef\LT@save@row{\expandafter\LT@build@blank
|
|
||||||
\romannumeral\number\LT@cols 001 }}
|
|
||||||
\def\LT@build@blank#1{%
|
|
||||||
\if#1m%
|
|
||||||
\noexpand\LT@entry{1}{0pt}%
|
|
||||||
\expandafter\LT@build@blank
|
|
||||||
\fi}
|
|
||||||
\def\LT@make@row{%
|
|
||||||
\global\expandafter\let\expandafter\LT@save@row
|
|
||||||
\csname LT@\romannumeral\c@LT@tables\endcsname
|
|
||||||
\ifx\LT@save@row\relax
|
|
||||||
\LT@blank@row
|
|
||||||
\else
|
|
||||||
{\let\LT@entry\or
|
|
||||||
\if!%
|
|
||||||
\ifcase\expandafter\expandafter\expandafter\LT@cols
|
|
||||||
\expandafter\@gobble\LT@save@row
|
|
||||||
\or
|
|
||||||
\else
|
|
||||||
\relax
|
|
||||||
\fi
|
|
||||||
!%
|
|
||||||
\else
|
|
||||||
\aftergroup\LT@blank@row
|
|
||||||
\fi}%
|
|
||||||
\fi}
|
|
||||||
\let\setlongtables\relax
|
|
||||||
\def\LT@get@widths{%
|
|
||||||
\setbox\tw@\hbox{%
|
|
||||||
\unhbox\@ne
|
|
||||||
\let\LT@old@row\LT@save@row
|
|
||||||
\global\let\LT@save@row\@empty
|
|
||||||
\count@\LT@cols
|
|
||||||
\loop
|
|
||||||
\unskip
|
|
||||||
\setbox\tw@\lastbox
|
|
||||||
\ifhbox\tw@
|
|
||||||
\LT@def@row
|
|
||||||
\advance\count@\m@ne
|
|
||||||
\repeat}%
|
|
||||||
\ifx\LT@@save@row\@undefined
|
|
||||||
\let\LT@@save@row\LT@save@row
|
|
||||||
\fi}
|
|
||||||
\def\LT@def@row{%
|
|
||||||
\let\LT@entry\or
|
|
||||||
\edef\@tempa{%
|
|
||||||
\ifcase\expandafter\count@\LT@old@row
|
|
||||||
\else
|
|
||||||
{1}{0pt}%
|
|
||||||
\fi}%
|
|
||||||
\let\LT@entry\relax
|
|
||||||
\xdef\LT@save@row{%
|
|
||||||
\LT@entry
|
|
||||||
\expandafter\LT@max@sel\@tempa
|
|
||||||
\LT@save@row}}
|
|
||||||
\def\LT@max@sel#1#2{%
|
|
||||||
{\ifdim#2=\wd\tw@
|
|
||||||
#1%
|
|
||||||
\else
|
|
||||||
\number\c@LT@chunks
|
|
||||||
\fi}%
|
|
||||||
{\the\wd\tw@}}
|
|
||||||
\def\LT@hline{%
|
|
||||||
\noalign{\ifnum0=`}\fi
|
|
||||||
\penalty\@M
|
|
||||||
\futurelet\@let@token\LT@@hline}
|
|
||||||
\def\LT@@hline{%
|
|
||||||
\ifx\@let@token\hline
|
|
||||||
\global\let\@gtempa\@gobble
|
|
||||||
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
|
|
||||||
\else
|
|
||||||
\global\let\@gtempa\@empty
|
|
||||||
\gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
|
|
||||||
\fi
|
|
||||||
\ifnum0=`{\fi}%
|
|
||||||
\multispan\LT@cols
|
|
||||||
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
|
|
||||||
\noalign{\LT@sep}%
|
|
||||||
\multispan\LT@cols
|
|
||||||
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
|
|
||||||
\noalign{\penalty\@M}%
|
|
||||||
\@gtempa}
|
|
||||||
\def\LT@caption{%
|
|
||||||
\noalign\bgroup
|
|
||||||
\@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
|
|
||||||
\def\LT@c@ption#1[#2]#3{%
|
|
||||||
\LT@makecaption#1\fnum@table{#3}%
|
|
||||||
\def\@tempa{#2}%
|
|
||||||
\ifx\@tempa\@empty\else
|
|
||||||
{\let\\\space
|
|
||||||
\addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
|
|
||||||
\fi}
|
|
||||||
\def\LT@capti@n{%
|
|
||||||
\@ifstar
|
|
||||||
{\egroup\LT@c@ption\@gobble[]}%
|
|
||||||
{\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
|
|
||||||
\def\LT@makecaption#1#2#3{%
|
|
||||||
\LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
|
|
||||||
\sbox\@tempboxa{#1{#2: }#3}%
|
|
||||||
\ifdim\wd\@tempboxa>\hsize
|
|
||||||
#1{#2: }#3%
|
|
||||||
\else
|
|
||||||
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
|
|
||||||
\fi
|
|
||||||
\endgraf\vskip\baselineskip}%
|
|
||||||
\hss}}}
|
|
||||||
\def\LT@output{%
|
|
||||||
\ifnum\outputpenalty <-\@Mi
|
|
||||||
\ifnum\outputpenalty > -\LT@end@pen
|
|
||||||
\LT@err{floats and marginpars not allowed in a longtable}\@ehc
|
|
||||||
\else
|
|
||||||
\setbox\z@\vbox{\unvbox\@cclv}%
|
|
||||||
\ifdim \ht\LT@lastfoot>\ht\LT@foot
|
|
||||||
\dimen@\pagegoal
|
|
||||||
\advance\dimen@-\ht\LT@lastfoot
|
|
||||||
\ifdim\dimen@<\ht\z@
|
|
||||||
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
|
|
||||||
\@makecol
|
|
||||||
\@outputpage
|
|
||||||
\setbox\z@\vbox{\box\LT@head}%
|
|
||||||
\fi
|
|
||||||
\fi
|
|
||||||
\global\@colroom\@colht
|
|
||||||
\global\vsize\@colht
|
|
||||||
\vbox
|
|
||||||
{\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
|
|
||||||
\fi
|
|
||||||
\else
|
|
||||||
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
|
|
||||||
\@makecol
|
|
||||||
\@outputpage
|
|
||||||
\global\vsize\@colroom
|
|
||||||
\copy\LT@head\nobreak
|
|
||||||
\fi}
|
|
||||||
\def\LT@end@hd@ft#1{%
|
|
||||||
\LT@echunk
|
|
||||||
\ifx\LT@start\endgraf
|
|
||||||
\LT@err
|
|
||||||
{Longtable head or foot not at start of table}%
|
|
||||||
{Increase LTchunksize}%
|
|
||||||
\fi
|
|
||||||
\setbox#1\box\z@
|
|
||||||
\LT@get@widths
|
|
||||||
\LT@bchunk}
|
|
||||||
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
|
|
||||||
\def\endhead{\LT@end@hd@ft\LT@head}
|
|
||||||
\def\endfoot{\LT@end@hd@ft\LT@foot}
|
|
||||||
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
|
|
||||||
\def\LT@startpbox#1{%
|
|
||||||
\bgroup
|
|
||||||
\let\@footnotetext\LT@p@ftntext
|
|
||||||
\setlength\hsize{#1}%
|
|
||||||
\@arrayparboxrestore
|
|
||||||
\vrule \@height \ht\@arstrutbox \@width \z@}
|
|
||||||
\def\LT@endpbox{%
|
|
||||||
\@finalstrut\@arstrutbox
|
|
||||||
\egroup
|
|
||||||
\the\LT@p@ftn
|
|
||||||
\global\LT@p@ftn{}%
|
|
||||||
\hfil}
|
|
||||||
%% added \long to prevent:
|
|
||||||
% LaTeX Warning: Command \LT@p@ftntext has changed.
|
|
||||||
%
|
|
||||||
% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx):
|
|
||||||
% \changes{v4.15}{2021/03/28}
|
|
||||||
% {make long for gh/364}
|
|
||||||
% Inside the `p' column, just save up the footnote text in a token
|
|
||||||
% register.
|
|
||||||
\long\def\LT@p@ftntext#1{%
|
|
||||||
\edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
|
|
||||||
\global\LT@p@ftn\expandafter{\@tempa{#1}}}%
|
|
||||||
|
|
||||||
\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
|
|
||||||
\endinput
|
|
||||||
%%
|
|
||||||
%% End of file `longtable.sty'.
|
|
@ -1,218 +0,0 @@
|
|||||||
% Handle batch mode
|
|
||||||
% to overcome problems with too many open files
|
|
||||||
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
|
|
||||||
\pdfminorversion=7
|
|
||||||
% Set document class depending on configuration
|
|
||||||
\documentclass[twoside]{book}
|
|
||||||
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
|
|
||||||
\usepackage{ifthen}
|
|
||||||
\ifx\requestedLaTeXdate\undefined
|
|
||||||
\usepackage{array}
|
|
||||||
\else
|
|
||||||
\usepackage{array}[=2016-10-06]
|
|
||||||
\fi
|
|
||||||
%%
|
|
||||||
% Packages required by doxygen
|
|
||||||
\makeatletter
|
|
||||||
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
|
|
||||||
% suppress package identification of infwarerr as it contains the word "warning"
|
|
||||||
\let\@@protected@wlog\protected@wlog
|
|
||||||
\def\protected@wlog#1{\wlog{package info suppressed}}
|
|
||||||
\RequirePackage{infwarerr}
|
|
||||||
\let\protected@wlog\@@protected@wlog
|
|
||||||
\makeatother
|
|
||||||
\IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
|
|
||||||
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
|
|
||||||
\usepackage{doxygen}
|
|
||||||
\usepackage{graphicx}
|
|
||||||
\usepackage[utf8]{inputenc}
|
|
||||||
\usepackage{makeidx}
|
|
||||||
\PassOptionsToPackage{warn}{textcomp}
|
|
||||||
\usepackage{textcomp}
|
|
||||||
\usepackage[nointegrals]{wasysym}
|
|
||||||
\usepackage{ifxetex}
|
|
||||||
% NLS support packages
|
|
||||||
% Define default fonts
|
|
||||||
% Font selection
|
|
||||||
\usepackage[T1]{fontenc}
|
|
||||||
% set main and monospaced font
|
|
||||||
\usepackage[scaled=.90]{helvet}
|
|
||||||
\usepackage{courier}
|
|
||||||
\renewcommand{\familydefault}{\sfdefault}
|
|
||||||
\doxyallsectionsfont{%
|
|
||||||
\fontseries{bc}\selectfont%
|
|
||||||
\color{darkgray}%
|
|
||||||
}
|
|
||||||
\renewcommand{\DoxyLabelFont}{%
|
|
||||||
\fontseries{bc}\selectfont%
|
|
||||||
\color{darkgray}%
|
|
||||||
}
|
|
||||||
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
|
|
||||||
% Arguments of doxygenemoji:
|
|
||||||
% 1) ':<text>:' form of the emoji, already LaTeX-escaped
|
|
||||||
% 2) file with the name of the emoji without the .png extension
|
|
||||||
% in case image exist use this otherwise use the ':<text>:' form
|
|
||||||
\newcommand{\doxygenemoji}[2]{%
|
|
||||||
\IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
|
|
||||||
}
|
|
||||||
% Page & text layout
|
|
||||||
\usepackage{geometry}
|
|
||||||
\geometry{%
|
|
||||||
a4paper,%
|
|
||||||
top=2.5cm,%
|
|
||||||
bottom=2.5cm,%
|
|
||||||
left=2.5cm,%
|
|
||||||
right=2.5cm%
|
|
||||||
}
|
|
||||||
\usepackage{changepage}
|
|
||||||
% Allow a bit of overflow to go unnoticed by other means
|
|
||||||
\tolerance=750
|
|
||||||
\hfuzz=15pt
|
|
||||||
\hbadness=750
|
|
||||||
\setlength{\emergencystretch}{15pt}
|
|
||||||
\setlength{\parindent}{0cm}
|
|
||||||
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
|
|
||||||
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
|
|
||||||
\doxynormalparskip
|
|
||||||
% Redefine paragraph/subparagraph environments, using sectsty fonts
|
|
||||||
\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
|
|
||||||
\makeatletter
|
|
||||||
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
|
|
||||||
\makeatother
|
|
||||||
% Headers & footers
|
|
||||||
\usepackage{fancyhdr}
|
|
||||||
\pagestyle{fancyplain}
|
|
||||||
\renewcommand{\footrulewidth}{0.4pt}
|
|
||||||
\fancypagestyle{fancyplain}{
|
|
||||||
\fancyhf{}
|
|
||||||
\fancyhead[LE, RO]{\bfseries\thepage}
|
|
||||||
\fancyhead[LO]{\bfseries\rightmark}
|
|
||||||
\fancyhead[RE]{\bfseries\leftmark}
|
|
||||||
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
|
|
||||||
}
|
|
||||||
\fancypagestyle{plain}{
|
|
||||||
\fancyhf{}
|
|
||||||
\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
|
|
||||||
\renewcommand{\headrulewidth}{0pt}
|
|
||||||
}
|
|
||||||
\pagestyle{fancyplain}
|
|
||||||
\renewcommand{\chaptermark}[1]{%
|
|
||||||
\markboth{#1}{}%
|
|
||||||
}
|
|
||||||
\renewcommand{\sectionmark}[1]{%
|
|
||||||
\markright{\thesection\ #1}%
|
|
||||||
}
|
|
||||||
% ToC, LoF, LoT, bibliography, and index
|
|
||||||
% Indices & bibliography
|
|
||||||
\usepackage{natbib}
|
|
||||||
\usepackage[titles]{tocloft}
|
|
||||||
\setcounter{tocdepth}{3}
|
|
||||||
\setcounter{secnumdepth}{5}
|
|
||||||
% creating indexes
|
|
||||||
\makeindex
|
|
||||||
\usepackage{newunicodechar}
|
|
||||||
\makeatletter
|
|
||||||
\def\doxynewunicodechar#1#2{%
|
|
||||||
\@tempswafalse
|
|
||||||
\edef\nuc@tempa{\detokenize{#1}}%
|
|
||||||
\if\relax\nuc@tempa\relax
|
|
||||||
\nuc@emptyargerr
|
|
||||||
\else
|
|
||||||
\edef\@tempb{\expandafter\@car\nuc@tempa\@nil}%
|
|
||||||
\nuc@check
|
|
||||||
\if@tempswa
|
|
||||||
\@namedef{u8:\nuc@tempa}{#2}%
|
|
||||||
\fi
|
|
||||||
\fi
|
|
||||||
}
|
|
||||||
\makeatother
|
|
||||||
\doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus
|
|
||||||
\doxynewunicodechar{²}{${}^{2}$}% Superscript two
|
|
||||||
\doxynewunicodechar{³}{${}^{3}$}% Superscript three
|
|
||||||
% Hyperlinks
|
|
||||||
% Hyperlinks (required, but should be loaded last)
|
|
||||||
\ifpdf
|
|
||||||
\usepackage[pdftex,pagebackref=true]{hyperref}
|
|
||||||
\else
|
|
||||||
\ifxetex
|
|
||||||
\usepackage[pagebackref=true]{hyperref}
|
|
||||||
\else
|
|
||||||
\usepackage[ps2pdf,pagebackref=true]{hyperref}
|
|
||||||
\fi
|
|
||||||
\fi
|
|
||||||
\hypersetup{%
|
|
||||||
colorlinks=true,%
|
|
||||||
linkcolor=blue,%
|
|
||||||
citecolor=blue,%
|
|
||||||
unicode,%
|
|
||||||
pdftitle={My Project},%
|
|
||||||
pdfsubject={}%
|
|
||||||
}
|
|
||||||
% Custom commands used by the header
|
|
||||||
% Custom commands
|
|
||||||
\newcommand{\clearemptydoublepage}{%
|
|
||||||
\newpage{\pagestyle{empty}\cleardoublepage}%
|
|
||||||
}
|
|
||||||
% caption style definition
|
|
||||||
\usepackage{caption}
|
|
||||||
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
|
|
||||||
% in page table of contents
|
|
||||||
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
|
|
||||||
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
|
|
||||||
\etocsetlevel{subsubsubsection}{4}
|
|
||||||
\etocsetlevel{subsubsubsubsection}{5}
|
|
||||||
\etocsetlevel{subsubsubsubsubsection}{6}
|
|
||||||
\etocsetlevel{subsubsubsubsubsubsection}{7}
|
|
||||||
\etocsetlevel{paragraph}{8}
|
|
||||||
\etocsetlevel{subparagraph}{9}
|
|
||||||
% prevent numbers overlap the titles in toc
|
|
||||||
\renewcommand{\numberline}[1]{#1~}
|
|
||||||
% End of preamble, now comes the document contents
|
|
||||||
%===== C O N T E N T S =====
|
|
||||||
\begin{document}
|
|
||||||
\raggedbottom
|
|
||||||
% Titlepage & ToC
|
|
||||||
% To avoid duplicate page anchors due to reuse of same numbers for
|
|
||||||
% the index (be it as roman numbers)
|
|
||||||
\hypersetup{pageanchor=false,
|
|
||||||
bookmarksnumbered=true,
|
|
||||||
pdfencoding=unicode
|
|
||||||
}
|
|
||||||
\pagenumbering{alph}
|
|
||||||
\begin{titlepage}
|
|
||||||
\vspace*{7cm}
|
|
||||||
\begin{center}%
|
|
||||||
{\Large My Project}\\
|
|
||||||
\vspace*{1cm}
|
|
||||||
{\large Generated by Doxygen 1.9.8}\\
|
|
||||||
\end{center}
|
|
||||||
\end{titlepage}
|
|
||||||
\clearemptydoublepage
|
|
||||||
\pagenumbering{roman}
|
|
||||||
\tableofcontents
|
|
||||||
\clearemptydoublepage
|
|
||||||
\pagenumbering{arabic}
|
|
||||||
% re-enable anchors again
|
|
||||||
\hypersetup{pageanchor=true}
|
|
||||||
%--- Begin generated contents ---
|
|
||||||
%--- End generated contents ---
|
|
||||||
% Index
|
|
||||||
\backmatter
|
|
||||||
\newpage
|
|
||||||
\phantomsection
|
|
||||||
\clearemptydoublepage
|
|
||||||
\addcontentsline{toc}{chapter}{\indexname}
|
|
||||||
\printindex
|
|
||||||
% Required for some languages (in combination with latexdocumentpre from the header)
|
|
||||||
\end{document}
|
|