Processamento Gráfico - UFPE - Prof. Marcelo Walter
Uso de Menus em GLUT
Esta nota objetiva exemplificar o uso de Menus em GLUT. As rotinas de controle dos menus aparecem necessariamente dentro de uma rotina de inicialização, antes de passar o controle para glutMainLoop. O trecho de código abaixo exemplifica a criação de um menu simples.
menuIdent = glutCreateMenu( mainMenu );
glutSetMenu( menuIdent );
/* individual options */
glutAddMenuEntry("Opcao 1", 0);
glutAddMenuEntry("Opcao 2", 1);
glutAddMenuEntry("Opcao 3", 2);
/* Especifica qual botao do mouse ativa o menu */
glutAttachMenu( GLUT_RIGHT_BUTTON );
O código abaixo utiliza o menu criado acima. O nome da função mainMenu, é o nome passado como parâmetro da função glutCreateMenu acima. Você não precisa chamar explicitamente a função mainMenu. Quando o botão direito do mouse for pressionado na janela, GLUT automaticamente chama esta função.
/*
*----------------------------------------------------------
* MainMenu
*----------------------------------------------------------
*/
void mainMenu(int item)
{
switch(item){
case 0:
/* Coloque aqui o que sera feito na opcao 1*/
break;
case 1:
/* Coloque aqui o que sera feito na opcao 2 */
break;
case 2:
/* Coloque aqui o que sera feito na opcao 3 */
break;
default:
break;
}
glutPostRedisplay();
}
No caso de haver submenus, deve-se usar o comando glutAddSubMenu. Deixaremos esta parte como exercício para o leitor/aluno :-)