XChangeKeyboardControl(3X11)

名前
XChangeKeyboardControl, XGetKeyboardControl, XAutoRepeatOn, XAutoRepeatOff, XBell, XQueryKeymap, XKeyboardControl - キーボード設定の操作とキーボード制御構造体

書式
XChangeKeyboardControl(display, value_mask, values)
      Display *display;
      unsigned long value_mask;
      XKeyboardControl *values;

XGetKeyboardControl(display, values_return)
      Display *display;
      XKeyboardState *values_return;

XAutoRepeatOn(display)
      Display *display;

XAutoRepeatOff(display)
      Display *display;

XBell(display, percent)
      Display *display;
      int percent;

XQueryKeymap(display, keys_return)
      Display *display;
      char keys_return[32];

引き数

display
    X サーバへの接続を指定。

keys_return
    どのキーが押されたかを示すバイト配列が返される。 それぞれのビットがキーボードの1つのキーを表す。

percent
    ベルの音量を指定する。 これは-100以上100以下の範囲である。

value_mask
    どの制御を変更するか指定。 このマスクは有効な制御マスクビット値のビットごとの論理和を取ったもので ある。

values
    マスクで1にセットされている各ビットに対して1つの値を指定。

values_return
    指定した 構造体に現在のキーボード制御が返される。

説明
関数 は、 構造体で定義されるキーボード特性を制御する。 引き数 value_mask は変更される値を指定する。 はエラー を起こすことがある。

関数 は、キーボードの現在の制御値を 構造体に返す。

関数 は、指定したディスプレイのキーボードのオートリピートを有効にする。

関数 は、指定したディスプレイのキーボードのオートリピートを無効にする。

関数 は可能ならば、指定したディスプレイのキーボードのベルを鳴らす。 指定する音量はキーボードの基本音量に対する相対値である。 引き数 percent の値が -100 から 100 の範囲でない場合には、エラー となる。 引き数 percent の値が負でない場合には、ベルが鳴る音量は次のようになる。

    base - [(base * percent) / 100] + percent

引き数 percent の値が負の場合には、ベルが鳴る音量は次のようになる。

    base + [(base * percent) / 100]

ベルの基本音量を変更するには、 を使用する。

はエラー を起こすことがある。

関数 は、キーボードの論理的状態を表すビットのベクトルを返す。 1がセットされているビットは、対応するキーが現在押されていることを示す。 このベクトルは32バイトで表される。 バイト N (0から数える)は、キー 8N から 8N + 7 に対応するビットを持つ。 ここでバイト中の最下位ビットがキー 8N を表す。

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

構造体
構造体の内容を示す。

ChangeKeyboardControl に対するマスクビット値
#define |  | (1L<<0)
#define |  | (1L<<1)
#define |  | (1L<<2)
#define |  | (1L<<3)
#define |  | (1L<<4)
#define |  | (1L<<5)
#define |  | (1L<<6)
#define |  | (1L<<7)
/* 値 */ typedef struct {
    int key_click_percent;
    int bell_percent;
    int bell_pitch;
    int bell_duration;
    int led;
    int led_mode;    /* LedModeOn, LedModeOff */
    int key;
    int auto_repeat_mode;    /* AutoRepeatModeOff, AutoRepeatModeOn,
                        AutoRepeatModeDefault */ } XKeyboardControl;

key_click_percent メンバは、可能ならばキークリック音の音量を0(無音)以 上100(最大音量)以下の値でセットする。 -1 を指定するとデフォルト値が復元される。 これ以外の負の値を指定した場合は、エラー となる。

bell_percent メンバは、可能ならば 0(無音)以上100(最大音量)の間でベルの 基本音量をセットする。 -1 を指定するとデフォルト値が復元される。 これ以外の負の値を指定した場合は、エラー となる。 bell_pitch メンバは、可能ならばベルの音調(Hz で指定)をセットする。 -1 を指定するとデフォルト値が復元される。 これ以外の負の値を指定した場合は、エラー となる。 bell_duration メンバは、可能ならばベルの鳴る時間をミリ秒単位で指定する。 -1 を指定するとデフォルト値が復元される。 これ以外の負の値を指定した場合は、エラー となる。

led_mode メンバと led_mode メンバの両方が指定された場合、可能ならばそ の LED の状態が変更される。 led_mode メンバには あるいは がセットできる。 led_mode だけが指定されている場合、可能ならば全ての LED の状態が変更さ れる。 1から数えて最大32個までの LED がサポートされている。 LED の標準的な実装は定義されていない。 led_mode メンバ無しで led メンバが指定された場合は、エラー となる。

auto_repeat_mode メンバと key メンバの両方がセットされた場合、可能なら ばそのキーに対する auto_repeat_mode モードが変更される(変更は のいずれかに従って行われる)。 auto_repeat_mode だけが指定された場合、可能ならばキーボード全体に対す る大域的な auto_repeat_mode が変更されるが、これはキーごとの設定には影 響しない。 auto_repeat_mode 無しにキーが指定された場合、エラー となる。 それぞれのキーはオートリピートすべきかどうかを示す個別のモードと、この モードのデフォルトの設定を持っている。 さらに、オートリピートを有効にすべきかどうかを示す大域的なモードと、こ のモードのデフォルトの設定がある。 大域的なモードが ならば、キーは個別のオートリピートモードに従う。 大域的なモードが ならば、全てのキーはオートリピートしない。 オートリピートしているキーは イベントと イベントを交互に生成する。 あるキーをモディファイアとして使う場合は、オートリピートの設定に関わら ず、そのキーはオートリピートさせないことが望ましい。

構造体の内容を示す。

typedef struct {
    int key_click_percent;
    int bell_percent;
    unsigned int bell_pitch, bell_duration;
    unsigned long led_mask;
    int global_auto_repeat;
    char auto_repeats[32]; } XKeyboardState;

LED については、led_mask メンバの最下位ビットが 1 番目の LED に対応し、 led_mask メンバ中で 1 にセットされているビットは、その LED が点灯して いることを示す。 global_auto_repeat メンバには と のいずれかをセットする。 auto_repeats メンバはビットのベクトルである。 1にセットされているそれぞれのビットは、対応するキーのオートリピートが 有効になっていることを示す。 このベクトルは32バイトで表される。 バイト N (0から数える)は、キー 8N から 8N + 7 に対応するビットを持つ。 ここでバイト中の最下位ビットがキー 8N を表す。

返り値

引き数や引き数の組は正しい型・範囲を持っているが、そのリクエストが要求する
    他の条件に適合できなかった。

指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対
    して特定の範囲が指定されていない限り、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。

関連項目
XChangeKeyboardMapping(3X11), XSetPointerMapping(3X11)
Xlib - C Language X Interface