<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>weird text input problem</title>
		<link>http://www.allegro.cc/forums/view/590393</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 06 Mar 2007 07:24:27 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What happens is when I type without actually clicking on the text field, then click on it, the text will appear even though I said for it to only poll the text code IF the flag is set to W_SELECTED.  What can I do to fix this?</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> widget::input<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span>    </td></tr><tr><td class="number">3</td><td>  <span class="k1">if</span><span class="k2">(</span>flags <span class="k3">=</span><span class="k3">=</span> W_SELECTED<span class="k2">)</span></td></tr><tr><td class="number">4</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">5</td><td>    <span class="k1">while</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">6</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">7</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">8</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">9</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">10</td><td>&#160;</td></tr><tr><td class="number">11</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="k3">&amp;</span><span class="k3">&amp;</span> text.length<span class="k2">(</span><span class="k2">)</span> <span class="k3">&lt;</span> length<span class="k2">)</span></td></tr><tr><td class="number">12</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>        <span class="k1">if</span><span class="k2">(</span>insert <span class="k3">|</span><span class="k3">|</span> iter <span class="k3">=</span><span class="k3">=</span> text.end<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">14</td><td>          iter <span class="k3">=</span> text.insert<span class="k2">(</span>iter, ASCII<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  </td></tr><tr><td class="number">16</td><td>        <span class="k1">else</span></td></tr><tr><td class="number">17</td><td>          text.replace<span class="k2">(</span>caret, <span class="n">1</span>, <span class="n">1</span>, ASCII<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  </td></tr><tr><td class="number">19</td><td>        caret<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>        iter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">24</td><td>        <span class="k1">switch</span><span class="k2">(</span>scancode<span class="k2">)</span></td></tr><tr><td class="number">25</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">26</td><td>          <span class="k1">case</span> KEY_DEL:</td></tr><tr><td class="number">27</td><td>          <span class="k1">if</span><span class="k2">(</span>iter <span class="k3">!</span><span class="k3">=</span> text.end<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> iter <span class="k3">=</span> text.erase<span class="k2">(</span>iter<span class="k2">)</span><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>&#160;</td></tr><tr><td class="number">30</td><td>          <span class="k1">case</span> KEY_BACKSPACE:</td></tr><tr><td class="number">31</td><td>          <span class="k1">if</span><span class="k2">(</span>iter <span class="k3">!</span><span class="k3">=</span> text.begin<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">32</td><td>          <span class="k2">{</span></td></tr><tr><td class="number">33</td><td>            caret--<span class="k2">;</span></td></tr><tr><td class="number">34</td><td>            iter--<span class="k2">;</span></td></tr><tr><td class="number">35</td><td>            iter <span class="k3">=</span> text.erase<span class="k2">(</span>iter<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>          <span class="k2">}</span><span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>           </td></tr><tr><td class="number">38</td><td>          <span class="k1">case</span> KEY_RIGHT:</td></tr><tr><td class="number">39</td><td>          <span class="k1">if</span><span class="k2">(</span>iter <span class="k3">!</span><span class="k3">=</span> text.end<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>   caret<span class="k3">+</span><span class="k3">+</span>, iter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>          <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>           </td></tr><tr><td class="number">42</td><td>          <span class="k1">case</span> KEY_LEFT:</td></tr><tr><td class="number">43</td><td>          <span class="k1">if</span><span class="k2">(</span>iter <span class="k3">!</span><span class="k3">=</span> text.begin<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> caret--, iter--<span class="k2">;</span></td></tr><tr><td class="number">44</td><td>          <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>            </td></tr><tr><td class="number">46</td><td>          <span class="k1">case</span> KEY_INSERT:</td></tr><tr><td class="number">47</td><td>          insert <span class="k3">=</span> <span class="k3">!</span>insert<span class="k2">;</span></td></tr><tr><td class="number">48</td><td>          <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>          default:</td></tr><tr><td class="number">51</td><td>          <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>        <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><span class="k2">}</span></td></tr><tr><td class="number">56</td><td>&#160;</td></tr><tr><td class="number">57</td><td><span class="c">// elsewhere in a switch.. what the hell? isnt this black and white?</span></td></tr><tr><td class="number">58</td><td>&#160;</td></tr><tr><td class="number">59</td><td>    <span class="k1">case</span> W_SELECTED:</td></tr><tr><td class="number">60</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">61</td><td>      text_input<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>      <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>    <span class="k2">}</span><span class="k1">break</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Mon, 05 Mar 2007 06:26:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span></p><p>I&#39;m pretty sure you&#39;ll need that if no input widgets are selected.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Dalrymple)</author>
		<pubDate>Mon, 05 Mar 2007 07:16:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve already tried that. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> I put it inside the case AND I put an &quot;else { clear_keybuf(); }&quot; after the if statement in the input function and it doesn&#39;t do anything. <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p><p>Edit:</p><p>Oh wait you mean inside every case that&#39;s NOT W_SELECTED.  Isn&#39;t that kinda redundant though?  Why is it even doing this to begin with, even after I specifically said for it NOT to poll if it&#39;s not selected.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Mon, 05 Mar 2007 07:34:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This shouldn&#39;t be part of the widget but rather the input manager or widget manager.  That is to say you have a vector of input objects and none are selected then you can clear the keybuf there.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Mon, 05 Mar 2007 09:14:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Widget is my base class for other classes such as Button or Textfield, and also holds various functions like input() or play_sound().  The only thing inside classes derived from Widget is a constructor and a function called is_clicked, which contains a switch (each case in the switch being a different state of the object, based on the class of course.)</p><p>Edit:</p><p>Might want to mention that I&#39;m currently not using vectors for anything right now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Mon, 05 Mar 2007 09:37:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Widgets should go in a widget manager class of some sort.  Widgets themselves shouldn&#39;t have to know about any other widget to function properly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Mon, 05 Mar 2007 09:42:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The widget class does handle everything, by setting global variables based on what you do (if you hover over the object, if you click it, etc.)  I just wanted to keep all the functions inside that one class so I wouldn&#39;t have to repeat them.</p><p>Then somewhere in the widget class I&#39;ve got some kinda master draw function that also happened to be a switch, each case being a different frame and also checks the object&#39;s ID to draw text for buttons or the input text and a caret for textfields.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Mon, 05 Mar 2007 09:45:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you get things to work?</p><p>As Steve Terry was trying to make clear more then me is something like this:</p><div class="source-code snippet"><div class="inner"><pre>vector<span class="k3">&lt;</span>widget&gt; widgets<span class="k2">;</span> <span class="c">// holds all widgets currently in use</span>
