XtAddEventHandler(3) イベントハンドラの追加・削除

Other Alias

XtAddRawEventHandler, XtRemoveEventHandler, XtRemoveRawEventHandler, XtInsertEventHandler, XtInsertRawEventHandler

書式

void XtAddEventHandler(w, event_mask, nonmaskable, proc, client_data)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

void XtAddRawEventHandler(w, event_mask, nonmaskable, proc, client_data)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

void XtRemoveEventHandler(w, event_mask, nonmaskable, proc, client_data)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

void XtRemoveRawEventHandler(w, event_mask, nonmaskable, proc, client_data)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

void XtInsertEventHandler(w, event_mask, nonmaskable, proc, client_data, position)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

      XtListPosition position;

void XtInsertRawEventHandler(w, event_mask, nonmaskable, proc, client_data, position)

      Widget w;

      EventMask event_mask;

      Boolean nonmaskable;

      XtEventHandler proc;

      XtPointer client_data;

      XtListPosition position;

typedef enum { XtListHead, XtListTail } XtListPosition;

引き数

client_data
クライアントのイベントハンドラに渡す追加的なデータを指定する。
event_mask
この手続きの呼び出し・登録抹消に対するイベントマスクを指定する。
nonmaskable
マスクできないイベント (GraphicsExpose, NoExpose, SelectionClear, SelectionRequest, SelectionNotify, ClientMessage, MappingNotify )に対し、この手続きを呼び出すか削除するか示す真偽値を指定する。
proc
追加または削除する手続きを指定する。
w
このイベントハンドラが登録されるウィジェットを指定する。
position
イベントハンドラが、前に登録された他のハンドラに対していつ呼ばれるかを 指定する。

説明

関数 XtAddEventHandler は、指定したウィジェット上でマスクにマッチするイベントが発生したときに 呼び出される手続きを、配送機構に登録する。 この手続きが既に同じ client_data で登録されていた場合、現在あるマスク は指定されたマスクとの論理和になる。 ウィジェットがリアライズされていれば、 XtAddEventHandler は必要に応じて XSelectInput を呼ぶ。

関数 XtAddRawEventHandler は、 XtAddEventHandler とほぼ同じである。ただし、ウィジェットのマスクを変化させず、イベントに 対して XSelectInput を起こさない点が異なる。 他の raw でないイベントハンドラがそのウィジェットに登録されているため に、ウィジェットには既にマスクビットがセットされているかも知れない点に 注意すること。

関数 XtRemoveRawEventHandler は、指定した手続きが指定したイベントを受け取るのを停止させる。 この手続きは raw なイベントハンドラなので、ウィジェットのマスクは変化 させず、 XSelectInput の呼び出しを起こすこともない。

XtInsertEventHandler は、追加の引き数 position を指定した XtAddEventHandler と同じである。 positionXtListHead ならば、イベントハンドラは、以前に同じウィジェットに対して登録されたど のイベントハンドラよりも前に呼ばれる位置に登録される。 positionXtListTail ならば、イベントハンドラは、以前に登録されたどのイベントハンドラよりも 後に呼び出される位置に登録される。この手続きが既に同じ client_data 値で登録されていた場合、指定したマスクは現在のマスク に加えられ、この手続きはリスト内で再配置される。

XtInsertRawEventHandlerXtInsertEventHandler とほぼ同じである。ただし、ウィジェットのイベントマスクを変更せず、指定 したイベントに対して XSelectInput を起こさない点が異なる。この手続きが同じ client_data で登録され ている場合、指定したマスクは現在のマスクに加えられ、この手続きはリスト 中で再配置される。