<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Input box using Allegro</title>
		<link>http://www.allegro.cc/forums/view/587830</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 04 Oct 2006 00:17:41 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello again,</p><p>I am trying to find a solution to this.  I am need of using input style boxes in my game however I cannot seem to locate how to accomplish this.  I have used my books and research and I can&#39;t do the following:<br />1) Detect Mouse Coordinates<br />2) Detect Key Presses </p><p>So what do I need to do?  The only way I can think of is to somehow set the coordinates of where the boxes are and if they are clicked then have a loop function that displays | flashing and constantly displays keys that are pressed until the mouse leaves the coordinates or until tab is hit.  </p><p>Is this close to being right?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (makeshift_theory)</author>
		<pubDate>Mon, 02 Oct 2006 08:09:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you tried using the <a href="http://www.allegro.cc/manual/api/gui-routines/">Allegro GUI functions</a>?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rampage)</author>
		<pubDate>Mon, 02 Oct 2006 08:11:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have working solution for this at home. If i remember i&#39;ll post it for you later today.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Eradicor)</author>
		<pubDate>Mon, 02 Oct 2006 10:54:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi all well I found some source code online and did some editing so I could get the caret to flash.  The only thing I need to figure out now is how to draw all of it on screen with a background.  Double buffering will not work because it has to clear the buffer between flashes so I&#39;m thinking of converting the caret to a bitmap image and just clear the bitmap image instead of the whole buffer.  If possible can you make a buffer background transparent?  I know a buffer is just a blank bitmap so I have the option of drawing the input box in the buffer image and updating that I suppose.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (makeshift_theory)</author>
		<pubDate>Mon, 02 Oct 2006 16:54:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your way of thinking about double buffering is severely flawed. In double buffering you have an off screen buffer, in every frame you fill this buffer completely with what you want to be displayed on the screen, and then blit the buffer to screen. If what you want to be displayed on the screen is an input box with a flashing |, then you need to draw the box to the buffer, keep a variable that tracks the status of the caret (on/off) and if it&#39;s &quot;on&quot;, draw the caret. Every now and then (like twice a second) you toggle the status of the caret flag between on and off.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Mon, 02 Oct 2006 18:02:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Cant find the files.. Sorry.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Eradicor)</author>
		<pubDate>Mon, 02 Oct 2006 21:59:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here let me show you my code to give you an idea of what I was trying:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="p">#define BUFFERSIZE 128</span></td></tr><tr><td class="number">4</td><td><span class="p">#define WHITE makecol(255, 255, 255)</span></td></tr><tr><td class="number">5</td><td><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>   <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>   <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>   <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>   <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>   <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT, <span class="n">800</span>, <span class="n">600</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>   </td></tr><tr><td class="number">14</td><td>   <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bg <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>   bg <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"mainmenu.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>   <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>   <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer2 <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>   <span class="k1">char</span>    edittext<span class="k2">[</span>BUFFERSIZE<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>   <span class="k1">int</span>     caret  <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>   <span class="c">/* typical Allegro initialization */</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>   buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>   buffer2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>   </td></tr><tr><td class="number">28</td><td>   <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>bg, buffer, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td>   <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</td><td>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">33</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">34</td><td>         </td></tr><tr><td class="number">35</td><td>         <span class="k1">int</span>  newkey   <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>         <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></td></tr><tr><td class="number">37</td><td>         <span class="k1">char</span> scancode <span class="k3">=</span> newkey <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td>         <span class="c">/* a character key was pressed; add it to the string */</span></td></tr><tr><td class="number">40</td><td>         <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></td></tr><tr><td class="number">41</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">42</td><td>        <span class="k1">if</span><span class="k2">(</span>caret <span class="k3">&lt;</span> BUFFERSIZE <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">43</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">44</td><td>          edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> ASCII<span class="k2">;</span></td></tr><tr><td class="number">45</td><td>          caret<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>          edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">48</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">49</td><td>         <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>scancode <span class="k3">=</span><span class="k3">=</span> KEY_BACKSPACE<span class="k2">)</span></td></tr><tr><td class="number">50</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">51</td><td>            <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></td></tr><tr><td class="number">52</td><td>            edittext<span class="k2">[</span>caret<span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">54</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">55</td><td>      </td></tr><tr><td class="number">56</td><td>      <span class="c">/* all drawing goes here */</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td>      <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span>buffer2, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, edittext, <span class="n">0</span>, <span class="n">10</span>, WHITE, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>      x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>      <span class="k1">if</span><span class="k2">(</span>x % <span class="n">8</span><span class="k2">)</span></td></tr><tr><td class="number">61</td><td>      <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>buffer2, caret <span class="k3">*</span> <span class="n">8</span>, <span class="n">8</span>, <span class="n">18</span>, WHITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">63</td><td>      <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>buffer2, caret <span class="k3">*</span> <span class="n">8</span>, <span class="n">8</span>, <span class="n">18</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>      </td></tr><tr><td class="number">65</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer2, buffer, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">300</span>, <span class="n">300</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>      clear<span class="k2">(</span>buffer2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>&#160;</td></tr><tr><td class="number">69</td><td>      <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>      </td></tr><tr><td class="number">71</td><td>      </td></tr><tr><td class="number">72</td><td>&#160;</td></tr><tr><td class="number">73</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</td><td>   </td></tr><tr><td class="number">76</td><td>   <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>&#160;</td></tr><tr><td class="number">78</td><td>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">79</td><td><span class="k2">}</span></td></tr><tr><td class="number">80</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>

