10.4 Event Processing Overview

The event reported to a client application during event processing depends on which event masks you provide as the event-mask attribute for a window. For some event masks, there is a one-to-one correspondence between the event mask constant and the event type constant. For example, if you pass the event mask ButtonPressMask, the X server sends back only ButtonPress events. Most events contain a time member, which is the time at which an event occurred.
イベント処理の間にクライアント・アプリケーションにレポートされるイベントは、あなたがウインドウにイベントマスク属性として提供する(複数の)イベントマスク次第である。 いくつかのイベントマスクでは、イベントマスク定数とイベント型(type)定数が1対1で対応している。 例えば、もしあなたがイベントマスク ButtonPressMaskを渡せば、Xサーバーは、 ButtonPressイベントのみを送り返す。 ほとんどのイベントは、time メンバーを含む(そこでイベントが起こった時間である)。

In other cases, one event mask constant can map to several event type constants. For example, if you pass the event mask SubstructureNotifyMask, the X server can send back CirculateNotify, ConfigureNotify, CreateNotify, DestroyNotify, GravityNotify, MapNotify, ReparentNotify, or UnmapNotify events.
他の場合で、一つのイベントマスクが複数のイベント型(type)定数に対応する事が出来る。 例えば、もしあなたがイベント・マスク SubstructureNotifyMaskを渡せば、Xサーバーは、 CirculateNotifyConfigureNotifyCreateNotifyDestroyNotifyGravityNotifyMapNotifyReparentNotifyあるいは UnmapNotifyイベントを送り返すことができる。

In another case, two event masks can map to one event type. For example, if you pass either PointerMotionMask or ButtonMotionMask, the X server sends back a MotionNotify event.
もう一つのケースで、2つのイベントマスクが 1 つのイベント型(type)に対応する事が出来る。 例えば、もしあなたがイベントマスク PointerMotionMaskまたは ButtonMotionMask(の一方)を渡せば、Xサーバーは MotionNotifyイベントを送り返す。

The following table lists the event mask, its associated event type or types, and the structure name associated with the event type. Some of these structures actually are typedefs to a generic structure that is shared between two event types. Note that N.A. appears in columns for which the information is not applicable.
以下のテーブルは、イベントマスク、それに関連するイベント型(type)を列挙する、そして、構造体名は、イベント型(type)と結び付く。 これらの構造体のいくつかは、実際には、2つのイベント型(type)の間で共有される汎用の構造体の typedefs だ。 注意:情報が適用できないコラムには N.A. が現れる。


Event Mask Event Type Structure Generic Structure

ButtonMotionMask MotionNotify XPointerMovedEvent XMotionEvent
Button1MotionMask
Button2MotionMask
Button3MotionMask
Button4MotionMask
Button5MotionMask
ButtonPressMask ButtonPress XButtonPressedEvent XButtonEvent
ButtonReleaseMask ButtonRelease XButtonReleasedEvent XButtonEvent
ColormapChangeMask ColormapNotify XColormapEvent
EnterWindowMask EnterNotify XEnterWindowEvent XCrossingEvent
LeaveWindowMask LeaveNotify XLeaveWindowEvent XCrossingEvent
ExposureMask Expose XExposeEvent
GCGraphicsExposures in GC GraphicsExpose XGraphicsExposeEvent
NoExpose XNoExposeEvent
FocusChangeMask FocusIn XFocusInEvent XFocusChangeEvent
FocusOut XFocusOutEvent XFocusChangeEvent
KeymapStateMask KeymapNotify XKeymapEvent
KeyPressMask KeyPress XKeyPressedEvent XKeyEvent
KeyReleaseMask KeyRelease XKeyReleasedEvent XKeyEvent
OwnerGrabButtonMask N.A. N.A.
PointerMotionMask MotionNotify XPointerMovedEvent XMotionEvent
PointerMotionHintMask N.A. N.A.
PropertyChangeMask PropertyNotify XPropertyEvent
ResizeRedirectMask ResizeRequest XResizeRequestEvent
StructureNotifyMask CirculateNotify XCirculateEvent
ConfigureNotify XConfigureEvent
DestroyNotify XDestroyWindowEvent
GravityNotify XGravityEvent
MapNotify XMapEvent
ReparentNotify XReparentEvent
UnmapNotify XUnmapEvent
SubstructureNotifyMask CirculateNotify XCirculateEvent
ConfigureNotify XConfigureEvent
CreateNotify XCreateWindowEvent
DestroyNotify XDestroyWindowEvent
GravityNotify XGravityEvent
MapNotify XMapEvent
ReparentNotify XReparentEvent
UnmapNotify XUnmapEvent
SubstructureRedirectMask CirculateRequest XCirculateRequestEvent
ConfigureRequest XConfigureRequestEvent
MapRequest XMapRequestEvent
N.A. ClientMessage XClientMessageEvent
N.A. MappingNotify XMappingEvent
N.A. SelectionClear XSelectionClearEvent
N.A. SelectionNotify XSelectionEvent
N.A. SelectionRequest XSelectionRequestEvent
VisibilityChangeMask VisibilityNotify XVisibilityEvent

The sections that follow describe the processing that occurs when you select the different event masks. The sections are organized according to these processing categories:
後に続くセクションはあなたが異なるイベントマスクを選んだ時に起こる処理について述べる。 セクションは処理のカテゴリ分けに従って編成される:

Next: Keyboard and Pointer Events

Christophe Tronche, ch.tronche@computer.org