X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=progs%2Fdemos%2FCallbackMaker%2FCallbackMaker.c;h=a8cd18b96e976a08b7d8ed72f84b9a0d9dcbdbe2;hb=2c138d649ed28a1e9184ddfcd8c2f2d89300b824;hp=0cee8271dc45fc3be8ab1b6c2d789c4e3e75787d;hpb=05a61612c9b96b61ca9917def47eb59b7bd195c8;p=freeglut diff --git a/progs/demos/CallbackMaker/CallbackMaker.c b/progs/demos/CallbackMaker/CallbackMaker.c index 0cee827..a8cd18b 100644 --- a/progs/demos/CallbackMaker/CallbackMaker.c +++ b/progs/demos/CallbackMaker/CallbackMaker.c @@ -16,13 +16,13 @@ static int sequence_number = 0 ; int windows[CALLBACKMAKER_N_WINDOWS] = {0}; /* define status vars showing whether given callback has been called for given window */ -#define CALLBACK_CALLED_VAR(name) int name##_called[CALLBACKMAKER_N_WINDOWS] = {0}; -#define CALLBACK_0V(name) int name##_seq[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_CALLED_VAR(name); -#define CALLBACK_1V(name,field) int name##_##field[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_0V(name); -#define CALLBACK_2V(name,field1,field2) int name##_##field2[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_1V(name,field1); -#define CALLBACK_3V(name,field1,field2,field3) int name##_##field3[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_2V(name,field1,field2); -#define CALLBACK_4V(name,field1,field2,field3,field4) int name##_##field4[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_3V(name,field1,field2,field3); -#define CALLBACK_5V(name,field1,field2,field3,field4,field5) int name##_##field5[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_4V(name,field1,field2,field3,field4); +#define CALLBACK_CALLED_VAR(name) int name##_called[CALLBACKMAKER_N_WINDOWS] = {0} +#define CALLBACK_0V(name) int name##_seq[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_CALLED_VAR(name) +#define CALLBACK_1V(name,field) int name##_##field[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_0V(name) +#define CALLBACK_2V(name,field1,field2) int name##_##field2[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_1V(name,field1) +#define CALLBACK_3V(name,field1,field2,field3) int name##_##field3[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_2V(name,field1,field2) +#define CALLBACK_4V(name,field1,field2,field3,field4) int name##_##field4[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_3V(name,field1,field2,field3) +#define CALLBACK_5V(name,field1,field2,field3,field4,field5) int name##_##field5[CALLBACKMAKER_N_WINDOWS] = {-1}; CALLBACK_4V(name,field1,field2,field3,field4) CALLBACK_2V(reshape,width,height); CALLBACK_2V(position,top,left); CALLBACK_1V(visibility,vis); @@ -39,7 +39,7 @@ CALLBACK_3V(passivemotion,x,y,mod); CALLBACK_1V(entry,state); CALLBACK_0V(close); /* menudestroy is registered on each menu, not a window */ -int menudestroy_called = 0 ; +int menudestroy_called = 0; /* menustatus and menustate are global callbacks, set for all menus at the same time */ int menustatus_called = 0; int menustate_called = 0; @@ -640,8 +640,6 @@ main(int argc, char *argv[]) * what we demonstrate here. */ glutSetKeyRepeat(GLUT_KEY_REPEAT_ON); - /* global setting: default font for any menus created after this call (we call it again below to demo) */ - glutSetOption(GLUT_MENU_FONT,(int)GLUT_BITMAP_HELVETICA_12); /* Set other global callback (global as in not associated with any specific menu or window) */ glutIdleFunc ( Idle ); @@ -665,9 +663,8 @@ main(int argc, char *argv[]) glutAddMenuEntry( "Sub menu A2 (02)", 12 ); glutAddMenuEntry( "Sub menu A3 (03)", 13 ); glutMenuDestroyFunc ( MenuDestroy ); /* callback specific to this menu */ - - /* change font for any menus created after this call */ - glutSetOption(GLUT_MENU_FONT,(int)GLUT_BITMAP_8_BY_13); + /* Change font for this menu */ + glutSetMenuFont(subMenuA, GLUT_BITMAP_HELVETICA_12); subMenuB = glutCreateMenu( MenuCallback ); glutAddMenuEntry( "Sub menu B1 (04)", 14 ); @@ -675,6 +672,7 @@ main(int argc, char *argv[]) glutAddMenuEntry( "Sub menu B3 (06)", 16 ); glutAddSubMenu( "Going to sub menu A", subMenuA ); glutMenuDestroyFunc ( MenuDestroy ); /* callback specific to this menu */ + glutSetMenuFont(subMenuB, GLUT_BITMAP_9_BY_15); menuID = glutCreateMenu( MenuCallback ); glutAddMenuEntry( "Entry one", 21 ); @@ -687,8 +685,6 @@ main(int argc, char *argv[]) glutMenuDestroyFunc ( MenuDestroy ); /* callback specific to this menu */ glutAttachMenu( GLUT_LEFT_BUTTON ); - /* You can also change the font of the current menu: */ - glutSetMenuFont(GLUT_BITMAP_TIMES_ROMAN_10); /* Position second window right next to the first */