/*
- * $Id: rb_event_handler.h 107 2004-08-29 18:37:58Z tilman $
+ * $Id: rb_event_handler.h 365 2006-02-14 21:50:47Z tilman $
*
* Copyright (C) 2004 ruby-ecore team (see AUTHORS)
*
#ifndef __RB_EVENT_HANDLER_H
#define __RB_EVENT_HANDLER_H
-#define ADD_EVENT(mod, prefix, constname, clsname, obj) \
- rb_define_const ((mod), #constname, \
- INT2FIX (prefix##constname)); \
+#define ADD_EVENT(mod, constname, clsname, obj) \
+ rb_define_singleton_method (cEcoreEvent, "inherited", \
+ c_ev_inherited_noop, 1); \
\
(obj) = rb_define_class_under ((mod), (clsname), cEcoreEvent); \
rb_define_private_method (rb_singleton_class ((obj)), \
"new", NULL, 0); \
\
- rb_hash_aset (event_classes, INT2FIX (prefix##constname), (obj));
+ rb_define_const ((obj), "TYPE", INT2FIX (constname)); \
+ rb_hash_aset (event_classes, INT2FIX (constname), (obj)); \
+ rb_define_singleton_method (cEcoreEvent, "inherited", c_ev_inherited, 1);
void Init_EventHandler (void);
-int on_ecore_event (void *data, int type, void *event);
-VALUE c_ev_generic_init (VALUE self, VALUE event);
+VALUE c_ev_inherited (VALUE klass, VALUE child);
+VALUE c_ev_inherited_noop (VALUE klass, VALUE child);
#ifndef __RB_EVENT_HANDLER_C
extern VALUE event_classes, cEcoreEvent;