<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Keyboard input trought allegro</title>
		<link>http://www.allegro.cc/forums/view/615157</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 04 Mar 2015 12:01:29 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello. I have a simple question:<br />How can you input text trought allegro?<br />If you didn&#39;t understand what i was meaning, imagine that in my game the user has to write a name for his game caracter. I need my game to detect when a key is pressed and if that key is between A - Z and a - z the program to add that caracter to a string varible. I was thinking of using the event system and somehow detect the keyboard keycode, but I don&#39;t know if the keycode is like the codes in the ASCII table. I want to use 100% allegro beause I can port it to other  platforms.</p><p>Any help would  be welcome!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (TeachMeHowToPro)</author>
		<pubDate>Mon, 02 Mar 2015 23:18:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The easiest way is to find a gui library you like (there&#39;s a few). Or you can use the <span class="source-code">ALLEGRO_EVENT_KEY_CHAR</span> and the unichar field to get the unicode character (and use the <a href="https://www.allegro.cc/manual/5/utf8.html">allegro unicode string api</a>).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Mon, 02 Mar 2015 23:23:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is some &#39;orrible code that works from an old game of mine,</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">const</span> <span class="k1">char</span> <span class="k3">*</span> a5_grab_input<span class="k2">(</span><span class="k1">int</span> ytextpos<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span><span class="k1">int</span> happen<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  4</span><span class="k1">char</span>  <span class="k3">*</span>edittext<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a> <span class="k2">(</span><span class="k1">sizeof</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span> <span class="k3">*</span> <span class="n">128</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span><span class="k1">int</span>   caret <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  6</span><span class="k1">int</span> running<span class="k3">=</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  7</span><a href="http://www.allegro.cc/manual/al_flush_event_queue"><span class="a">al_flush_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>disp_data.width<span class="k3">/</span><span class="n">5</span>,ytextpos-20,disp_data.width<span class="k3">/</span><span class="n">5</span><span class="k3">*</span><span class="n">4</span>,ytextpos<span class="k3">+</span><span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span>disp_data.width<span class="k3">/</span><span class="n">5</span>,ytextpos-20,disp_data.width<span class="k3">/</span><span class="n">5</span><span class="k3">*</span><span class="n">4</span>,ytextpos<span class="k3">+</span><span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">150</span>,<span class="n">150</span>,<span class="n">150</span><span class="k2">)</span>,<span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span><a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>   <span class="k1">do</span>
<span class="number"> 13</span>   <span class="k2">{</span>
<span class="number"> 14</span>    <a href="http://www.allegro.cc/manual/al_init_timeout"><span class="a">al_init_timeout</span></a><span class="k2">(</span><span class="k3">&amp;</span>timeout, <span class="n">0</span>.<span class="n">06</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    <span class="k1">bool</span> get_event <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_wait_for_event_until"><span class="a">al_wait_for_event_until</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev, <span class="k3">&amp;</span>timeout<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>    <span class="k1">if</span> <span class="k2">(</span>get_event <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_KEY_CHAR<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 18</span>         <span class="k1">int</span>  newkey   <span class="k3">=</span> ev.keyboard.unichar<span class="k2">;</span>
<span class="number"> 19</span>         <span class="k1">char</span> ASCII    <span class="k3">=</span> newkey <span class="k3">&amp;</span> <span class="n">0xff</span><span class="k2">;</span>
<span class="number"> 20</span>         <span class="k1">char</span> scancode <span class="k3">=</span> ev.keyboard.keycode<span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</span>         <span class="c">///* a character key was pressed; add it to the string */</span>
<span class="number"> 23</span>        <span class="k1">if</span><span class="k2">(</span>scancode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ENTER<span class="k2">)</span> running<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 24</span>            <span class="k1">else</span>
<span class="number"> 25</span>        <span class="k1">if</span> <span class="k2">(</span>scancode<span class="k3">=</span><span class="k3">=</span>ALLEGRO_KEY_SPACE<span class="k2">)</span> <span class="k2">;</span>
<span class="number"> 26</span>         <span class="k1">else</span>
<span class="number"> 27</span>        <span class="k1">if</span><span class="k2">(</span>scancode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_BACKSPACE <span class="k2">)</span><span class="k2">{</span>
<span class="number"> 28</span>            <span class="k1">if</span> <span class="k2">(</span>caret <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> caret--<span class="k2">;</span>
<span class="number"> 29</span>            happen<span class="k3">=</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 30</span>            edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span>
<span class="number"> 31</span>            <span class="k2">}</span>
<span class="number"> 32</span>         <span class="k1">else</span>
<span class="number"> 33</span>         <span class="k1">if</span><span class="k2">(</span>ASCII <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">32</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ASCII <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">126</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 34</span>            <span class="k1">if</span> <span class="k2">(</span>ASCII&gt;<span class="k3">=</span><span class="n">97</span> AND ASCII <span class="k3">&lt;</span><span class="k3">=</span><span class="n">122</span> AND <span class="k2">(</span>caret<span class="k3">=</span><span class="k3">=</span><span class="n">0</span> OR edittext<span class="k2">[</span>caret-1<span class="k2">]</span><span class="k3">=</span><span class="k3">=</span><span class="s">' '</span><span class="k2">)</span><span class="k2">)</span> ASCII-<span class="k3">=</span><span class="n">32</span><span class="k2">;</span>
<span class="number"> 35</span>        <span class="k1">if</span><span class="k2">(</span>caret <span class="k3">&lt;</span> <span class="n">20</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 36</span>          edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> ASCII<span class="k2">;</span>
<span class="number"> 37</span>          caret<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 38</span>          edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span>
<span class="number"> 39</span>          happen<span class="k3">=</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 40</span>        <span class="k2">}</span>
<span class="number"> 41</span>            <span class="k2">}</span>
<span class="number"> 42</span>        <span class="k2">}</span>
<span class="number"> 43</span>
<span class="number"> 44</span>      <span class="k1">if</span> <span class="k2">(</span>happen<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 45</span>          <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>disp_data.width<span class="k3">/</span><span class="n">5</span>,ytextpos-20,disp_data.width<span class="k3">/</span><span class="n">5</span><span class="k3">*</span><span class="n">4</span>,ytextpos<span class="k3">+</span><span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>          <a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span>disp_data.width<span class="k3">/</span><span class="n">5</span>,ytextpos-20,disp_data.width<span class="k3">/</span><span class="n">5</span><span class="k3">*</span><span class="n">4</span>,ytextpos<span class="k3">+</span><span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">150</span>,<span class="n">150</span>,<span class="n">150</span><span class="k2">)</span>,<span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>          <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">250</span>,<span class="n">250</span>,<span class="n">250</span><span class="k2">)</span>,disp_data.width<span class="k3">/</span><span class="n">2</span>, ytextpos,ALLEGRO_ALIGN_CENTER,edittext<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>          <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>          <span class="k2">}</span>
<span class="number"> 50</span>      happen<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 51</span>   <span class="k2">}</span>
<span class="number"> 52</span>   <span class="k1">while</span><span class="k2">(</span>running<span class="k3">=</span><span class="k3">=</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>
<span class="number"> 54</span>
<span class="number"> 55</span>   <span class="c">//If no name - 0 characters inputed then return random name</span>
<span class="number"> 56</span>   <span class="k1">if</span> <span class="k2">(</span>caret<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 57</span>       <span class="k1">switch</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">3</span><span class="k2">)</span><span class="k2">{</span>
<span class="number"> 58</span>                <span class="k1">case</span> <span class="n">0</span><span class="k2">:</span>
<span class="number"> 59</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a> <span class="k2">(</span>edittext, <span class="s">"Vasya Pupkin"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 61</span>                <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 62</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a> <span class="k2">(</span>edittext, <span class="s">"Joe Bloggs"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 64</span>                default:
<span class="number"> 65</span>                <a href="http://www.delorie.com/djgpp/doc/libc/libc_756.html" target="_blank">strcpy</a> <span class="k2">(</span>edittext, <span class="s">"Luther Blissett"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 66</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 67</span>                <span class="k2">}</span>
<span class="number"> 68</span>      <span class="k2">}</span>
<span class="number"> 69</span>
<span class="number"> 70</span><span class="k1">return</span> edittext<span class="k2">;</span>
<span class="number"> 71</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Yodhe23)</author>
		<pubDate>Tue, 03 Mar 2015 00:43:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That really is &#39;orrible! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> Never share that snippet with anyone ever again! <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (StevenVI)</author>
		<pubDate>Tue, 03 Mar 2015 01:13:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>&#39;Orrible but it works, I guess it&#39;s the hacker in me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Yodhe23)</author>
		<pubDate>Tue, 03 Mar 2015 02:14:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can anyone recommend a GUI library? I need it to work on Android and IOS also
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (TeachMeHowToPro)</author>
		<pubDate>Tue, 03 Mar 2015 15:09:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My GUI API Agui is used in the popular game Factorio: <a href="http://www.factorio.com/">http://www.factorio.com/</a> and I have been using it for years.</p><p>I am currently porting my game to ios and in doing so I am adding some touch compatibility. I have obj-c classes to do keyboard support in ios too.</p><p>There&#39;s also:<br />GWEN <a href="https://github.com/garrynewman/GWEN">https://github.com/garrynewman/GWEN</a><br />TGUI2 <a href="http://nooskewl.ca/more/open-source/">http://nooskewl.ca/more/open-source/</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 04 Mar 2015 12:01:29 +0000</pubDate>
	</item>
</rss>
