/*
- * $Id: rb_event_handler.h 343 2005-05-07 20:22:56Z tilman $
+ * $Id: rb_event_handler.h 372 2006-02-16 20:39:55Z 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_remove_method (rb_singleton_class (cEcoreEvent), "inherited"); \
\
(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);
-VALUE c_ev_generic_init (VALUE self, VALUE event);
+VALUE c_ev_inherited (VALUE klass, VALUE child);
#ifndef __RB_EVENT_HANDLER_C
extern VALUE event_classes, cEcoreEvent;