Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XEvent(3X11) — NEWS-os 4.1C

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.1C

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