+static VALUE c_ev_exe_exit_init (VALUE self, VALUE event)
+{
+ VALUE c = CLASS_OF (self);
+ Ecore_Event_Exe_Exit *e = (void *) event;
+
+ rb_define_attr (c, "pid", 1, 0);
+ rb_define_attr (c, "exit_code", 1, 0);
+ rb_define_attr (c, "exit_signal", 1, 0);
+ rb_define_attr (c, "exited", 1, 0);
+ rb_define_attr (c, "signalled", 1, 0);
+
+ rb_iv_set (self, "@pid", INT2FIX (e->pid));
+ rb_iv_set (self, "@exit_code", INT2FIX (e->exit_code));
+ rb_iv_set (self, "@exit_signal", INT2FIX (e->exit_signal));
+ rb_iv_set (self, "@exited", e->exited ? Qtrue : Qfalse);
+ rb_iv_set (self, "@signalled", e->signalled ? Qtrue : Qfalse);
+
+ return self;
+}
+
+static VALUE c_ev_sig_user_init (VALUE self, VALUE event)
+{
+ Ecore_Event_Signal_User *e = (void *) event;
+
+ rb_define_attr (CLASS_OF (self), "number", 1, 0);
+
+ rb_iv_set (self, "@number", INT2FIX (e->number));
+
+ return self;
+}
+
+static VALUE c_ev_sig_exit_init (VALUE self, VALUE event)
+{
+ VALUE c = CLASS_OF (self);
+ Ecore_Event_Signal_Exit *e = (void *) event;
+
+ rb_define_attr (c, "interrupt", 1, 0);
+ rb_define_attr (c, "quit", 1, 0);
+ rb_define_attr (c, "terminate", 1, 0);
+
+ rb_iv_set (self, "@interrupt", e->interrupt ? Qtrue : Qfalse);
+ rb_iv_set (self, "@quit", e->quit ? Qtrue : Qfalse);
+ rb_iv_set (self, "@terminate", e->terminate ? Qtrue : Qfalse);
+
+ return self;
+}
+
+static VALUE c_ev_sig_rt_init (VALUE self, VALUE event)
+{
+ Ecore_Event_Signal_Realtime *e = (void *) event;
+
+ rb_define_attr (CLASS_OF (self), "number", 1, 0);
+
+ rb_iv_set (self, "@number", INT2FIX (e->num));
+
+ return self;
+}
+