XCrossingEvent(3X11) — NEWS-OS Programmer’s Manual
名称
XCrossingEvent − EnterNotify および LeaveNotify イベント構造体
構造体
EnterNotify および LeaveNotify イベントの構造体は、以下の様になります。
typedef struct {
int type;/∗ EnterNotify または LeaveNotify ∗/
unsigned long serial;/∗ サーバが最後に処理したリクエストの通し番号 ∗/
Bool send_event;/∗ SendEvent リクエストからであれば、true ∗/
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 サーバが GraphicsExpose イベントをアプリケーションに通知した場合、 type メンバが GraphicsExpose である XGraphicsExposeEvent 構造体を送ります。 display メンバはイベントが読まれたディスプレイへのポインタに設定されます。 sedn_event メンバはイベントが SendEvent プロトコルリクエストからであれば、 True に設定されます。 serial メンバはプロトコルで通知された通し番号から設定されますが、 16 ビットの最下位ビットデータから完全 32 ビットデータに拡張されます。 window メンバはツールキットのディスパッチャに最適のウィンドウに設定されます。 window メンバは EnterNotify イベントまたは LeaveNotify イベントが生成されたウィンドウに設定され、 イベントウィンドウとして参照されます。 X サーバがイベントを通知する時に使われるウィンドウであり、 イベントが発生したルートウィンドウに基づきます。 root メンバはイベントが発生したスクリーンのルートウィンドウに設定されます。 LeaveNotify イベントに関しては、 イベントウィンドウの子ウィンドウがポインタの開始位置を保持していれば、 サブウィンドウ部品はその子ウィンドウに設定されます。 そうでなければ、 X サーバは subwindow メンバを None に設定します。 EnterNotify イベントに関しては、 イベントウィンドウの子ウィンドウが最終のポインタの位置を保持していれば、 サブウィンドウ部品は子ウィンドウまたは None に設定されます。 time メンバはイベントが生成された時刻に設定され、 ミリ秒単位で表されます。 メンバの x および y は、 イベントウィンドウのポインタ位置の座標に設定されます。 この位置は常にポインタの最終位置となり、 開始位置とはなりません。 もし、イベントウィンドウがルートウィンドウと同一スクリーン上にあれば、 x と y はイベントウィンドウの原点に基づくポインタ座標となります。 そうでなければ、 x と y はゼロとなります。 メンバの x_root および y_root は、 イベント発生時のルートウィンドウの原点に基づいたポインタ座標に設定されます。 same_screen メンバはイベントウィンドウがルートウィンドウと同一スクリーン上にあるかどうかを示す為に設定し、 True または False となります。 True であれば、 イベントウィンドウがルートウィンドウと同一スクリーン上にあることになります。 False であれば、 イベントウィンドウはルートウィンドウと同一スクリーン上にないことを示します。 focus メンバはイベントウィンドウがフォーカスウィンドウ、 または下位のフォーカスウィンドウになるのかを示します。 X サーバが True または False に設定出来ます。 True であれば、 イベントウィンドウはフォーカスウィンドウまたはその下位のウィンドウとなります。 False であれば、 イベントウィンドウはフォーカスウィンドウでも下位のウィンドウでもありません。 state メンバはイベント発生直前のマウスボタンと修飾キーの状態を示します。 Xサーバはこのメンバを単一または複数のボタンまたはモディファイアキーマスクの論理和に設定出来ます。 Button1Mask、 Button2Mask、 Button3Mask、 Button4Mask、 Button5Mask、 ShiftMask、 LockMask、 ControlMask、 Mod1Mask、 Mod2Mask、 Mod3Mask、 Mod4Mask、 Mod5Mask。 mode メンバはイベントが通常のイベント、 グラブ機能有効時の疑似動作イベント、 またはグラブ機能無効時の疑似動作イベントなのかを示す為に設定されます。 X サーバが NotifyNormal、 NotifyGrab、 または NotifyUngrab に設定出来ます。 detail メンバは notify 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
NEWS-OSRelease 4.2.1R