<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Sliders and Text in GUI</title>
		<link>http://www.allegro.cc/forums/view/590835</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 03 Apr 2007 04:12:58 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m fooling around with the Allegro GUI. I quickly wrote up a program that was supposed to show a slider, and beside the slider it should show the value of the slider. It works fine, except the d_text_proc value remains at 0 no matter where the slider is positioned. Here&#39;s the source:</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="k1">char</span> value<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="s">"0"</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">int</span> change_value<span class="k2">(</span><span class="k1">void</span> <span class="k3">*</span>dp3, <span class="k1">int</span> d2<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>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_517.html" target="_blank">itoa</a><span class="k2">(</span>d2, value, <span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k2">}</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> the_dialog<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</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="c">/* (dialog proc)     (x)   (y)   (w)   (h)  (fg)  (bg) (key) (flags)     (d1) (d2)    (dp)    (dp2)       (dp3) */</span></td></tr><tr><td class="number">13</td><td>                                                                                                             </td></tr><tr><td class="number">14</td><td>    <span class="k2">{</span>  <a href="http://www.allegro.cc/manual/d_clear_proc" target="_blank"><span class="a">d_clear_proc</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">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,          <span class="n">0</span>,   <span class="n">0</span>,      NULL,   NULL,       NULL  <span class="k2">}</span>,</td></tr><tr><td class="number">15</td><td>    </td></tr><tr><td class="number">16</td><td>    <span class="k2">{</span>  <a href="http://www.allegro.cc/manual/d_slider_proc" target="_blank"><span class="a">d_slider_proc</span></a>,    <span class="n">10</span>,   <span class="n">10</span>,   <span class="n">16</span>,   <span class="n">100</span>, <span class="n">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,          <span class="n">100</span>, <span class="n">0</span>,      NULL,   <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>change_value,       NULL  <span class="k2">}</span>,</td></tr><tr><td class="number">17</td><td>    </td></tr><tr><td class="number">18</td><td>    <span class="k2">{</span>  <a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a>,      <span class="n">25</span>,   <span class="n">50</span>,   <span class="n">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,          <span class="n">0</span>,   <span class="n">0</span>,      <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>value, NULL, NULL  <span class="k2">}</span>,</td></tr><tr><td class="number">19</td><td>             </td></tr><tr><td class="number">20</td><td>    <span class="k2">{</span>  NULL,             <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,   <span class="n">0</span>,    <span class="n">0</span>,          <span class="n">0</span>,   <span class="n">0</span>,      NULL,   NULL,       NULL  <span class="k2">}</span></td></tr><tr><td class="number">21</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>    </td></tr><tr><td class="number">23</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">24</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">25</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">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</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_WINDOWED, <span class="n">640</span>, <span class="n">480</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">27</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">28</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">29</td><td>  <a href="http://www.allegro.cc/manual/gui_fg_color" target="_blank"><span class="a">gui_fg_color</span></a> <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">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>  <a href="http://www.allegro.cc/manual/gui_mg_color" target="_blank"><span class="a">gui_mg_color</span></a> <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">128</span>, <span class="n">128</span>, <span class="n">128</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>  <a href="http://www.allegro.cc/manual/gui_bg_color" target="_blank"><span class="a">gui_bg_color</span></a> <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">230</span>, <span class="n">220</span>, <span class="n">210</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>  <a href="http://www.allegro.cc/manual/set_dialog_color" target="_blank"><span class="a">set_dialog_color</span></a> <span class="k2">(</span>the_dialog, <a href="http://www.allegro.cc/manual/gui_fg_color" target="_blank"><span class="a">gui_fg_color</span></a>, <a href="http://www.allegro.cc/manual/gui_bg_color" target="_blank"><span class="a">gui_bg_color</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>  <a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>the_dialog, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr><tr><td class="number">36</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>

What am I doing wrong?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moon_rabbits)</author>
		<pubDate>Mon, 02 Apr 2007 22:57:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That code looks perfect to me.  Maybe see what printf(&quot;%d\n&quot;, d2); outputs inside of change_value?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Mon, 02 Apr 2007 23:06:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I placed a call to printf() inside change_value() and on the console the slider&#39;s current value displayed fine, however the graphical representation did not change from 0. </p><p>Also, whenever I click and drag the slider, the instant I release the program exits despite the fact that D_EXIT is not a flag. </p><p>Help?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moon_rabbits)</author>
		<pubDate>Tue, 03 Apr 2007 03:27:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What compiler / IDE are you using?  Are you comfortable with <i>gdb</i>?</p><p>As for the not updating problem, maybe the d_text_proc needs to receive a new draw message?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 03 Apr 2007 03:29:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m using Dev-Cpp, and I&#39;ve never touched gdb in my life.</p><p>Also, how do I send another draw message to d_text_proc?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moon_rabbits)</author>
		<pubDate>Tue, 03 Apr 2007 03:45:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Looks like yours isn&#39;t a new problem, try reading <a href="http://www.allegro.cc/forums/thread/573605">here</a>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Rampage)</author>
		<pubDate>Tue, 03 Apr 2007 03:50:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Rampage said:</div><div class="quote"><p>

Looks like yours isn&#39;t a new problem, try reading here.
</p></div></div><p>
We&#39;ve established the function is getting called via printf, maybe this problem is a different one?</p><div class="quote_container"><div class="title">You said:</div><div class="quote"><p>

Also, how do I send another draw message to d_text_proc?
</p></div></div><p>
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/object_message" target="_blank"><span class="a">object_message</span></a><span class="k2">(</span><span class="k3">&amp;</span>the_dialog<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>, MSG_DRAW, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

</p><div class="quote_container"><div class="title">You said:</div><div class="quote"><p>

I&#39;m using Dev-Cpp, and I&#39;ve never touched gdb in my life.
</p></div></div><p>
You&#39;ll have to get mighty comfortable with it eventually.. Its a tool that helps you answer questions like this one:
</p><div class="quote_container"><div class="title">You said:</div><div class="quote"><p>

Also, whenever I click and drag the slider, the instant I release the program exits despite the fact that D_EXIT is not a flag.
</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 03 Apr 2007 04:03:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, I removed the (void*) before change_value in the_dialog, but now I get this error:</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
22  invalid conversion from `int (*)(void*, int)&#39; to `void*&#39;
</p></div></div><p>

And so I added the (void*) back to the callback to change_value.</p><p>I tried to send a message to redraw the d_text_proc like this:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/d_text_proc" target="_blank"><span class="a">d_text_proc</span></a><span class="k2">(</span>D_REDRAW, the_dialog, <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

But, if I call that inside change_value, it does not work because the_dialog is declared and defined after change_value is defined. If I place the_dialog&#39;s definition before change_value, I cannot compile because change_value is not defined before the_dialog, where it is called. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><p>EDIT: The problem is fixed, I declared change_value and defined it after the_dialog, and used the object_message() function that Dustin suggested. It works perfectly now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moon_rabbits)</author>
		<pubDate>Tue, 03 Apr 2007 04:05:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It works perfectly now.
</p></div></div><p>
Awesome8-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 03 Apr 2007 04:12:58 +0000</pubDate>
	</item>
</rss>
