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 :-)