!!! GDKイベント !! イベント * マウスやキーボードからの入力は、イベントとしてプログラムに通知される ** xev を使えば、発生しているイベントを確認できる * プログラムにはイベントに対応したコールバックを登録する ! expose_eventの例 * ウィンドウの移動によるウィジェットの前面表示や、アプリケーションが発行する再描画メッセージによって送られる * [[GDK2013::exposeイベント]] ! 入力系イベント * [[GDK2013::マウスイベント]] * [[GDK2013::キー入力イベント]] * ドラッグ&ドロップイベント ** 通常はGTK+側で処理できるので、GDKのイベントとして扱う必要はない * [[GDK2013::IOチャネル]] !! サンプル ! ソースプログラムの所在 * 以下のsvnのリポジトリ ** https://svn.cis.iwate-u.ac.jp/svn/csd/nakaya/input_event ! 実行手順 8< #svnから持ってくる(実行した直下にinput_eventディレクトリができる) svn co https://svn.cis.iwate-u.ac.jp/svn/csd/nakaya/input_event #持ってきたディレクトリに移動 cd input_event #make make #実行 ./input_event >8 ! 実行手順(既にチェックアウトしてある場合) 8< #持ってきたディレクトリに移動 cd input_event #更新 svn up #make make #実行 ./input_event >8 ! マニュアル * マウスを動かせばライトが短時間点く * 左クリックで点きっぱなし * shift + 左クリックで消える * 右クリックを離すと全てのライトが消え ** さらに全てのライトがカーソル下のライトの色に変わる * ホイールを回すと色が変わる * ctrl + ホイールを回すと全てのライトの色が変わる * カーソルキーを押すとスクロールする ! ファイルリスト * input_event.c ** メインプログラム&サーバプログラム * input_event_c.c ** クライアントプログラム * input_event_lib.[ch] ** 入力イベントのサンプルウィジェットライブラリ * cb_event.[ch] ** マウス・キーイベントのコールバックライブラリ * channel_lib.[ch] ** IOチャネル関係のライブラリ * light.[ch] ** ライト関係のライブラリ ** 今回説明した入力イベントの関数とは無関係 * gtk_lib.[ch] ** gtkの基本関係のライブラリ ** 鈴木先生が作ったものを、ちょっとだけ変更 * udp_socket.[ch] ** UDPソケット関係のライブラリ ** 鈴木先生が作ったものを、少し変更 !! リンク * [[GDK2013::概要]] * [[GDK2013::GdkPixbuf]] * [[GDK2013::アニメーション]]