- edje_object_message_send (e->real.real, type, id, (void *) m);
+ if (NIL_P (v)) {
+ rb_raise (eEdjeError, "value must not be nil");
+ return Qnil;
+ }
+
+ if (!NIL_P (tmp = rb_check_string_type (v))) {
+ type = EDJE_MESSAGE_STRING;
+ s.str = StringValuePtr (tmp);
+ data = &s;
+ } else if (rb_obj_is_kind_of (v, rb_cFixnum)) {
+ type = EDJE_MESSAGE_INT;
+ i.val = FIX2INT (v);
+ data = &i;
+ } else if (rb_obj_is_kind_of (v, rb_cFloat)) {
+ type = EDJE_MESSAGE_FLOAT;
+ f.val = NUM2DBL (v);
+ data = &v;
+ /* } else if (!NIL_P (tmp = rb_check_array_type (v))) { */
+ } else {
+ rb_raise (eEdjeError, "unsupported value");
+ }
+
+ edje_object_message_send (e->real.real, type,
+ NUM2INT (rb_iv_get (msg, "@id")), data);