<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Dialogs without global scope</title>
		<link>http://www.allegro.cc/forums/view/589807</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 31 Jan 2007 07:06:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Greetings allegro community <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I&#39;ve been having a bit of a problem with the whole RGB vs BGR issue, and have searched through many previous posts here. Generally what I learned was that the order was mostly a problem if you attempted to define colors before setting the video mode. From this I realized my problem was the fact that my dialogs are defined globally.</p><p>For example DIALOG DlgMainMenu[] is global, and when I expected a red button I got blue. However, if after the video mode is set I change the color:<br /><span class="source-code">DlgMainMenu<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.bg <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">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></span></p><p>..it&#39;s properly red.</p><p>My question is how do I define a DIALOG outside of the global scope, or moreso, how do I manage them? Do I need to know exactly how many elements my DIALOG is going to hold? Once I&#39;ve declared the dialog globally, how do I go about defining it cleanly? (Without having to set each argument of each dialog element one at a time)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cpayette)</author>
		<pubDate>Wed, 31 Jan 2007 03:36:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should really have a look at what makecol do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GullRaDriel)</author>
		<pubDate>Wed, 31 Jan 2007 03:40:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I understand what makecol does. That is not my problem.</p><p>The problem is globally I have this:
</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> DlgMainMenu<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span>
<span class="k2">{</span>
  <span class="c">/*       (dialog proc) (x) (y) (w) (h) (fg) (bg)</span>
<span class="c">           (key) (flags) (d1) (d2) (dp) (dp2) (dp3)       */</span>

  <span class="c">/* 0 */</span>  <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">255</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="c">/* 1 */</span> <span class="k2">{</span> exit_button_proc, <span class="n">300</span>, <span class="n">120</span>, <span class="n">100</span>, <span class="n">20</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>, <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">0</span>,<span class="n">0</span><span class="k2">)</span>, 
            <span class="n">0</span>, D_EXIT, <span class="n">0</span>, <span class="n">0</span>, <span class="s">"Exit"</span>, NULL, <span class="k2">(</span><span class="k1">void</span><span class="k3">*</span><span class="k2">)</span>Button_MainMenuExit <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>

In which makecol is called before allegro is completely initialized, as my dialog is global. If &quot;later on&quot; (in a function called after allegro is initialized) I manually set the color, it shows up properly. Thus I need to define my dialog after allegro is initialized. That&#39;s what I&#39;m not entirely sure how to do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (cpayette)</author>
		<pubDate>Wed, 31 Jan 2007 03:46:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you can declare/define a DIALOG struct in a function to be local to it. or just setup the colors afterwards.</p><p>You can not call most allegro functions before allegro has been initialized. Many also require a proper color depth and graphics mode to be set as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 31 Jan 2007 05:57:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><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> <span class="k3">*</span>DlgMainMenu <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/DIALOG" target="_blank"><span class="a">DIALOG</span></a><span class="k2">[</span>x<span class="k3">+</span><span class="n">1</span><span class="k2">]</span><span class="k2">;</span>
...set DlgMainMenu<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> through DlgMainMenu<span class="k2">[</span>x-1<span class="k2">]</span>...
DlgMainMenu<span class="k2">[</span>x<span class="k2">]</span>.proc <span class="k3">=</span> NULL<span class="k2">;</span>
...
<a href="http://www.allegro.cc/manual/do_dialog" target="_blank"><span class="a">do_dialog</span></a><span class="k2">(</span>DlgMainMenu, <span class="k3">-</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
...
<span class="k1">delete</span><span class="k2">[</span><span class="k2">]</span> DlgMainMenu<span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Wed, 31 Jan 2007 07:06:10 +0000</pubDate>
	</item>
</rss>
