test14.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:4k
- /* Copyright (c) Mark J. Kilgard, 1994. */
- /* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
- /* Try testing menu item removal and menu destruction. */
- #include <stdio.h>
- #include <stdlib.h>
- #include <GL/glut.h>
- void
- displayFunc(void)
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glFlush();
- }
- void
- menuFunc(int choice)
- {
- printf("choice = %dn", choice);
- }
- void
- timefunc(int value)
- {
- if (value != 1) {
- printf("FAIL: test14n");
- exit(1);
- }
- printf("PASS: test14n");
- exit(0);
- }
- int
- main(int argc, char **argv)
- {
- int i, menu, submenu;
- glutInit(&argc, argv);
- glutCreateWindow("test14");
- glutDisplayFunc(displayFunc);
- submenu = glutCreateMenu(menuFunc);
- glutAddMenuEntry("First", 10101);
- glutAddMenuEntry("Second", 20202);
- menu = glutCreateMenu(menuFunc);
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2----------", 102);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("oEntry1", 201);
- glutAddMenuEntry("o----------", 200);
- glutAddMenuEntry("oEntry2----------", 202);
- glutAddMenuEntry("oEntry3", 203);
- glutRemoveMenuItem(2);
- glutDestroyMenu(menu);
- menu = glutCreateMenu(menuFunc);
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2----------", 102);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("oEntry1", 201);
- glutAddMenuEntry("o----------", 200);
- glutAddMenuEntry("oEntry2----------", 202);
- glutAddMenuEntry("oEntry3", 203);
- glutRemoveMenuItem(2);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
- menu = glutCreateMenu(menuFunc);
- for (i = 0; i < 10; i++) {
- glutAddMenuEntry("YES", i);
- }
- for (i = 0; i < 10; i++) {
- glutRemoveMenuItem(1);
- }
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2", 102);
- glutAddMenuEntry("Entry3", 103);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("----------", 303);
- for (i = 0; i < 10; i++) {
- glutAddMenuEntry("YES**************************", i);
- }
- for (i = 0; i < 9; i++) {
- glutRemoveMenuItem(3);
- }
- glutDestroyMenu(menu);
- menu = glutCreateMenu(menuFunc);
- for (i = 0; i < 10; i++) {
- glutAddMenuEntry("YES", i);
- }
- for (i = 0; i < 10; i++) {
- glutRemoveMenuItem(1);
- }
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2", 102);
- glutAddMenuEntry("Entry3", 103);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("----------", 303);
- for (i = 0; i < 10; i++) {
- glutAddMenuEntry("YES**************************", i);
- }
- for (i = 0; i < 9; i++) {
- glutRemoveMenuItem(3);
- }
- glutAttachMenu(GLUT_MIDDLE_BUTTON);
- menu = glutCreateMenu(menuFunc);
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2", 102);
- glutAddMenuEntry("Entry3", 103);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("nEntry1", 201);
- glutAddMenuEntry("nEntry2----------", 202);
- glutAddMenuEntry("nEntry3", 203);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("n----------", 303);
- glutChangeToMenuEntry(1, "HELLO", 34);
- glutChangeToSubMenu(2, "HELLO menu", submenu);
- glutDestroyMenu(menu);
- menu = glutCreateMenu(menuFunc);
- glutAddMenuEntry("Entry1", 101);
- glutAddMenuEntry("Entry2", 102);
- glutAddMenuEntry("Entry3", 103);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("nEntry1", 201);
- glutAddMenuEntry("nEntry2----------", 202);
- glutAddMenuEntry("nEntry3", 203);
- glutRemoveMenuItem(2);
- glutRemoveMenuItem(1);
- glutAddMenuEntry("n----------", 303);
- glutAttachMenu(GLUT_LEFT_BUTTON);
- glutTimerFunc(2000, timefunc, 1);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
- }