typedef struct { int type; /* SelectionNotify */ unsigned long serial; /* サーバに処理された最後のリクエストの番号 */ Bool send_event; /* SendEvent リクエスト由来ならば真 */ Display *display; /* イベントが読み出されるディスプレイ */ Window requestor; Atom selection; Atom target; Atom property; /* アトムあるいは None */ Time time; } XSelectionEvent;
イベントを受け取ったとき、構造体の各メンバは以下のように設定される。
type メンバには、イベントの型を一意に認識するための定数の名前が設定される。 例えば、X サーバが GraphicsExpose イベントをクライアントアプリケーションに通知したとき、サーバは type メンバに GraphicsExpose を設定して XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されるディスプレイへのポインタが 設定される。 send_event メンバには、イベントが SendEvent プロトコルリクエストから送られてきた場合に True が設定される。 serial メンバは、プロトコルで通知されたシリアルナンバーを基に設定され る。ただし、最少桁の16ビットから完全な32ビットに拡張される。 dispatchers. window メンバには、ツールキットのディスパッチャが最も有効に利用できる ウィンドウが設定される。
requestor メンバには、セレクションを要求したクライアントに関係づけられ たウィンドウが設定される。 selection メンバには、セレクションを示すアトムが設定される。 例えば、PRIMARY はプライマリのセレクションのために用いられる。 target メンバは変換される型を示すアトムが設定される。 例えば、PIXMAP はピックスマップのために用いられる。 property メンバには、結果がどのプロパティに格納されるのかを示すアトム が設定される。 変換に失敗した場合、property メンバには None が設定される。 time メンバには変換が起こった時間が設定されるが、これはタイムスタンプか CurrentTime になる。