XGrabKey

Section: XLIB FUNCTIONS (3X11)
Updated: Release 6.3
Index xjman/web INDEX
 

名前


 XGrabKey, XUngrabKey - キーボードのキーのグラブ  

書式

XGrabKey(display, keycode, modifiers, grab_window, owner_events, pointer_mode,

             keyboard_mode)

      Display *display;

      int keycode;

      unsigned int modifiers;

      Window grab_window;

      Bool owner_events;

      int pointer_modekeyboard_mode;

XUngrabKey(display, keycode, modifiers, grab_window)

      Display *display;

      int keycode;

      unsigned int modifiers;

      Window grab_window;  

引き数

display
X サーバへの接続を指定する。
grab_window
グラブウィンドウを指定する。
keyboard_mode
キーボードイベントの後処理を指定する。 GrabModeSync あるいは GrabModeAsync を指定できる。
keycode
KeyCode あるいは AnyKey を指定する。
modifiers
キーマスクの集合か AnyModifier を指定する。 このマスクは正しいキーマスクのビット値のビットごとの論理和を取ったもの である。
owner_events
キーボードイベントを通常通り報告するかどうかを示す真偽値を指定する。
pointer_mode
ポインタイベントの後処理を指定する。 GrabModeSync あるいは GrabModeAsync を渡せる。
 

説明

関数 XGrabKey はキーボードのパッシブなグラブを確立する。 将来に以下の条件が全て真になった場合、キーボードはアクティブにグラブされ( XGrabKeyboard によって)、最終キーボードグラブ時刻にキーが押された時刻がセットされ( KeyPress イベントで送られるように)、 KeyPress イベントが報告される。
*
指定されたモディファイアキーが論理的に押されており、他のどのモディファ イアキーも論理的には押されていない時、キーボードがグラブされておらず、 指定したキー(それ自体はモディファイアキーでも良い)が論理的に押されてい る。
*
grab_window がフォーカスウィンドウの祖先ウィンドウ(あるいはフォーカス ウィンドウ)であるか、grab_window がフォーカスウィンドウの子孫ウィンド ウであり、かつポインタを含んでいる。
*
同じキーの組み合わせのパッシブなグラブが、 grab_window のどの祖先ウィン ドウにも存在しない。

残りの引き数の解釈は XGrabKeyboard と同じである。 キーボードの論理的状態で、指定したキーが離された状態になった時、アクティ ブなグラブは自動的に終了する(モディファイアキーの論理的状態とは独立)。

デバイスのイベント処理が凍結されている時、デバイスの論理状態(クライア ントアプリケーションが見る)が物理状態とずれてしまうことがある。

引き数 modifiers が AnyModifier である場合は、可能なモディファイアの組み合わせ全てに対してリクエストを 発行することと等価である(モディファイアが無い組み合わせも含む)。 指定された全てのモディファイアが現在 KeyCode を割り当てられている必要 はない。 引き数 keycode が AnyKey である場合は、可能な全てのキーコードに対してリクエストを発行することと 等価である。 これ以外の場合は、指定したキーコードは接続のセットアップ時に min_keycode と max_keycode で指定された範囲に入っている必要があり、 そうでなければエラー BadValue となる。

他のクライアントが同じウィンドウの同じキーの組み合わせに対して XGrabKey を発行している場合は、エラー BadAccess となる。 グラブが衝突する組み合わせが 1 つでもある場合に AnyModifierAnyKey, を使用するとリクエストは必ず失敗し、エラー BadAccess となる(グラブは確立されない)。

XGrabKey はエラー BadAccess, BadValue, BadWindow を起こすことがある。

関数 XUngrabKey は、このクライアントが指定したウィンドウをグラブしている場合、このウィ ンドウ上でのキーの組み合わせを解放する。 この関数はアクティブなグラブに対しては無意味である。 引き数 modifiers が AnyModifier である場合は、可能なモディファイアの組み合わせ全てに対してリクエストを 発行することと等価である(モディファイアが無いことも組み合わせに含まれる)。 引き数 keycode が AnyKey である場合は、可能な全てのキーコードに対してリクエストを発行することと 等価である。

XUngrabKey はエラー BadValue, BadWindow を起こすことがある。  

返り値

BadAccess
既に他のクライアントがグラブしているキー/ボタンの組み合わせをクライアント がグラブしようとした。
BadValue
指定された数値の中にリクエストの許容範囲を越えているものがある。引き数 に対して特定の範囲が指定されていなければ、引き数の型で定義されている全 ての範囲が許される。選択肢として定義されている引き数はこのエラーを起こ すことがある。
BadWindow
引き数 Window の値が、定義されている Window を指していない。
 

関連項目

XAllowAccess(3X11), XGrabButton(3X11), XGrabKeyboard(3X11), XGrabPointer(3X11)
Xlib - C Language X Interface


 

Index

名前
書式
引き数
説明
返り値
関連項目

This document was created by man2html, using the manual pages.
Time: 15:55:48 GMT, February 12, 2001