XClientMessageEvent(3) ClientMessage イベント構造体

構造体

ClientMessage イベント構造体の内容を示す。

typedef struct {
     int type;                
     unsigned long serial;    
     Bool send_event;         
     Display *display;        
     Window window;
     Atom message_type;
     int format;
     union {
          char b[20];
          short s[10];
          long l[5];
             } data;
} XClientMessageEvent;

このイベントを受け取った時、構造体のメンバは以下のように設定されている。

type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタが設定 される。 send_event メンバは、このイベント自身が SendEvent プロトコルリクエストから送られてきた場合に True が設定される。 serial メンバはプロトコルで通知されたシリアル番号を基に設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが最も有効に使える ウィンドウが設定される。

message_type メンバには、データを受け取ったクライアントがこれを どのように解釈すべきかを示すアトムが設定される。 format メンバには、8, 16, 32 のいずれかが設定され、データを byte, short, long いずれのリストとみなすかを指定する。 data メンバは、メンバ b, s, l を含む共用体である。 b, s, l メンバは 20 個の 8ビット値、10個の 16ビット値、5個の 32ビット 値を含むデータである。 特定のメッセージ型では、これら全ての値は使用されないことがある。 X サーバは window, message_type, data メンバの値については解釈を行わな い。