<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Application crashes on exit</title>
		<link>http://www.allegro.cc/forums/view/588710</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 27 Nov 2006 15:29:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello.</p><p>I actually have a problem with a program I&#39;m writing in C++. No problem to compile but at execution, it crashes (Segmentation Fault) at the end of execution.</p><p>The code of this early program is at this adress (another forum for allegro)(I didn&#39;t manage to upload the files here):<br /><a href="http://www.developpez.net/forums/showthread.php?p=1539606#post1539606">http://www.developpez.net/forums/showthread.php?p=1539606#post1539606</a><br />(DangerousBowlOfJelly is my pseudo on this forum)</p><p>My environnement : WinXP + Code::Blocks 1.0 + MinGW32.</p><p>Any help would be nice.</p><p>Thanks</p><p>Il.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Iluvatar)</author>
		<pubDate>Thu, 23 Nov 2006 22:42:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I looked at the French instructions, didn&#39;t understand, saw the zip link, clicked on that and (I guess) was asked for a name and password.  I gave up.</p><p>But anyway, my guess is that you&#39;re allocating stuff twice without destroying the first thing, so when you exit it&#39;s trying to free() stuff that&#39;s already been freed.  <br />Maybe BITMAP *bmp = load_bitmap(&quot;mypic.bmp&quot;,0) then bmp = load_bitmap(&quot;hispic.bmp&quot;,0) without a destroy_bitmap(bmp).  Or something like that, I don&#39;t do C++.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Fri, 24 Nov 2006 00:01:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve managed to upload them on a web page. See :<br /><a href="http://pierre.devasselot.free.fr/prog/">http://pierre.devasselot.free.fr/prog/</a><br />The .zip archive brings all files in this folder together</p><p>No password needed</p><div class="quote_container"><div class="title">Arthur Kalliokoski said:</div><div class="quote"><p>
and (I guess) was asked for a name and password
</p></div></div><p>
I see what happened. I was logged when I checked the link. I didn&#39;t know a account was required to download atattachment
</p><div class="quote_container"><div class="title">Arthur Kalliokoski said:</div><div class="quote"><p>
my guess is that you&#39;re allocating stuff twice without destroying the first thing
</p></div></div><p>

I&#39;ll check that. Thanks for the hint.</p><p>Il.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Iluvatar)</author>
		<pubDate>Fri, 24 Nov 2006 12:46:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello,<br />I haven&#39;t checked the code fully, but whenever you work with stuff you create on the heap you should always initialise them to NULL to begin with and when you delete them check they exist, </p><p>e.g. </p><p>BITMAP* page1=NULL;<br />...<br />if(page1) destroy_bitmap(page1);</p><p>Also,<br />I noticed you are destroying bitmaps and making allegro calls in your destructors. Are you sure than these are being called before you exit allegro?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Fri, 24 Nov 2006 18:56:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Neil Walker said:</div><div class="quote"><p>