<span class="k1">bool</span> noneSelected <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k1">for</span><span class="k2">(</span>vector<span class="k3">&lt;</span>widget&gt;::iterator curWidget <span class="k3">=</span> widgets.begin<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> curWidget <span class="k3">!</span><span class="k3">=</span> widgets.end<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> curWidget<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span>curWidget-&gt;getType <span class="k3">=</span><span class="k3">=</span> TEXT_FIELD <span class="k3">&amp;</span><span class="k3">&amp;</span> curWidget-&gt;isSelected<span class="k2">)</span>
  <span class="k2">{</span>
    noneSelected <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
  <span class="k2">}</span>
<span class="k2">}</span>
<span class="k1">if</span><span class="k2">(</span>noneSelected<span class="k2">)</span>
<span class="k2">{</span>
  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
At least I hope that helps/fixes things.:P
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Dalrymple)</author>
		<pubDate>Tue, 06 Mar 2007 00:55:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Trying to figure out where the hell to put this for statement.  Putting it around the code in my handler function was definitely a bad idea.</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">enum</span> <span class="k2">{</span> W_HIDDEN, W_DISABLED, W_LOSTMOUSE, W_GOTMOUSE, W_UNSELECTED, W_SELECTED, W_CLICKED, W_RELEASED <span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="c">// elsewhere</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>  <span class="k1">void</span> widget::handler<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">7</td><td><span class="c">//    for(current = widgets.begin(); current != widgets.end(); current++)</span></td></tr><tr><td class="number">8</td><td><span class="c">//    {</span></td></tr><tr><td class="number">9</td><td>      <span class="k1">if</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> x_pos <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">&lt;</span> w_pos <span class="k3">+</span> x_pos</td></tr><tr><td class="number">10</td><td>      <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span> y_pos <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span> h_pos <span class="k3">+</span> y_pos<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>        <span class="k1">if</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></td></tr><tr><td class="number">13</td><td>          flags <span class="k3">=</span> W_CLICKED<span class="k2">;</span>             </td></tr><tr><td class="number">14</td><td>      </td></tr><tr><td class="number">15</td><td>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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="k3">&amp;</span><span class="k3">&amp;</span> flags <span class="k3">=</span><span class="k3">=</span> W_CLICKED<span class="k2">)</span></td></tr><tr><td class="number">16</td><td>          flags <span class="k3">=</span> W_RELEASED<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">else</span></td></tr><tr><td class="number">19</td><td>          flags <span class="k3">=</span> W_GOTMOUSE<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>      <span class="k1">else</span></td></tr><tr><td class="number">23</td><td>        flags <span class="k3">=</span> W_LOSTMOUSE<span class="k2">;</span></td></tr><tr><td class="number">24</td><td><span class="c">//    }</span></td></tr><tr><td class="number">25</td><td>  <span class="k2">}</span></td></tr></tbody></table></div></div><p>

