XCrossingEvent(3X11)

名前
XCrossingEvent - EnterNotify, LeaveNotify イベント構造体

構造体
イベントと イベントに対する構造体の内容を示す。

typedef struct {
    int type;    /* EnterNotify or LeaveNotify */
    unsigned long serial;    /* サーバが最後に処理したリクエストの番号 */
    Bool send_event;    /* SendEvent リクエストから送られてきたときに真 */
    Display *display;    /* イベントが読み出されたディスプレイ */
     Window window;    /* 関連して通知される ``イベント'' ウィンドウ */
     Window root;    /* イベントが発生したルートウィンドウ */
     Window subwindow;    /* 子ウィンドウ */
     Time time;    /* 単位はミリ秒 */
     int x, y;    /* イベントウィンドウ内のポインタの x, y 座標 */
     int x_root, y_root;    /* ルートウィンドウに対する相対座標 */
    int mode;    /* NotifyNormal, NotifyGrab, NotifyUngrab */
    int detail;
        /*
         * NotifyAncestor, NotifyVirtual, NotifyInferior,
         * NotifyNonlinear,NotifyNonlinearVirtual
         */
     Bool same_screen;    /* 同じスクリーンかどうか示すフラグ */
     Bool focus;    /* フォーカスを表す真偽値 */
     unsigned int state;    /* キーあるいはボタンのマスク */
} XCrossingEvent; typedef XCrossingEvent XEnterWindowEvent; typedef XCrossingEvent XLeaveWindowEvent;

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

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

window メンバには や イベントが発生したウィンドウがセットされ、イベントウィンドウとして参照 される。 これはXサーバがイベントを通知するために使うウィンドウであり、イベント が発生したルートウィンドウと関係する。 root メンバには、イベントが発生したスクリーンのルートウィンドウがセッ トされる。

イベントに対しては、ポインタの初期位置がイベントウィンドウの子ウィンド ウに入っていれば、subwindow メンバにはその子ウィンドウがセットされる。 そうでない場合には、X サーバは subwindow メンバに をセットする。 に対しては、ポインタの初期位置がイベントウィンドウの子ウィンドウに入っ ていれば、subwindow メンバにはその子ウィンドウがセットされ、そうでない 場合には がセットされる。

time メンバには、イベントが発生した時刻がセットされる。この時刻はミリ 秒単位で表される。 x, y メンバにはイベントウィンドウ内でのポインタ位置の座標がセットされ る。 この位置は常にポインタの最終位置であり、初期位置ではない。 イベントウィンドウがルートウィンドウと同じスクリーン上にある場合、x, y メンバはポインタ座標であり、イベントウィンドウの原点に対する相対座標が セットされる。 そうでない場合には、x, y にはゼロがセットされる。 x_root, y_root メンバには、イベント時刻におけるポインタの座標がセット される。 これはルートウィンドウの原点に対する相対座標で表される。

same_screen メンバはイベントウィンドウとルートウィンドウが同じスクリー ン上にあるかどうかを示すもので、 か がセットされる。 の場合は、イベントウィンドウとルートウィンドウは同じスクリーン上にある。 の場合は、イベントウィンドウとルートウィンドウは異なるスクリーン上にあ る。

focus メンバは、イベントウィンドウがフォーカスウィンドウやその下位ウィ ンドウであるかどうかを示す。 X サーバは、このメンバを か に設定する。 の場合、イベントウィンドウはフォーカスウィンドウかその下位ウィンドウで ある。 の場合、イベントウィンドウはフォーカスウィンドウやその下位ウィンドウで はない。

state メンバは、イベント直前のポインタのボタンやモディファイアキーの状 態を示す。 X サーバはこのメンバに、次に示すボタンマスク値やモディファイアキーマス ク値のうち1つ以上についてのビットごとの論理和をセットする:

mode メンバは、イベントが通常のイベント、 グラブが有効になった時の疑似移動(pseudo-motion)イベント、 グラブが無効になった時の疑似移動(pseudo-motion)イベントのいずれである かを示す。 X サーバはこのメンバに のいずれかをセットする。

detail メンバは通知の詳細を示すもので、 のいずれかにセットされる。

関連項目
XAnyEvent(3X11), XButtonEvent(3X11), XCreateWindowEvent(3X11), XCirculateEvent(3X11), XCirculateRequestEvent(3X11), XColormapEvent(3X11), XConfigureEvent(3X11), XConfigureRequestEvent(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