implemented somewhat better visibility/windowstatus support, some small
[freeglut] / progs / demos / CallbackMaker / CallbackMaker.c
index 771a6cd..43c31ba 100644 (file)
@@ -25,6 +25,7 @@ int windows[CALLBACKMAKER_N_WINDOWS] = {0};
 CALLBACK_2V(reshape,width,height);
 CALLBACK_2V(position,top,left);
 CALLBACK_1V(visibility,vis);
+CALLBACK_1V(windowStatus,state);
 CALLBACK_4V(key,key,x,y,mod);
 CALLBACK_4V(keyup,key,x,y,mod);
 CALLBACK_4V(special,key,x,y,mod);
@@ -122,6 +123,11 @@ Display(void)
     bitmapPrintf ( "Visibility %d:  %d\n", visibility_seq[winIdx], visibility_vis[winIdx] );
   }
 
+  if ( windowStatus_called[winIdx] )
+  {
+    bitmapPrintf ( "WindowStatus %d:  %d\n", windowStatus_seq[winIdx], windowStatus_state[winIdx] );
+  }
+
   if ( reshape_called[winIdx] )
   {
     bitmapPrintf ( "Reshape %d:  %d %d\n", reshape_seq[winIdx], reshape_width[winIdx], reshape_height[winIdx] );
@@ -233,19 +239,6 @@ Error(const char *fmt, va_list ap)
 }
 
 static void 
-Visibility(int vis)
-{
-  int winIdx;
-  int window = getWindowAndIdx(&winIdx);
-  printf ( "%6d Window %d Visibility Callback:  %d\n",
-            ++sequence_number, window, vis ) ;
-  visibility_called[winIdx] = 1 ;
-  visibility_vis[winIdx] = vis ;
-  visibility_seq[winIdx] = sequence_number ;
-  glutPostRedisplay () ;
-}
-
-static void 
 Reshape(int width, int height)
 {
   int winIdx;
@@ -449,11 +442,28 @@ OverlayDisplay(void)
 }
 
 static void 
+Visibility(int vis)
+{
+  int winIdx;
+  int window = getWindowAndIdx(&winIdx);
+  printf ( "%6d Window %d Visibility Callback:  %d\n",
+            ++sequence_number, window, vis ) ;
+  visibility_called[winIdx] = 1 ;
+  visibility_vis[winIdx] = vis ;
+  visibility_seq[winIdx] = sequence_number ;
+  glutPostRedisplay () ;
+}
+
+static void 
 WindowStatus(int state)
 {
-  int window = getWindowAndIdx(NULL);
+  int winIdx;
+  int window = getWindowAndIdx(&winIdx);
   printf ( "%6d Window %d WindowStatus Callback:  %d\n",
             ++sequence_number, window, state ) ;
+  windowStatus_called[winIdx] = 1 ;
+  windowStatus_state[winIdx] = state ;
+  windowStatus_seq[winIdx] = sequence_number ;
   glutPostRedisplay () ;
 }