home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / sviluppo / mesa-glut / test / glut / test14.c < prev    next >
C/C++ Source or Header  |  1998-10-08  |  4KB  |  152 lines

  1.  
  2. /* Copyright (c) Mark J. Kilgard, 1994. */
  3.  
  4. /* This program is freely distributable without licensing fees 
  5.    and is provided without guarantee or warrantee expressed or 
  6.    implied. This program is -not- in the public domain. */
  7.  
  8. /* Try testing menu item removal and menu destruction. */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <GL/glut.h>
  13.  
  14. void
  15. displayFunc(void)
  16. {
  17.   glClear(GL_COLOR_BUFFER_BIT);
  18.   glFlush();
  19. }
  20.  
  21. void
  22. menuFunc(int choice)
  23. {
  24.   printf("choice = %d\n", choice);
  25. }
  26.  
  27. void
  28. timefunc(int value)
  29. {
  30.   if (value != 1) {
  31.     printf("FAIL: test14\n");
  32.     exit(1);
  33.   }
  34.   printf("PASS: test14\n");
  35.   exit(0);
  36. }
  37.  
  38. int
  39. main(int argc, char **argv)
  40. {
  41.   int i, menu, submenu;
  42.  
  43.   glutInit(&argc, argv);
  44.   glutCreateWindow("test14");
  45.   glutDisplayFunc(displayFunc);
  46.  
  47.   submenu = glutCreateMenu(menuFunc);
  48.   glutAddMenuEntry("First", 10101);
  49.   glutAddMenuEntry("Second", 20202);
  50.  
  51.   menu = glutCreateMenu(menuFunc);
  52.   glutAddMenuEntry("Entry1", 101);
  53.   glutAddMenuEntry("Entry2----------", 102);
  54.   glutRemoveMenuItem(2);
  55.   glutRemoveMenuItem(1);
  56.   glutAddMenuEntry("oEntry1", 201);
  57.   glutAddMenuEntry("o----------", 200);
  58.   glutAddMenuEntry("oEntry2----------", 202);
  59.   glutAddMenuEntry("oEntry3", 203);
  60.   glutRemoveMenuItem(2);
  61.   glutDestroyMenu(menu);
  62.  
  63.   menu = glutCreateMenu(menuFunc);
  64.   glutAddMenuEntry("Entry1", 101);
  65.   glutAddMenuEntry("Entry2----------", 102);
  66.   glutRemoveMenuItem(2);
  67.   glutRemoveMenuItem(1);
  68.   glutAddMenuEntry("oEntry1", 201);
  69.   glutAddMenuEntry("o----------", 200);
  70.   glutAddMenuEntry("oEntry2----------", 202);
  71.   glutAddMenuEntry("oEntry3", 203);
  72.   glutRemoveMenuItem(2);
  73.   glutAttachMenu(GLUT_RIGHT_BUTTON);
  74.  
  75.   menu = glutCreateMenu(menuFunc);
  76.   for (i = 0; i < 10; i++) {
  77.     glutAddMenuEntry("YES", i);
  78.   }
  79.   for (i = 0; i < 10; i++) {
  80.     glutRemoveMenuItem(1);
  81.   }
  82.   glutAddMenuEntry("Entry1", 101);
  83.   glutAddMenuEntry("Entry2", 102);
  84.   glutAddMenuEntry("Entry3", 103);
  85.   glutRemoveMenuItem(2);
  86.   glutRemoveMenuItem(1);
  87.   glutAddMenuEntry("----------", 303);
  88.   for (i = 0; i < 10; i++) {
  89.     glutAddMenuEntry("YES**************************", i);
  90.   }
  91.   for (i = 0; i < 9; i++) {
  92.     glutRemoveMenuItem(3);
  93.   }
  94.   glutDestroyMenu(menu);
  95.  
  96.   menu = glutCreateMenu(menuFunc);
  97.   for (i = 0; i < 10; i++) {
  98.     glutAddMenuEntry("YES", i);
  99.   }
  100.   for (i = 0; i < 10; i++) {
  101.     glutRemoveMenuItem(1);
  102.   }
  103.   glutAddMenuEntry("Entry1", 101);
  104.   glutAddMenuEntry("Entry2", 102);
  105.   glutAddMenuEntry("Entry3", 103);
  106.   glutRemoveMenuItem(2);
  107.   glutRemoveMenuItem(1);
  108.   glutAddMenuEntry("----------", 303);
  109.   for (i = 0; i < 10; i++) {
  110.     glutAddMenuEntry("YES**************************", i);
  111.   }
  112.   for (i = 0; i < 9; i++) {
  113.     glutRemoveMenuItem(3);
  114.   }
  115.   glutAttachMenu(GLUT_MIDDLE_BUTTON);
  116.  
  117.   menu = glutCreateMenu(menuFunc);
  118.   glutAddMenuEntry("Entry1", 101);
  119.   glutAddMenuEntry("Entry2", 102);
  120.   glutAddMenuEntry("Entry3", 103);
  121.   glutRemoveMenuItem(2);
  122.   glutRemoveMenuItem(1);
  123.   glutAddMenuEntry("nEntry1", 201);
  124.   glutAddMenuEntry("nEntry2----------", 202);
  125.   glutAddMenuEntry("nEntry3", 203);
  126.   glutRemoveMenuItem(2);
  127.   glutRemoveMenuItem(1);
  128.   glutAddMenuEntry("n----------", 303);
  129.   glutChangeToMenuEntry(1, "HELLO", 34);
  130.   glutChangeToSubMenu(2, "HELLO menu", submenu);
  131.   glutDestroyMenu(menu);
  132.  
  133.   menu = glutCreateMenu(menuFunc);
  134.   glutAddMenuEntry("Entry1", 101);
  135.   glutAddMenuEntry("Entry2", 102);
  136.   glutAddMenuEntry("Entry3", 103);
  137.   glutRemoveMenuItem(2);
  138.   glutRemoveMenuItem(1);
  139.   glutAddMenuEntry("nEntry1", 201);
  140.   glutAddMenuEntry("nEntry2----------", 202);
  141.   glutAddMenuEntry("nEntry3", 203);
  142.   glutRemoveMenuItem(2);
  143.   glutRemoveMenuItem(1);
  144.   glutAddMenuEntry("n----------", 303);
  145.   glutAttachMenu(GLUT_LEFT_BUTTON);
  146.  
  147.   glutTimerFunc(2000, timefunc, 1);
  148.  
  149.   glutMainLoop();
  150.   return 0;             /* ANSI C requires main to return int. */
  151. }
  152.