XtRemoveGrab(3) ユーザ入力をモーダルウィジェットにリダイレクトする

Other Alias

XtAddGrab

書式

void XtAddGrab(w, exclusive, spring_loaded)

      Widget w;

      Boolean exclusive;

      Boolean spring_loaded;

void XtRemoveGrab(w)

      Widget w;

引き数

exclusive
ユーザイベントをこのウィジェットに排他的に配送するか、カスケード内の 前のウィジェットにも送るかどうかを指定する。
spring_loaded
ユーザがポインタのボタンを押したとき、このウィジェットをポップアップさ せるかどうかを指定する。
w
モーダルカスケードに追加・削除するウィジェットを指定する。

説明

関数 XtAddGrab とウィジェット(と関連するパラメータ)をモーダルカスケードに追加し、引き数 spring_loaded が True ならば引き数 exclusive が True かどうかをチェックする。 これらが True でない場合、 XtAddGrab はエラーを起こす。

XtDispatchEvent がユーザイベントを配送しようとするとき、この 関数はモーダルカスケードを使用する。 少なくとも1つのモーダルウィジェットがウィジェットカスケードに含まれる とき、 XtDispatchEvent はイベントを送るかどうかを最初に決める。 この処理は、最も新しいカスケードのエントリーから始まり、exclusive パラ メータに True を指定して追加された最新のカスケードのエントリーまで(それ自身も含む)行 われる。

これらのウィジェットの全ての子孫を持つモーダルカスケードのサブセットは、 アクティブなサブセットを構成する。 このサブセットが含むウィジェットの外で起こったユーザイベントは、無視さ れるか再マップされる。 サブメニューを持つモーダルメニューは一般的に、 サブメニューウィジェットの exclusive に False をセットしてカスケードに追加する。 ユーザ入力を最も深くネストされたダイアログボックスに制限する必要がある モーダルダイアログボックスは、exclusive に True をセットしたサブダイアログウィジェットをカスケードに追加する。 アクティブなサブセット内で起こったセットユーザイベントは、アプリケーショ ンウィジェットに伝えられる。通常これはモーダルウィジェットの子か子孫で ある。

spring_loaded が True であるカスケードのアクティブなサブセットの、最も新しいウィジェットがあ る場合、このイベントがスクリーン上の起こった場所に関係なく、再マップイ ベトは必ずこのウィジェットに伝えられる。

関数 XtRemoveGrab は、モーダルカスケードからウィジェットを取り除く。これは最新のウィジェッ トから始められ、指定したウィジェット(それ自身も含む)まで行われる。 指定したウィジェットがモーダルカスケード上にない場合はエラーとなる。