typedef struct { int type; /* MapNotify */ unsigned long serial; /* サーバが最後に処理したリクエストの番号 */ Bool send_event; /* SendEvent リクエストから送られた場合に真 */ Display *display; /* イベントが読み出されたディスプレイ */ Window event; Window window; Bool override_redirect; /* 真偽値。*/ } XMapEvent;
この構造体を受け取った時、構造体のメンバは以下のように設定されている。
type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバが GraphicsExpose をクライアントアプリケーションに通知する際には、 type メンバに GraphicsExpose を設定して XGraphicsExposeEvent 構造体を送る。 display メンバにはイベントが読み出されたディスプレイへのポインタが 設定される。 このイベントが SendEvent プロトコルリクエストから送られてきた場合には、 send_event メンバに True が設定される。 serial メンバは、プロトコルで通知されるシリアル番号から設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが一番有効に使えるウィ ンドウが設定される。
event メンバには、 StructureNotify が選択されていればマップされたウィンドウが、 SubstructureNotify が選択されていればその親ウィンドウが設定される。 window メンバにはマップされたウィンドウが設定される。 override_redirect メンバには、ウィンドウの override-redirect 属性が 設定される。 ウィンドウマネージャは、このウィンドウの override-redirect 属性が True ならばこれを無視すべきである。この理由は、これらのイベントは通常はウィ ンドウ構成の制御を無視するポップアップウィンドウで生成されるからである。
MappingNotify イベントに対する構造体の内容を示す。
typedef struct { int type; /* MappingNotify */ unsigned long serial; /* サーバが最後に処理したリクエストの番号 */ Bool send_event; /* SendEvent リクエストから送られた場合に真 */ Display *display; /* イベントが読み出されたディスプレイ */ Window window; /* 未使用 */ int request; /* MappingModifier, MappingKeyboard, MappingPointer のいずれか */ int first_keycode; /* 最初のキーコード */ int count; /* w が変化する範囲を定義。 */ } XMappingEvent;
このイベントを受け取った時、構造体のメンバは以下のように設定されている。
type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバが GraphicsExpose をクライアントアプリケーションに通知する際には、 type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバにはイベントが読み出されたディスプレイへのポインタが 設定される。 このイベントが SendEvent プロトコルリクエストから送られてきた場合には、 send_event メンバに True が設定される。 serial メンバは、プロトコルで通知されるシリアル番号から設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが一番有効に使えるウィ ンドウが設定される。
request メンバには、発生したマッピングの変更の種類を示す値が設定される。 これには MappingModifier, MappingKeyboard, MappingPointer のいずれかが設定される。 MappingModifier の場合は、モディファイアのマッピングが変更されている。 MappingKeyboard の場合は、キーボードのマッピングが変更されている。 MappingPointer の場合は、ポインタのボタンに対するマッピングが変更されている。 first_keycode と count メンバは、request メンバが MappingKeyboard の時にだけ設定される。 first_keycode の値を表し、変更されたマッピングの範囲の最初の数を表し、 count は変更されたキーコードの数を表す。