blob: ee86fbb794627c7d0956238500cd05ed8288f14a [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: Touchscreen</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: Touchscreen</h1>
<section>
<header>
<h2><span class="attribs"><span class="type-signature"></span></span>
<span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchscreen<span class="signature">(element<span class="signature-attributes">non-null</span>)</span><span class="type-signature"></span></h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="Touchscreen"><span class="type-signature"></span>new Touchscreen<span class="signature">(element<span class="signature-attributes">non-null</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Provides cross-browser absolute touch event translation for a given element.
Touch events are translated into mouse events as if the touches occurred
on a touchscreen (tapping anywhere on the screen clicks at that point,
long-press to right-click).
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>element</code></td>
<td class="type">
<span class="param-type">Element</span>
</td>
<td class="description last">The Element to use to provide touch events.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line1033">line 1033</a>
</li></ul></dd>
</dl>
<h5>Example</h5>
<pre class="prettyprint"><code>var touchscreen = new Guacamole.Mouse.Touchscreen(client.getDisplay().getElement());
// Emulate a mouse using touchscreen-style gestures, forwarding all mouse
// interaction over Guacamole connection
touchscreen.onEach(['mousedown', 'mousemove', 'mouseup'], function sendMouseEvent(e) {
// Re-show software mouse cursor if possibly hidden by a prior call to
// showCursor(), such as a "mouseout" event handler that hides the
// cursor
client.getDisplay().showCursor(true);
client.sendMouseState(e.state, true);
});</code></pre>
</div>
<h3 class="subsection-title">Extends</h3>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html">Guacamole.Mouse.Event.Target</a></li>
</ul>
<h3 class="subsection-title">Members</h3>
<h4 class="name" id="clickMoveThreshold"><span class="type-signature">(non-null) </span>clickMoveThreshold<span class="type-signature"> :number</span></h4>
<div class="description">
The maximum number of pixels to allow a touch to move for the gesture to
be considered a click.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line1115">line 1115</a>
</li></ul></dd>
</dl>
<h4 class="name" id="clickTimingThreshold"><span class="type-signature">(non-null) </span>clickTimingThreshold<span class="type-signature"> :number</span></h4>
<div class="description">
The maximum number of milliseconds to wait for a touch to end for the
gesture to be considered a click.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line1107">line 1107</a>
</li></ul></dd>
</dl>
<h4 class="name" id="currentState"><span class="type-signature">(non-null) </span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
<div class="description">
The current mouse state. The properties of this state are updated when
mouse events fire. This state object is also passed in as a parameter to
the handler of any mouse events.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
</li>
</ul>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#currentState">Guacamole.Mouse.Event.Target#currentState</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line582">line 582</a>
</li></ul></dd>
</dl>
<h4 class="name" id="longPressThreshold"><span class="type-signature"></span>longPressThreshold<span class="type-signature"></span></h4>
<div class="description">
The amount of time a press must be held for long press to be
detected.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line1121">line 1121</a>
</li></ul></dd>
</dl>
<h4 class="name" id="scrollThreshold"><span class="type-signature">(non-null) </span>scrollThreshold<span class="type-signature"> :number</span></h4>
<div class="description">
The distance a two-finger touch must move per scrollwheel event, in
pixels.
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">number</span>
</li>
</ul>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line1099">line 1099</a>
</li></ul></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="click"><span class="type-signature"></span>click<span class="signature">(button<span class="signature-attributes">non-null</span>, events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Clicks (presses and releases) the given mouse button. Valid button
names are defined by <a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a> and
correspond to the button-related properties of
<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>button</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The name of the mouse button to click, as defined by
<a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a>.</td>
</tr>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM events related to the click, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#click">Guacamole.Mouse.Event.Target#click</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line701">line 701</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mousedown">Guacamole.Mouse.Event.Target#event:mousedown</a></li>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mouseup">Guacamole.Mouse.Event.Target#event:mouseup</a></li>
</ul>
<h4 class="name" id="dispatch"><span class="type-signature"></span>dispatch<span class="signature">(event<span class="signature-attributes">non-null</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Dispatches the given event, invoking all event handlers registered with
this Guacamole.Event.Target for that event's
<a href="Guacamole.Event.html#type">type</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Event.html">Guacamole.Event</a></span>
</td>
<td class="description last">The event to dispatch.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Event.Target.html#dispatch">Guacamole.Event.Target#dispatch</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Event.js.html">main/webapp/modules/Event.js</a>, <a href="main_webapp_modules_Event.js.html#line238">line 238</a>
</li></ul></dd>
</dl>
<h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(position<span class="signature-attributes">non-null</span>, events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Moves the mouse to the given coordinates.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>position</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Position.html">Guacamole.Position</a></span>
|
<span class="param-type">object</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The new coordinates of the mouse pointer. This object may be a
<a href="Guacamole.Position.html">Guacamole.Position</a> or any object with "x" and "y"
properties.</td>
</tr>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM events related to the mouse movement, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#move">Guacamole.Mouse.Event.Target#move</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line719">line 719</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mousemove">Guacamole.Mouse.Event.Target#event:mousemove</a></li>
</ul>
<h4 class="name" id="off"><span class="type-signature"></span>off<span class="signature">(type<span class="signature-attributes">non-null</span>, listener<span class="signature-attributes">non-null</span>)</span><span class="type-signature"> &rarr; (non-null) {boolean}</span></h4>
<div class="description">
Unregisters a listener that was previously registered with
<a href="Guacamole.Event.Target.html#on">on()</a> or
<a href="Guacamole.Event.Target.html#onEach">onEach()</a>. If no such listener was
registered, this function has no effect. If multiple copies of the same
listener were registered, the first listener still registered will be
removed.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">The unique name of the event type handled by the listener being
removed.</td>
</tr>
<tr>
<td class="name"><code>listener</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Event.Target.html#~listener">Guacamole.Event.Target~listener</a></span>
</td>
<td class="description last">The listener function previously provided to
<a href="Guacamole.Event.Target.html#on">on()</a>or
<a href="Guacamole.Event.Target.html#onEach">onEach()</a>.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Event.Target.html#off">Guacamole.Event.Target#off</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Event.js.html">main/webapp/modules/Event.js</a>, <a href="main_webapp_modules_Event.js.html#line273">line 273</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
true if the specified listener was removed, false otherwise.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">boolean</span>
</dd>
</dl>
<h4 class="name" id="offEach"><span class="type-signature"></span>offEach<span class="signature">(types<span class="signature-attributes">non-null</span>, listener<span class="signature-attributes">non-null</span>)</span><span class="type-signature"> &rarr; (non-null) {boolean}</span></h4>
<div class="description">
Unregisters listeners that were previously registered with
<a href="Guacamole.Event.Target.html#on">on()</a> or
<a href="Guacamole.Event.Target.html#onEach">onEach()</a>. If no such listeners
were registered, this function has no effect. If multiple copies of the
same listener were registered for the same event type, the first
listener still registered will be removed.
<p>
Invoking this function is equivalent to manually invoking
<a href="Guacamole.Event.Target.html#off">off()</a> for each of the provided types.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>types</code></td>
<td class="type">
<span class="param-type">Array.&lt;string></span>
</td>
<td class="description last">The unique names of the event types handled by the listeners being
removed.</td>
</tr>
<tr>
<td class="name"><code>listener</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Event.Target.html#~listener">Guacamole.Event.Target~listener</a></span>
</td>
<td class="description last">The listener function previously provided to
<a href="Guacamole.Event.Target.html#on">on()</a> or
<a href="Guacamole.Event.Target.html#onEach">onEach()</a>.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Event.Target.html#offEach">Guacamole.Event.Target#offEach</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Event.js.html">main/webapp/modules/Event.js</a>, <a href="main_webapp_modules_Event.js.html#line314">line 314</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
true if any of the specified listeners were removed, false
otherwise.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">boolean</span>
</dd>
</dl>
<h4 class="name" id="on"><span class="type-signature"></span>on<span class="signature">(type<span class="signature-attributes">non-null</span>, listener<span class="signature-attributes">non-null</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Registers a listener for events having the given type, as dictated by
the <a href="Guacamole.Event.html#type">type</a> property of <a href="Guacamole.Event.html">Guacamole.Event</a>
provided to <a href="Guacamole.Event.Target.html#dispatch">dispatch()</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>type</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">The unique name of this event type.</td>
</tr>
<tr>
<td class="name"><code>listener</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Event.Target.html#~listener">Guacamole.Event.Target~listener</a></span>
</td>
<td class="description last">The function to invoke when an event having the given type is
dispatched. The <a href="Guacamole.Event.html">Guacamole.Event</a> object provided to
<a href="Guacamole.Event.Target.html#dispatch">dispatch()</a> will be passed to
this function, along with the dispatching Guacamole.Event.Target.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Event.Target.html#on">Guacamole.Event.Target#on</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Event.js.html">main/webapp/modules/Event.js</a>, <a href="main_webapp_modules_Event.js.html#line196">line 196</a>
</li></ul></dd>
</dl>
<h4 class="name" id="onEach"><span class="type-signature"></span>onEach<span class="signature">(types<span class="signature-attributes">non-null</span>, listener<span class="signature-attributes">non-null</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Registers a listener for events having the given types, as dictated by
the <a href="Guacamole.Event.html#type">type</a> property of <a href="Guacamole.Event.html">Guacamole.Event</a>
provided to <a href="Guacamole.Event.Target.html#dispatch">dispatch()</a>.
<p>
Invoking this function is equivalent to manually invoking
<a href="Guacamole.Event.Target.html#on">on()</a> for each of the provided types.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>types</code></td>
<td class="type">
<span class="param-type">Array.&lt;string></span>
</td>
<td class="description last">The unique names of the event types to associate with the given
listener.</td>
</tr>
<tr>
<td class="name"><code>listener</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Event.Target.html#~listener">Guacamole.Event.Target~listener</a></span>
</td>
<td class="description last">The function to invoke when an event having any of the given types
is dispatched. The <a href="Guacamole.Event.html">Guacamole.Event</a> object provided to
<a href="Guacamole.Event.Target.html#dispatch">dispatch()</a> will be passed to
this function, along with the dispatching Guacamole.Event.Target.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Event.Target.html#onEach">Guacamole.Event.Target#onEach</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Event.js.html">main/webapp/modules/Event.js</a>, <a href="main_webapp_modules_Event.js.html#line224">line 224</a>
</li></ul></dd>
</dl>
<h4 class="name" id="out"><span class="type-signature"></span>out<span class="signature">(events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Notifies event listeners that the mouse pointer has left the boundaries
of the area being monitored for mouse events.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM events related to the mouse leaving the boundaries of the
monitored object, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#out">Guacamole.Mouse.Event.Target#out</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line739">line 739</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mouseout">Guacamole.Mouse.Event.Target#event:mouseout</a></li>
</ul>
<h4 class="name" id="press"><span class="type-signature"></span>press<span class="signature">(button<span class="signature-attributes">non-null</span>, events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Presses the given mouse button, if it isn't already pressed. Valid
button names are defined by <a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a> and
correspond to the button-related properties of
<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>button</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The name of the mouse button to press, as defined by
<a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a>.</td>
</tr>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM events that are related to the mouse button press, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#press">Guacamole.Mouse.Event.Target#press</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line656">line 656</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mousedown">Guacamole.Mouse.Event.Target#event:mousedown</a></li>
</ul>
<h4 class="name" id="release"><span class="type-signature"></span>release<span class="signature">(button<span class="signature-attributes">non-null</span>, events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Releases the given mouse button, if it isn't already released. Valid
button names are defined by <a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a> and
correspond to the button-related properties of
<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>button</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">The name of the mouse button to release, as defined by
<a href="Guacamole.Mouse.State.html#.Buttons">Guacamole.Mouse.State.Buttons</a>.</td>
</tr>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM events related to the mouse button release, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#release">Guacamole.Mouse.Event.Target#release</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line678">line 678</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mouseup">Guacamole.Mouse.Event.Target#event:mouseup</a></li>
</ul>
<h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">(events<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
Releases all mouse buttons that are currently pressed. If all mouse
buttons have already been released, this function has no effect.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>events</code></td>
<td class="type">
<span class="param-type">Event</span>
|
<span class="param-type">Array.&lt;Event></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
[]
</td>
<td class="description last">The DOM event related to all mouse buttons being released, if any.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#reset">Guacamole.Mouse.Event.Target#reset</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line752">line 752</a>
</li></ul></dd>
</dl>
<h5>Fires:</h5>
<ul>
<li><a href="Guacamole.Mouse.Event.Target.html#event:mouseup">Guacamole.Mouse.Event.Target#event:mouseup</a></li>
</ul>
<h3 class="subsection-title">Events</h3>
<h4 class="name" id="event:mousedown">mousedown</h4>
<div class="description">
Fired whenever a mouse button is effectively pressed. Depending on the
object dispatching the event, this can be due to a true mouse button
press (<a href="Guacamole.Mouse.html">Guacamole.Mouse</a>), an emulated mouse button press from a
touch gesture (<a href="Guacamole.Mouse.Touchpad.html">Guacamole.Mouse.Touchpad</a> and
<a href="Guacamole.Mouse.Touchscreen.html">Guacamole.Mouse.Touchscreen</a>), or may be programmatically
generated through <a href="Guacamole.Mouse.Event.Target.html#dispatch">dispatch()</a>,
<a href="Guacamole.Mouse.Event.Target.html#press">press()</a>, or
<a href="Guacamole.Mouse.Event.Target.html#click">click()</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Mouse.Event.html">Guacamole.Mouse.Event</a></span>
</td>
<td class="description last">The mousedown event that was fired.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#event:mousedown">Guacamole.Mouse.Event.Target#event:mousedown</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line584">line 584</a>
</li></ul></dd>
</dl>
<h4 class="name" id="event:mousemove">mousemove</h4>
<div class="description">
Fired whenever the mouse pointer is effectively moved. Depending on the
object dispatching the event, this can be due to true mouse movement
(<a href="Guacamole.Mouse.html">Guacamole.Mouse</a>), emulated mouse movement from
a touch gesture (<a href="Guacamole.Mouse.Touchpad.html">Guacamole.Mouse.Touchpad</a> and
<a href="Guacamole.Mouse.Touchscreen.html">Guacamole.Mouse.Touchscreen</a>), or may be programmatically
generated through <a href="Guacamole.Mouse.Event.Target.html#dispatch">dispatch()</a>,
or <a href="Guacamole.Mouse.Event.Target.html#move">move()</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Mouse.Event.html">Guacamole.Mouse.Event</a></span>
</td>
<td class="description last">The mousemove event that was fired.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#event:mousemove">Guacamole.Mouse.Event.Target#event:mousemove</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line614">line 614</a>
</li></ul></dd>
</dl>
<h4 class="name" id="event:mouseup">mouseup</h4>
<div class="description">
Fired whenever a mouse button is effectively released. Depending on the
object dispatching the event, this can be due to a true mouse button
release (<a href="Guacamole.Mouse.html">Guacamole.Mouse</a>), an emulated mouse button release from
a touch gesture (<a href="Guacamole.Mouse.Touchpad.html">Guacamole.Mouse.Touchpad</a> and
<a href="Guacamole.Mouse.Touchscreen.html">Guacamole.Mouse.Touchscreen</a>), or may be programmatically
generated through <a href="Guacamole.Mouse.Event.Target.html#dispatch">dispatch()</a>,
<a href="Guacamole.Mouse.Event.Target.html#release">release()</a>, or
<a href="Guacamole.Mouse.Event.Target.html#click">click()</a>.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><a href="Guacamole.Mouse.Event.html">Guacamole.Mouse.Event</a></span>
</td>
<td class="description last">The mouseup event that was fired.</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a href="Guacamole.Mouse.Event.Target.html#event:mouseup">Guacamole.Mouse.Event.Target#event:mouseup</a>
</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main_webapp_modules_Mouse.js.html">main/webapp/modules/Mouse.js</a>, <a href="main_webapp_modules_Mouse.js.html#line599">line 599</a>
</li></ul></dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">Guacamole.AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">Guacamole.ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">Guacamole.ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">Guacamole.BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">Guacamole.BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">Guacamole.ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Guacamole.Client</a></li><li><a href="Guacamole.DataURIReader.html">Guacamole.DataURIReader</a></li><li><a href="Guacamole.Display.html">Guacamole.Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></li><li><a href="Guacamole.Event.html">Guacamole.Event</a></li><li><a href="Guacamole.Event.DOMEvent.html">Guacamole.Event.DOMEvent</a></li><li><a href="Guacamole.Event.Target.html">Guacamole.Event.Target</a></li><li><a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">Guacamole.InputSink</a></li><li><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></li><li><a href="Guacamole.IntegerPool.html">Guacamole.IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">Guacamole.JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Guacamole.Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a></li><li><a href="Guacamole.Layer.html">Guacamole.Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Guacamole.Layer.Pixel</a></li><li><a href="Guacamole.Mouse.html">Guacamole.Mouse</a></li><li><a href="Guacamole.Mouse.Event.html">Guacamole.Mouse.Event</a></li><li><a href="Guacamole.Mouse.Event.Target.html">Guacamole.Mouse.Event.Target</a></li><li><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Guacamole.Mouse.Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Guacamole.Mouse.Touchscreen</a></li><li><a href="Guacamole.Object.html">Guacamole.Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">Guacamole.OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></li><li><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></li><li><a href="Guacamole.Parser.html">Guacamole.Parser</a></li><li><a href="Guacamole.Position.html">Guacamole.Position</a></li><li><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">Guacamole.RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">Guacamole.RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">Guacamole.SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">Guacamole.StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Guacamole.Status</a></li><li><a href="Guacamole.StringReader.html">Guacamole.StringReader</a></li><li><a href="Guacamole.StringWriter.html">Guacamole.StringWriter</a></li><li><a href="Guacamole.Touch.html">Guacamole.Touch</a></li><li><a href="Guacamole.Touch.Event.html">Guacamole.Touch.Event</a></li><li><a href="Guacamole.Touch.State.html">Guacamole.Touch.State</a></li><li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li><li><a href="Guacamole.UTF8Parser.html">Guacamole.UTF8Parser</a></li><li><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">Guacamole.WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">Guacamole.ArrayBufferReader#ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">Guacamole.ArrayBufferReader#onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">Guacamole.ArrayBufferWriter#onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">Guacamole.AudioRecorder#onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">Guacamole.AudioRecorder#onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">Guacamole.BlobReader#onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">Guacamole.BlobReader#onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">Guacamole.BlobWriter#onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">Guacamole.BlobWriter#oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">Guacamole.BlobWriter#onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">Guacamole.BlobWriter#onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">Guacamole.ChainedTunnel#onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">Guacamole.ChainedTunnel#oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">Guacamole.ChainedTunnel#onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">Guacamole.ChainedTunnel#onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">Guacamole.Client#onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">Guacamole.Client#onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">Guacamole.Client#onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">Guacamole.Client#onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">Guacamole.Client#onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">Guacamole.Client#onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onjoin">Guacamole.Client#onjoin</a></li><li><a href="Guacamole.Client.html#event:onleave">Guacamole.Client#onleave</a></li><li><a href="Guacamole.Client.html#event:onmsg">Guacamole.Client#onmsg</a></li><li><a href="Guacamole.Client.html#event:onmultitouch">Guacamole.Client#onmultitouch</a></li><li><a href="Guacamole.Client.html#event:onname">Guacamole.Client#onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">Guacamole.Client#onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">Guacamole.Client#onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">Guacamole.Client#onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">Guacamole.Client#onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">Guacamole.Client#onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">Guacamole.DataURIReader#onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">Guacamole.Display#oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">Guacamole.Display#onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">Guacamole.HTTPTunnel#onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">Guacamole.HTTPTunnel#oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">Guacamole.HTTPTunnel#onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">Guacamole.HTTPTunnel#onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">Guacamole.InputStream#onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">Guacamole.InputStream#onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">Guacamole.JSONReader#onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">Guacamole.JSONReader#onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">Guacamole.Keyboard#onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">Guacamole.Keyboard#onkeyup</a></li><li><a href="Guacamole.Mouse.html#event:mousedown">Guacamole.Mouse#mousedown</a></li><li><a href="Guacamole.Mouse.html#event:mousemove">Guacamole.Mouse#mousemove</a></li><li><a href="Guacamole.Mouse.html#event:mouseout">Guacamole.Mouse#mouseout</a></li><li><a href="Guacamole.Mouse.html#event:mouseup">Guacamole.Mouse#mouseup</a></li><li><a href="Guacamole.Mouse.Event.Target.html#event:mousedown">Guacamole.Mouse.Event.Target#mousedown</a></li><li><a href="Guacamole.Mouse.Event.Target.html#event:mousemove">Guacamole.Mouse.Event.Target#mousemove</a></li><li><a href="Guacamole.Mouse.Event.Target.html#event:mouseout">Guacamole.Mouse.Event.Target#mouseout</a></li><li><a href="Guacamole.Mouse.Event.Target.html#event:mouseup">Guacamole.Mouse.Event.Target#mouseup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:mousedown">Guacamole.Mouse.Touchpad#mousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:mousemove">Guacamole.Mouse.Touchpad#mousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:mouseup">Guacamole.Mouse.Touchpad#mouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:mousedown">Guacamole.Mouse.Touchscreen#mousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:mousemove">Guacamole.Mouse.Touchscreen#mousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:mouseup">Guacamole.Mouse.Touchscreen#mouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">Guacamole.Object#onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">Guacamole.Object#onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">Guacamole.OnScreenKeyboard#onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">Guacamole.OnScreenKeyboard#onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">Guacamole.OutputStream#onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">Guacamole.Parser#oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">Guacamole.RawAudioRecorder#onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">Guacamole.RawAudioRecorder#onerror</a></li><li><a href="Guacamole.SessionRecording.html#event:onabort">Guacamole.SessionRecording#onabort</a></li><li><a href="Guacamole.SessionRecording.html#event:onerror">Guacamole.SessionRecording#onerror</a></li><li><a href="Guacamole.SessionRecording.html#event:onload">Guacamole.SessionRecording#onload</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">Guacamole.SessionRecording#onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">Guacamole.SessionRecording#onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">Guacamole.SessionRecording#onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">Guacamole.SessionRecording#onseek</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">Guacamole.SessionRecording._PlaybackTunnel#onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">Guacamole.SessionRecording._PlaybackTunnel#oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">Guacamole.SessionRecording._PlaybackTunnel#onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">Guacamole.SessionRecording._PlaybackTunnel#onuuid</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">Guacamole.StaticHTTPTunnel#onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">Guacamole.StaticHTTPTunnel#oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">Guacamole.StaticHTTPTunnel#onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">Guacamole.StaticHTTPTunnel#onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">Guacamole.StringReader#onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">Guacamole.StringReader#ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">Guacamole.StringWriter#onack</a></li><li><a href="Guacamole.Touch.html#event:touchend">Guacamole.Touch#touchend</a></li><li><a href="Guacamole.Touch.html#event:touchmove">Guacamole.Touch#touchmove</a></li><li><a href="Guacamole.Touch.html#event:touchstart">Guacamole.Touch#touchstart</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">Guacamole.Tunnel#onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">Guacamole.WebSocketTunnel#onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">Guacamole.WebSocketTunnel#oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">Guacamole.WebSocketTunnel#onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">Guacamole.WebSocketTunnel#onuuid</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.0</a> on Fri May 19 2023 23:02:06 GMT-0700 (Pacific Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
<!-- Google Analytics -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-75289145-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>