Pop.Box/docs/modules/pop.html
Paul Liverman III bb2cbba024 Better prepared for usage
- added modified debugDraw to element class
- made window element properly inherit from element class
- fixed path detection on initialization
- added better logging and more logging to initialization
- fixed stupid bug with pop.debugDraw
2016-10-30 22:19:24 -07:00

673 lines
18 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>Documentation</title>
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div> <!-- id="product" -->
<div id="main">
<!-- Menu -->
<div id="navigation">
<br/>
<h1>Pop.Box()</h1>
<ul>
<li><a href="../index.html">Index</a></li>
</ul>
<h2>Contents</h2>
<ul>
<li><a href="#Functions">Functions</a></li>
<li><a href="#Tables">Tables</a></li>
<li><a href="#Issues">Issues</a></li>
</ul>
<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><strong>pop</strong></li>
<li><a href="../modules/main.html">main</a></li>
<li><a href="../modules/util.html">util</a></li>
<li><a href="../modules/Element.html">Element</a></li>
</ul>
<h2>Classes</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
<li><a href="../classes/element.html">element</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>pop</code></h1>
<p>The Pop.Box GUI itself.</p>
<p>
</p>
<h3>Info:</h3>
<ul>
<li><strong>Copyright</strong>: Paul Liverman III (2015-2016)</li>
<li><strong>Release</strong>: 0.0.0</li>
<li><strong>License</strong>: The MIT License (MIT)</li>
</ul>
<h2><a href="#Functions">Functions</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#load">load ()</a></td>
<td class="summary">Loads elements, skins, extensions, and initializes <code>pop.screen</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#create">create (element, parent, ...)</a></td>
<td class="summary">Creates an element.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#update">update (dt, element)</a></td>
<td class="summary">Event handler for <code>love.update()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#draw">draw (element)</a></td>
<td class="summary">Event handler for <code>love.draw()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#mousemoved">mousemoved (x, y, dx, dy)</a></td>
<td class="summary">Event handler for <code>love.mousemoved()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#mousepressed">mousepressed (x, y, button, element)</a></td>
<td class="summary">Event handler for <code>love.mousepressed()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#mousereleased">mousereleased (x, y, button, element)</a></td>
<td class="summary">Event handler for <code>love.mousereleased()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#keypressed">keypressed (key)</a></td>
<td class="summary">Event handler for <code>love.keypressed()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#keyreleased">keyreleased (key)</a></td>
<td class="summary">Event handler for <code>love.keyreleased()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#textinput">textinput (text)</a></td>
<td class="summary">Event handler for <code>love.textinput()</code>.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#debugDraw">debugDraw (element)</a></td>
<td class="summary">Draws simple rectangle outlines to debug placement of elements.</td>
</tr>
<tr>
<td class="name" nowrap><a href="#printElementTree">printElementTree (element)</a></td>
<td class="summary">Prints a basic structure of GUI elements with minimal info.</td>
</tr>
</table>
<h2><a href="#Tables">Tables</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#pop">pop</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a href="#Issues">Issues</a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap><a href="#update-todo1">update-todo1</a></td>
<td class="summary">Define Elements and @ see that documentation from here. Generic documentation, not specifically element!
data.update boolean controls an element and its children being updated</td>
</tr>
<tr>
<td class="name" nowrap><a href="#mousemoved-todo2">mousemoved-todo2</a></td>
<td class="summary">Implement a way for an element to attach itself to <code>love.mousemoved()</code> events?</td>
</tr>
<tr>
<td class="name" nowrap><a href="#mousereleased-todo3">mousereleased-todo3</a></td>
<td class="summary"> Figure out how to bring a focused element to the front of view (aka the first element in its parent's children).
(If I do it right here, the for loop above may break! I need to test/figure this out.)
NOTE this might cause an error in the above for loop!
basically, move focused element to front of its parent's child
element.parent\focusChild element
table.insert element.parent, element.parent\removeChild(element),</td>
</tr>
<tr>
<td class="name" nowrap><a href="#printElementTree-todo4">printElementTree-todo4</a></td>
<td class="summary">Correct this once elements are reimplemented if it needs correction.</td>
</tr>
</table>
<br/>
<br/>
<h2 class="section-header "><a name="Functions"></a>Functions</h2>
<dl class="function">
<dt>
<a name = "load"></a>
<strong>load ()</strong>
</dt>
<dd>
Loads elements, skins, extensions, and initializes <code>pop.screen</code>. </p>
<p> <strong>IMPORTANT</strong>: Intended to only be called once, and is automatically called
when you require Pop.Box.
<h3>See also:</h3>
<ul>
<li><a href="../modules/pop.html#">pop</a></li>
<li><a href="../modules/Element.html#">Element</a></li>
</ul>
</dd>
<dt>
<a name = "create"></a>
<strong>create (element, parent, ...)</strong>
</dt>
<dd>
Creates an element.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">element</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a></span>
The element class to use.
</li>
<li><span class="parameter">parent</span>
<span class="types"><span class="type">Element</span>, <span class="type">false</span> or <span class="type">nil</span></span>
[opt] The parent element. If <code>false</code>, an
element is created with no parent. If <code>nil</code>, defaults to <code>pop.screen</code>.
</li>
<li><span class="parameter">...</span>
[opt] Any number of parameters can be passed to the constructor
for the element.</p>
<p> (<strong>Note</strong>: An element with no parent will not be handled by Pop.Box's event
handlers unless you handle it explicitly.)
</li>
</ul>
<h3>See also:</h3>
<ul>
<li><a href="../modules/pop.html#">pop</a></li>
<li><a href="../modules/Element.html#">Element</a></li>
</ul>
</dd>
<dt>
<a name = "update"></a>
<strong>update (dt, element)</strong>
</dt>
<dd>
Event handler for <code>love.update()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">dt</span>
<span class="types"><span class="type">number</span></span>
The amount of time passed since the last call to update,
in seconds.
</li>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to update (will update all its
children as well). Defaults to <code>pop.screen</code>.
</li>
</ul>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
<dt>
<a name = "draw"></a>
<strong>draw (element)</strong>
</dt>
<dd>
Event handler for <code>love.draw()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to draw (will draw all its children
as well). Defaults to <code>pop.screen</code>.
</li>
</ul>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
<dt>
<a name = "mousemoved"></a>
<strong>mousemoved (x, y, dx, dy)</strong>
</dt>
<dd>
Event handler for <code>love.mousemoved()</code>. (LÖVE >= 0.10.0)
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>
<span class="types"><span class="type">integer</span></span>
The x coordinate of the mouse.
</li>
<li><span class="parameter">y</span>
<span class="types"><span class="type">integer</span></span>
The y coordinate of the mouse.
</li>
<li><span class="parameter">dx</span>
<span class="types"><span class="type">number</span></span>
The distance on the x axis the mouse was moved.
</li>
<li><span class="parameter">dy</span>
<span class="types"><span class="type">number</span></span>
The distance on the y axis the mouse was moved.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<span class="types"><span class="type">boolean</span></span>
Was the event handled?
</ol>
</dd>
<dt>
<a name = "mousepressed"></a>
<strong>mousepressed (x, y, button, element)</strong>
</dt>
<dd>
Event handler for <code>love.mousepressed()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>
<span class="types"><span class="type">integer</span></span>
The x coordinate of the mouse press.
</li>
<li><span class="parameter">y</span>
<span class="types"><span class="type">integer</span></span>
The y coordinate of the mouse press.
</li>
<li><span class="parameter">button</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a> or <span class="type">integer</span></span>
The mouse button pressed. (Type varies by
LÖVE version.)
</li>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to check for event handling (will
check its children as well). Defaults to <code>pop.screen</code>.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<span class="types"><span class="type">boolean</span></span>
Was the event handled?
</ol>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
<dt>
<a name = "mousereleased"></a>
<strong>mousereleased (x, y, button, element)</strong>
</dt>
<dd>
Event handler for <code>love.mousereleased()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">x</span>
<span class="types"><span class="type">integer</span></span>
The x coordinate of the mouse release.
</li>
<li><span class="parameter">y</span>
<span class="types"><span class="type">integer</span></span>
The y coordinate of the mouse release.
</li>
<li><span class="parameter">button</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a> or <span class="type">integer</span></span>
The mouse button released. (Type varies by
LÖVE version.)
</li>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to check for event handling (will
check its children as well). Defaults to <code>pop.screen</code>.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<li>
<span class="types"><span class="type">boolean</span></span>
Was a click handled?</li>
<li>
<span class="types"><span class="type">boolean</span></span>
Was a mouse release handled?</li>
</ol>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
<dt>
<a name = "keypressed"></a>
<strong>keypressed (key)</strong>
</dt>
<dd>
Event handler for <code>love.keypressed()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">key</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a></span>
The key that was pressed.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<span class="types"><span class="type">boolean</span></span>
Was the event handled?
</ol>
</dd>
<dt>
<a name = "keyreleased"></a>
<strong>keyreleased (key)</strong>
</dt>
<dd>
Event handler for <code>love.keyreleased()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">key</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a></span>
The key that was released.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<span class="types"><span class="type">boolean</span></span>
Was the event handled?
</ol>
</dd>
<dt>
<a name = "textinput"></a>
<strong>textinput (text)</strong>
</dt>
<dd>
Event handler for <code>love.textinput()</code>.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">text</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.4">string</a></span>
The text that was typed.
</li>
</ul>
<h3>Returns:</h3>
<ol>
<span class="types"><span class="type">boolean</span></span>
Was the text input handled?
</ol>
</dd>
<dt>
<a name = "debugDraw"></a>
<strong>debugDraw (element)</strong>
</dt>
<dd>
Draws simple rectangle outlines to debug placement of elements.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to draw (will draw its children as
well). Defaults to <code>pop.screen</code>.
</li>
</ul>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
<dt>
<a name = "printElementTree"></a>
<strong>printElementTree (element)</strong>
</dt>
<dd>
Prints a basic structure of GUI elements with minimal info.
<h3>Parameters:</h3>
<ul>
<li><span class="parameter">element</span>
<span class="types"><span class="type">Element</span></span>
[opt] The element to start at. Defaults to
<code>pop.screen</code>.
</li>
</ul>
<h3>See also:</h3>
<ul>
<a href="../modules/Element.html#">Element</a>
</ul>
</dd>
</dl>
<h2 class="section-header "><a name="Tables"></a>Tables</h2>
<dl class="function">
<dt>
<a name = "pop"></a>
<strong>pop</strong>
</dt>
<dd>
<h3>Fields:</h3>
<ul>
<li><span class="parameter">elements</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.5">table</a></span>
All GUI classes are stored here.
</li>
<li><span class="parameter">skins</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.5">table</a></span>
All skins are stored here.
</li>
<li><span class="parameter">extensions</span>
<span class="types"><a class="type" href="http://www.lua.org/manual/5.1/manual.html#5.5">table</a></span>
All extensions are loaded here.
</li>
<li><span class="parameter">screen</span>
<span class="types"><span class="type">Element</span></span>
The top level GUI element. Represents the game
screen. Initialized in <code>pop.load()</code>
</li>
<li><span class="parameter">focused</span>
<span class="types"><span class="type">Element</span> or <span class="type">false</span></span>
The currently focused GUI element (or <code>false</code>
if none is focused).
</li>
</ul>
<h3>See also:</h3>
<ul>
<li><a href="../modules/pop.html#load">pop.load</a></li>
<li><a href="../modules/Element.html#">Element</a></li>
</ul>
</dd>
</dl>
<h2 class="section-header "><a name="Issues"></a>Issues</h2>
<dl class="function">
<dt>
<a name = "update-todo1"></a>
<strong>update-todo1</strong>
</dt>
<dd>
Define Elements and @ see that documentation from here. Generic documentation, not specifically element!
data.update boolean controls an element and its children being updated
</dd>
<dt>
<a name = "mousemoved-todo2"></a>
<strong>mousemoved-todo2</strong>
</dt>
<dd>
Implement a way for an element to attach itself to <code>love.mousemoved()</code> events?
</dd>
<dt>
<a name = "mousereleased-todo3"></a>
<strong>mousereleased-todo3</strong>
</dt>
<dd>
Figure out how to bring a focused element to the front of view (aka the first element in its parent's children).
(If I do it right here, the for loop above may break! I need to test/figure this out.)
NOTE this might cause an error in the above for loop!
basically, move focused element to front of its parent's child
element.parent\focusChild element
table.insert element.parent, element.parent\removeChild(element),
</dd>
<dt>
<a name = "printElementTree-todo4"></a>
<strong>printElementTree-todo4</strong>
</dt>
<dd>
Correct this once elements are reimplemented if it needs correction.
</dd>
</dl>
</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i>
<i style="float:right;">Last updated 2016-10-30 22:18:17 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>