next up previous contents index
Next: 7.18 glutIdleFunc Up: 7 Callback Registration Previous:7.16 glutTabletButtonFunc

7.17 glutMenuStatusFunc

 glutMenuStatusFuncは グローバルなメニュー・ステータス・コールバックを登録します.

Usage

void glutMenuStatusFunc(void (*func)(int status, int x, int y));
void glutMenuStateFunc(void (*func)(int status));

Description

glutMenuStatusFuncは GLUT プログラムが,あるメニューが使用されているかどうかを判断できるように グローバルなメニュー・ステータス・コールバックを登録する. メニュー・ステータス・コールバックが登録されると, ポップアップ・メニューがユーザーによって使用された時に パラメータstateGLUT_MENU_IN_USEという値を持って コールバックがコールされ; ポップアップ・メニューが使われなくなった時には statusGLUT_MENU_NOT_IN_USEという値をもって コールバックがオーコールされる. パラメータxyは,ボタンが押されてメニューが現れた時や, あるいはメニューが解放された時の(おそらくはウィンドウ外での) ウィンドウ座標値を示す. パラメータfuncはコールバック関数の名前である. (ユーザー入力コールバックを除いて)ポップアップ・メニューが使われて いる時も他のコールバックは実行され続けるので, ポップアップ・メニューが使われているときも, 他のコールバックは(マウスモーション・コールバックを除いて) 動作しつづけるので, メニュー・ステータス・コールバックはメニューが使われた際に, アニメーションや他のタスクを中断することができる.

メニュー・ステータス・コールバックがコールされると, GLUT_MENU_IN_USEGLUT_MENU_NOT_IN_USEのいずれの場合でも, カレントメニューは最初のポップアップメニューに設定される. さらに,いずれの場合でも,カレントウィンドウは 最初のメニューがポップアップされたウィンドウに設定される.

引数NULLglutMenuStatusFunc に渡すと, メニュー・ステータス・コールバックは生成されない.

glutMenuStateFuncglutMenuStatusFuncの修正版である. これらの違いは,glutMenuStateFuncは 2つの座標値xyを伝えないことである.

※使用例

	void menu_status (int status)
	{
		if (status == GLUT_MENU_IN_USE )
			glutIdleFunc(NULL);
		else
			glutIdleFunc(animate);
	}


next up previous contents index
Next: 7.18 glutIdleFunc Up: 7 Callback Registration Previous:7.16 glutTabletButtonFunc
Mark Kilgard
Fri Feb 23 08:05:02 PST 1996