Xイベント

現在の実行において、 イベント構造は固定イベントバッファ(25要素の整数ベクトル)から受け、 同じバッファが全てのイベントに関して再使用される。 イベント構造は、同時に2つ以上のイベントを参照する必要があるとき、 コピーされなければならない。

window-main-loopは、Xserverから送られる全てのイベントを 捕獲し、イベントが発生したwindowに配るための関数である。



event [変数]

もっとも最近のイベント構造を持つ25要素の整数ベクトル


next-event [関数]

eventの中にイベント構造を蓄積し、 もし1つでも未決定のイベントがあればそれを返し、 なければNILを返す。


event-type event [関数]

eventのイベント型を表現するキーワードsymbol返す。 イベント型キーワードは、 :KeyPress (2), :KeyRelease (3), :ButtonPress (4), :ButtonRelease (5), :MotionNotify (6), :EnterNotify (7), :LeaveNotify (8), :FocusIn (9), :FocusOut (0), :KeymapNotify (1), :Expose (12), :GraphicsExpose (13), :NoExpose (14), :VisibilityNotify (15), :CreateNotify (16), :DestroyNotify (17),
:UnmapNotify (18), :MapNotify (19), :MapRequest (20), :ConfigureNotify (22), :ConfigureRequest (23), :GravityNotify (24), :ResizeRequest (25), :CirculateNotify (26), :CirculateRequest (27), :PropertyNotify (28), :SelectionClear (29), :SelectionRequest (30), :SelectionNotify (31), :ColormapNotify (32), :ClientMessage (33), :MappingNotify (34), :LASTEvent (35)である。


event-window event [関数]

eventが発生したwindowオブジェクトを返す。


event-x event [関数]

eventからそのイベントが発生したx座標を抜き出す。 (すなわち、window内におけるマウスポインタの横方向の相対的な位置)


event-y event [関数]

eventからそのイベントが発生したy座標を抜き出す。 (すなわち、window内におけるマウスポインタの縦方向の相対的な位置)


event-width event [関数]

:configureNotifyイベントに幅パラメータを表現する eventの8つの要素を返す。


event-height event [関数]

:configureNotifyイベントに高さパラメータを表現する eventの8つの要素を返す。


event-state event [関数]

キーの状態で変更されたマウスボタンを表現するキーワードのリストを返す。 キーワードは、:shift, :control, :meta, :left, :middle:rightである。 例えば、もしシフトキーが押されている状態で左のボタンが押されたならば、 (:shift :left)が返される。


display-events [関数]
x:nexteventによって捕獲された全てのxwindowイベントを表示する。 Control-Cは、この関数を停止させる唯一の方法である。


window-main-loop &rest forms [マクロ]

Xeventを受け、イベントが発生したwindowオブジェクトにそれを 配る。 イベントの型に沿って、 :KeyPress, :KeyRelease, :ButtonPress, :ButtonRelease, :MotionNotify, :EnterNotify, :LeaveNotify
:ConfigureNotifyと名付けられた windowクラスのメソッドがeventを引数として 呼び出される。 もし、formsが与えられたならば、 到着したイベントがチェックされるとき毎にそれらを評価する。


window-main-thread [関数]

スレッドであることを除いてwindow-main-loopと同じことをする。 window-main-threadは、Solaris2でのみ実現されている。 window-main-threadは、read-eval-printが入力されない エラーハンドラをインストールしている。 エラー情報を表示した後、そのイベントは処理を続ける。


2016-04-05