+static VALUE c_elements_get (VALUE self)
+{
+ VALUE ary;
+ Evas_List *list, *l;
+
+ GET_OBJ (self, RbEvasObject, e);
+
+ list = esmart_container_elements_get (e->real);
+ ary = rb_ary_new ();
+
+ for (l = list; l; l = l->next)
+ rb_ary_push (ary, TO_EVAS_OBJECT (l->data));
+
+ return ary;
+}
+
+static VALUE c_elements_length_get (VALUE self)
+{
+ double l;
+
+ GET_OBJ (self, RbEvasObject, e);
+
+ l = esmart_container_elements_length_get (e->real);
+
+ return rb_float_new (l);
+}
+
+static VALUE c_elements_orig_length_get (VALUE self)
+{
+ double l;
+
+ GET_OBJ (self, RbEvasObject, e);
+
+ l = esmart_container_elements_orig_length_get (e->real);
+
+ return rb_float_new (l);
+}
+