Reworked event handling.
[ruby-ecore.git] / src / ecore / rb_event_handler.h
index 1c4015352aaa6b8bf9b5346d101fd37f0ac7d765..b9d56a8e6ae74ee6b22deb278d1ce5523d5a515a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: rb_event_handler.h 343 2005-05-07 20:22:56Z 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);
 
-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;