ソフトウェア設計及び演習2017

GDK2017::イベント

GDKイベント

イベント

  • マウスやキーボードからの入力は、イベントとしてプログラムに通知される
    • xev を使えば、発生しているイベントを確認できる
  • プログラムにはイベントに対応したコールバックを登録する
expose_eventの例
  • ウィンドウの移動によるウィジェットの前面表示や、アプリケーションが発行する再描画メッセージによって送られる
  • GDK2017::exposeイベント
入力系イベント
  • ドラッグ&ドロップイベント
    • 通常はGTK+側で処理できるので、GDKのイベントとして扱う必要はない

サンプル

ソースプログラムの所在
実行手順
 #svnから持ってくる(実行した直下にinput_eventディレクトリができる)
 svn export https://svn.cis.iwate-u.ac.jp/svn/csd/kimura/input_event
 
 #持ってきたディレクトリに移動
 cd input_event
 
 #make
 make
 
 #実行
 ./input_event
遊び方マニュアル
  • マウスを動かせばライトが短時間点く
  • 左クリックで点きっぱなし
  • shift + 左クリックで消える
  • 右クリックを離すと全てのライトが消え
    • さらに全てのライトがカーソル下のライトの色に変わる
  • ホイールを回すと色が変わる
  • ctrl + ホイールを回すと全てのライトの色が変わる
  • カーソルキーを押すとスクロールする
ファイルリスト
  • input_event.c
    • メインプログラム&サーバプログラム
    • 中谷先生が作成したものを少し変更
  • input_event_c.c
    • クライアントプログラム
    • 中谷先生が作成したものを少し変更
  • input_event_lib.h input_event_lib.c
    • 入力イベントのサンプルウィジェットライブラリ
    • 中谷先生が作成したものを少し変更
  • cb_event.h cb_event.c
    • マウス・キーイベントのコールバックライブラリ
    • 中谷先生が作成したものを少し変更
  • channel_lib.h channel_lib.c
    • IOチャネル関係のライブラリ
    • 中谷先生が作成したものを少し変更
  • light.h light.c
    • ライト関係のライブラリ
    • 今回説明した入力イベントの関数とは無関係
    • 中谷先生が作成したものを少し変更
  • udp_socket.h udp_socket.c
    • UDPソケット関係のライブラリ
    • 鈴木先生,中谷先生が作成したものを少し変更
  • gtk_lib.[ch]
    • 既に解説済み


最終更新日:2017/04/28 15:10:20