<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Responder
— FXRuby API Documentation
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<link rel="stylesheet" href="css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Responder";
relpath = '';
</script>
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="_index.html">Index (R)</a> »
<span class="title">Responder</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Module: Responder
</h1>
<div class="box_info">
<dl>
<dt>Included in:</dt>
<dd><span class='object_link'><a href="Fox/Canvas/ShapeCanvas.html" title="Fox::Canvas::ShapeCanvas (class)">Fox::Canvas::ShapeCanvas</a></span>, <span class='object_link'><a href="Fox/FXIrb.html" title="Fox::FXIrb (class)">Fox::FXIrb</a></span>, <span class='object_link'><a href="Fox/FXPseudoTarget.html" title="Fox::FXPseudoTarget (class)">Fox::FXPseudoTarget</a></span>, <span class='object_link'><a href="Fox/FXUndoList.html" title="Fox::FXUndoList (class)">Fox::FXUndoList</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/fox16/responder.rb</dd>
</dl>
</div>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#addMapEntry-instance_method" title="#addMapEntry (instance method)">#<strong>addMapEntry</strong>(lo, hi, func) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Add new or replace existing map entry.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#assocIndex-instance_method" title="#assocIndex (instance method)">#<strong>assocIndex</strong>(lo, hi) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Look up array index of this message map entry.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#FXMAPFUNC-instance_method" title="#FXMAPFUNC (instance method)">#<strong>FXMAPFUNC</strong>(type, id, func) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Define one function.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#FXMAPFUNCS-instance_method" title="#FXMAPFUNCS (instance method)">#<strong>FXMAPFUNCS</strong>(type, keylo, keyhi, func) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Define range of functions.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#FXMAPTYPE-instance_method" title="#FXMAPTYPE (instance method)">#<strong>FXMAPTYPE</strong>(type, func) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Define one function type.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#FXMAPTYPES-instance_method" title="#FXMAPTYPES (instance method)">#<strong>FXMAPTYPES</strong>(typelo, typehi, func) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Define range of function types.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#identifier-instance_method" title="#identifier (instance method)">#<strong>identifier</strong>(*ids) ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Generates identifiers as class constants.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#messageMap-instance_method" title="#messageMap (instance method)">#<strong>messageMap</strong> ⇒ Object </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Return the array of (selector -> func) associations.</p>
</div></span>
</li>
</ul>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="addMapEntry-instance_method">
#<strong>addMapEntry</strong>(lo, hi, func) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Add new or replace existing map entry</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
41
42
43
44
45
46
47
48
49</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 41</span>
<span class='kw'>def</span> <span class='id identifier rubyid_addMapEntry'>addMapEntry</span><span class='lparen'>(</span><span class='id identifier rubyid_lo'>lo</span><span class='comma'>,</span> <span class='id identifier rubyid_hi'>hi</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='id identifier rubyid_func'>func</span> <span class='op'>=</span> <span class='id identifier rubyid_func'>func</span><span class='period'>.</span><span class='id identifier rubyid_intern'>intern</span> <span class='kw'>if</span> <span class='id identifier rubyid_func'>func</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
<span class='id identifier rubyid_currIndex'>currIndex</span> <span class='op'>=</span> <span class='id identifier rubyid_assocIndex'>assocIndex</span><span class='lparen'>(</span><span class='id identifier rubyid_lo'>lo</span><span class='comma'>,</span> <span class='id identifier rubyid_hi'>hi</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='id identifier rubyid_currIndex'>currIndex</span> <span class='op'><</span> <span class='int'>0</span>
<span class='id identifier rubyid_messageMap'>messageMap</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_lo'>lo</span><span class='comma'>,</span> <span class='id identifier rubyid_hi'>hi</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_messageMap'>messageMap</span><span class='lbracket'>[</span><span class='id identifier rubyid_currIndex'>currIndex</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_lo'>lo</span><span class='comma'>,</span> <span class='id identifier rubyid_hi'>hi</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="assocIndex-instance_method">
#<strong>assocIndex</strong>(lo, hi) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Look up array index of this message map entry</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
29
30
31
32
33
34
35
36
37
38</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 29</span>
<span class='kw'>def</span> <span class='id identifier rubyid_assocIndex'>assocIndex</span><span class='lparen'>(</span><span class='id identifier rubyid_lo'>lo</span><span class='comma'>,</span> <span class='id identifier rubyid_hi'>hi</span><span class='rparen'>)</span>
<span class='id identifier rubyid_currIndex'>currIndex</span> <span class='op'>=</span> <span class='op'>-</span><span class='int'>1</span>
<span class='id identifier rubyid_assocs'>assocs</span> <span class='op'>=</span> <span class='id identifier rubyid_messageMap'>messageMap</span>
<span class='id identifier rubyid_assocs'>assocs</span><span class='period'>.</span><span class='id identifier rubyid_each_index'>each_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
<span class='kw'>if</span> <span class='id identifier rubyid_assocs'>assocs</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_lo'>lo</span> <span class='op'>&&</span> <span class='id identifier rubyid_assocs'>assocs</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_hi'>hi</span>
<span class='id identifier rubyid_currIndex'>currIndex</span> <span class='op'>=</span> <span class='id identifier rubyid_i'>i</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_currIndex'>currIndex</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="FXMAPFUNC-instance_method">
#<strong>FXMAPFUNC</strong>(type, id, func) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Define one function</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
67
68
69</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 67</span>
<span class='kw'>def</span> <span class='const'>FXMAPFUNC</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='id identifier rubyid_addMapEntry'>addMapEntry</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="FXMAPFUNCS-instance_method">
#<strong>FXMAPFUNCS</strong>(type, keylo, keyhi, func) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Define range of functions</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
62
63
64</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 62</span>
<span class='kw'>def</span> <span class='const'>FXMAPFUNCS</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_keylo'>keylo</span><span class='comma'>,</span> <span class='id identifier rubyid_keyhi'>keyhi</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='id identifier rubyid_addMapEntry'>addMapEntry</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_keylo'>keylo</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_keyhi'>keyhi</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="FXMAPTYPE-instance_method">
#<strong>FXMAPTYPE</strong>(type, func) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Define one function type</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
57
58
59</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 57</span>
<span class='kw'>def</span> <span class='const'>FXMAPTYPE</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='id identifier rubyid_addMapEntry'>addMapEntry</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='op'>::</span><span class='const'>MINKEY</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='op'>::</span><span class='const'>MAXKEY</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="FXMAPTYPES-instance_method">
#<strong>FXMAPTYPES</strong>(typelo, typehi, func) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Define range of function types</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
52
53
54</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 52</span>
<span class='kw'>def</span> <span class='const'>FXMAPTYPES</span><span class='lparen'>(</span><span class='id identifier rubyid_typelo'>typelo</span><span class='comma'>,</span> <span class='id identifier rubyid_typehi'>typehi</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='id identifier rubyid_addMapEntry'>addMapEntry</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='op'>::</span><span class='const'>MINKEY</span><span class='comma'>,</span> <span class='id identifier rubyid_typelo'>typelo</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='period'>.</span><span class='const'><span class='object_link'><a href="Fox.html#MKUINT-class_method" title="Fox.MKUINT (method)">MKUINT</a></span></span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="Fox.html" title="Fox (module)">Fox</a></span></span><span class='op'>::</span><span class='const'>MAXKEY</span><span class='comma'>,</span> <span class='id identifier rubyid_typehi'>typehi</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_func'>func</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="identifier-instance_method">
#<strong>identifier</strong>(*ids) ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Generates identifiers as class constants. Originally submitted by Sean O'Halpin, slightly modified by Lyle.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
9
10
11
12
13
14
15
16
17
18</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 9</span>
<span class='kw'>def</span> <span class='id identifier rubyid_identifier'>identifier</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_ids'>ids</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ids'>ids</span> <span class='op'><<</span> <span class='symbol'>:ID_LAST</span>
<span class='id identifier rubyid_base'>base</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_superclass'>superclass</span><span class='op'>::</span><span class='const'>ID_LAST</span>
<span class='id identifier rubyid_vals'>vals</span> <span class='op'>=</span> <span class='id identifier rubyid_enum'><span class='object_link'><a href="top-level-namespace.html#enum-instance_method" title="#enum (method)">enum</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_base'>base</span><span class='comma'>,</span> <span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='rparen'>)</span>
<span class='id identifier rubyid_ids'>ids</span><span class='period'>.</span><span class='id identifier rubyid_each_index'>each_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
<span class='kw'>unless</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_const_defined?'>const_defined?</span><span class='lparen'>(</span><span class='id identifier rubyid_ids'>ids</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_class_eval'>class_eval</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ids'>ids</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_id2name'>id2name</span><span class='embexpr_end'>}</span><span class='tstring_content'> = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_vals'>vals</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="messageMap-instance_method">
#<strong>messageMap</strong> ⇒ <tt>Object</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Return the array of (selector -> func) associations</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
21
22
23
24
25
26</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/fox16/responder.rb', line 21</span>
<span class='kw'>def</span> <span class='id identifier rubyid_messageMap'>messageMap</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_instance_variables'>instance_variables</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>@assocs</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_instance_variables'>instance_variables</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='symbol'>:@assocs</span><span class='rparen'>)</span>
<span class='ivar'>@assocs</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='kw'>end</span>
<span class='ivar'>@assocs</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri Nov 27 21:10:34 2020 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.24 (ruby-2.7.2).
</div>
</div>
</body>
</html>