Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XtCreatePopupShell(3Xt)

XtPopdown(3Xt)

XtPopup(3Xt)  —  UNIX Programmer’s Manual

名称

XtPopup, XtCallbackNone, XtCallbackNonexclusive, XtCallbackExclusive, MenuPopup − pop-up をマップする

形式

void XtPopup(popup_shell, grab_kind)
      Widget popup_shell;
      XtGrabKind grab_kind; void XtCallbackNone(w, client_data, call_data)
      Widget w;
      caddr_t client_data;
      caddr_t call_data; void XtCallbackNonexclusive(w, client_data, call_data)
      Widget w;
      caddr_t client_data;
      caddr_t call_data; void XtCallbackExclusive(w, client_data, call_data)
      Widget w;
      caddr_t client_data;
      caddr_t call_data; void MenuPopup(shell_name)
      String shell_name;

引数

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

client_datapop-up シェルを指定します。

grab_kindユーザイベントを制限する方法を指定します。

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

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

解説

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

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

•シェルの popped_up フィールドがすでに True である場合は、エラーを生じます。

•シェルの popup_callback リスト上のコールバックプロシージャを 呼び出します。

•シェルの popped_up フィールドを True に、 シェルの spring_loaded フィールドを False に、 そしてシェルの grab_kind フィールドを指定した grab_kind に設定します。

•シェルの create_popup_child フィールドが、非 NULL の場合、 XtPopup は、パラメータとして popup_shell を使用して、 create_popup_child フィールドを呼び出します。

•grab_kind が、 XtGrabNonexclusive または XtGrabExclusive のいずれかである場合は、 次のように呼び出します。

XtAddGrab(popup_shell, (grab_kind == XtGrabExclusive), False)

•指定された popup_shell を引数として XtRealizeWidget を呼び出します。

•指定された popup_shell を引数として XMapWindow を呼び出します。 XtCallbackNone、 XtCallbackNonexclusive、 および XtCallbackExclusive 関数は、 クライアントデータの引数が指定するシェルおよび関数名が 示すような grab_kind で XtPopup を呼び出します。 XtCallbackNone、 XtCallbackNonexclusive、 および XtCallbackExclusive は、それぞれ、 XtGrabNone、 XtGrabNonexclusive、 および XtGrabExclusive を指定します。 それから各関数は XtSetSensitive を使用することにより、コールバックリストを実行したウィジェットを 反応しない ( 鈍感な ) ものにさせます。 コールバックの際に、これらの関数を使用する必要はありません。 特に、 アプリケーションは、ポップアップシェルを動的に作成するコールバック、 または、ボタンを鈍感にすること以上のことを行わなければならない コールバックのカストマイズコードを提供しなければなりません。 MenuPopup は、トランスレーションマネージャに知られています。 それは、スプリングロードされた pop-ups の特別な処理を行います。 トランスレーションテーブルからの MenuPopup への呼び出しは、パラメータが空のアクションプロシージャへの呼び出しに マップされます。 トランスレーションマネージャは、トランスレーションテーブルの左辺で 指定されたイベントに基づいてパラメータを充填します。 MenuPopup が、 ButtonPress ( あるいはモディファイヤキーとともに ) で呼び出される場合は、 トランスレーションマネージャは grab_kind を XtGrabExclusive に設定し、 spring_loaded を True に設定してシェルをポップアップします。 MenuPopup が、 EnterWindow ( あるいはモディファイヤキーとともに ) で呼び出される場合は、 トランスレーションマネージャは、 grab_kind を XtGrabNonexclusive に設定し、 spring_loaded を False に設定してシェルをポップアップします。 そうでない場合、トランスレーションマネージャは、エラーを生じます。 ウィジェットがポップアップされたとき、 次の処置が生じます。

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

•シェルの popped_up フィールドがすでに True の場合はエラーを生じます。

•シェルの popup_callback リスト上のコールバックプロシージャを 呼び出します。

•シェルの popped_up フィールドを True に、シェルの grab_kind と spring_loaded フィールドを適切に設定します。

•シェルの create_popup_child フィールドが非 NULL の場合は、 それは popup_shell をパラメータとして使用して呼び出されます。

•次のように呼び出します。

XtAddGrab(popup_shell, (grab_kind == XtGrabExclusive), spring_loaded)

•指定された popup_shell を引数として XtRealizeWidget を呼び出します。

•指定された popup_shell を引数として XMapWindow を呼び出します。 ( なお、これらの処置は、 XtPopup の処置と同じです ) 。 MenuPopup は、それが呼び出されたウィジェットの親で始まるウィジェットツリーを 検索することにより、シェルを見つけます。 その親の pop-up children 中に指定された名前をもつシェルを見つけた 場合は、 適切なパラメータを用いてシェルをポップアップします。 そうでない場合は、必要に応じて、親チェーンを上方向に移動して捜します。 MenuPopup が、適切なウィジェットへ到達したが、一致するシェルを発見できない場合は、 エラーを生じます。

関連事項

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

NEWS-OSRelease 3.3

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