The X server reports
KeyPress
or
KeyRelease
events to clients wanting information about keys that logically change state.
Note that these events are generated for all keys,
even those mapped to modifier bits.
The X server reports
ButtonPress
or
ButtonRelease
events to clients wanting information about buttons that logically change state.
X サーバーは、キーの論理的な状態の情報を要求するクライアントに
KeyPressや
KeyReleaseイベントを通知する。
ノート:これらのイベントはすべてのキーのために発生させられ、さらにそれらはモディファイアビットに写像されている。
X サーバーは、キーの論理的な状態の情報を必要とするクライアントに
ButtonPressや
ButtonReleaseを通知する。
The X server reports
MotionNotify
events to clients wanting information about when the pointer logically moves.
The X server generates this event whenever the pointer is moved
and the pointer motion begins and ends in the window.
The granularity of
MotionNotify
events is not guaranteed,
but a client that selects this event type is guaranteed
to receive at least one event when the pointer moves and then rests.
X サーバーは、ポインタが論理的に動いたという情報を要求するクライアントに
MotionNotifyを通知する。
X サーバーはポインタが動かされさらにウインドウ内でポインタの動きが始まって終る時にはいつもこのイベントを起こす。
MotionNotifyイベントの精度は、保証されない、
しかし、クライアントはポインターが動きそして止まれば最低一つのイベント型(type)を受け取る事が保証されている。
The generation of the logical changes lags the physical changes
if device event processing is frozen.
もし、デバイスイベントの処理が凍結されると物理的な変化と論理的な変化との間にずれが生まれる。
To receive
KeyPress ,
KeyRelease ,
ButtonPress ,
and
ButtonRelease
events, set
KeyPressMask,
KeyReleaseMask,
ButtonPressMask,
and
ButtonReleaseMask
bits in the event-mask attribute of the window.
KeyPress 、KeyRelease 、ButtonPress 、ButtonRelease イベントを受け取るには
ウインドウのイベントマスク属性の
KeyPressMask 、KeyReleaseMask 、ButtonPressMask 、ButtonReleaseMask ビットを設定する。
To receive
MotionNotify
events, set one or more of the following event
masks bits in the event-mask attribute of the window.
MotionNotifyイベントを受け取るには、ウインドウのイベントマスク属性に次のイベントマスクビットのうち一つ以上を設定する。
The client application receives
MotionNotify
events only when one or more of the specified buttons is pressed.
クライアントアプリケーションは指定されたボタンのうち一つ以上が押された時に限り
MotionNotifyイベントを受け取る。
The client application receives
MotionNotify
events only when at least one button is pressed.
クライアントアプリケーションは最低一つのボタンが押された時に限り
MotionNotifyイベントを受け取る。
The client application receives
MotionNotify
events independent of the state of
the pointer buttons.
クライアント・アプリケーションはポインタボタンの状態に関わらず
MotionNotifyイベントを受け取る。
If
PointerMotionHintMask
is selected in combination with one or more of the above masks,
the X server is free to send only one
MotionNotify
event (with the is_hint member of the
XPointerMovedEvent
structure set to
NotifyHint)
to the client for the event window,
until either the key or button state changes,
the pointer leaves the event window, or the client calls
XQueryPointer()
or
XGetMotionEvents().
The server still may send
MotionNotify
events without is_hint set to
NotifyHint.
もし
PointerMotionHintMaskが上記にマスクのうち1つ以上と一緒に選ばれれば、
X サーバーは、キーまたはボタン(の一方)の状態が変化する、ポインターがイベントウインドウを去る、あるいはクライアントが
XQueryPointerまたは
XGetMotionEventsを呼ばない限り、イベントウインドウのためにクライアントにただ一つの(
XPointerMovedEvent構造体の is_hint メンバーに
NotifyHintを設定した)
MotionNotifyイベントを自由に送る事ができる。
さらにサーバーは is_hint に
NotifyHintを設定する事なしに
MotionNotifyイベントを送るだろう。
The source of the event is the viewable window that the pointer is in.
The window used by the X server to report these events depends on
the window's position in the window hierarchy
and whether any intervening window prohibits the generation of these events.
Starting with the source window,
the X server searches up the window hierarchy until it locates the first
window specified by a client as having an interest in these events.
If one of the intervening windows has its do-not-propagate-mask
set to prohibit generation of the event type,
the events of those types will be suppressed.
Clients can modify the actual window used for reporting by performing
active grabs and, in the case of keyboard events, by using the focus window.
イベントの発生源は、ポインターがある表示可能(viewable)なウインドウだ。
X サーバからそれらのイベントを通知するために使われるウィンドウは、
ウィンドウの階層構造のなかでのそのウィンドウの位置と、
間に入っているウィンドウがイベントの発生を禁止しているかどうかに
依存して決まる。
X サーバは、クライアントからイベントに注目するように指定された
最初のウィンドウを、イベントの発生源のウィンドウから順に
ウィンドウの階層構造をさかのぼって探す。
もし間にあるウィンドウの一つに、特定の種類のイベントの発生を禁止する
do-not-propagate-mask が設定されていた場合、その種のイベントは抑制される。
間に入っているウインドウの一つが伝播させないイベントを指定するマスクがイ
ベント型(type)の生成を禁止するように設定されていると、それらの型のイベン
トは抑制される。
クライアントはアクティブグラブを使う事によって、そしてキーボードイベント
の場合には、フォーカスウインドウを使う事によっても、実際の通知に使われる
ウインドウを変更する事ができる。
The structures for these event types contain:
これらのイベント型(type)のための構造体は以下を含む:
typedef struct {
int type; /* ButtonPress or ButtonRelease */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* ``event'' window it is reported relative to */
Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
int x_root, y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
unsigned int button; /* detail */
Bool same_screen; /* same screen flag */
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;
typedef struct {
int type; /* KeyPress or KeyRelease */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* ``event'' window it is reported relative to */
Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
int x_root, y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
unsigned int keycode; /* detail */
Bool same_screen; /* same screen flag */
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;
typedef struct {
int type; /* MotionNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* ``event'' window reported relative to */
Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
int x_root, y_root; /* coordinates relative to root */
unsigned int state; /* key or button mask */
char is_hint; /* detail */
Bool same_screen; /* same screen flag */
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;
These structures have the following common members:
window, root, subwindow, time, x, y, x_root, y_root, state, and same_screen.
The window member is set to the window on which the
event was generated and is referred to as the event window.
As long as the conditions previously discussed are met,
this is the window used by the X server to report the event.
The root member is set to the source window's root window.
The x_root and y_root members are set to the pointer's coordinates
relative to the root window's origin at the time of the event.
これらの構造体は次のの共通のメンバーを持つ:
window,
root,
subwindow,
time,
x,
y,
x_root,
y_root,
state,
same_screen。
window
メンバーはイベントが発生したウィンドウが設定され、
イベントウインドウとして参照される。
既に説明した条件に合致する限り、
イベントを通知するために X サーバーによって使われるウインドウである。
root
メンバーはイベント発生元のウインドウのルートウインドウが設定される。
x_root
メンバーと
y_root
メンバーはイベントが発生した時のルートウインドウの原点に対する
ポインターの相対座標が設定される。
The same_screen member is set to indicate whether the event
window is on the same screen
as the root window and can be either
True
or
False .
If
True ,
the event and root windows are on the same screen.
If
False ,
the event and root windows are not on the same screen.
same_screen
メンバーはイベントウインドウがルートウインドウと
同じスクリーン上にあるかどうかを示し、
True
あるいは
Falseの値が設定される。
もし
True
ならばイベントウインドウとルートウインドウは同じスクリーン上にあり、
もし
False
ならばイベントウインドウとルートウインドウは異なるスクリーン上にある。
If the source window is an inferior of the event window,
the subwindow member of the structure is set to the child of the event window
that is the source window or the child of the event window that is
an ancestor of the source window.
Otherwise, the X server sets the subwindow member to
None.
The time member is set to the time when the event was generated
and is expressed in milliseconds.
もしイベント発生元のウインドウがイベントウインドウの下位階層のウインドウなら、
構造体の
subwindow
メンバーはイベントウインドウの子であるイベント発生元のウインドウ、
あるいはイベントウインドウの子であるイベント発生元のウインドウの上位階層ウインドウが設定される。
そうでない時 Xサーバーは
subwindow
メンバーに
None
を設定する。
time
メンバーはイベントが発生した時の時間が設定され、
ミリ秒単位で表現される。
If the event window is on the same screen as the root window,
the x and y members
are set to the coordinates relative to the event window's origin.
Otherwise, these members are set to zero.
もし、イベントウインドウがルートウインドウと同じスクリーン上にあるならば、
x
と
y
メンバーはイベントウインドウの原点に対する相対座標が設定される。
そうでなければこれらのメンバーは0が設定される。
The state member is set to indicate the logical state of the pointer buttons
and modifier keys just prior to the event,
which is the bitwise inclusive OR of one or more of the
button or modifier key masks:
Button1Mask,
Button2Mask,
Button3Mask,
Button4Mask,
Button5Mask,
ShiftMask,
LockMask,
ControlMask,
Mod1Mask,
Mod2Mask,
Mod3Mask,
Mod4Mask,
and
Mod5Mask.
state
メンバーはそのイベントの直前のポインターボタンと修飾キーの論理的な状態を示すように設定され、次のボタンあるいは修飾キーマスクのビット論理和である:
Button1Mask,
Button2Mask,
Button3Mask,
Button4Mask,
Button5Mask,
ShiftMask,
LockMask,
ControlMask,
Mod1Mask,
Mod2Mask,
Mod3Mask,
Mod4Mask,
Mod5Mask。
Each of these structures also has a member that indicates the detail.
For the
XKeyPressedEvent
and
XKeyReleasedEvent
structures, this member is called keycode.
It is set to a number that represents a physical key on the keyboard.
The keycode is an arbitrary representation for any key on the keyboard
(see sections "Keyboard Encoding" and
"Keyboard Utility Functions").
これらの構造体のいくつかは詳細を示すメンバーがある。
XKeyPressedEvent
や
XKeyReleasedEvent
ではこのメンバーは
keycode
と呼ばれ、
キーボードの物理的なキーを表す数値が設定される。
keycode
はキーボードのどんなキーのための任意の表現である。
(セクション
"Keyboard Encoding"
と
"Keyboard Utility Functions"
を参照)
For the
XButtonPressedEvent
and
XButtonReleasedEvent
structures, this member is called button.
It represents the pointer button that changed state and can be the
Button1,
Button2,
Button3,
Button4,
or
Button5
value.
For the
XPointerMovedEvent
structure, this member is called is_hint.
It can be set to
NotifyNormal
or
NotifyHint.
XButtonPressedEvent
や
XButtonReleasedEvent
構造体ではこのメンバーは
button
と呼ばれる。
ポインターボタンの状態変化を表し
Button1,
Button2,
Button3,
Button4,
Button5
の値となる。
XPointerMovedEvent
ではこのメンバーは
is_hint
と呼ばれ、
NotifyNormal
あるいは
NotifyHint
が設定される。
Some of the symbols mentioned in this section have fixed values, as
follows:
このセクションで述べられたシンボルの内いくつかは次のような固定値を持つ:
Symbol | Value
|