test14.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:4k
源码类别:

GIS编程

开发平台:

Visual C++

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