typedef struct { int type; /* PropertyNotify */ unsigned long serial; /* 最後にサーバに処理されたリクエストの番号 */ Bool send_event; /* SendEvent リクエストから送られてきた場合に真 */ Display *display; /* イベントが読み出されたディスプレイ */ Window window; Atom atom; Time time; int state; /* PropertyNewValue あるいは PropertyDelete */ } XPropertyEvent;
このイベントを受け取ったとき、構造体の内容は以下のようにセットされてい る。
type メンバには、イベントの型を一意に識別する定数名がセットされる。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose をセットした XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタがセッ send_event メンバは、このイベント自身が SendEvent プロトコルリクエストから送られてきた場合に True がセットされる。 serial メンバはプロトコルで通知されたシリアル番号を基にセットされる。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが最も便利に使えるウィ ンドウがセットされる。
window メンバには、関連するプロパティが変更されたウィンドウがセットされる。 atom メンバにはプロパティのアトムがセットされる。 アトムは、変更されたプロパティか変更を要求するプロパティを示す。 time メンバには、プロパティが変更されたサーバ時刻がセットされる。 state メンバは、プロパティが新しい値に変更された( PropertyNewValue )のか削除された( PropertyDelete )を示す。 XChangeProperty や XRotateWindowProperties を使ってウィンドウのプロパティが変更された場合( XChangeProperty で長さ 0 のデータを追加した場合であっても )や、 XChangeProperty や XRotateWindowProperties を使って同じデータの一部あるいは全部のプロパティを置き換えた場合には、 state メンバには PropertyNewValue がセットされる。 XDeleteProperty や 引き数 delete を True とした XGetWindowProperty を使ってウィンドウのプロパティを削除した場合、state メンバには PropertyDelete がセットされる。