Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XUngrabButton(3X11) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XAllowEvents(3X11)

XGrabPointer(3X11)

XGrabKey(3X11)

XGrabKeyboard(3X11)

XGrabButton(3X11)  —  NEWS-OS Programmer’s Manual

名称

XGrabButton, XUngrabButton − ポインタボタンをグラブする

形式

XGrabButton(display, button, modifiers, grab_window, owner_events, event_mask,
                pointer_mode, keyboard_mode, confine_to, cursor)
      Display ∗display;
      unsigned int button;
      unsigned int modifiers;
      Window grab_window;
      Bool owner_events;
      unsigned int event_mask;
      int pointer_mode, keyboard_mode;
      Window confine_to;
      Cursor cursor; XUngrabButton(display, button, modifiers, grab_window)
      Display ∗display;
      unsigned int button;
      unsigned int modifiers;
      Window grab_window;

引数

buttonグラブあるいは解除するポインタボタン、または AnyButton を指定します。

confine_toポインタを拘束するウィンドウまたは None を指定します。

cursor表示されるべきカーソルまたは None を指定します。

displayX サーバへのコネクションを指定します。

event_maskクライアントにどのポインタイベントを通知するかを指定します。 マスクは、有効なポインタイベントのマスクビットの (内包的) 論理和です。

grab_windowグラブウィンドウを指定します。

keyboard_mode
キーボードイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡せます。

modifiersキーマスクセットまたは AnyModifier を指定します。 マスクは、有効なキーマスクビットの (内包的) 論理和です。

owner_events
イベントマスクで選ばれた場合にポインタイベントを通常どおりに通知するか、 またはグラブウィンドウに関して通知するかを示すブール値を指定します。

pointer_mode
ポインタイベントの以後の処理を指定します。 GrabModeSync または GrabModeAsync を渡すことができます。

解説

XGrabButton 関数は、パッシブグラブを設定します。 将来、 ポインタはアクティブにグラブされ、( XGrabPointer と同様に) 、 最後のポインタグラブ時間はボタンが押された ( ButtonPress イベントで送信された) 時間に設定され、 ButtonPress イベントは以下の条件すべてが真であれば通知されます。

•ポインタがグラブされていず、指定されたモディファイアキーが論理的に ダウンのとき、指定されたボタンが論理的に押され、 そしてその他のボタンやモディファイアキーは論理的にダウンでない。

•grab_window がポインタを含んでいる。

•confine_to ウィンドウ (もしあれば) がビューアブルである。

•同じボタン/キーの組合せのパッシブグラブが、 grab_window の先祖に存在しない。 残りの引数の解釈は、 XGrabPointer と同じです。 アクティブグラブは、ポインタの論理状態がすべてのボタンが解除された 状態になったとき、自動的に終了します (論理モディファイアキーの状態と無関係に)。 デバイスの論理状態(クライアントアプリケーションからみた)は、 デバイスイベント処理がフリーズされた場合、物理的状態を遅らせることが あります。 リクエストは、同じウィンドウの同じボタン/キーの組合せの同じ クライアントによるそれ以前のすべてのグラブを無効にします。 AnyModifier のモディファイアは、すべてのモディファイアの組合せ (モディファイアなしの組合せを含む)についてグラブリクエストを出すのと 同じです。 指定されたすべてのモディファイアが現在割り当てられている KeyCodes を もっていることは、要求されません。 AnyButton のボタンは、 すべてのボタンについてリクエストを出すのと同じです。 さもなければ、指定されたボタンが現在物理的ボタンに割り当てられている ことは要求されません。 他のあるクライアントが同じウィンドウの同じボタン/キーの組合せで XGrabButton を出している場合、 BadAccess エラーを生じます。 AnyModifier または AnyButton を用いると、 任意の組合せについて矛盾するグラブがあればリクエストは完全に失敗し、 BadAccess エラーが生じます (いかなるグラブも設定されません)。 XGrabButton は、アクティブグラブによるいかなる影響も与えません。 XGrabButton は、 BadCursor、 BadValue および BadWindow エラーを生じることがあります。 XUngrabButton 関数は、このクライアントによってグラブされた場合、 指定されたウィンドウのパッシブボタン/キーの組合せを解除します。 AnyModifier のモディファイアは、 すべてのモディファイアの組合せ (モディファイアなしの組合せを含む) についてグラブ解除リクエストを 出すのと同じです。 AnyButton のボタンは、すべてのボタンについてリクエストを出すのと同じです。 XUngrabButton は、アクティブグラブに影響を与えません。 XUngrabButton は、 BadValue および BadWindow エラーを生じることがあります。

診断

BadCursor Cursor 引数の値が定義された Cursor を指さない。

BadValue ある数値が許容範囲を超えた。 引数の値の範囲が明示されない限り、引数のタイプによって決まる最大の 範囲まで指定可能です。 選択形式の引数も、このエラーを生じることがあります。

BadWindow
Window 引数の値が定義された Window を指さない。

関連事項

XAllowEvents(3X11), XGrabPointer(3X11), XGrabKey(3X11), XGrabKeyboard(3X11),
Xlib − C Language X Interface

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026