EDITED, Thanks for the heads up Thomas
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (makeshift_theory)</author>
		<pubDate>Tue, 03 Oct 2006 03:46:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Please use <i>[code]</i> tags, take a look at the &quot;HTML Mockup Code&quot; link thats just above the textarea.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 03 Oct 2006 04:11:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have one that draws a box with text inside it. There is a blinking cursor and backspace support, no left and right support and no scrolling. I might post it when I get home. The allegro routines are better, but not so user friendly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (James Stanley)</author>
		<pubDate>Tue, 03 Oct 2006 17:37:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here are your options:<br />a) Use the Allegro GUI<br />b) Use a 3rd-party GUI library (browse the depot; there are a few useful ones there)<br />c) Analyze the original allegro code and copy-past from it to make your own routine<br />d) Hack something together yourself. It&#39;s not that hard.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Tue, 03 Oct 2006 17:51:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s probably no use, but here goes:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> textbox<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <a href="http://www.allegro.cc/manual/FONT" target="_blank"><span class="a">FONT</span></a> <span class="k3">*</span>thefont, <span class="k1">char</span> value<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> maxlen, <span class="k1">int</span> id, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> w<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>  <span class="k1">static</span> <span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>  <span class="k1">static</span> <span class="k1">int</span> focus<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  <span class="k1">static</span> <span class="k1">int</span> white, blue, yellow<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  <span class="k1">int</span> kee <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>white<span class="k2">)</span> <span class="k2">{</span> <span class="c">//Untested</span></td></tr><tr><td class="number">8</td><td>    white <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    blue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    yellow <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>, <span class="n">255</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td>  <span class="k1">if</span><span class="k2">(</span>id <span class="k3">=</span><span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="c">//Remove focus</span></td></tr><tr><td class="number">14</td><td>    focus <span class="k3">=</span> id<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td>  <span class="k1">if</span><span class="k2">(</span>click<span class="k2">(</span>x, y, <span class="k2">(</span>x<span class="k3">+</span>w<span class="k2">)</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">8</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> focus <span class="k3">=</span> id<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>  <span class="k1">if</span><span class="k2">(</span>focus <span class="k3">=</span><span class="k3">=</span> id<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">21</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> kee <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>    <span class="k1">switch</span><span class="k2">(</span>kee <span class="k3">&amp;</span> <span class="n">0xFF</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">23</td><td>      <span class="k1">case</span> <span class="n">8</span><span class="k2">:</span></td></tr><tr><td class="number">24</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>value<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> value<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>value<span class="k2">)</span><span class="k3">-</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>        <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>      default:</td></tr><tr><td class="number">27</td><td>        <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>value<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">int</span><span class="k2">)</span>maxlen<span class="k2">)</span> value<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>value<span class="k2">)</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k2">)</span>kee<span class="k2">;</span></td></tr><tr><td class="number">28</td><td>        <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">30</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>bmp, x, y, w<span class="k3">+</span><span class="n">6</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">8</span><span class="k2">)</span>, white<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>  <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">(</span>bmp, x, y, w<span class="k3">+</span><span class="n">6</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">8</span><span class="k2">)</span>, yellow<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>  <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">(</span>bmp, x<span class="k3">+</span><span class="n">1</span>, y<span class="k3">+</span><span class="n">1</span>, w<span class="k3">+</span><span class="n">5</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">7</span><span class="k2">)</span>, yellow<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">(</span>bmp, x<span class="k3">+</span><span class="n">2</span>, y<span class="k3">+</span><span class="n">2</span>, w<span class="k3">+</span><span class="n">5</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">6</span><span class="k2">)</span>, yellow<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>  <a href="http://www.allegro.cc/manual/textout_ex" target="_blank"><span class="a">textout_ex</span></a><span class="k2">(</span>bmp, thefont, value, x<span class="k3">+</span><span class="n">4</span>, y<span class="k3">+</span><span class="n">4</span>, blue, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td>  <span class="k1">if</span><span class="k2">(</span>focus <span class="k3">=</span><span class="k3">=</span> id<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">40</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">50</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <span class="k3">&gt;</span> <span class="n">25</span><span class="k2">)</span> <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span>bmp, <span class="k2">(</span><a href="http://www.allegro.cc/manual/text_length" target="_blank"><span class="a">text_length</span></a><span class="k2">(</span>thefont, value<span class="k2">)</span><span class="k3">+</span>x<span class="k3">+</span><span class="n">5</span><span class="k2">)</span>, y<span class="k3">+</span><span class="n">5</span>, <span class="k2">(</span>y<span class="k3">+</span><a href="http://www.allegro.cc/manual/text_height" target="_blank"><span class="a">text_height</span></a><span class="k2">(</span>thefont<span class="k2">)</span><span class="k3">+</span><span class="n">3</span><span class="k2">)</span>, blue<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">44</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Call it like:<br />textbox(canvas, font, my_char, 12, TEXT_BOX_1, 50, 50, 200);</p><p>Obviously, you put #define TEXT_BOX_1 1 in a header. The id is so that it knows where to put the text, otherwise if you had two on the screen at the same time, it wouldn&#39;t know which was in focus.</p><p>EDIT:<br />You&#39;ll want click() as well:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> click<span class="k2">(</span><span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2<span class="k2">)</span> <span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&gt;</span><span class="k3">=</span> x1<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span><span class="k3">=</span> x2<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span><span class="k3">=</span> y1<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span><span class="k3">=</span> y2<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span> <span class="k1">else</span> <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

EDIT2:<br />Pass -1 as the focus parameter to put all textboxes out of focus. You might need a small char array, or use one you already have. It won&#39;t get changed. I promise.</p><p>EDIT3:<br />I defined some colours inside the function when I noticed they weren&#39;t defined already.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (James Stanley)</author>
		<pubDate>Wed, 04 Oct 2006 00:17:41 +0000</pubDate>
	</item>
</rss>
