目次 - API(機能別) - キーボード

キーボード

インクルードファイル: SDL_keyboard.h SDL_keycode.h SDL_scancode.h

概要

ここに分類される関数は, キーボードの入力を扱うものである.

SDLにはキーを表す異なる値 - スキャンコードとキーコードがある.

SDL_Scancodeの値はキーボード上のキーの物理的な位置を表すために使う. この型の値はキーボードのキーを表し, SDL_Eventのkey.keysym.scancodeフィールドなどで使われる. SDL_Scancodeの値はUSBの標準(http://www.usb.org/developers/docs/)に基づいている. スキャンコードの定数は, キーの名前の先頭にSDL_SCANCODE_をつけたものである. (例: SDL_SCANCODE_SPACE)

SDL_Keycodeの値は, 現在のキーボードレイアウトにマッピングされ, SDL_Scancodeと一対一の関係にある. この型の値はキーボードの文字を表し, SDL_Eventのkey.keysym.symフィールドなどで使われる. SDL_Keycodeの値は, 修飾キーを押さずにそのキーを押した場合の文字のUnicodeに基づいている. 文字でないキーはスキャンコードの最上位ビットを立てた(0x8000000との論理和)値である. キーコードの定数は, キーの文字(小文字)の先頭にSDLK_をつけたものである. (例: SDLK_SPACE)
キーボードの一番上の行にある数字キーは特別な例外で, キーボードレイアウトに関係なく常にSDLK_0, SDLK_1, ..., SDLK_9にマッピングされる.

2つの値の大きな違いは, OSが物理的なキーを別の仮想キーに割り当てているときに現れる. 例えば, 標準的なQWERTYキーボードをドイツ語のQWERTZレイアウトに割り当てると, "Y"キーのスキャンコードはSDL_SCANCODE_Yだが, キーコードはSDLK_zとなる. どちらのコードを使うかはアプリケーションによる. 操作がレイアウトによる(例えば"WASD"キーを左手で扱う方向キーとする)場合はスキャンコードが適しているが, 操作が文字による(例えば"I"がアイテムを意味する)場合はキーコードのほうがよい.

列挙体

  1. SDL_Keycode - SDL仮想キーコードの列挙体
  2. SDL_Keymod - 修飾キーマスクの列挙体
  3. SDL_Scancode - SDLキースキャンコードの列挙体

構造体

  1. SDL_Keysym - キーイベントで使われたキーの構造体

関数

  1. SDL_ClearComposition - コンポジションウィンドウ/IME(漢字変換中ウィンドウ・矩形)をIMEを無効化せずに閉じる
  2. SDL_GetKeyboardFocus - キーボードフォーカスのあるウィンドウを得る
  3. SDL_GetKeyboardState - キーボードの状態を得る
  4. SDL_GetKeyFromName - 人が読めるキー名からキーコードを得る
  5. SDL_GetKeyFromScancode - 指定のキースキャンコードから現在のキーボードレイアウトに割り当てられたキーコードを得る
  6. SDL_GetKeyName - キーコードから人が読める名前を得る
  7. SDL_GetModState - 修飾キーの状態を得る
  8. SDL_GetScancodeFromKey - 指定のキーコードから現在のキーボードレイアウトに割り当てられたスキャンコードを得る
  9. SDL_GetScancodeFromName - 人が読めるキー名からスキャンコードを得る
  10. SDL_GetScancodeName - スキャンコードから人が読める名前を得る
  11. SDL_HasScreenKeyboardSupport - スクリーンキーボードに対応しているかチェックする
  12. SDL_IsScreenKeyboardShown - スクリーンキーボードが指定のウィンドウに表示されているかチェックする
  13. SDL_IsTextInputActive - Unicodeテキスト入力イベントが有効かチェックする
  14. SDL_IsTextInputShown - IMEコンポジット(変換中ウィンドウ・矩形)または変換候補が現在表示されているかを戻す
  15. SDL_ResetKeyboard - キーボードの状態をクリアする
  16. SDL_SetModState - 修飾キーを設定する
  17. SDL_SetTextInputRect - Unicodeテキスト入力で使う領域を設定する
  18. SDL_StartTextInput - テキスト入力イベントの受け入れを開始する
  19. SDL_StopTextInput - テキスト入力イベントの受け入れを停止する

SDL Wikiへのリンク

Keyboard Support - SDL Wiki