<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>help customizing GUI</title>
		<link>http://www.allegro.cc/forums/view/591768</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 07 Jun 2007 13:29:16 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hi, <br /> I want to customize GUI elements. I want to incorporate button and other GUI elements&#39; functionalities.</p><p> I just want to display a bgimg(bg), a button(but) and a cursor(cur) all bmp images.</p><p> I just want to create alert when the button is clicked. </p><p>I tried like 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="p">#include "allegro.h"</span></td></tr><tr><td class="number">2</td><td><span class="p">#include "algif.h"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</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>b<span class="k2">;</span></td></tr><tr><td class="number">5</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="k2">;</span></td></tr><tr><td class="number">6</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>cur<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="k1">int</span> change_font_proc<span class="k2">(</span><span class="k1">int</span> msg, <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a> <span class="k3">*</span>d, <span class="k1">int</span> c<span class="k2">)</span></td></tr><tr><td class="number">10</td><td><span class="k2">{</span></td></tr><tr><td class="number">11</td><td>   <span class="k1">int</span> ret<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="c">/* call the parent object */</span></td></tr><tr><td class="number">14</td><td>   ret <span class="k3">=</span> <a href="http://www.allegro.cc/manual/d_button_proc" target="_blank"><span class="a">d_button_proc</span></a><span class="k2">(</span>msg, d, c<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>   <span class="c">/* trap the close return value and change the font */</span></td></tr><tr><td class="number">17</td><td>   <span class="k1">if</span> <span class="k2">(</span>ret <span class="k3">=</span><span class="k3">=</span> D_CLOSE<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>      <a href="http://www.allegro.cc/manual/alert" target="_blank"><span class="a">alert</span></a><span class="k2">(</span><span class="s">"An alert"</span>,NULL,NULL,<span class="s">"OK"</span>,NULL,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>      <span class="k1">return</span> D_O_K<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="c">/* otherwise just return */</span></td></tr><tr><td class="number">24</td><td>   <span class="k1">return</span> ret<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>&#160;</td></tr><tr><td class="number">27</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">28</td><td><span class="k2">{</span></td></tr><tr><td class="number">29</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">30</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">31</td><td>    <span class="k2">{</span> change_font_proc,  <span class="n">300</span>,   <span class="n">300</span>,  <span class="n">140</span>,  <span class="n">37</span>,   <span class="n">0</span>,  <span class="n">0</span>,    <span class="n">0</span>,  D_EXIT,  <span class="n">0</span>,   <span class="n">0</span>, <span class="s">""</span>,   NULL, NULL  <span class="k2">}</span>,</td></tr><tr><td class="number">32</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">33</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">36</td><td><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">if</span> <span class="k2">(</span><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="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">39</td><td>      <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>      </td></tr><tr><td class="number">41</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">42</td><td>   <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</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">44</td><td>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a><span class="k2">(</span>DIGI_AUTODETECT, MIDI_AUTODETECT, NULL<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> </td></tr><tr><td class="number">45</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>      <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error initialising sound\n%s\n"</span>, <a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>      <a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a><span class="k2">(</span>DIGI_NONE, MIDI_NONE, NULL<span class="k2">)</span><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>   <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">50</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">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">51</td><td>  </td></tr><tr><td class="number">52</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">"bg.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>   b<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">"but.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>   cur<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">"cur.bmp"</span>,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</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">56</td><td>   </td></tr><tr><td class="number">57</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">58</td><td>    </td></tr><tr><td class="number">59</td><td>   <span class="k1">int</span> mx,my<span class="k2">;</span></td></tr><tr><td class="number">60</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></td></tr><tr><td class="number">61</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">62</td><td>      mx<span class="k3">=</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>      my<span class="k3">=</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,bg,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,b,<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/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,cur,mx,my<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,buffer,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>      </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">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>   <span class="k2">}</span>                             </td></tr><tr><td class="number">71</td><td>   <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>&#160;</td></tr><tr><td class="number">73</td><td>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td><span class="k2">}</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</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>

It compiles and runs. But It gives only a black screen and If i click on positions around (300,300) and (440,340), alerts are popping up.</p><p> Help me to find What is wrong with the code. Am i in a wrong path. Is there any other way to do it.</p><p> Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raja peter)</author>
		<pubDate>Wed, 06 Jun 2007 18:43:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You need to:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/set_dialog_color" target="_blank"><span class="a">set_dialog_color</span></a>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Wed, 06 Jun 2007 19:17:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I want to display the bmp images on my screen and do the gui functionality.</p><p> I set the dialog color. It doesn&#39;t display my bmp images.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raja peter)</author>
		<pubDate>Wed, 06 Jun 2007 19:28:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I&#39;ll tell you what you code does. You can then tell me if this is what you want <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>First the dialog is called. No bitmaps will be shown here. Once you finish the dialog, you will enter the while loop displaying your bitmaps.</p><p>If you quit the dialog using ESC you&#39;ll never run into the while loop and the program will just exit.</p><p>Is this what you want? or do you want to display the bitmaps inside the dialog? If so, there is a bitmap proc to do this.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (spellcaster)</author>
		<pubDate>Wed, 06 Jun 2007 19:39:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>i need to dig more .</p><p>Thanks spellcaster.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raja peter)</author>
		<pubDate>Thu, 07 Jun 2007 09:45:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>raja: first check that your bitmap are loaded.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Thu, 07 Jun 2007 12:23:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yes they&#39;ve been loaded. I tested by commenting do_dialog. They are displayed. I&#39;ve to try what spellcaster has mentioned.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (raja peter)</author>
		<pubDate>Thu, 07 Jun 2007 13:29:16 +0000</pubDate>
	</item>
</rss>
