+/*
+ * call-seq:
+ * ee.layer(fixnum) => fixnum
+ *
+ * Sets the layer of <i>ee</i>.
+ */
+static VALUE c_layer_set (VALUE self, VALUE val)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ Check_Type (val, T_FIXNUM);
+
+ ecore_evas_layer_set (ee->real, FIX2INT (val));
+
+ return Qnil;
+}
+
+/*
+ * call-seq:
+ * ee.evas => evas
+ *
+ * Returns the <code>Evas::Evas</code> object for <i>ee</i>.
+ */
+static VALUE c_evas_get (VALUE self)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ if (NIL_P (ee->evas))
+ ee->evas = TO_EVAS (self, ecore_evas_get (ee->real));
+
+ return ee->evas;
+}
+
+/*
+ * call-seq:
+ * ee.geometry => array
+ *
+ * Returns an array containing the geometry of <i>ee</i>.
+ *
+ * ee.move(150, 300) #=> nil
+ * ee.resize(200, 200) #=> nil
+ * ee.geometry #=> [150, 300, 200, 200]
+ */
+static VALUE c_geometry_get (VALUE self)
+{
+ int x = 0, y = 0, w = 0, h = 0;
+
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ ecore_evas_geometry_get (ee->real, &x, &y, &w, &h);
+
+ return rb_ary_new3 (4, INT2FIX (x), INT2FIX (y),
+ INT2FIX (w), INT2FIX (h));
+}
+
+/*
+ * call-seq:
+ * ee.get_size_min => array
+ *
+ * Returns an array containing the minimum size of <i>ee</i>.
+ *
+ * ee.set_size_min(100, 200) #=> nil
+ * ee.get_size_min #=> [100, 200]
+ */
+static VALUE c_get_size_min (VALUE self)
+{
+ int w = 0, h = 0;
+
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ ecore_evas_size_min_get (ee->real, &w, &h);
+
+ return rb_ary_new3 (2, INT2FIX (w), INT2FIX (h));
+}
+
+/*
+ * call-seq:
+ * ee.set_size_min(width, height) => nil
+ *
+ * Sets the minimum size of <i>ee</i>.
+ *
+ * ee.set_size_min(100, 200) #=> nil
+ */
+static VALUE c_set_size_min (VALUE self, VALUE w, VALUE h)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ Check_Type (w, T_FIXNUM);
+ Check_Type (h, T_FIXNUM);
+
+ ecore_evas_size_min_set (ee->real, FIX2INT (w), FIX2INT (h));
+
+ return Qnil;
+}
+
+/*
+ * call-seq:
+ * ee.get_size_max => array
+ *
+ * Returns an array containing the maximum size of <i>ee</i>.
+ *
+ * ee.set_size_max(100, 200) #=> nil
+ * ee.get_size_max #=> [100, 200]
+ */
+static VALUE c_get_size_max (VALUE self)
+{
+ int w = 0, h = 0;
+
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ ecore_evas_size_max_get (ee->real, &w, &h);
+
+ return rb_ary_new3 (2, INT2FIX (w), INT2FIX (h));
+}
+
+/*
+ * call-seq:
+ * ee.set_size_max(width, height) => nil
+ *
+ * Sets the maximum size of <i>ee</i>.
+ *
+ * ee.set_size_max(100, 200) #=> nil
+ */
+static VALUE c_set_size_max (VALUE self, VALUE w, VALUE h)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ Check_Type (w, T_FIXNUM);
+ Check_Type (h, T_FIXNUM);
+
+ ecore_evas_size_max_set (ee->real, FIX2INT (w), FIX2INT (h));
+
+ return Qnil;
+}
+
+/*
+ * call-seq:
+ * ee.move(x, y) => nil
+ *
+ * Moves <i>ee</i> to the coordinates specified in
+ * <i>x</i> and <i>y</i>.
+ *
+ * ee.move(100, 200) #=> nil
+ */
+static VALUE c_move (VALUE self, VALUE x, VALUE y)
+{
+ GET_OBJ (self, RbEcoreEvas, ee);
+
+ Check_Type (x, T_FIXNUM);
+ Check_Type (y, T_FIXNUM);
+
+ ecore_evas_move (ee->real, FIX2INT (x), FIX2INT (y));
+
+ return Qnil;
+}
+
+/*
+ * call-seq:
+ * ee.resize(width, height) => nil
+ *
+ * Resizes <i>ee</i> to width x height.
+ *
+ * ee.resize(100, 200) #=> nil
+ */