typedef struct { int type; /* CreateNotify */ unsigned long serial; /* サーバが最後に処理したリクエストの番号 */ Bool send_event; /* SendEvent リクエストから送られてきた場合に真 */ Display *display; /* イベントが読み出されたディスプレイ */ Window parent; /* このウィンドウの親 */ Window window; /* 作られたウィンドウのID */ int x, y; /* ウィンドウの位置 */ int width, height; /* ウィンドウの大きさ */ int border_width; /* ボーダー幅 */ Bool override_redirect; /* 上書き属性でウィンドウ生成 */ } XCreateWindowEvent;
このイベントを受け取ったとき、構造体のメンバは以下のように設定されてい る。
type メンバはイベントの型を一意に識別する定数の名前である。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタが 設定される。 send_event メンバは、このイベントが SendEvent プロトコルリクエストから送られてきたときに True が設定される。 serial メンバはプロトコルで通知されるシリアル番号を基に設定される。 ただし、最少桁の16ビットから完全な32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャにとって最も便利なウィ ンドウが設定される。
parent メンバには、生成されたウィンドウの親ウィンドウが設定される。 window メンバは生成されたウィンドウを示す。 x, y メンバは生成されたウィンドウの座標が、親ウィンドウの原点の座標か らの相対座標で設定される。この座標は生成されたウィンドウの左上外側の 隅の位置を指す。 width, height メンバは、生成されたウィンドウの内側(境界を含まない)のサ イズが設定される。これらの値は 0 にはなることはない。 border_width メンバには、生成されたウィンドウの境界の幅がピクセル単位 で設定される。 override_redirect メンバには、ウィンドウの override-redirect 属性が 設定される。 override_redirect メンバが True の場合、ウィンドウマネージャは通常このウィンドウを無視すべきである。