Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XEvent(3X11) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

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)

XAnyEvent(3X11)  —  NEWS-OS Programmer’s Manual

名称

XAnyEvent, XEvent − 共通の X イベント構造体

構造体

<X11/Xlib.h> で宣言された全てのイベント構造体は、以下の共通メンバを含みます。

typedef struct {
int type;
unsigned long serial;/∗ サーバが最後に処理したリクエストの通し番号 ∗/
Bool send_event;/∗ SendEvent リクエストからであれば、true ∗/
Display ∗display;/∗ イベントが読み込まれたディスプレイ ∗/
Window window;
} XAnyEvent;

type メンバは唯一無二の名称であるイベントタイプの不変の名称に設定されます。 例えば、X サーバが GraphicsExpose イベントをクライアントアプリケーションへ通知すると、 type メンバが GraphicsExpose に設定される XGraphicsExposeEvent 構造体を送ります。 display メンバはイベントが読み込まれたディスプレイにポインタを設定します。 イベントが SendEvent プロトコルリクエストからであれば、send_event メンバは True に設定されます。serial メンバはプロトコルで通知された 通し番号から設定されますが、 16 ビットの最下位ビットから 32 ビットへ拡張されます。 window メンバはツールキットのディスパッチャに最適のウィンドウに設定されます。 XEvent 構造体はイベントタイプ毎に宣言された個々の構造体の集合です。

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;

XEvent 構造体の最初の登録は常に type メンバとなり、イベントタイプに設定されます。 第 2 のメンバは常にイベントを生成したプロトコルリクエストの通し番号になります。 第 3 のメンバは常に send_event になり、 またイベントが他のクライアントによって送られたものかどうかを示す Bool です。第 4 のメンバは常に display となり、 イベントが読まれたディスプレイです。 キーマップイベントを除くと、第 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

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026