<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Another &quot;help with Allegro GUI&quot;-type question</title>
		<link>http://www.allegro.cc/forums/view/554812</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 22 Dec 2005 20:17:20 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;v been searching through the GUI-related posts and see that many people are having trouble with the program closing due to do_dialog(). I also have this problem, but it only happens with d_menu_proc. d_slider_proc and d_text_proc work just fine, only d_menu_proc causes problems for me.</p><p>The dialog:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> file_menu<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span>
<span class="k2">{</span>
   <span class="c">/* (proc)      (x) (y) (w)  (h) (fg) (bg) (key) (flags) (d1) (d2)   (dp)  (dp2) (dp3) */</span>
   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_menu_proc" target="_blank"><span class="a">d_menu_proc</span></a>, <span class="n">8</span>,  <span class="n">24</span>, <span class="n">224</span>, <span class="n">16</span>, <span class="n">32</span>,   <span class="n">97</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>help_menu, NULL, NULL <span class="k2">}</span>,
   <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>
<span class="k2">}</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> dlg<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span>
<span class="k2">{</span>
   <span class="c">/* (proc)      (x) (y) (w)  (h) (fg) (bg) (key) (flags) (d1) (d2) (dp)        (dp2) (dp3) */</span>
   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_menu_proc" target="_blank"><span class="a">d_menu_proc</span></a>, <span class="n">8</span>,  <span class="n">24</span>, <span class="n">224</span>, <span class="n">16</span>, <span class="n">32</span>,   <span class="n">97</span>,   <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,   <span class="n">0</span>,   file_menu, NULL, NULL <span class="k2">}</span>,
   <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>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

The callback:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> help_menu<span class="k2">(</span><span class="k1">void</span> <span class="k3">*</span>dp3, <span class="k1">int</span> d2<span class="k2">)</span>
<span class="k2">{</span>
  <span class="c">//allegro_message("HELP MENU");</span>
  <span class="k1">return</span> D_O_K<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

I assume it has something to do with the callback. I created the dialog in &quot;dlg&quot; (the graphical Allegro GUI builder), so I think it&#39;s all correct. I&#39;m not sure what would cause it to crash though, as nothing happens in it. It is declared as int, as it should be, and is casted to void * in the dialog, and I have the extra NULL line in there. Could it have something to do with the parameters of the callback?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Thu, 22 Dec 2005 17:29:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Allegro Manual said:</div><div class="quote"><p>
int d_menu_proc(int msg, DIALOG *d, int c);</p><p>The dp field points to an array of menu structures: see do_menu() for more information.
</p></div></div><p>

<a href="http://www.allegro.cc/manual/do_menu">do_menu</a>, <a href="http://www.allegro.cc/manual/api/structures-and-types-defined-by-allegro/menu">MENU struct</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Hrvoje Ban)</author>
		<pubDate>Thu, 22 Dec 2005 17:44:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I assume it has something to do with the callback.
</p></div></div><p>
As already pointed out by Hrvoje, there is no callback function expected at dp.</p><p>[append]more specifically: You&#39;re file_menu is a DIALOG array, while it should be a MENU array.
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/MENU" target="_blank"><span class="a">MENU</span></a> file_menu<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span>
<span class="k2">{</span>
   <span class="c">/* (text),(callback proc),(child),(flags),(dp) */</span>
   <span class="c">// insert your menu entries here</span>
<span class="k2">}</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> dlg<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span>
<span class="k2">{</span>
   <span class="c">/* (proc)      (x) (y) (w)  (h) (fg) (bg) (key) (flags) (d1) (d2) (dp)        (dp2) (dp3) */</span>
   <span class="k2">{</span> <a href="http://www.allegro.cc/manual/d_menu_proc" target="_blank"><span class="a">d_menu_proc</span></a>, <span class="n">8</span>,  <span class="n">24</span>, <span class="n">224</span>, <span class="n">16</span>, <span class="n">32</span>,   <span class="n">97</span>,   <span class="n">0</span>,    <span class="n">0</span>,      <span class="n">0</span>,   <span class="n">0</span>,   file_menu, NULL, NULL <span class="k2">}</span>,
   <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>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dennis)</author>
		<pubDate>Thu, 22 Dec 2005 18:02:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah...apparently when I was reading the manual, I read it as an array of menu_proc&#39;s, not menu structs! Very stupid, I know. I&#39;ve fixed it up, and it&#39;s now working. Thanks a lot guys, I appreciate it (even though you made me look like an idiot <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Thu, 22 Dec 2005 18:44:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Yeah...apparently when I was reading the manual, I read it as an array of menu_proc&#39;s, not menu structs!
</p></div></div><p>
...and then you decided to use an array of DIALOG...;D<br />Don&#39;t worry about it, sometimes everybody mixes something up. Nobody is perfect.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dennis)</author>
		<pubDate>Thu, 22 Dec 2005 20:17:20 +0000</pubDate>
	</item>
</rss>
