GLUT 를 사용하면 어플리케이션 실행 중에 메뉴를 통채로 바꿀 수 있습니다. glutSetMenu 함수와 glutGetMenu 함수를 사용하면 됩니다. 다음은 이 함수들의 설명입니다.:
void glutSetMenu(int menu);
인자 설명:
menu - 만들어 놓은 메뉴의 인덱스입니다.
이 함수를 사용해서 메뉴를 교체할 수 있습니다.
다음은 glutGetMenu 함수의 설명입니다.
이 함수는 현재 메뉴의 인덱스를 반환합니다. 다음 예제는 위의 두함수를 사용해서 만든 것인데 F1 키를 누르면 메뉴가 교체됩니다.
void processSpecialKeys(int c, int x, int y)
{
if (!flag)
{
if (c == GLUT_KEY_F1)
{
int x = glutGetMenu();
if (x == menu1)
glutSetMenu(menu2);
else
glutSetMenu(menu1);
// 메뉴를 마우스버튼에 연결하는 것을 잊지마세요!!!
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
}
}
void createGLUTMenus()
{
menu2 = glutCreateMenu(processMenuEvents);
glutAddMenuEntry("Blue",BLUE);
glutAddMenuEntry("Green",GREEN);
glutAddMenuEntry("Red",RED);
menu1 = glutCreateMenu(processMenuEvents);
glutAddMenuEntry("Red",RED);
glutAddMenuEntry("Green",GREEN);
glutAddMenuEntry("Blue",BLUE);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}