まずはSDLでキーボードのキースキャンを学ぶわけですな。
X-Window Programming
http://www-yano.is.tokushima-u.ac.jp/~mituhara/software_e/sdl.html
こちらのソースコードをベースに作業することになるのね。
あれ?意外に簡単にキーボードは行けそうだな。
キースキャンするPlug-inがアプリケーションをロードすればIMEとして行けるのかな?
#include <stdio.h>
#include <SDL/SDL.h> /* SDLを用いるために必要なヘッダファイルをインクルード */
/* SDLを用いるために,関数の引数を次のようにする*/
int main(int argc,char *argv[]){
SDL_Event event; /* SDLによるイベントを検知するための構造体を宣言 */
/* 無限ループ */
while(SDL_PollEvent(&event)){
/* イベントタイプ別に動作させる */
switch (event.type) {
/* キーボードが押された場合の処理 */
case SDL_KEYDOWN:
printf("Key Pressed\n");
printf("--- The pressed key is %s.\n", SDL_GetKeyName(event.key.keysym.sym)); /* 押されたキーの名前を表示 */
/* 押されたキーごとに処理(イベントのIDはevent.key.keysym.symに格納されている) */
switch(event.key.keysym.sym){
case SDLK_RETURN:
printf("You pressed RETURN key.\n");
break;
case SDLK_ESCAPE:
printf("You pressed ESCAPE key. This means EXIT.\n");
exit(-1);
break;
default:
break;
}
break;
/* キーボードが離された場合の処理 */
case SDL_KEYUP:
printf("Key Released\n");
break;
/* 終了 (^C)が押されたときの処理 */
case SDL_QUIT:
SDL_Quit(); /* SDLの停止*/
exit(-1);
break;
}
}
}
}
0 件のコメント:
コメントを投稿