// -*- C++ -*- #ifndef _gtkdispatch_h_included_ #define _gtkdispatch_h_included_ // // Gtkのウィジェット用のディスパッチャ // #include #define WIDGET_DESTROY 1 #define WIDGET_EXPOSE 2 #define WIDGET_BUTTON_PRESS 4 #define WIDGET_CLICK 8 #define WIDGET_ACTIVATE 16 #define WIDGET_DELETE 32 #define WIDGET_ROW_SELECTED 64 #define WIDGET_KEY_PRESS 128 #define WIDGET_RESIZE 256 #define WIDGET_MOTION 512 #define WIDGET_BUTTON_RELEASE 1024 class WidgetIf { public: virtual ~WidgetIf(); virtual void destroy(GtkWidget *){}; virtual void expose(GtkWidget *){}; virtual void button_press(GtkWidget *,int x,int y,int b){}; virtual void button_release(GtkWidget *,int x,int y,int b){}; virtual void clicked(GtkWidget *){}; virtual void activate(GtkWidget *,gpointer ){}; // delete eventに対してTRUEを返すと実際にウィンドウは閉じられる。 virtual int delete_event(GtkWidget *){return FALSE;}; virtual void select_row(GtkWidget *,int ,int ){}; virtual void key_press(GtkWidget *,GdkEventKey *){}; virtual void resize(GtkWidget *,int w,int h){}; virtual void motion(GtkWidget *,int x,int y,int b){}; }; //eventごとに異なるreceiverは付けれない。 void add_widget_watch(GtkWidget *,int ,WidgetIf *,void *opt=0); void remove_widget_watch(GtkWidget *); #endif /* * Local variables: * c-indent-level: 4 * c-basic-offset: 4 * End: */