Also, I&#39;m guessing that &quot;getType == TEXT_FIELD&quot; would be the same thing as my &quot;ID == 0&quot; (0 meaning it&#39;s a text field.)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 06:30:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
The widget class does handle everything, by setting global variables based on what you do
</p></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 06 Mar 2007 06:34:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What?  Is something on my face?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 06:34:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes... Globals. All over. No, you missed it. Yeah, there.... No, still there.<br />Bah, never mind - it&#39;s hardly noticeable...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Tue, 06 Mar 2007 06:39:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Lawl.</p><p>Is there something actually wrong with this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 06:41:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Is there something actually wrong with this?
</p></div></div><p>

Yes: the globals! You should store all your state variables in a struct which you pass around to all the methods that need it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rampage)</author>
		<pubDate>Tue, 06 Mar 2007 06:47:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How might I do that?</p><p>Actually, how is it even better?  Wouldn&#39;t it be basically doing the same thing..  And why are the globals not good for this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 06:51:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Also based on your widget::handler method think about what would happen if you set your flags to disabled then moused over the widget.  That code would set the flags to W_GOTMOUSE essentially removing the disabled state.  What you need desperately is another class as so:</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">class</span> widget_manager</td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>   private:</td></tr><tr><td class="number">4</td><td>      std::vector<span class="k3">&lt;</span>widget&gt; WidgetList<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>      <span class="c">// Your global variables</span></td></tr><tr><td class="number">6</td><td>   public:</td></tr><tr><td class="number">7</td><td>      <span class="k1">int</span> add_widget<span class="k2">(</span>widget w<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>      <span class="k1">int</span> remove_widget<span class="k2">(</span>widget w<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>      <span class="k1">void</span> update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><span class="k1">int</span> widget_manager::add_widget<span class="k2">(</span>widget w<span class="k2">)</span></td></tr><tr><td class="number">13</td><td><span class="k2">{</span></td></tr><tr><td class="number">14</td><td>    <span class="k1">return</span> WidgetList.push_back<span class="k2">(</span>w<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td><span class="k1">void</span> widget_manager::update<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">18</td><td><span class="k2">{</span></td></tr><tr><td class="number">19</td><td>   <span class="k1">for</span><span class="k2">(</span>vector<span class="k3">&lt;</span>widget&gt;::iterator iter <span class="k3">=</span> WidgetList.begin<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> iter <span class="k3">!</span><span class="k3">=</span> WidgetList.end<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> iter<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">20</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">21</td><td>       <span class="c">// handle widgets</span></td></tr><tr><td class="number">22</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 06 Mar 2007 06:56:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://en.wikipedia.org/wiki/Global_variable">Why you should never use globals.</a></p><p>Remove the globals for your code to be easier to maintain. If you want to add new functionality to your code three months from now, it&#39;ll be easier to understand and modify.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rampage)</author>
		<pubDate>Tue, 06 Mar 2007 06:58:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Fair enough, that looks good..  But I&#39;m not sure how I&#39;m suppose to &quot;handle&quot; the different states of my objects without setting any globals.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 07:16:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Humor us and show the global variables you are using and we can try and help you place them in a meaningful place.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 06 Mar 2007 07:19:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Scroll up about 10 posts or so, it&#39;s up there.  And I see what you meant by the flag resetting itself as soon as you scroll your mouse over the object.  I mean, when it&#39;s just dealing with normal buttons the code works wonders, but after I started to get into dealing with anything radial it began screwing me up royally.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (julian_boolean)</author>
		<pubDate>Tue, 06 Mar 2007 07:24:27 +0000</pubDate>
	</item>
</rss>
