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

ball::イベントのライブラリ化

イベントのライブラリ化

event ライブラリの作成

  • ball4/event.{h,c} から変遷を重ねて
  • ball7/lib/event.{h,c} へ

イベント処理構造体

  • 必要なイベントとその処理関数を指定し,
  • イベントが起こった時に,そのイベント情報を保持するための構造体
   :typedef 
   :struct {
   :  GtkWidget *widget
   :  gpointer self; //マウスイベントが定義されるアニメーション領域
   :  GdkEventMotion *motion_event; //イベントの保存
   :  GdkEventButton *button_event; //イベントの保存
   :  GdkEventKey *key_event;//イベントの保存
   :  GSourceFunc m_notify; //ユーザイベント処理関数
   :  GSourceFunc m_press; //ユーザイベント処理関数
   :  GSourceFunc m_release; //ユーザイベント処理関数
   :  GSourceFunc k_press; //ユーザイベント処理関数
   :  GSourceFunc k_release; //ユーザイベント処理関数
   :} 
   :myEvent;

イベント指定 API

イベント指定の作成

   :myEvent *my_event_new(GtkWidget *widget);
  • widgetに対するイベント指定構造体を作成し,初期化する

アニメ領域に対しイベントを設定

   :void my_event_set(myEvent *ev, gpointer area, GtkWidget *window);


最終更新日:2017/04/03 09:14:12