Xref: news2.mv.net comp.os.msdos.djgpp:3361 From: nmarrone AT smartlink DOT net (Nicholas Marrone) Newsgroups: comp.os.msdos.djgpp Subject: Allegro and GUI Routines Date: Thu, 02 May 1996 01:39:34 GMT Organization: SmartLink.net Premier ISP 805-294-1273 Lines: 83 Message-ID: <4m95c1$c0p@frodo.smartlink.net> NNTP-Posting-Host: pm42-52.smartlink.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Hullo, I've been using Allegro with a fair amount of success, and wanted to make a PGN file reader (it has to do with chess files). I started to make dialouges, and was able to use things like boxes and text, but once I started to try out push buttons, DJGPP crashed! It's quite frustrating because I can't see any difference between my code and the example's, and that compiled correctly. Here is some of the code for it so far, and this crashes pointing to the function do_dialog. #include int next_proc(int msg, DIALOG *d, int c); int back_proc(int msg, DIALOG *d, int c); DIALOG main_dlg[] = { { d_clear_proc, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, NULL }, { d_ctext_proc, 320, 4, 1, 1, 255, 0, 0, 0, 0, 0, "PGN File Reader, Version 1.0" }, { d_ctext_proc, 320, 20, 1, 1, 255, 0, 0, 0, 0, 0, "By Nicholas Marrone, 1996" }, { d_box_proc, 20, 50, 360, 360, 255, 0, 0, 0, 0, 0, NULL }, { d_list_proc, 450, 50, 120, 330, 255, 0, 0, 0, 0, 0, NULL }, { next_proc, 450, 340, 50, 20, 255, 0, 0, 0, 0, 0, "Next" }, { back_proc, 450, 340, 50, 20, 255, 0, 0, 0, 0, 0, "Back" }, { NULL } }; void main() { int c; allegro_init(); install_keyboard(); install_mouse(); install_timer(); if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) != 0) { allegro_exit(); printf("Error setting graphics mode\n%s\n\n", allegro_error); exit(1); } gui_fg_color = 255; gui_bg_color = 16; set_pallete(desktop_pallete); do_dialog(main_dlg, -1); allegro_exit(); exit(0); } int next_proc(int msg, DIALOG *d, int c) { int ret = d_button_proc(msg, d, c); if (ret == D_CLOSE) { alert("You have selected Next", NULL, NULL, "Continue", NULL, 27, NULL); return D_REDRAW; } return ret; } int back_proc(int msg, DIALOG *d, int c) { int ret = d_button_proc(msg, d, c); if (ret == D_CLOSE) { alert("You have selected Back", NULL, NULL, "Continue", NULL, 'C', NULL); return D_REDRAW; } return ret; }