XAnyEvent(3X11)

名前
XAnyEvent, XEvent - 汎用 X イベント構造体

構造体
で定義されている全てのイベント構造体は次のような共通のメンバを持つ。 typedef struct {
    int type;
    unsigned long serial;    /* 最後にサーバに処理されたリクエストの番号 */
    Bool send_event;    /* SendEvent リクエストから送られてきた場合に真 */
    Display *display;    /* イベントが読み出されたディスプレイ */
    Window window; } XAnyEvent;

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

構造体は、各イベントタイプのために宣言した個別の構造体の共用体である。 typedef union _XEvent {
    int type;    /* 変更してはならない */
    XAnyEvent xany;
    XKeyEvent xkey;
    XButtonEvent xbutton;
    XMotionEvent xmotion;
    XCrossingEvent xcrossing;
    XFocusChangeEvent xfocus;
    XExposeEvent xexpose;
    XGraphicsExposeEvent xgraphicsexpose;
    XNoExposeEvent xnoexpose;
    XVisibilityEvent xvisibility;
    XCreateWindowEvent xcreatewindow;
    XDestroyWindowEvent xdestroywindow;
    XUnmapEvent xunmap;
    XMapEvent xmap;
    XMapRequestEvent xmaprequest;
    XReparentEvent xreparent;
    XConfigureEvent xconfigure;
    XGravityEvent xgravity;
    XResizeRequestEvent xresizerequest;
    XConfigureRequestEvent xconfigurerequest;
    XCirculateEvent xcirculate;
    XCirculateRequestEvent xcirculaterequest;
    XPropertyEvent xproperty;
    XSelectionClearEvent xselectionclear;
    XSelectionRequestEvent xselectionrequest;
    XSelectionEvent xselection;
    XColormapEvent xcolormap;
    XClientMessageEvent xclient;
    XMappingEvent xmapping;
    XErrorEvent xerror;
    XKeymapEvent xkeymap;
    long pad[24]; } XEvent;

構造体の最初のエントリは常に type メンバである。 これにはイベントのタイプがセットされる。 2番目のメンバは常に serial メンバであり、これはイベントを生成したプロ トコルリクエストのシリアル番号である。 3番目のメンバは常に send_event である。 これはイベントが他のクライアントから送られてきたかどうかを示す真偽値で ある。 4番目のメンバは常に display である。 これはイベントが読み出されたディスプレイである。 keymap イベントを除くと、5番目のメンバは常に window である。 これはツールキットのディスパッチャにとって便利なように注意深く選ばれる。 ツールキットを破綻させないために、これら最初の5つのエントリの順序は変 更してはならない。 多くのイベントは time メンバを持つ。 これはイベントが発生した時刻である。 さらに、汎用イベントへのポインタは、構造体の他の要素にアクセスする前に キャストされなければならない。

関連項目
XButtonEvent(3X11), XCreateWindowEvent(3X11), XCirculateEvent(3X11), XCirculateRequestEvent(3X11), XColormapEvent(3X11), XConfigureEvent(3X11), XConfigureRequestEvent(3X11), XCrossingEvent(3X11), XDestroyWindowEvent(3X11), XErrorEvent(3X11), XExposeEvent(3X11), XFocusChangeEvent(3X11), XGraphicsExposeEvent(3X11), XGravityEvent(3X11), XKeymapEvent(3X11), XMapEvent(3X11), XMapRequestEvent(3X11), XPropertyEvent(3X11), XReparentEvent(3X11), XResizeRequestEvent(3X11), XSelectionClearEvent(3X11), XSelectionEvent(3X11), XSelectionRequestEvent(3X11), XUnmapEvent(3X11), XVisibilityEvent(3X11)
Xlib - C Language X Interface