+static VALUE c_raise (VALUE self)
+{
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ ecore_evas_raise (*ee);
+
+ return Qnil;
+}
+
+static VALUE c_lower (VALUE self)
+{
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ ecore_evas_lower (*ee);
+
+ return Qnil;
+}
+
+static VALUE c_layer_get (VALUE self)
+{
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ return INT2FIX (ecore_evas_layer_get (*ee));
+}
+
+static VALUE c_layer_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ Check_Type (val, T_FIXNUM);
+
+ ecore_evas_layer_set (*ee, FIX2INT (val));
+
+ return Qnil;
+}
+
+static VALUE c_evas_get (VALUE self)
+{
+ VALUE evas;
+
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ if (NIL_P (evas = rb_hash_aref (evases, INT2NUM ((long) (ee))))) {
+ evas = TO_EVAS (self, ecore_evas_get (*ee));
+ rb_hash_aset (evases, INT2NUM ((long) ee), evas);
+ }
+
+ return evas;
+}
+
+static VALUE c_geometry_get (VALUE self)
+{
+ int x = 0, y = 0, w = 0, h = 0;
+
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ ecore_evas_geometry_get (*ee, &x, &y, &w, &h);
+
+ return rb_ary_new3 (4, INT2FIX (x), INT2FIX (y),
+ INT2FIX (w), INT2FIX (h));
+}
+
+static VALUE c_get_size_min (VALUE self)
+{
+ int w = 0, h = 0;
+
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ ecore_evas_size_min_get (*ee, &w, &h);
+
+ return rb_ary_new3 (2, INT2FIX (w), INT2FIX (h));
+}
+
+static VALUE c_set_size_min (VALUE self, VALUE w, VALUE h)
+{
+ GET_OBJ (self, Ecore_Evas *, ee);
+
+ Check_Type (w, T_FIXNUM);
+ Check_Type (h, T_FIXNUM);
+
+ ecore_evas_size_min_set (*ee, FIX2INT (w), FIX2INT (h));
+
+ return Qnil;
+}
+
+static VALUE c_get_size_max (VALUE self)