Files
wiki/dst/QScript/Contributing/API/Structs/QModuleDefFunc.html
2023-09-25 16:50:17 +02:00

444 lines
15 KiB
HTML

<!DOCTYPE html>
<title>SourceBox Wiki</title>
<script>
documentlist = ['/wiki/index.html', '/wiki/QScript/Introduction.html', '/wiki/QScript/Private_Members.html', '/wiki/QScript/Contributing/Contributing.html', '/wiki/QScript/Contributing/API/qscript.html', '/wiki/QScript/Contributing/API/Structs/QCFunc.html', '/wiki/QScript/Contributing/API/Structs/QModuleDefFunc.html', '/wiki/QScript/Contributing/API/Structs/QReturn.html', '/wiki/QScript/Contributing/API/Structs/QScriptArgs.html', '/wiki/QScript/Contributing/API/Structs/QScriptCallback.html', '/wiki/QScript/Contributing/API/Structs/QScriptClass.html', '/wiki/QScript/Contributing/API/Structs/QScriptClassCreator.html', '/wiki/QScript/Contributing/API/Structs/QType.html', '/wiki/QScript/Contributing/API/Structs/QValue.html', '/wiki/QScript/Lua/Classes.html', '/wiki/QScript/Lua/Exports.html', '/wiki/QScript/Lua/Imports.html', '/wiki/QScript/Lua/Intro.html', '/wiki/QScript/Lua/Objects.html', '/wiki/QScript/Squirrel/Exports_And_Imports.html', '/wiki/QScript/Squirrel/Intro.html', '/wiki/QScript/Tutorial/Chapter1.html', '/wiki/QScript/Tutorial/Chapter2.html'];
namelist = ['Wiki Intro', 'QScript Intro', 'Private Members', 'Contributing', 'QScript API', 'QCFunc', 'QModuleDefFunc', 'QReturn', 'QScriptArgs', 'QScriptCallback', 'QScriptClass', 'QScriptClassCreator', 'QType', 'QValue', 'Lua Classes', 'Lua Exports', 'Lua Imports', 'Lua Intro', 'Lua Objects', 'Squirrel Exports and Imports', 'Squirrel Intro', 'QScript Tutorial Page 1: Mods', 'QScript Tutorial Page 2: Getting to work'];
function toggleTree(element)
{
nested = element.parentNode.childNodes[3];
if(nested.className.indexOf("active",0) != -1)
{
nested.className = "sidebar nested";
element.parentNode.childNodes[0].innerHTML = "+";
}
else
{
nested.className = "sidebar nested active";
element.parentNode.childNodes[0].innerHTML = "-";
}
if(element.className.indexOf("active",0) != -1)
{
element.className = "spanactive"
}
else
{
element.className = "spanactive active"
}
}
function Press(element)
{
if(element.className.indexOf("active",0) != -1)
{
element.className = "spanactive active"
}
else
{
element.className = "spanactive"
}
}
function unPress(element)
{
if(element.className.indexOf("active",0) != -1)
{
element.className = "active"
}
else
{
element.className = ""
}
}
function updateSearch()
{
searchtext = document.getElementById("searchbox").value.toLowerCase();
var res = [];
var searchresults = document.getElementById("searchresults")
searchresults.innerHTML = ""
if(searchtext === "")
{
document.getElementById("filetree").style.display = "block"
return;
}
else
{
document.getElementById("filetree").style.display = "none"
}
for (var i = 0; i < namelist.length; i++)
{
if(namelist[i].toLowerCase().indexOf(searchtext) == -1) continue;
var searchelement = document.createElement("li");
searchelement.className = "sidebar"
var link = document.createElement("a");
searchelement.appendChild(link);
link.setAttribute("href", documentlist[i]);
link.innerHTML = namelist[i];
searchresults.appendChild(searchelement);
}
}
</script>
<link rel="stylesheet" href="/wiki/default.css">
<style>
hr
{
color: #463c2a;
}
pre code
{
margin-left:16px;
background-color: #473c29;
border-color: #3b3221;
border-style:solid;
border-width:1px;
padding: 4px;
display:flow-root;
}
code {
background-color: #00000040;
border-color: #00000040;
border-style:solid;
border-width:1px;
}
.nested
{
display: none;
}
ul.sidebar.active
{
display: block !important;
}
ul.sidebar
{
padding-left: 4px;
}
li.sidebar ::marker
{
color:#00000000;
display:none;
}
li.sidebar
{
list-style-type: none !important;
background-color:#4A3F2C;
border-bottom: #312A1D 1px solid;
border-right: #312A1D 1px solid;
border-left: 1px solid #8d8881;
border-top: 1px solid #8d8881;
padding-left: 2px;
padding-bottom:2px;
padding-top:2px;
margin-right:2px;
}
.buttoncontainer, .sidebar .buttoncontainer
{
border: black 1px solid;
border-left-color: white;
border-top-color: white;
display:inline-flex;
}
.sidebar span
{
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
z-index: 1;
cursor: pointer;
display: inline-block;
border: black 1px solid;
border-left-color: white;
border-top-color: white;
margin: 2px;
}
.sidebar span span
{
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
z-index: 0;
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
margin: 0px;
padding-left: 4px;
padding-right: 4px;
}
.spanactive
{
border-left-color: black;
border-top-color: black;
border-right-color: white;
border-bottom-color: white;
}
span .spanactive
{
border: #463c2a 1px solid;
border-right-color: #8d8881;
border-bottom-color: #8d8881;
}
.liicon
{
display:inline-block;
width:12px;
height:100%;
font-family: monospace;
font-size: 16px;
color: white;
}
nav
{
background-color: #63553b;
height: 100%;
}
a
{
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
padding-left: 4px;
padding-right: 4px;
padding-top:2px;
padding-bottom:2px;
}
a:visited
{
border: #463c2a 1px solid;
background-color: #63553b;
color: white;
border-left-color: #8d8881;
border-top-color: #8d8881;
padding-left: 4px;
padding-right: 4px;
padding-top:2px;
padding-bottom:2px;
}
body
{
background-color: #63553b;
color:white;
font-family:"Tahoma", sans-serif;
font-size:9pt;
}
.searchbox
{
background-color: #473c29;
border: #403624 1px solid;
border-bottom-color: #837f7a;
border-right-color: #837f7a;
color: white;
padding: 0px;
width:196px;
height:16px;
position: relative;
}
input:focus {
outline: none;
}
.searchboxcontainer
{
background-color: #473c29;
border: black 1px solid;
border-bottom-color: white;
border-right-color: white;
position:relative;
margin-left:auto;
margin-right:auto;
height:18px;
width:198px;
display: inline-block;
}
.sidebarcontainer
{
float:right;
display:block;
top: -16px;
right: -8px;
margin-left: 8px;
width:200px;
border-color: black;
border-width: 1px;
border-style:solid;
position:relative;
overflow:auto;
}
table {
border: #403624 1px solid;
border-top-color: #837f7a;
border-left-color: #837f7a;
background-color: #564A33;
}
th, td {
border: #00000040 1px solid;
border-right-color: #837f7a;
border-bottom-color: #837f7a;
background-color: #00000020;
}
</style>
<div>
<div class="sidebarcontainer">
<span class="searchboxcontainer"><input type="text" placeholder="search..." autocomplete="off" id="searchbox" oninput="updateSearch();" class="searchbox"></span>
<nav>
<ul class="sidebar" id="searchresults">
</ul>
<ul class="sidebar" id="filetree">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/index.html">Wiki Intro</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">QScript</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Introduction.html">QScript Intro</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Private_Members.html">Private Members</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Contributing</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/Contributing.html">Contributing</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">API</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/qscript.html">QScript API</a></span></li>
<li class="sidebar"><small class="liicon">-</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Structs</span></span>
<ul class="sidebar nested active">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QCFunc.html">QCFunc</a></span></li>
<li class="sidebar"><b>QModuleDefFunc</b></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QReturn.html">QReturn</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptArgs.html">QScriptArgs</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptCallback.html">QScriptCallback</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClass.html">QScriptClass</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QScriptClassCreator.html">QScriptClassCreator</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QType.html">QType</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QValue.html">QValue</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Lua</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Classes.html">Lua Classes</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Exports.html">Lua Exports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Imports.html">Lua Imports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Intro.html">Lua Intro</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Lua/Objects.html">Lua Objects</a></span></li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Python</span></span>
<ul class="sidebar nested">
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Squirrel</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Squirrel/Exports_And_Imports.html">Squirrel Exports and Imports</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Squirrel/Intro.html">Squirrel Intro</a></span></li>
</ul>
</li>
<li class="sidebar"><small class="liicon">+</small><span onmousedown="toggleTree(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);"><span onmousedown="Press(this);" onmouseleave="unPress(this);" onmouseup="unPress(this);">Tutorial</span></span>
<ul class="sidebar nested">
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Tutorial/Chapter1.html">QScript Tutorial Page 1: Mods</a></span></li>
<li class="sidebar"><span class="buttoncontainer"><a href="/wiki/QScript/Tutorial/Chapter2.html">QScript Tutorial Page 2: Getting to work</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<h1>QModuleDefFunc</h1>
<pre><code>struct QModuleDefFunc
{
QCFunc func;
const char* name;
enum QType ret;
const char* types;
};
</code></pre>
<p>QModuleDefFunc is used for defining functions that QScript will bind to the scripting languages.</p>
<p><code>types</code> is a string of characters that represent the types of parameters which the function accepts. QScript will automatically check the types for you, so do not worry about checking them yourself.</p>
<p>Here is a list of all the types and their characters:</p>
<table>
<thead>
<tr>
<th>char</th>
<th><span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QType.html">QType</span></a></th>
</tr>
</thead>
<tbody>
<tr>
<td><code>s</code></td>
<td><code>QType_String</code></td>
</tr>
<tr>
<td><code>i</code></td>
<td><code>QType_Int</code></td>
</tr>
<tr>
<td><code>f</code></td>
<td><code>QType_Float</code></td>
</tr>
<tr>
<td><code>o</code></td>
<td><code>QType_Object</code></td>
</tr>
<tr>
<td><code>b</code></td>
<td><code>QType_Bool</code></td>
</tr>
<tr>
<td><code>p</code></td>
<td><code>QType_Function</code></td>
</tr>
</tbody>
</table>
<p><code>ret</code> is what the function will return.</p>
<p><code>func</code> is a <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/Structs/QCFunc.html">QCFunc</span></a> which will be called when a scripting langauge calls your function.</p>
<p>Here is an example list of QModuleDefFuncs which you pass to <span class="buttoncontainer"><a href="/wiki/QScript/Contributing/API/qscript.html">CreateModule</a></span></p>
<pre><code>static QModuleDefFunc sourcebox_client[] = {
{QScriptClientMsg,"Msg",QType_None,"s"},
{RegisterCmd,"RegisterCmd",QType_None,"sp"},
{0,0,QType_None,0}
//{RegisterCmd,"RegisterCmd",QType_None,"sp"},
};
</code></pre>
</div>