<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[A5] Multiple User Key Input</title>
		<link>http://www.allegro.cc/forums/view/608813</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 15 Nov 2011 22:10:01 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi @ all, </p><p>i have a question regarding the user key input. Say i have a options dialog with some options like resolution and several key settings for the player.</p><p>i know, that i can store a single user input with:</p><p><span class="source-code"><a href="http://www.allegro.cc/manual/al_ustr_append_chr"><span class="a">al_ustr_append_chr</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_USTR"><span class="a">ALLEGRO_USTR</span></a>, event.keyboard.unichar<span class="k2">)</span><span class="k2">;</span></span></p><p>but how does this work for multiple input fields? Is there a tutorial for this kind of problem? ^^</p><p>greetings<br />sa1k01
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sa1k01)</author>
		<pubDate>Mon, 14 Nov 2011 20:39:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;ll have to set a focus variable when the user clicks on a field. Then only accept input when that field has focus.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 14 Nov 2011 22:23:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>thx for the reply.</p><p>mh ok. then i should just wait for an mouse click event and save the x and y position of the label, right?</p><p>i will give it a try and let you know if this works. </p><p>kind regards<br />sa1k01
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (sa1k01)</author>
		<pubDate>Tue, 15 Nov 2011 14:37:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you&#39;re using a struct/class to store your input field object, then just use a pointer to the active object, or store a flag in the class :
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">class</span> InputField <span class="k2">{</span>
<span class="number">  2</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">  3</span>   <span class="k1">int</span> x,y,w,h<span class="k2">;</span>
<span class="number">  4</span>   string text<span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">int</span> caretx<span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">bool</span> hasfocus<span class="k2">;</span>
<span class="number">  7</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number">  8</span>   <span class="k1">bool</span> CheckInput<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>      tookfocus <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k1">if</span> <span class="k2">(</span>hasfocus<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>         <span class="c">// check for unicode key char events here</span>
<span class="number"> 12</span>      <span class="k2">}</span>
<span class="number"> 13</span>      <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 14</span>         <span class="c">// something else</span>
<span class="number"> 15</span>         <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 16</span>            tookfocus <span class="k3">=</span> Click<span class="k2">(</span>ev.mouse.x , ev.mouse.y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>         <span class="k2">}</span>
<span class="number"> 18</span>      <span class="k2">}</span>
<span class="number"> 19</span>      <span class="k1">return</span> tookfocus<span class="k2">;</span>
<span class="number"> 20</span>   <span class="k2">}</span>
<span class="number"> 21</span>
<span class="number"> 22</span>   <span class="k1">void</span> SetFocus<span class="k2">(</span><span class="k1">bool</span> focus<span class="k2">)</span> <span class="k2">{</span>hasfocus <span class="k3">=</span> focus<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 23</span><span class="k2">}</span>
</div></div><p>

</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>
<span class="number">  2</span>InputField in1,in2,in3<span class="k2">;</span>
<span class="number">  3</span>InputField<span class="k3">*</span> infield<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k3">&amp;</span>in1 , <span class="k3">&amp;</span>in2 , <span class="k3">&amp;</span>in3<span class="k2">}</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>InputField<span class="k3">*</span> infocus <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="c">//...</span>
<span class="number">  8</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  9</span>   <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>   <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">3</span> <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>      <span class="k1">if</span> <span class="k2">(</span>infield<span class="k2">[</span>i<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>CheckInput<span class="k2">(</span>ev<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>         infocus <span class="k3">=</span> infield<span class="k2">[</span>i<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 13</span>         <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">3</span> <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>j<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>            infield<span class="k2">[</span>i<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>SetFocus<span class="k2">(</span>infield<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> infocus<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>         <span class="k2">}</span>
<span class="number"> 16</span>      <span class="k2">}</span>
<span class="number"> 17</span>   <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 15 Nov 2011 22:10:01 +0000</pubDate>
	</item>
</rss>
