示例#1
0
void create_menus() {
	int menu, anim, j;

/*	anim = glutCreateMenu(anim_menu);
	glutAddMenuEntry("Play forward (a)", MENU_ANIM_FORWARD);
	glutAddMenuEntry("Play reverse (b)", MENU_ANIM_REVERSE);
	glutAddMenuEntry("Advance frame (>)", MENU_ANIM_PLUS);
	glutAddMenuEntry("Backstep frame (<)", MENU_ANIM_MINUS);
	glutAddMenuEntry("Re(w)ind", MENU_ANIM_REWIND);
	glutAddMenuEntry("(S)top", MENU_ANIM_STOP);*/

	menu = glutCreateMenu(menu_func);
	for(j = 0; j < sizeof(menu_choices)/sizeof(*menu_choices); j++)
		glutAddMenuEntry(menu_choices[j], MENU_TEXTURE + j);
/*	glutAddSubMenu("Animate...", anim);*/
	glutAddMenuEntry("Quit", MENU_EXIT);
	
	glutSetMenu(menu);
	glutAttachMenu(GLUT_RIGHT_BUTTON);

	/* Turn off some menu items */
	menu_func(MENU_WIREFRAME);
        menu_func(MENU_AXES);
	/* menu_func(MENU_GRIDLINES);*/
	menu_func(MENU_SNAPSHOT);
}
示例#2
0
void textMenuLoop ()
{
	char command[MAX_LINE];


	while (true)
	{
		if (!quietMode)
			cerr << endl
			<< "selection > " << flush;
		cin  >> command;

		switch (command[0])
		{
		case '\n':
		case '\0':
			//printMenu();
			break;

		case 'Q':
		case 'q':
			menu_func(M_QUIT);
			break;

		case 'H':
		case 'h':
			menu_func(M_HELP);
			break;

		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			menu_func(atoi(command));
			break;

		default:
			//printMenu();
			break;
		}
	}
}
示例#3
0
文件: main.c 项目: cout/sx3
// A handler for key events.  Note that once again the parameter type is
// wrong.  In this case, all normal ASCII keys do map properly, but some
// special characters are also available for our use.  See the SDL
// documentation for more details.
void keyfunc(unsigned char key) {
    switch(tolower(key)) {
    case 't': menu_func(MENU_TEXTURE); break;
    case 'l': menu_func(MENU_LIGHTING); break;
    case 'x': menu_func(MENU_AXES); break;
    case 'w': menu_func(MENU_WEAPON); break;
    case 'r': menu_func(MENU_WIREFRAME); break;
    case 'f': menu_func(MENU_LINEAR); break;
    case 'a': menu_func(MENU_ANIM_FORWARD); break;
    case 'b': menu_func(MENU_ANIM_REVERSE); break;
    case 's': menu_func(MENU_ANIM_STOP); break;
    case '<':
    case ',': menu_func(MENU_ANIM_MINUS); break;
    case '>':
    case '.': menu_func(MENU_ANIM_PLUS); break;
    case 'e': menu_func(MENU_ANIM_REWIND); break;
    case '+': z += ZOOM_INC; eye[2] = z; display(); break;
    case '-': z -= ZOOM_INC; eye[2] = z; display(); break;
    case '8': phi += ROTATE_INC; display(); break;
    case '2': phi -= ROTATE_INC; display(); break;
    case '4': theta -= ROTATE_INC; display(); break;
    case '6': theta += ROTATE_INC; display(); break;
    case 'q': exit(0); break;
    }
}
示例#4
0
/* the function for the "Menu" command */
void CMD_Menu(F_CMD_ARGS)
{
	menu_func(F_PASS_ARGS, True);

	return;
}
示例#5
0
/* the function for the "Popup" command */
void CMD_Popup(F_CMD_ARGS)
{
	menu_func(F_PASS_ARGS, False);

	return;
}
示例#6
0
void keyfunc(unsigned char key, int x, int y) {
	switch(tolower(key)) {
	case 't': menu_func(MENU_TEXTURE); break;
	case 'l': menu_func(MENU_LIGHTING); break;
	case 'x': menu_func(MENU_AXES); break;
	case 'w': menu_func(MENU_WIREFRAME); break;
	case 'f': menu_func(MENU_LINEAR); break;
	case 'e': menu_func(MENU_TERRAIN); break;
	case 'a': menu_func(MENU_ANIM_FORWARD); break;
	case 'b': menu_func(MENU_ANIM_REVERSE); break;
	case 'g': menu_func(MENU_GRIDLINES); break;
	case 'c': menu_func(MENU_CRATERS); break;
	case '\\': menu_func(MENU_LOCK); break;
	case 's': menu_func(MENU_SMOOTH); break;
	case '+':
		eye[2] += ZOOM_INC;
		glutPostRedisplay();
		break;
	case '-':
		eye[2] -= ZOOM_INC;
		glutPostRedisplay();
		break;
	case 'q':
		exit(0);
		break;
        case 'k': menu_func(MENU_LOCK); break;
	}
}
示例#7
0
void anim_menu(int choice) {
	menu_func(choice);
}