After Width: | Height: | Size: 676 B |
After Width: | Height: | Size: 147 B |
After Width: | Height: | Size: 132 B |
After Width: | Height: | Size: 3.7 KiB |
@ -0,0 +1,104 @@ |
|||||||
|
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'); |
||||||
|
} |
||||||
|
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.attr('src','ftv2folderopen.png'); |
||||||
|
a.attr('src','ftv2mnode.png'); |
||||||
|
$(this).show(); |
||||||
|
} else if (l==level+1) { |
||||||
|
i.attr('src','ftv2folderclosed.png'); |
||||||
|
a.attr('src','ftv2pnode.png'); |
||||||
|
$(this).show(); |
||||||
|
} else { |
||||||
|
$(this).hide(); |
||||||
|
} |
||||||
|
}); |
||||||
|
updateStripes(); |
||||||
|
} |
||||||
|
|
||||||
|
function toggleFolder(id) |
||||||
|
{ |
||||||
|
//The clicked row
|
||||||
|
var currentRow = $('#row_'+id); |
||||||
|
var currentRowImages = currentRow.find("img"); |
||||||
|
|
||||||
|
//All rows after the clicked row
|
||||||
|
var rows = currentRow.nextAll("tr"); |
||||||
|
|
||||||
|
//Only match elements AFTER this one (can't hide elements before)
|
||||||
|
var childRows = rows.filter(function() { |
||||||
|
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||||
|
return this.id.match(re); |
||||||
|
}); |
||||||
|
|
||||||
|
//First row is visible we are HIDING
|
||||||
|
if (childRows.filter(':first').is(':visible')===true) { |
||||||
|
currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png'); |
||||||
|
currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png'); |
||||||
|
rows.filter("[id^=row_"+id+"]").hide(); |
||||||
|
} else { //We are SHOWING
|
||||||
|
//All sub images
|
||||||
|
var childImages = childRows.find("img"); |
||||||
|
var childImg = childImages.filter("[id^=img]"); |
||||||
|
var childArr = childImages.filter("[id^=arr]"); |
||||||
|
|
||||||
|
currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
|
||||||
|
currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
|
||||||
|
childImg.attr('src','ftv2folderclosed.png'); //children closed
|
||||||
|
childArr.attr('src','ftv2pnode.png'); //children closed
|
||||||
|
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'); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
$(document).ready(function() { |
||||||
|
$('.code,.codeRef').each(function() { |
||||||
|
$(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); |
||||||
|
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); |
||||||
|
}); |
||||||
|
}); |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 453 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 597 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 388 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 86 B |
@ -0,0 +1,92 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/> |
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/> |
||||||
|
<title>Hak Cipta Pustaka GPU-Cuda Untuk Poisson Solver: Halaman Utama</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/search.js"></script> |
||||||
|
<script type="text/javascript"> |
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); }); |
||||||
|
</script> |
||||||
|
<script type="text/x-mathjax-config"> |
||||||
|
MathJax.Hub.Config({ |
||||||
|
extensions: ["tex2jax.js"], |
||||||
|
jax: ["input/TeX","output/HTML-CSS"], |
||||||
|
}); |
||||||
|
</script><script src="http://cdn.mathjax.org/mathjax/latest/MathJax.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 style="height: 56px;"> |
||||||
|
<td style="padding-left: 0.5em;"> |
||||||
|
<div id="projectname">Hak Cipta Pustaka GPU-Cuda Untuk Poisson Solver |
||||||
|
</div> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</tbody> |
||||||
|
</table> |
||||||
|
</div> |
||||||
|
<!-- end header part --> |
||||||
|
<!-- Dibangkitkan oleh Doxygen 1.8.5 --> |
||||||
|
<script type="text/javascript"> |
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Cari'); |
||||||
|
</script> |
||||||
|
<div id="navrow1" class="tabs"> |
||||||
|
<ul class="tablist"> |
||||||
|
<li class="current"><a href="index.html"><span>Halaman Utama</span></a></li> |
||||||
|
<li> |
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive"> |
||||||
|
<span class="left"> |
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png" |
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()" |
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()" |
||||||
|
alt=""/> |
||||||
|
<input type="text" id="MSearchField" value="Cari" 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="search/close.png" alt=""/></a> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</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"> |
||||||
|
<iframe src="javascript:void(0)" frameborder="0" |
||||||
|
name="MSearchResults" id="MSearchResults"> |
||||||
|
</iframe> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="header"> |
||||||
|
<div class="headertitle"> |
||||||
|
<div class="title">Hak Cipta Pustaka GPU-Cuda Untuk Poisson Solver Dokumentasi</div> </div> |
||||||
|
</div><!--header--> |
||||||
|
<div class="contents"> |
||||||
|
</div><!-- contents --> |
||||||
|
<!-- start footer part --> |
||||||
|
<hr class="footer"/><address class="footer"><small> |
||||||
|
Dibangkitkan oleh  <a href="http://www.doxygen.org/index.html"> |
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/> |
||||||
|
</a> 1.8.5 |
||||||
|
</small></address> |
||||||
|
</body> |
||||||
|
</html> |
After Width: | Height: | Size: 153 B |
After Width: | Height: | Size: 108 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 123 B |
After Width: | Height: | Size: 273 B |
After Width: | Height: | Size: 563 B |
@ -0,0 +1,12 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||||
|
<html><head><title></title> |
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
||||||
|
<link rel="stylesheet" type="text/css" href="search.css"/> |
||||||
|
<script type="text/javascript" src="search.js"></script> |
||||||
|
</head> |
||||||
|
<body class="SRPage"> |
||||||
|
<div id="SRIndex"> |
||||||
|
<div class="SRStatus" id="NoMatches">Tidak Ditemukan</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,271 @@ |
|||||||
|
/*---------------- Search Box */ |
||||||
|
|
||||||
|
#FSearchBox { |
||||||
|
float: left; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchBox { |
||||||
|
white-space : nowrap; |
||||||
|
position: absolute; |
||||||
|
float: none; |
||||||
|
display: inline; |
||||||
|
margin-top: 8px; |
||||||
|
right: 0px; |
||||||
|
width: 170px; |
||||||
|
z-index: 102; |
||||||
|
background-color: white; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchBox .left |
||||||
|
{ |
||||||
|
display:block; |
||||||
|
position:absolute; |
||||||
|
left:10px; |
||||||
|
width:20px; |
||||||
|
height:19px; |
||||||
|
background:url('search_l.png') no-repeat; |
||||||
|
background-position:right; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchSelect { |
||||||
|
display:block; |
||||||
|
position:absolute; |
||||||
|
width:20px; |
||||||
|
height:19px; |
||||||
|
} |
||||||
|
|
||||||
|
.left #MSearchSelect { |
||||||
|
left:4px; |
||||||
|
} |
||||||
|
|
||||||
|
.right #MSearchSelect { |
||||||
|
right:5px; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchField { |
||||||
|
display:block; |
||||||
|
position:absolute; |
||||||
|
height:19px; |
||||||
|
background:url('search_m.png') repeat-x; |
||||||
|
border:none; |
||||||
|
width:111px; |
||||||
|
margin-left:20px; |
||||||
|
padding-left:4px; |
||||||
|
color: #909090; |
||||||
|
outline: none; |
||||||
|
font: 9pt Arial, Verdana, sans-serif; |
||||||
|
} |
||||||
|
|
||||||
|
#FSearchBox #MSearchField { |
||||||
|
margin-left:15px; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchBox .right { |
||||||
|
display:block; |
||||||
|
position:absolute; |
||||||
|
right:10px; |
||||||
|
top:0px; |
||||||
|
width:20px; |
||||||
|
height:19px; |
||||||
|
background:url('search_r.png') no-repeat; |
||||||
|
background-position:left; |
||||||
|
} |
||||||
|
|
||||||
|
#MSearchClose { |
||||||
|
display: none; |
||||||
|
position: absolute; |
||||||
|
top: 4px; |
||||||
|
background : none; |
||||||
|
border: none; |
||||||
|
margin: 0px 4px 0px 0px; |
||||||
|
padding: 0px 0px; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
|
||||||
|
.left #MSearchClose { |
||||||
|
left: 6px; |
||||||
|
} |
||||||
|
|
||||||
|
.right #MSearchClose { |
||||||
|
right: 2px; |
||||||
|
} |
||||||
|
|
||||||
|
.MSearchBoxActive #MSearchField { |
||||||
|
color: #000000; |
||||||
|
} |
||||||
|
|
||||||
|
/*---------------- Search filter selection */ |
||||||
|
|
||||||
|
#MSearchSelectWindow { |
||||||
|
display: none; |
||||||
|
position: absolute; |
||||||
|
left: 0; top: 0; |
||||||
|
border: 1px solid #90A5CE; |
||||||
|
background-color: #F9FAFC; |
||||||
|
z-index: 1; |
||||||
|
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 Arial, Verdana, sans-serif; |
||||||
|
padding-left: 2px; |
||||||
|
padding-right: 12px; |
||||||
|
border: 0px; |
||||||
|
} |
||||||
|
|
||||||
|
span.SelectionMark { |
||||||
|
margin-right: 4px; |
||||||
|
font-family: monospace; |
||||||
|
outline-style: none; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
a.SelectItem { |
||||||
|
display: block; |
||||||
|
outline-style: none; |
||||||
|
color: #000000; |
||||||
|
text-decoration: none; |
||||||
|
padding-left: 6px; |
||||||
|
padding-right: 12px; |
||||||
|
} |
||||||
|
|
||||||
|
a.SelectItem:focus, |
||||||
|
a.SelectItem:active { |
||||||
|
color: #000000; |
||||||
|
outline-style: none; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
a.SelectItem:hover { |
||||||
|
color: #FFFFFF; |
||||||
|
background-color: #3D578C; |
||||||
|
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 #000; |
||||||
|
background-color: #EEF1F7; |
||||||
|
} |
||||||
|
|
||||||
|
/* ----------------------------------- */ |
||||||
|
|
||||||
|
|
||||||
|
#SRIndex { |
||||||
|
clear:both; |
||||||
|
padding-bottom: 15px; |
||||||
|
} |
||||||
|
|
||||||
|
.SREntry { |
||||||
|
font-size: 10pt; |
||||||
|
padding-left: 1ex; |
||||||
|
} |
||||||
|
|
||||||
|
.SRPage .SREntry { |
||||||
|
font-size: 8pt; |
||||||
|
padding: 1px 5px; |
||||||
|
} |
||||||
|
|
||||||
|
body.SRPage { |
||||||
|
margin: 5px 2px; |
||||||
|
} |
||||||
|
|
||||||
|
.SRChildren { |
||||||
|
padding-left: 3ex; padding-bottom: .5em |
||||||
|
} |
||||||
|
|
||||||
|
.SRPage .SRChildren { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.SRSymbol { |
||||||
|
font-weight: bold; |
||||||
|
color: #425E97; |
||||||
|
font-family: Arial, Verdana, sans-serif; |
||||||
|
text-decoration: none; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
|
||||||
|
a.SRScope { |
||||||
|
display: block; |
||||||
|
color: #425E97; |
||||||
|
font-family: Arial, Verdana, sans-serif; |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
.SRPage .SRStatus { |
||||||
|
padding: 2px 5px; |
||||||
|
font-size: 8pt; |
||||||
|
font-style: italic; |
||||||
|
} |
||||||
|
|
||||||
|
.SRResult { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
DIV.searchresults { |
||||||
|
margin-left: 10px; |
||||||
|
margin-right: 10px; |
||||||
|
} |
||||||
|
|
||||||
|
/*---------------- External search page results */ |
||||||
|
|
||||||
|
.searchresult { |
||||||
|
background-color: #F0F3F8; |
||||||
|
} |
||||||
|
|
||||||
|
.pages b { |
||||||
|
color: white; |
||||||
|
padding: 5px 5px 3px 5px; |
||||||
|
background-image: url("../tab_a.png"); |
||||||
|
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; |
||||||
|
} |
||||||
|
|
@ -0,0 +1,793 @@ |
|||||||
|
// Search script generated by doxygen
|
||||||
|
// Copyright (C) 2009 by Dimitri van Heesch.
|
||||||
|
|
||||||
|
// The code in this file is loosly based on main.js, part of Natural Docs,
|
||||||
|
// which is Copyright (C) 2003-2008 Greg Valure
|
||||||
|
// Natural Docs is licensed under the GPL.
|
||||||
|
|
||||||
|
var indexSectionsWithContent = |
||||||
|
{ |
||||||
|
}; |
||||||
|
|
||||||
|
var indexSectionNames = |
||||||
|
{ |
||||||
|
}; |
||||||
|
|
||||||
|
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]/)) |
||||||
|
{ |
||||||
|
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; |
||||||
|
} |
||||||
|
|
||||||
|
/* 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, inFrame, label) |
||||||
|
{ |
||||||
|
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } |
||||||
|
|
||||||
|
// ---------- 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.insideFrame = inFrame; |
||||||
|
this.searchLabel = label; |
||||||
|
|
||||||
|
// ----------- 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(); |
||||||
|
|
||||||
|
if (this.insideFrame) |
||||||
|
{ |
||||||
|
var left = getXPos(searchField); |
||||||
|
var top = getYPos(searchField); |
||||||
|
left += searchField.offsetWidth + 6; |
||||||
|
top += searchField.offsetHeight; |
||||||
|
|
||||||
|
// show search selection popup
|
||||||
|
searchSelectWindow.style.display='block'; |
||||||
|
left -= searchSelectWindow.offsetWidth; |
||||||
|
searchSelectWindow.style.left = left + 'px'; |
||||||
|
searchSelectWindow.style.top = top + 'px'; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
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.name +".CloseSelectionWindow()", |
||||||
|
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 if (window.frames.MSearchResults.searchResults) |
||||||
|
{ |
||||||
|
var elem = window.frames.MSearchResults.searchResults.NavNext(0); |
||||||
|
if (elem) elem.focus(); |
||||||
|
} |
||||||
|
} |
||||||
|
else if (e.keyCode==27) // Escape out of the search field
|
||||||
|
{ |
||||||
|
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.name + '.Search()', |
||||||
|
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) |
||||||
|
{ |
||||||
|
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 hexCode; |
||||||
|
if (code<16)
|
||||||
|
{ |
||||||
|
hexCode="0"+code.toString(16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{ |
||||||
|
hexCode=code.toString(16); |
||||||
|
} |
||||||
|
|
||||||
|
var resultsPage; |
||||||
|
var resultsPageWithSearch; |
||||||
|
var hasResultsPage; |
||||||
|
|
||||||
|
if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') |
||||||
|
{ |
||||||
|
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; |
||||||
|
resultsPageWithSearch = resultsPage+'?'+escape(searchValue); |
||||||
|
hasResultsPage = true; |
||||||
|
} |
||||||
|
else // nothing available for this search term
|
||||||
|
{ |
||||||
|
resultsPage = this.resultsPath + '/nomatches.html'; |
||||||
|
resultsPageWithSearch = resultsPage; |
||||||
|
hasResultsPage = false; |
||||||
|
} |
||||||
|
|
||||||
|
window.frames.MSearchResults.location = resultsPageWithSearch;
|
||||||
|
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); |
||||||
|
|
||||||
|
if (domPopupSearchResultsWindow.style.display!='block') |
||||||
|
{ |
||||||
|
var domSearchBox = this.DOMSearchBox(); |
||||||
|
this.DOMSearchClose().style.display = 'inline'; |
||||||
|
if (this.insideFrame) |
||||||
|
{ |
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults(); |
||||||
|
domPopupSearchResultsWindow.style.position = 'relative'; |
||||||
|
domPopupSearchResultsWindow.style.display = 'block'; |
||||||
|
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
|
||||||
|
domPopupSearchResultsWindow.style.width = width + 'px'; |
||||||
|
domPopupSearchResults.style.width = width + 'px'; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
var domPopupSearchResults = this.DOMPopupSearchResults(); |
||||||
|
var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
|
||||||
|
var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
|
||||||
|
domPopupSearchResultsWindow.style.display = 'block'; |
||||||
|
left -= domPopupSearchResults.offsetWidth; |
||||||
|
domPopupSearchResultsWindow.style.top = top + 'px'; |
||||||
|
domPopupSearchResultsWindow.style.left = left + 'px'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
this.lastSearchValue = searchValue; |
||||||
|
this.lastResultsPage = resultsPage; |
||||||
|
} |
||||||
|
|
||||||
|
// -------- 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'; |
||||||
|
|
||||||
|
var searchField = this.DOMSearchField(); |
||||||
|
|
||||||
|
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
|
||||||
|
{
|
||||||
|
searchField.value = '';
|
||||||
|
this.searchActive = true; |
||||||
|
} |
||||||
|
} |
||||||
|
else if (!isActive) // directly remove the panel
|
||||||
|
{ |
||||||
|
this.DOMSearchBox().className = 'MSearchBoxInactive'; |
||||||
|
this.DOMSearchField().value = this.searchLabel; |
||||||
|
this.searchActive = false; |
||||||
|
this.lastSearchValue = '' |
||||||
|
this.lastResultsPage = ''; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// 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 == 'DIV' && element.className == 'SRChildren') |
||||||
|
{ |
||||||
|
return element; |
||||||
|
} |
||||||
|
|
||||||
|
if (element.nodeName == '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
|
||||||
|
{ |
||||||
|
parent.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
|
||||||
|
{ |
||||||
|
parent.searchBox.CloseResultsWindow(); |
||||||
|
parent.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
|
||||||
|
{ |
||||||
|
parent.searchBox.CloseResultsWindow(); |
||||||
|
parent.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() |
||||||
|
{ |
||||||
|
var results = document.getElementById("SRResults"); |
||||||
|
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',searchData[e][1][1][0]); |
||||||
|
if (searchData[e][1][1][1]) |
||||||
|
{ |
||||||
|
srLink.setAttribute('target','_parent'); |
||||||
|
} |
||||||
|
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',searchData[e][1][c+1][0]); |
||||||
|
if (searchData[e][1][c+1][1]) |
||||||
|
{ |
||||||
|
srChild.setAttribute('target','_parent'); |
||||||
|
} |
||||||
|
srChild.innerHTML = searchData[e][1][c+1][2]; |
||||||
|
srChildren.appendChild(srChild); |
||||||
|
} |
||||||
|
srEntry.appendChild(srChildren); |
||||||
|
} |
||||||
|
srResult.appendChild(srEntry); |
||||||
|
results.appendChild(srResult); |
||||||
|
} |
||||||
|
} |
||||||
|
|
After Width: | Height: | Size: 604 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 853 B |
After Width: | Height: | Size: 845 B |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 177 B |
After Width: | Height: | Size: 184 B |
@ -0,0 +1,60 @@ |
|||||||
|
.tabs, .tabs2, .tabs3 { |
||||||
|
background-image: url('tab_b.png'); |
||||||
|
width: 100%; |
||||||
|
z-index: 101; |
||||||
|
font-size: 13px; |
||||||
|
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; |
||||||
|
} |
||||||
|
|
||||||
|
.tabs2 { |
||||||
|
font-size: 10px; |
||||||
|
} |
||||||
|
.tabs3 { |
||||||
|
font-size: 9px; |
||||||
|
} |
||||||
|
|
||||||
|
.tablist { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
display: table; |
||||||
|
} |
||||||
|
|
||||||
|
.tablist li { |
||||||
|
float: left; |
||||||
|
display: table-cell; |
||||||
|
background-image: url('tab_b.png'); |
||||||
|
line-height: 36px; |
||||||
|
list-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
.tablist a { |
||||||
|
display: block; |
||||||
|
padding: 0 20px; |
||||||
|
font-weight: bold; |
||||||
|
background-image:url('tab_s.png'); |
||||||
|
background-repeat:no-repeat; |
||||||
|
background-position:right; |
||||||
|
color: #283A5D; |
||||||
|
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); |
||||||
|
text-decoration: none; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
|
||||||
|
.tabs3 .tablist a { |
||||||
|
padding: 0 10px; |
||||||
|
} |
||||||
|
|
||||||
|
.tablist a:hover { |
||||||
|
background-image: url('tab_h.png'); |
||||||
|
background-repeat:repeat-x; |
||||||
|
color: #fff; |
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
.tablist li.current a { |
||||||
|
background-image: url('tab_a.png'); |
||||||
|
background-repeat:repeat-x; |
||||||
|
color: #fff; |
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
all: refman.pdf |
||||||
|
|
||||||
|
pdf: refman.pdf |
||||||
|
|
||||||
|
refman.pdf: clean refman.tex |
||||||
|
pdflatex refman
|
||||||
|
makeindex refman.idx
|
||||||
|
pdflatex refman
|
||||||
|
latex_count=5 ; \
|
||||||
|
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
|
||||||
|
do \
|
||||||
|
echo "Rerunning latex...." ;\
|
||||||
|
pdflatex refman ;\
|
||||||
|
latex_count=`expr $$latex_count - 1` ;\
|
||||||
|
done
|
||||||
|
makeindex refman.idx
|
||||||
|
pdflatex refman
|
||||||
|
|
||||||
|
|
||||||
|
clean: |
||||||
|
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
|
@ -0,0 +1,464 @@ |
|||||||
|
\NeedsTeXFormat{LaTeX2e} |
||||||
|
\ProvidesPackage{doxygen} |
||||||
|
|
||||||
|
% Packages used by this style file |
||||||
|
\RequirePackage{alltt} |
||||||
|
\RequirePackage{array} |
||||||
|
\RequirePackage{calc} |
||||||
|
\RequirePackage{float} |
||||||
|
\RequirePackage{ifthen} |
||||||
|
\RequirePackage{verbatim} |
||||||
|
\RequirePackage[table]{xcolor} |
||||||
|
\RequirePackage{xtab} |
||||||
|
|
||||||
|
%---------- 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{\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% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @code ... @endcode |
||||||
|
\newenvironment{DoxyCode}{% |
||||||
|
\par% |
||||||
|
\scriptsize% |
||||||
|
\begin{alltt}% |
||||||
|
}{% |
||||||
|
\end{alltt}% |
||||||
|
\normalsize% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @example, @include, @includelineno and @dontinclude |
||||||
|
\newenvironment{DoxyCodeInclude}{% |
||||||
|
\DoxyCode% |
||||||
|
}{% |
||||||
|
\endDoxyCode% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @verbatim ... @endverbatim |
||||||
|
\newenvironment{DoxyVerb}{% |
||||||
|
\footnotesize% |
||||||
|
\verbatim% |
||||||
|
}{% |
||||||
|
\endverbatim% |
||||||
|
\normalsize% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @verbinclude |
||||||
|
\newenvironment{DoxyVerbInclude}{% |
||||||
|
\DoxyVerb% |
||||||
|
}{% |
||||||
|
\endDoxyVerb% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by numbered lists (using '-#' or <ol> ... </ol>) |
||||||
|
\newenvironment{DoxyEnumerate}{% |
||||||
|
\enumerate% |
||||||
|
}{% |
||||||
|
\endenumerate% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>) |
||||||
|
\newenvironment{DoxyItemize}{% |
||||||
|
\itemize% |
||||||
|
}{% |
||||||
|
\enditemize% |
||||||
|
} |
||||||
|
|
||||||
|
% 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]% |
||||||
|
\begin{center}% |
||||||
|
}{% |
||||||
|
\end{center}% |
||||||
|
\end{figure}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc |
||||||
|
% (only if no caption is specified) |
||||||
|
\newenvironment{DoxyImageNoCaption}{% |
||||||
|
}{% |
||||||
|
} |
||||||
|
|
||||||
|
% 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 @internal |
||||||
|
\newenvironment{DoxyInternal}[1]{% |
||||||
|
\paragraph*{#1}% |
||||||
|
}{% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by @par and @paragraph |
||||||
|
\newenvironment{DoxyParagraph}[1]{% |
||||||
|
\begin{list}{}{% |
||||||
|
\settowidth{\labelwidth}{40pt}% |
||||||
|
\setlength{\leftmargin}{\labelwidth}% |
||||||
|
\setlength{\parsep}{0pt}% |
||||||
|
\setlength{\itemsep}{-4pt}% |
||||||
|
\renewcommand{\makelabel}{\entrylabel}% |
||||||
|
}% |
||||||
|
\item[#1]% |
||||||
|
}{% |
||||||
|
\end{list}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by parameter lists |
||||||
|
\newenvironment{DoxyParams}[2][]{% |
||||||
|
\par% |
||||||
|
\tabletail{\hline}% |
||||||
|
\tablelasttail{\hline}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\tablehead{}% |
||||||
|
\ifthenelse{\equal{#1}{}}% |
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% |
||||||
|
p{0.805\textwidth}|}}% |
||||||
|
{\ifthenelse{\equal{#1}{1}}% |
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\centering}p{0.10\textwidth}|% |
||||||
|
>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% |
||||||
|
p{0.678\textwidth}|}}% |
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\centering}p{0.10\textwidth}|% |
||||||
|
>{\centering\hspace{0pt}}p{0.15\textwidth}|% |
||||||
|
>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% |
||||||
|
p{0.501\textwidth}|}}% |
||||||
|
}\hline% |
||||||
|
}{% |
||||||
|
\end{xtabular}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\vspace{6pt}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used for fields of simple structs |
||||||
|
\newenvironment{DoxyFields}[1]{% |
||||||
|
\par% |
||||||
|
\tabletail{\hline}% |
||||||
|
\tablelasttail{\hline}% |
||||||
|
\tablehead{}% |
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% |
||||||
|
p{0.15\textwidth}|% |
||||||
|
p{0.63\textwidth}|}% |
||||||
|
\hline% |
||||||
|
}{% |
||||||
|
\end{xtabular}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\vspace{6pt}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used for parameters within a detailed function description |
||||||
|
\newenvironment{DoxyParamCaption}{% |
||||||
|
\renewcommand{\item}[2][]{##1 {\em ##2}}% |
||||||
|
}{% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by return value lists |
||||||
|
\newenvironment{DoxyRetVals}[1]{% |
||||||
|
\par% |
||||||
|
\tabletail{\hline}% |
||||||
|
\tablelasttail{\hline}% |
||||||
|
\tablehead{}% |
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% |
||||||
|
p{0.705\textwidth}|}% |
||||||
|
\hline% |
||||||
|
}{% |
||||||
|
\end{xtabular}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\vspace{6pt}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by exception lists |
||||||
|
\newenvironment{DoxyExceptions}[1]{% |
||||||
|
\par% |
||||||
|
\tabletail{\hline}% |
||||||
|
\tablelasttail{\hline}% |
||||||
|
\tablehead{}% |
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% |
||||||
|
p{0.705\textwidth}|}% |
||||||
|
\hline% |
||||||
|
}{% |
||||||
|
\end{xtabular}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\vspace{6pt}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by template parameter lists |
||||||
|
\newenvironment{DoxyTemplParams}[1]{% |
||||||
|
\par% |
||||||
|
\tabletail{\hline}% |
||||||
|
\tablelasttail{\hline}% |
||||||
|
\tablehead{}% |
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}% |
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% |
||||||
|
p{0.705\textwidth}|}% |
||||||
|
\hline% |
||||||
|
}{% |
||||||
|
\end{xtabular}% |
||||||
|
\tablefirsthead{}% |
||||||
|
\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}{40pt}% |
||||||
|
\setlength{\leftmargin}{\labelwidth}% |
||||||
|
\setlength{\parsep}{0pt}% |
||||||
|
\setlength{\itemsep}{-4pt}% |
||||||
|
\renewcommand{\makelabel}{\entrylabel}% |
||||||
|
} |
||||||
|
}{% |
||||||
|
\end{list}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used by tables |
||||||
|
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% |
||||||
|
\newlength{\tmplength}% |
||||||
|
\newenvironment{TabularC}[1]% |
||||||
|
{% |
||||||
|
\setlength{\tmplength}% |
||||||
|
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}% |
||||||
|
\par\begin{xtabular*}{\linewidth}% |
||||||
|
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}% |
||||||
|
}% |
||||||
|
{\end{xtabular*}\par}% |
||||||
|
|
||||||
|
% Used for member group headers |
||||||
|
\newenvironment{Indent}{% |
||||||
|
\begin{list}{}{% |
||||||
|
\setlength{\leftmargin}{0.5cm}% |
||||||
|
}% |
||||||
|
\item[]\ignorespaces% |
||||||
|
}{% |
||||||
|
\unskip% |
||||||
|
\end{list}% |
||||||
|
} |
||||||
|
|
||||||
|
% Used when hyperlinks are turned off |
||||||
|
\newcommand{\doxyref}[3]{% |
||||||
|
\textbf{#1} (\textnormal{#2}\,\pageref{#3})% |
||||||
|
} |
||||||
|
|
||||||
|
% 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{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} |
@ -0,0 +1,143 @@ |
|||||||
|
\documentclass[twoside]{book} |
||||||
|
|
||||||
|
% Packages required by doxygen |
||||||
|
\usepackage{calc} |
||||||
|
\usepackage{doxygen} |
||||||
|
\usepackage{graphicx} |
||||||
|
\usepackage[utf8]{inputenc} |
||||||
|
\usepackage{makeidx} |
||||||
|
\usepackage{multicol} |
||||||
|
\usepackage{multirow} |
||||||
|
\usepackage{textcomp} |
||||||
|
\usepackage[table]{xcolor} |
||||||
|
|
||||||
|
% NLS support packages |
||||||
|
\usepackage[bahasa]{babel} |
||||||
|
% Font selection |
||||||
|
\usepackage[T1]{fontenc} |
||||||
|
\usepackage{mathptmx} |
||||||
|
\usepackage[scaled=.90]{helvet} |
||||||
|
\usepackage{courier} |
||||||
|
\usepackage{amssymb} |
||||||
|
\usepackage{sectsty} |
||||||
|
\renewcommand{\familydefault}{\sfdefault} |
||||||
|
\allsectionsfont{% |
||||||
|
\fontseries{bc}\selectfont% |
||||||
|
\color{darkgray}% |
||||||
|
} |
||||||
|
\renewcommand{\DoxyLabelFont}{% |
||||||
|
\fontseries{bc}\selectfont% |
||||||
|
\color{darkgray}% |
||||||
|
} |
||||||
|
|
||||||
|
% Page & text layout |
||||||
|
\usepackage{geometry} |
||||||
|
\geometry{% |
||||||
|
a4paper,% |
||||||
|
top=2.5cm,% |
||||||
|
bottom=2.5cm,% |
||||||
|
left=2.5cm,% |
||||||
|
right=2.5cm% |
||||||
|
} |
||||||
|
\tolerance=750 |
||||||
|
\hfuzz=15pt |
||||||
|
\hbadness=750 |
||||||
|
\setlength{\emergencystretch}{15pt} |
||||||
|
\setlength{\parindent}{0cm} |
||||||
|
\setlength{\parskip}{0.2cm} |
||||||
|
\makeatletter |
||||||
|
\renewcommand{\paragraph}{% |
||||||
|
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% |
||||||
|
\normalfont\normalsize\bfseries\SS@parafont% |
||||||
|
}% |
||||||
|
} |
||||||
|
\renewcommand{\subparagraph}{% |
||||||
|
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% |
||||||
|
\normalfont\normalsize\bfseries\SS@subparafont% |
||||||
|
}% |
||||||
|
} |
||||||
|
\makeatother |
||||||
|
|
||||||
|
% Headers & footers |
||||||
|
\usepackage{fancyhdr} |
||||||
|
\pagestyle{fancyplain} |
||||||
|
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} |
||||||
|
\fancyhead[CE]{\fancyplain{}{}} |
||||||
|
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} |
||||||
|
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} |
||||||
|
\fancyhead[CO]{\fancyplain{}{}} |
||||||
|
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} |
||||||
|
\fancyfoot[LE]{\fancyplain{}{}} |
||||||
|
\fancyfoot[CE]{\fancyplain{}{}} |
||||||
|
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Dibangkitkan pada tanggal Kamis 8 November 2018 15\-:44\-:16 untuk Hak Cipta Pustaka G\-P\-U-\/\-Cuda Untuk Poisson Solver oleh Doxygen }} |
||||||
|
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Dibangkitkan pada tanggal Kamis 8 November 2018 15\-:44\-:16 untuk Hak Cipta Pustaka G\-P\-U-\/\-Cuda Untuk Poisson Solver oleh Doxygen }} |
||||||
|
\fancyfoot[CO]{\fancyplain{}{}} |
||||||
|
\fancyfoot[RO]{\fancyplain{}{}} |
||||||
|
\renewcommand{\footrulewidth}{0.4pt} |
||||||
|
\renewcommand{\chaptermark}[1]{% |
||||||
|
\markboth{#1}{}% |
||||||
|
} |
||||||
|
\renewcommand{\sectionmark}[1]{% |
||||||
|
\markright{\thesection\ #1}% |
||||||
|
} |
||||||
|
|
||||||
|
% Indices & bibliography |
||||||
|
\usepackage{natbib} |
||||||
|
\usepackage[titles]{tocloft} |
||||||
|
\setcounter{tocdepth}{3} |
||||||
|
\setcounter{secnumdepth}{5} |
||||||
|
\makeindex |
||||||
|
|
||||||
|
% Hyperlinks (required, but should be loaded last) |
||||||
|
\usepackage{ifpdf} |
||||||
|
\ifpdf |
||||||
|
\usepackage[pdftex,pagebackref=true]{hyperref} |
||||||
|
\else |
||||||
|
\usepackage[ps2pdf,pagebackref=true]{hyperref} |
||||||
|
\fi |
||||||
|
\hypersetup{% |
||||||
|
colorlinks=true,% |
||||||
|
linkcolor=blue,% |
||||||
|
citecolor=blue,% |
||||||
|
unicode% |
||||||
|
} |
||||||
|
|
||||||
|
% Custom commands |
||||||
|
\newcommand{\clearemptydoublepage}{% |
||||||
|
\newpage{\pagestyle{empty}\cleardoublepage}% |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
%===== C O N T E N T S ===== |
||||||
|
|
||||||
|
\begin{document} |
||||||
|
|
||||||
|
% Titlepage & ToC |
||||||
|
\hypersetup{pageanchor=false} |
||||||
|
\pagenumbering{roman} |
||||||
|
\begin{titlepage} |
||||||
|
\vspace*{7cm} |
||||||
|
\begin{center}% |
||||||
|
{\Large Hak Cipta Pustaka G\-P\-U-\/\-Cuda Untuk Poisson Solver }\\ |
||||||
|
\vspace*{1cm} |
||||||
|
{\large Dibangkitkan oleh Doxygen 1.8.5}\\ |
||||||
|
\vspace*{0.5cm} |
||||||
|
{\small Kamis 8 November 2018 15:44:16}\\ |
||||||
|
\end{center} |
||||||
|
\end{titlepage} |
||||||
|
\clearemptydoublepage |
||||||
|
\tableofcontents |
||||||
|
\clearemptydoublepage |
||||||
|
\pagenumbering{arabic} |
||||||
|
\hypersetup{pageanchor=true} |
||||||
|
|
||||||
|
%--- Begin generated contents --- |
||||||
|
%--- End generated contents --- |
||||||
|
|
||||||
|
% Index |
||||||
|
\newpage |
||||||
|
\phantomsection |
||||||
|
\addcontentsline{toc}{part}{Indeks} |
||||||
|
\printindex |
||||||
|
|
||||||
|
\end{document} |