+ GET_OBJ (self, RbEvasObject, e);
+
+ evas_object_hide (e->real);
+
+ return Qnil;
+}
+
+static VALUE c_visible_get (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ return evas_object_visible_get (e->real) ? Qtrue : Qfalse;
+}
+
+static VALUE c_evas_get (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ return e->parent;
+}
+
+static VALUE c_name_get (VALUE self)
+{
+ const char *name;
+
+ GET_OBJ (self, RbEvasObject, e);
+
+ if (!(name = evas_object_name_get (e->real)))
+ return Qnil;
+ else
+ return rb_str_new2 (name);
+}
+
+static VALUE c_name_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ Check_Type (val, T_STRING);
+
+ evas_object_name_set (e->real, StringValuePtr (val));
+
+ return Qnil;
+}
+
+static VALUE c_layer_get (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ return INT2FIX (evas_object_layer_get (e->real));
+}
+
+static VALUE c_layer_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ Check_Type (val, T_FIXNUM);
+
+ evas_object_layer_set (e->real, NUM2INT (val));
+
+ return Qnil;
+}
+
+static VALUE c_get_color (VALUE self)
+{
+ int r = 0, g = 0, b = 0, a = 0;
+
+ GET_OBJ (self, RbEvasObject, e);
+
+ evas_object_color_get (e->real, &r, &g, &b, &a);
+
+ return rb_ary_new3 (4, INT2FIX (r), INT2FIX (g), INT2FIX (b),
+ INT2FIX (a));
+}
+
+static VALUE c_set_color (VALUE self, VALUE r, VALUE g, VALUE b,
+ VALUE a)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ Check_Type (r, T_FIXNUM);
+ Check_Type (g, T_FIXNUM);
+ Check_Type (b, T_FIXNUM);
+ Check_Type (a, T_FIXNUM);
+
+ evas_object_color_set (e->real, FIX2INT (r), FIX2INT (g),
+ FIX2INT (b), FIX2INT (a));
+
+ return Qnil;
+}
+
+static VALUE c_pass_events_get (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ return evas_object_pass_events_get (e->real) ? Qtrue : Qfalse;
+}
+
+static VALUE c_pass_events_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ CHECK_BOOL (val);
+
+ evas_object_pass_events_set (e->real, val == Qtrue);
+
+ return Qnil;
+}
+
+static VALUE c_raise (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ evas_object_raise (e->real);
+
+ return Qnil;
+}
+
+static VALUE c_lower (VALUE self)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ evas_object_lower (e->real);
+
+ return Qnil;
+}
+
+static VALUE c_stack_above (VALUE self, VALUE target)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ if (!rb_obj_is_kind_of (target, cEvasObject)) {
+ rb_raise (rb_eTypeError,
+ "wrong argument type %s (expected EvasObject)",
+ rb_obj_classname (target));
+ return Qnil;
+ }
+
+ GET_OBJ (target, RbEvasObject, t);
+
+ evas_object_stack_above (e->real, t->real);
+
+ return Qnil;
+}
+
+static VALUE c_stack_below (VALUE self, VALUE target)
+{
+ GET_OBJ (self, RbEvasObject, e);
+
+ if (!rb_obj_is_kind_of (target, cEvasObject)) {
+ rb_raise (rb_eTypeError,
+ "wrong argument type %s (expected EvasObject)",
+ rb_obj_classname (target));
+ return Qnil;
+ }