Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XtCreatePopupShell(3Xt)

XtPopup(3Xt)

XtPopdown(3Xt)  —  NEWS-OS Programmer’s Manual

名称

XtPopdown, XtCallbackPopdown, MenuPopdown − pop-up をアンマップする

形式

void XtPopdown(popup_shell)
      Widget popup_shell; void XtCallbackPopdown(w, client_data, call_data)
      Widget w;
      XtPointer client_data;
      XtPointer call_data; void MenuPopdown(shell_name)
      String shell_name;

引数

call_dataコールバックデータを指定します。 これは、このプロシージャによっては使用されません。

client_dataXtPopdownID 構造体を指すポインタを指定します。

popup_shellポップダウンするための ウィジェットシェルを指定します。

shell_nameポップダウンするための ウィジェットシェルの名前を指定します。

wウィジェットを指定します。

解説

XtPopdown 関数は次のことを行います。

•popup_shell が Shell のサブクラスであることを保証するために、 XtCheckSubclass を呼び出します。

•popup_shell が現在 popped_up されていることを確認します。 そうでない場合は、エラーを生じます。

•popup_shell のウィンドウをアンマップします。

•popup_shell の grab_kind が、 XtGrabNonexclusive か、 XtGrabExclusive のいずれかである場合は、 XtRemoveGrab を呼び出します。

•pop-up シェルの popped_up フィールドを False に設定します。

•シェルの popdown_callback リスト上のコールバックプロシージャを 呼び出します。 XtCallbackPopdown 関数は、クライアントのデータパラメータを XtPopdownID のポインタへキャストします。

typedef struct {
Widget shell_widget;
Widget enable_widget;
} XtPopdownIDRec, ∗XtPopdownID;

shell_widget は、ポップダウンするための pop-up シエルで、 enable_widget は、それをポップアップするのに使用するウィジェットです。 XtCallbackPopdown は、指定された shell_widget に対して XtPopdown を呼び出し、それから enable_widget の感覚を戻す ( センシティブにする ) ために、 XtSetSensitive を呼び出します。 シェル名が与えられていない場合は、 MenuPopdown は、トランスレーションが指定されているウィジェットをもつ XtPopdown を呼び出します。 shell_name がトランスレーションテーブル中に指定されている場合は、 MenuPopdown は、それが呼び出されたウィジェットの親で始まっているウィジェットツリー を調べることにより、シェルを見つけようとします。 その親の pop-up children の中に指定された名前をもつシェルを見つけた 場合は、シェルをポップダウンします。 そうでない場合は、必要に応じ、親チェーンを上方向へ移動して捜します。 MenuPopdown がアプリケーションのトップレベルのシェルウィジェットに到達したが、 一致するシェルを見つけることができない場合は、エラーを生じます。

関連事項

XtCreatePopupShell(3Xt), XtPopup(3Xt)
X Toolkit Intrinsics − C Language Interface
Xlib − C Language X Interface

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026