void XtCallbackPopdown(w, client_data, call_data)
Widget w;
XtPointer client_data;
XtPointer call_data;
void MenuPopdown(shell_name)
String shell_name;
関数 XtCallbackPopdown は、クライアントデータのパラメータを XtPopdownID へのポインタにキャストする:
typedef struct { Widget shell_widget; Widget enable_widget; } XtPopdownIDRec, *XtPopdownID;
shell_widget はポップダウンさせるポップアップシェルであり、 enable_widget はこれをポップアップさせるときに使われたウィジェットであ る。
関数 XtCallbackPopdown は、指定された shell_widget を使って XtPopdown を呼び、その後で enable_widget が再びイベントに反応できるようにするた め XtSetSensitive を呼ぶ。
シェルの名前が与えられなかった場合、 MenuPopdown はトランスレーションが指定されているウィジェットを使って XtPopdown を呼ぶ。 shell_name がトランスレーションテーブル内で指定されている場合、 MenuPopdown はウィジェットツリーを検索してシェルを見つけようとする。この検索は、こ の関数が呼び出されたウィジェットの親ウィジェットから始められる。 その親ウィジェットの子ウィジェットであるポップアップの中に指定した名前 を持つシェルが見つかった場合、そのシェルはポップダウンされる。 そうでない場合には、必要に応じて繋がっている親ウィジェットを上に向かっ て参照してゆく。 MenuPopdown がアプリケーションのトップレベルのシェルウィジェットに達し、しかもマッ チするシェルが見つからなかった場合には、この関数はエラーを起こす。