XtAddGrab(3Xt)

名前
XtAddGrab, XtRemoveGrab - ユーザ入力をモーダルウィジェットにリダイレクトする

書式
void XtAddGrab(w, exclusive, spring_loaded)
      Widget w;
      Boolean exclusive;
      Boolean spring_loaded;

void XtRemoveGrab(w)
      Widget w;

引き数

exclusive
    ユーザイベントをこのウィジェットに排他的に配送するか、カスケード内の 前のウィジェットにも送るかどうかを指定する。

spring_loaded
    ユーザがポインタのボタンを押したとき、このウィジェットをポップアップさ せるかどうかを指定する。

w   モーダルカスケードに追加・削除するウィジェットを指定する。

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

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

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

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

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

関連項目
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface