2011年3月24日木曜日

IMEを作るのなら、SDLを学ぶわけね。

まずは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 件のコメント:

コメントを投稿