XtPopup(3Xt)

名前
XtPopup, XtPopupSpringLoaded, XtCallbackNone, XtCallbackNonexclusive, XtCallbackExclusive - ポップアップをマップする

書式
void XtPopup(popup_shell, grab_kind)
      Widget popup_shell;
      XtGrabKind grab_kind;

void XtPopupSpringLoaded(popup_shell)
      Widget popup_shell;

void XtCallbackNone(w, client_data, call_data)
      Widget w;
      XtPointer client_data;
      XtPointer call_data;

void XtCallbackNonexclusive(w, client_data, call_data)
      Widget w;
      XtPointer client_data;
      XtPointer call_data;

void XtCallbackExclusive(w, client_data, call_data)
      Widget w;
      XtPointer client_data;
      XtPointer call_data;

void MenuPopup(shell_name)
      String shell_name;

引き数

call_data
    コールバックのデータを指定する。 これは、この手続きでは使われない。

client_data
    ポップアップシェルを指定する。

grab_kind
    ユーザイベントが constraint を受ける方法を指定する。

popup_shell
    ウィジェットシェルを指定する。

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

説明
関数 は以下の動作を行う:

•   を呼び出し、popup_shell が のサブクラスであることを確認する。

•   このシェルの popped_up フィールドが既に ならば、エラーを起こす。

•   このシェルの popup_callback リストのコールバック手続きを呼ぶ。

•   このシェルの popped_up フィールドに をセットし、spring_loaded フィールドに をセットする。また、このシェルの grab_kind フィールドに grab_kind の値 をセットする。

•   このシェルの create_popup_child 手続きが NULL でなければ、 は popup_shell をパラメータとしてこの手続きを呼び出す。

•   grab_kind が または ならば、この関数は

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

を呼び出す。

•   指定された popup_shell を使って を呼び出す。

•   指定された popup_shell を使って を呼び出す。

関数 は、 とほとんど同じである。 ただし、シェルの spring_loaded フィールドに をセットし、常に exclusive に を、 spring_loaded に を指定して を呼び出す点だけが異なる。

関数 は、 引き数 client_data で指定されたシェルと、指定された名前をセットした grab_kind を使って を呼び出す。 は は を、 は を指定する。 次に、それぞれの関数は を使って、 コールバックリストを実行したウィジェットを反応しない状態にする。 これらの関数をコールバック内で使うことは必要ではない。 特に、ポップアップシェルを動的に生成するコールバックやボタンを反応しな い状態にする以上の処理を行うコールバックに対しては、アプリケーションは 個別に処理を行わなければならない。

はトランスレーションマネージャが管理しており、spring-loaded ポップアッ プに対する特別な処理を実行しなければならない。 トランスレーション指定の中からの の呼び出しは、エクスポートされていないアクション手続きへの呼び出しにマッ プされる。このとき、トランスレーションマネージャは、トランスレーション の左辺で指定されたイベントに基づいてパラメータを決める。

が イベントに対して呼び出された場合(モディファイアが伴うこともある)、トラ ンスレーションマネージャは grab_kind に を、 spring_loaded に をセットしてシェルをポップアップさせる。 が イベントに対して呼び出された場合(モディファイアを伴うこともある)、トラ ンスレーションマネージャは grab_kind に を、spring_loaded に をセットしてシェルをポップアップさせる。 これ以外の場合、トランスレーションマネージャはエラーを起こす。 ウィジェットがポップアップしたときには以下の動作が行われる:

•   popup_shell が のサブクラスであることを確認するため、 を呼び出す。

•   このシェルの popped_up フィールドが既に ならば、エラーを起こす。

•   このシェルの popup_callback リストのコールバック手続きを呼ぶ。

•   このシェルの popped_up フィールドに をセットし、spring_loaded フィールドと grab_kind フィールドに適切な値 をセットする。

•   このシェルの create_popup_child 手続きが NULL でなければ、 この手続きは popup_shell をパラメータとして呼び出される。

•   次の呼び出しを行う:

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

•   指定された popup_shell を使って を呼び出す。

•   指定された popup_shell を使って を呼び出す。

(これらの動作は と同じであることに注意すること。) は、ウィジェットツリーを検索してシェルを見つけようとする。この検索は、 手続きが呼び出されたウィジェットの親ウィジェットから始められる。 指定した名前のシェルが、この親の子でポップアップであるものの中から見つ かった場合、シェルは適切なパラメータを使ってポップアップされる。 見つからなかった場合は、必要に応じて親ウィジェットの関係を上にたどって 検索が行われる。 アプリケーションウィジェットにたどり着いた時点で、マッチするシェルが見 つからなかった場合は、 はエラーを起こす。

関連項目
XtCreatePopupShell(3Xt), XtPopdown(3Xt)
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface