#include <allegro.h>
int quit( void )
{
if( alert( "Naprawdę chcesz wyjść ?", NULL, NULL, "&Tak", "&Nie", 't', 'n' ) == 1 )
return D_CLOSE;
else
return D_O_K;
}
int about( void )
{
alert( "* Allegro GUI *",
"",
"To jest przykład wykorzystania Allegro GUI",
"Ok", 0, 0, 0 );
return D_O_K;
}
int my_button_proc( int msg, DIALOG * d, int c )
{
int ret = d_button_proc( msg, d, c );
if( ret == D_CLOSE && d->dp3 )
return(( int( * )( void ) ) d->dp3 )();
return ret;
}
DIALOG the_dialog[] =
{
{ d_clear_proc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL },
{ my_button_proc, 10, 10, 160, 20, 0, 0, 'q', D_EXIT, 0, 0, "&Quit", NULL,( void * ) quit },
{ my_button_proc, 10, 50, 160, 20, 0, 0, 'a', D_EXIT, 0, 0, "&About", NULL,( void * ) about },
{ d_keyboard_proc, 0, 0, 0, 0, 0, 0, 0, 0, KEY_F1, 0,( void * ) quit, NULL, NULL },
{ d_yield_proc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL },
{ NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
};
int main( int argc, char * argv[] )
{
char buf[ 256 ];
int i;
if( allegro_init() != 0 )
return 1;
install_keyboard();
install_mouse();
install_timer();
if( set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 ) != 0 ) {
if( set_gfx_mode( GFX_SAFE, 640, 480, 0, 0 ) != 0 ) {
set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
allegro_message( "Unable to set any graphic mode\n%s\n", allegro_error );
return 1;
}
}
set_palette( default_palette );
gui_fg_color = makecol( 255, 255, 255 );
gui_mg_color = makecol( 0, 60, 255 );
gui_bg_color = makecol( 100, 28, 29 );
set_dialog_color( the_dialog, gui_fg_color, gui_bg_color );
the_dialog[ 0 ].bg = makecol( 117, 187, 115 );
position_dialog( the_dialog, 2, 2 );
do_dialog( the_dialog, - 1 );
return 0;
}
END_OF_MAIN()
Jednak aplikacje okienkowe lepiej się robi w bibliotekach takich jak np. Qt itp.