#include <allegro.h>
( void * ) update_color( void * dp3, int d2 );
DIALOG color_builder[] =
{
{ d_clear_proc, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, NULL },
{ d_box_proc, 0, 0, 100, 100, 0, 254, 0, 0, 0, 0, NULL },
{ d_slider_proc, 10, 110, 16, 64, 1, 0, 0, 0, 63, 0, NULL, update_color, NULL },
{ d_slider_proc, 42, 110, 16, 64, 2, 0, 0, 0, 63, 0, NULL, update_color, NULL },
{ d_slider_proc, 74, 110, 16, 64, 4, 0, 0, 0, 63, 0, NULL, update_color, NULL },
{ NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }
};
#define S_RED 2
#define S_GREEN 3
#define S_BLUE 4
( void * ) update_color( void * dp3, int d2 )
{
RGB col;
col.r = color_builder[ S_RED ].d2;
col.g = color_builder[ S_GREEN ].d2;
col.b = color_builder[ S_BLUE ].d2;
vsync();
set_color( 254, & col );
return 0;
}
int main()
{
allegro_init();
install_keyboard();
install_mouse();
install_timer();
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 );
set_palette( desktop_palette );
update_color( NULL, 0 );
do_dialog( color_builder, - 1 );
return 0;
}
END_OF_MAIN()