XCrossingEvent - EnterNotify, LeaveNotify
イベント構造体
構造体¶
EnterNotify イベントと
LeaveNotify
イベントに対する構造体の内容を示す。
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
Window window;
Window root;
Window subwindow;
Time time;
int x, y;
int x_root, y_root;
int mode;
int detail;
Bool same_screen;
Bool focus;
unsigned int state;
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;
このイベントを受け取ったとき、構造体のメンバは以下のように設定されてい
る。
type
メンバはイベントの型を一意に識別する定数の名前である。
例えば、X
サーバがクライアントアプリケーションに
GraphicsExpose
イベントを通知するとき、X
サーバは type メンバに
GraphicsExpose を設定した
XGraphicsExposeEvent
構造体を送る。 display
メンバはイベントが読み出されたディスプレイへのポインタである。
send_event
メンバには、このイベントが
SendEvent
プロトコルリクエストから送られてきたときに
True が設定される。 serial
メンバはプロトコルで通知されるシリアル番号を基に設定される。
ただし、最少桁の16ビットから完全な32ビットの値に拡張される。
window
メンバには、ツールキットのディスパッチャにとって最も便利なウィ
ンドウが設定される。
window メンバには
EnterNotify や
LeaveNotify
イベントが発生したウィンドウが設定され、イベントウィンドウとして参照
される。
これはXサーバがイベントを通知するために使うウィンドウであり、イベント
が発生したルートウィンドウと関係する。
root
メンバには、イベントが発生したスクリーンのルートウィンドウが
設定される。
LeaveNotify
イベントに対しては、ポインタの初期位置がイベントウィンドウの子ウィンド
ウに入っていれば、subwindow
メンバにはその子ウィンドウが設定される。
そうでない場合には、X
サーバは subwindow メンバに
None を設定する。
EnterNotify
に対しては、ポインタの初期位置がイベントウィンドウの子ウィンドウに入っ
ていれば、subwindow
メンバにはその子ウィンドウが設定され、そうでない
場合には
None
が設定される。
time
メンバには、イベントが発生した時刻が設定される。この時刻はミリ
秒単位で表される。 x, y
メンバにはイベントウィンドウ内でのポインタ位置の座標が設定される。
この位置は常にポインタの最終位置であり、初期位置ではない。
イベントウィンドウがルートウィンドウと同じスクリーン上にある場合、x,
y
メンバはポインタ座標であり、イベントウィンドウの原点に対する相対座標が
設定される。
そうでない場合には、x,
y には 0 が設定される。
x_root, y_root
メンバには、イベント時刻におけるポインタの座標が設定
される。
これはルートウィンドウの原点に対する相対座標で表される。
same_screen
メンバはイベントウィンドウとルートウィンドウが同じスクリー
ン上にあるかどうかを示すもので、
True か
False
が設定される。
True
の場合は、イベントウィンドウとルートウィンドウは同じスクリーン上にある。
False
の場合は、イベントウィンドウとルートウィンドウは異なるスクリーン上にあ
る。
focus
メンバは、イベントウィンドウがフォーカスウィンドウやその下位ウィ
ンドウであるかどうかを示す。
X
サーバは、このメンバを
True か
False
に設定する。
True
の場合、イベントウィンドウはフォーカスウィンドウかその下位ウィンドウで
ある。
False
の場合、イベントウィンドウはフォーカスウィンドウやその下位ウィンドウで
はない。
state
メンバは、イベント直前のポインタのボタンやモディファイアキーの状
態を示す。 X
サーバはこのメンバに、次に示すボタンマスク値やモディファイアキーマス
ク値のうち1つ以上についてのビットごとの論理和を設定する:
Button1Mask,
Button2Mask,
Button3Mask,
Button4Mask,
Button5Mask,
ShiftMask,
LockMask,
ControlMask,
Mod1Mask,
Mod2Mask,
Mod3Mask,
Mod4Mask,
Mod5Mask.
mode
メンバは、イベントが通常のイベント、
グラブが有効になった時の疑似移動(pseudo-motion)イベント、
グラブが無効になった時の疑似移動(pseudo-motion)イベントのいずれである
かを示す。 X
サーバはこのメンバに
NotifyNormal,
NotifyGrab,
NotifyUngrab
のいずれかを設定する。
detail
メンバは通知の詳細を示すもので、
NotifyAncestor,
NotifyVirtual,
NotifyInferior,
NotifyNonlinear,
NotifyNonlinearVirtual
のいずれかに設定される。
関連項目¶
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