Uint32 | type | SDL_TEXTINPUT |
Uint32 | timestamp | イベントのタイムスタンプ |
Uint32 | windowID | フォーカスのあるウィンドウ (可能なら) |
char[32] | text | NUL終端のUTF-8テキスト |
SDL_TextInputEventはSDL_Eventのメンバで, SDL_TEXTINPUTが報告されたときに使われる. eventのtextフィールドからアクセスできる.
チュートリアルはここにある.
詳細な説明 (SDLメーリングリストのJiang Jiang <gzjjgod@gmail.com>の投稿より)
典型的なGUIアプリケーションでは, OSは(SDL_TEXTEDITINGで)入力中のテキストの通知を担当することになる. IMEで"abc"と入力し, そしてUnicode文字の"X"を得たとすると, SDLアプリケーションはまず3回のSDL_TEXTEDITINGイベントで"a", "ab", "abc"を受け取り, 次にSDL_INPUTイベントでUnicode文字の"X"を受け取る. このテキストの構成中に, ユーザはファンクションキーやバックスペースキーなどの任意のキーを押せる. SDLアプリケーションとIMEは両方ともキーを受け取り, これらのキーを扱うか否かを判断する. 例えばユーザがバックスペースキーを押すと, 多くのIMEは入力中の最後の文字を削除する. そしてSDLは新しいSDL_TEXTEDITINGイベントを受信する. (ユーザがa, b, バックスペース, cと入力したならば, アプリケーションは4回のイベント'a', 'ab', 'a', 'ac'を受け取ることになる.) OSはSDL_TEXTEDITINGイベントで受け取ったテキストを表示したいかどうかはわからないため, SDL_SetTextInputRect()でOSに入力中のテキストを表示するか否かのヒントを与えることができる.