//Called whenever a key on the keyboard was pressed. //The key is given by the ''key'' parameter, which is in ASCII. //It's often a good idea to have the escape key (ASCII value 27) call glutLeaveMainLoop() to //exit the program. void myKeyboard(unsigned char key, int x, int y) { switch (key) { case 27: exit(0); break; case ' ': currentTaskNumber = (currentTaskNumber + 1) % tasks.size(); ITask* currentTask = tasks[currentTaskNumber]; if (currentTask != NULL) { currentTask->InitializeProgram(); printf("Current Task = %s\n", currentTask->ToString()); } break; } glutPostRedisplay(); // Nutno, kdybychom nevolali prekresleni casovacem ci Idle }
void myMenu(int item) { switch (item) { case 1: case 2: case 3: case 4: case 5: { currentTaskNumber = item - 1; ITask* currentTask = tasks[currentTaskNumber]; if (currentTask != NULL) { currentTask->InitializeProgram(); printf("Current Task = %s\n", currentTask->ToString()); } } break; case 10: spinFlag = !spinFlag; if (spinFlag) { glutTimerFunc(TIMER_STEP, FuncTimerCallback, 0); } break; case 11: cullFlag = !cullFlag; glutPostRedisplay(); break; case 12: lineModeFlag = !lineModeFlag; glutPostRedisplay(); break; case 99: exit(0); break; // never reached } glutPostRedisplay(); // Nutno, kdybychom nevolali prekresleni casovacem ci Idle }