[訳]GLUTチュートリアル-メニューの交換

3068 ワード

Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Swapping Menus
 
GLUTは、アプリケーション中にメニュー全体を変更することもできる.2つの関数があります.glutSetMenuとglutGetMenuです.プロトタイプは次のとおりです.
 
void glutSetMenu(int menu);
menu-前の作成メニューのインデックス値
この関数は、アプリケーションコンテキストなどのメニューを切り替えることができる.
 
int glutGetMenu(void);
 
この関数は、現在のメニューのインデックス値を返します.次に、ユーザがF 1を押すときの2つのメニュー間の切り替えを示す.
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);

            // don't forget to attach the menu!!!

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

}