XtAddGrab(3Xt) — NEWS-OS Programmer’s Manual
名称
XtAddGrab, XtRemoveGrab − モーダルウィジェットへのユーザ入力を変更する
形式
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 関数は、モーダルカスケードから、最新のウィジェットから 指定されたウィジェットまでを削除します。 指定されたウィジェットがモーダルカスケード上にない場合は、 XtRemoveGrab は、エラーを生じます。
関連事項
X Toolkit Intrinsics − C Language Interface
Xlib − C Language X Interface
NEWS-OSRelease 4.2.1R