you should always initialise them to NULL to begin with
</p></div></div><p>
It&#39;s done in the contructors
</p><div class="quote_container"><div class="title">Neil Walker said:</div><div class="quote"><p>
Are you sure than these are being called before you exit allegro
</p></div></div><p>
I&#39;m not sure but I suppose so, because I call &#39;delete item&#39; in the destructor of the &#39;Moteur&#39; object. I suppose &#39;moteur&#39; object is deleted at the end of main, before exiting allegro.
</p><div class="quote_container"><div class="title">Neil Walker said:</div><div class="quote"><p>
when you delete them check they exist
</p></div></div><p>
I do it now, but it doesn&#39;t change anything.</p><p>Il.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Iluvatar)</author>
		<pubDate>Fri, 24 Nov 2006 19:48:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[your code crash on almost every action.<br />
heres an example of how to make your own menu i took this from my game THe Game in the depot.<br />
<br />
[code]<br />
//MenuObject.h<br />
#include &lt;string&gt;<br />
using std::string;<br />
<br />
class MenuObject<br />
{<br />
	protected:<br />
		int x,y,w,h,color;<br />
		bool coligion,selceted;<br />
		string lable;<br />
<br />
	public:<br />
		BITMAP *bmp;<br />
		string	Get_lable();<br />
		BITMAP*	Get_bmp();<br />
		int	Get_x();<br />
		int	Get_y();<br />
		int	Get_w();<br />
		int	Get_h();<br />
		int	Get_color();<br />
		bool Get_coligion();<br />
		bool Get_selceted();<br />
		void Set_lable(string);<br />
		void Set_bmp(BITMAP*);<br />
		void Set_x(int);<br />
		void Set_y(int);<br />
		void Set_w(int);<br />
		void Set_h(int);<br />
		void Set_color(int);<br />
		void Set_coligion(bool);<br />
		void Set_selceted(bool);	<br />
		void draw();<br />
		bool is_collision(MenuObject);<br />
		MenuObject();<br />
};<br />
<br />
BITMAP* MenuObject::Get_bmp()<br />
{<br />
return bmp ;<br />
}<br />
<br />
<br />
string MenuObject::Get_lable()<br />
{<br />
return lable;<br />
}<br />
	int	MenuObject::Get_x()<br />
		{<br />
return x;<br />
	}<br />
	int	MenuObject::Get_y()<br />
			{<br />
return y;<br />
	}<br />
	int	MenuObject::Get_w()<br />
			{<br />
return w;<br />
	}<br />
	int	MenuObject::Get_h()<br />
			{<br />
return h;<br />
	}<br />
	int	MenuObject::Get_color()<br />
			{<br />
return color;<br />
	}<br />
	bool MenuObject::Get_coligion()<br />
			{<br />
return coligion;<br />
	}<br />
	bool MenuObject::Get_selceted()<br />
			{<br />
return selceted;<br />
	}<br />
void MenuObject::Set_bmp(BITMAP* q)<br />
{<br />
bmp = q;<br />
}<br />
void MenuObject::Set_lable(string q)<br />
{<br />
	lable = q;<br />
}<br />
	void MenuObject::Set_x(int q)<br />
			{<br />
x=q;<br />
	}<br />
	void MenuObject::Set_y(int q)<br />
			{<br />
y=q;<br />
	}<br />
	void MenuObject::Set_w(int q)<br />
			{<br />
w=q;<br />
	}<br />
	void MenuObject::Set_h(int q)<br />
			{<br />
h=q;<br />
	}<br />
	void MenuObject::Set_color(int q)<br />
			{<br />
color=q;<br />
	}<br />
	void MenuObject::Set_coligion(bool q)<br />
			{<br />
coligion=q;<br />
	}<br />
	void MenuObject::Set_selceted(bool q)<br />
			{<br />
selceted=q;<br />
	}<br />
	bool MenuObject::is_collision( MenuObject b)<br />
{<br />
    if ((x &gt; b.x + b.w -1) || // is a on the right side<br />
        (y &gt; b.y + b.h -1) || // is a under<br />
        (b.x &gt; x + w -1) || // is b on the right side<br />
        (b.y &gt; y + h -1))   // is b under<br />
    {<br />
        // this means that there is no collision<br />
        return 0; // means no colide<br />
    }<br />
<br />
    return 1; // means colide<br />
}<br />
<br />
<br />
<br />
MenuObject::MenuObject()<br />
{<br />
	x=0;<br />
	y=0;<br />
	w=100;<br />
	h=100;<br />
color=makecol(255,255,55);<br />
		 coligion=selceted=false;<br />
		lable=&quot;no lable&quot;;<br />
		bmp = screen;<br />
<br />
<br />
}<br />
void MenuObject::draw()<br />
{<br />
}<br />
<br />
<br />
<br />
[/code]<br />
<br />
[code]<br />
<br />
<br />
//Textbox.h<br />
<br />
#include &quot;MenuObject.h&quot;<br />
<br />
class Textbox :public MenuObject<br />
{<br />
	private:<br />
<br />
		string text; // an empty string for editting<br />
		string::iterator iter ;// string iterator<br />
		int scolor;<br />
		int ecolor;<br />
		int tra;<br />
		int caret ; // tracks the text caret<br />
		bool insert ;  // true of should text be inserted<br />
		<br />
		<br />
		<br />
		<br />
	public:<br />
int Get_scolor();<br />
		int Get_ecolor();<br />
void Set_scolor(int);<br />
		<br />
		void Set_ecolor(int);<br />
void Set_defaltText(string);<br />
		Textbox();<br />
		Textbox(string);<br />
<br />
		~Textbox()<br />
		{<br />
<br />
		}<br />
		string draw(BITMAP *bmp);<br />
<br />
};<br />
<br />
Textbox::Textbox()<br />
{<br />
<br />
selceted = false;<br />
text=&quot;&quot;;// an empty string for editting<br />
iter = text.begin(); // string iterator<br />
x=mouse_x;<br />
y=mouse_y;<br />
caret = x-87;// tracks the text caret<br />
w=100;<br />
h=25;<br />
insert = true;  // true of should text be inserted<br />
tra=text.length();<br />
scolor = makecol(0,255,0);<br />
ecolor = makecol(255,0,0);<br />
}<br />
<br />
Textbox::Textbox(string t)<br />
{<br />
<br />
selceted = false;<br />
text= t;<br />
iter = text.end(); // string iterator<br />
x=mouse_x;<br />
y=mouse_y;<br />
caret = x-87;// tracks the text caret<br />
w=100;<br />
h=25;<br />
insert = true;  // true of should text be inserted<br />
tra=text.length();<br />
scolor = makecol(0,255,0);<br />
ecolor = makecol(255,0,0);<br />
}<br />
int Textbox::Get_scolor()<br />
			{<br />
return scolor;<br />
	}<br />
	int Textbox::Get_ecolor()<br />
			{<br />
return ecolor;<br />
	}<br />
<br />
void Textbox::Set_scolor(int q)<br />
{<br />
	scolor = q;<br />
}<br />
	void Textbox::Set_ecolor(int q)<br />
			{<br />
ecolor=q;<br />
	}<br />
<br />
<br />
	void Textbox::Set_defaltText(string t)<br />
	{<br />
		text = t;<br />
		tra=text.length();<br />
		iter = text.end();<br />
	}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
string Textbox::draw(BITMAP *bmp)<br />
{<br />
	if( selceted == true)<br />
	{<br />
while(keypressed())<br />
                {<br />
                        int  newkey   = readkey();<br />
                        char ASCII    = newkey &amp; 0xff;<br />
                        char scancode = newkey &gt;&gt; 8;<br />
                        <br />
                        // a character key was pressed; add it to the string<br />
                        if(ASCII &gt;= 32 &amp;&amp; ASCII &lt;= 126)<br />
                        {<br />
                                // add the new char, inserting or replacing as need be<br />
                                if(insert || iter == text.end())<br />
                                iter = text.insert(iter, ASCII);<br />
                                else<br />
                                text.replace(caret, 1, 1, ASCII);<br />
                                <br />
                                // increment both the caret and the iterator<br />
                                caret++;<br />
                                iter++;<br />
                        }<br />
                        // some other, &quot;special&quot; key was pressed; handle it here<br />
                        else<br />
                        switch(scancode)<br />
                        {<br />
                                case KEY_DEL:<br />
                                if(iter != text.end()) iter = text.erase(iter);<br />
                                break;<br />
                                <br />
                                case KEY_BACKSPACE:<br />
                                if(iter != text.begin())<br />
                                {<br />
                                        caret--;<br />
                                        iter--;<br />
                                        iter = text.erase(iter);<br />
                                }<br />
                                break;<br />
                                <br />
                                case KEY_RIGHT:<br />
                                if(iter != text.end())   caret++, iter++;<br />
                                break;<br />
                                <br />
                                case KEY_LEFT:<br />
                                if(iter != text.begin()) caret--, iter--;<br />
                                break;<br />
                                <br />
                                case KEY_INSERT:<br />
                                if(insert) insert = 0; else insert = 1;<br />
                                break;<br />
                                <br />
								case KEY_ENTER:<br />
                                if(iter != text.begin())<br />
								{<br />
									//this give runtime error<br />
									if(computerId==severId)<br />
									{<br />
										//need to put in life contter<br />
									//serverdiolog = text;<br />
									//outboxbuffer +=&quot;9999|&quot; + NumberToString(computerId) + &quot;|003|&quot; + NumberToString(computerId) + &quot;,&quot; + text +&quot;`~&quot;;<br />
									<br />
									}<br />
									else<br />
									{<br />
									//need somthing for sending msg to serten clients<br />
									//outboxbuffer +=&quot;0|&quot; + NumberToString(computerId) + &quot;|003|&quot; + NumberToString(computerId) + &quot;,&quot; + text +&quot;`~&quot;;<br />
									}<br />
									//tra=text.length();<br />
									//caret-=(tra);<br />
									//iter-=(tra);<br />
									//text.erase(0,tra+1);<br />
									<br />
								}<br />
                                break;<br />
                                default:<br />
                                <br />
                                break;<br />
                        }<br />
                }<br />
				// output some stats using Allegro's printf functions<br />
                //textprintf(bmp, font,  x, 20, makecol(255,255,255), &quot;length:   %d&quot;, text.length());<br />
                //textprintf(bmp, font,  x, 30, makecol(255,255,255), &quot;capacity: %d&quot;, text.capacity());<br />
                //textprintf(bmp, font,  x, 40, makecol(255,255,255), &quot;empty`:   %d&quot;, text.empty());<br />
                //if(insert)<br />
                //textout(bmp, font, &quot;Inserting&quot;, x, 50, makecol(255,255,255));<br />
               //else<br />
                //textout(bmp, font, &quot;Replacing&quot;, x, 50, makecol(255,255,255));<br />
				// draw the caret<br />
                vline(bmp, caret * 8, 8, 18, makecol(255,255,255));<br />
	}<br />
                // clear bmp<br />
                //clear(buffer);<br />
                <br />
                <br />
                <br />
                <br />
                <br />
                <br />
                <br />
<br />
// output the string to the bmp<br />
textout(bmp,font,Get_lable().c_str(),Get_x() ,Get_y()-10,makecol(255,255,255));<br />
textout(bmp, font, text.c_str(), x+10, y+10, makecol(255,255,255));<br />
drawRectangle(bmp,Get_x(),  Get_y(), Get_w(), Get_h(), Get_color(), 2, Get_color());<br />
return text;<br />
}<br />
<br />
<br />
<br />
[/code]<br />
<br />
[code]<br />
<br />
#include &quot;Textbox.h&quot;<br />
//Button.h<br />
<br />
class Button : public MenuObject<br />
{<br />
	private:<br />
		int state;<br />
		int scolor;<br />
		int ecolor;<br />
	public:<br />
		int Get_scolor();<br />
		int Get_ecolor();<br />
		int Get_state();<br />
		void Set_scolor(int);<br />
		void Set_ecolor(int);<br />
		void Set_state(int);<br />
		Button();<br />
		void draw(BITMAP *bmp);<br />
};<br />
Button::Button()<br />
{<br />
	x = mouse_x;<br />
	y = mouse_y;<br />
	w = 100;<br />
	h = 25;<br />
	state = 0;<br />
	scolor = makecol(0,255,0);<br />
	ecolor = makecol(255,0,0);<br />
	<br />
}<br />
int Button::Get_state()<br />
{<br />
	return state;<br />
}<br />
int Button::Get_scolor()<br />
{<br />
	return scolor;<br />
}<br />
int Button::Get_ecolor()<br />
{<br />
	return ecolor;<br />
}<br />
void Button::Set_state(int q)<br />
{<br />
	state = q;<br />
}<br />
void Button::Set_scolor(int q)<br />
{<br />
	scolor = q;<br />
}<br />
void Button::Set_ecolor(int q)<br />
{<br />
	ecolor=q;<br />
}<br />
void Button::draw(BITMAP *bmp)<br />
{<br />
	<br />
<br />
	if(state == 0)<br />
	{<br />
		Set_color(scolor);<br />
	}<br />
	else if (state == 1)<br />
	{<br />
//textout(bmp,font,Get_lable().c_str(),100 ,100,makecol(255,255,255));<br />
		Set_color(ecolor);<br />
	}<br />
<br />
	drawRectangle(bmp,Get_x(),  Get_y(), Get_w(), Get_h(), Get_color(), 2, Get_color());<br />
	textout(bmp,font,Get_lable().c_str(),Get_x() +10,Get_y()+10,makecol(255,255,255));<br />
}<br />
<br />
<br />
<br />
[/code]<br />
<br />
<br />
[code]<br />
<br />
//Mouse.h<br />
#include &quot;Button.h&quot;<br />
<br />
class Mouse: public MenuObject<br />
{<br />
private:<br />
<br />
public:<br />
	Mouse();<br />
	<br />
	<br />
	bool is_doubleclick();<br />
<br />
	void draw(BITMAP *bmp);<br />
};<br />
Mouse::Mouse()<br />
{<br />
	Set_x(mouse_x);<br />
	Set_y(mouse_y);<br />
	Set_w(10);<br />
	Set_h(10);<br />
}<br />
void Mouse::draw(BITMAP *bmp)<br />
{<br />
	show_mouse(bmp);<br />
	Set_x( mouse_x);<br />
	Set_y( mouse_y);<br />
	drawRectangle(bmp,Get_x(),  Get_y(), Get_w(), Get_h(), Get_color(), 0, Get_color());<br />
	scare_mouse();<br />
<br />
}<br />
//hummmm i think this crashes<br />
bool Mouse::is_doubleclick()//we can even put the sleep valus as ints in the fuction header for more flex<br />
{<br />
	if (mouse_b &amp; 1)<br />
	{<br />
		Sleep(50);<br />
		if (!(mouse_b &amp; 1))<br />
		{<br />
			Sleep(50);<br />
			if (mouse_b &amp; 1)<br />
			{<br />
<br />
				return true;<br />
		<br />
			}<br />
			return false;<br />
		}<br />
		return false;<br />
	}<br />
	return false;<br />
}<br />
<br />
<br />
<br />
[/code]<br />
<br />
This is the login menu used in my client <br />
should work find for you just get rid of the functions that get called by the objects.<br />
[code]<br />
#include &quot;Menu.h&quot;<br />
Menu login;<br />
<br />
int draw_login(BITMAP* bmp)<br />
{<br />
<br />
	login.buttons[0].Set_lable( &quot;   Logon&quot;);<br />
	login.buttons[0].Set_x(login.Get_x()+50);<br />
	login.buttons[0].Set_y(login.Get_y()+40);<br />
	login.buttons[0].Set_w(100);<br />
	login.buttons[0].Set_h(25);<br />
	login.buttons[1].Set_lable( &quot;Make New&quot;);<br />
	login.buttons[1].Set_x(login.Get_x()+100);<br />
	login.buttons[1].Set_y(login.Get_y()+130);<br />
	login.buttons[1].Set_w(100);<br />
	login.buttons[1].Set_h(25);<br />
<br />
	login.buttons[2].Set_lable( &quot;   Exit&quot;);<br />
	login.buttons[2].Set_x(login.Get_x()+100);<br />
	login.buttons[2].Set_y(login.Get_y()+170);<br />
	login.buttons[2].Set_w(100);<br />
	login.buttons[2].Set_h(25);<br />
<br />
	login.textboxs[0].Set_lable( &quot;Enter Uesrname&quot;);<br />
	login.textboxs[0].Set_x(login.Get_x()+160);<br />
	login.textboxs[0].Set_y(login.Get_y()+20);<br />
	login.textboxs[0].Set_w(100);<br />
	login.textboxs[0].Set_h(25);<br />
<br />
	login.textboxs[1].Set_lable( &quot;Enter PassWord&quot;);<br />
	login.textboxs[1].Set_x(login.Get_x()+160);<br />
	login.textboxs[1].Set_y(login.Get_y()+60);<br />
	login.textboxs[1].Set_w(100);<br />
	login.textboxs[1].Set_h(25);<br />
<br />
<br />
	login.textboxs[2].Set_lable( &quot;Server IP&quot;);<br />
	login.textboxs[2].Set_x(login.Get_x()+18);<br />
	login.textboxs[2].Set_y(login.Get_y()+92);<br />
	login.textboxs[2].Set_w(185);<br />
	login.textboxs[2].Set_h(25);<br />
	login.textboxs[2].Set_defaltText(serverIP);<br />
<br />
<br />
<br />
	login.draw(bmp);<br />
<br />
	login.buttons[0].draw(bmp);<br />
	login.buttons[1].draw(bmp);<br />
	login.buttons[2].draw(bmp);<br />
<br />
username =	login.textboxs[0].draw(bmp); //returns username<br />
password = 	login.textboxs[1].draw(bmp); //returns password<br />
serverIP = 	login.textboxs[2].draw(bmp); //returns serverIP<br />
<br />
if (!(mouse_b &amp; 1))<br />
{<br />
login.mx = mouse_x;<br />
login.my = mouse_y;<br />
}<br />
	login.mouse[0].draw(bmp);<br />
	if (mouse_b &amp; 1)<br />
		//if (is_doubleclick())<br />
		{<br />
			if(login.is_collision( login.mouse[0]))<br />
			{<br />
				if(!login.buttons[0].is_collision( login.mouse[0]))<br />
				{<br />
					if(!login.buttons[1].is_collision( login.mouse[0]))<br />
					{<br />
						if(!login.textboxs[0].is_collision( login.mouse[0]))<br />
						{<br />
							if(!login.textboxs[1].is_collision( login.mouse[0]))<br />
							{<br />
								if(!login.textboxs[2].is_collision( login.mouse[0]))<br />
								{<br />
		<br />
								//login.Set_x( mouse_x );<br />
								//login.Set_y( mouse_y );<br />
										login.mov=mouse_x -login.mx;<br />
										login.mov2=mouse_y - login.my;<br />
										login.mx = mouse_x;<br />
										login.my = mouse_y;<br />
										<br />
										login.Set_x( login.Get_x()+login.mov);<br />
										login.Set_y( login.Get_y()+login.mov2);<br />
										<br />
										login.mov = 0;<br />
										login.mov2 = 0;<br />
										//mouse_x = login.mov + login.Get_x();<br />
										//mouse_y = login.mov2 + login.Get_y();<br />
								}<br />
							}<br />
						}<br />
					}<br />
				}<br />
			}<br />
			<br />
		if(login.buttons[0].is_collision( login.mouse[0]))<br />
			{<br />
				login.buttons[0].Set_state(1);<br />
				//do this buttons stuff login<br />
				//sub menu get username and password <br />
				//need to give chances to enter that mean we need sever conection here<br />
				//contiual on to game <br />
				<br />
				return 1;<br />
			}<br />
			else<br />
			{<br />
				login.buttons[0].Set_state(0);<br />
			}<br />
			if(login.buttons[1].is_collision( login.mouse[0]))<br />
			{<br />
				login.buttons[1].Set_state(1);<br />
				//do this buttons stuff new acount<br />
<br />
			}<br />
			else<br />
			{<br />
				login.buttons[1].Set_state(0);<br />
<br />
			}<br />
<br />
			if(login.buttons[2].is_collision( login.mouse[0]))<br />
			{<br />
				login.buttons[2].Set_state(1);<br />
				//do this buttons stuff exit<br />
				return -1;//are you done drawing<br />
			}<br />
			else<br />
			{<br />
				login.buttons[2].Set_state(0);<br />
			}<br />
<br />
			if(login.textboxs[0].is_collision( login.mouse[0]))<br />
			{<br />
				<br />
				login.textboxs[0].Set_selceted(true);<br />
				login.textboxs[1].Set_selceted(false);<br />
				login.textboxs[2].Set_selceted(false);<br />
				//username text box has keybord<br />
<br />
			}<br />
			if(login.textboxs[1].is_collision( login.mouse[0]))<br />
			{<br />
<br />
				login.textboxs[0].Set_selceted(false);<br />
				login.textboxs[1].Set_selceted(true);<br />
				login.textboxs[2].Set_selceted(false);<br />
				//passWord text box has keybord<br />
<br />
			}<br />
			if(login.textboxs[2].is_collision( login.mouse[0]))<br />
			{<br />
				login.textboxs[0].Set_selceted(false);<br />
				login.textboxs[1].Set_selceted(false);<br />
				login.textboxs[2].Set_selceted(true);<br />
				//passWord text box has keybord<br />
<br />
			}<br />
		}<br />
return 0; //are you done drawing<br />
}<br />
<br />
<br />
<br />
[/code]]]>
		</description>
		<author>no-reply@allegro.cc (piccolo)</author>
		<pubDate>Sun, 26 Nov 2006 00:51:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Finally, my menu works well. I didn&#39;t have enough control structures to check if pointers were well destroyed. For thoses who might want to have a menu like mine, I release source code for it.</p><p>It dispays  a first window 300x400 with a few options, highlighted when draggong mouse on them, then when selecting &#39;nouveau&#39;, it goes to another window 800x600. When whe click in that window, we go back to the menu. It doesn&#39;t go anywhere if we click anywhere in the menu window except on options.</p><p>You cad download source code at this adress : <br /><a href="http://pierre.devasselot.free.fr/prog">http://pierre.devasselot.free.fr/prog</a><br />no login, no password</p><p>You can use it as you want.</p><p>Il.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Iluvatar)</author>
		<pubDate>Mon, 27 Nov 2006 15:29:38 +0000</pubDate>
	</item>
</rss>
