// -*- C++ -*-
#ifndef _gtkdispatch_h_included_
#define _gtkdispatch_h_included_
//
// Gtkのウィジェット用のディスパッチャ
//
#include <gtk/gtk.h>
#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:
*/
syntax highlighted by Code2HTML, v. 0.9.1