static void on_action (void *data, Evas_Object *edje,
Esmart_File_Dialog_Op op);
static void on_action (void *data, Evas_Object *edje,
Esmart_File_Dialog_Op op);
+ return Data_Make_Struct (klass, RbFileDialog, c_mark, c_free, fd);
+}
+
+static VALUE c_init (VALUE self, VALUE evas, VALUE edj)
+{
if (!rb_block_given_p ()) {
rb_raise (rb_eStandardError, "no block given");
return Qnil;
if (!rb_block_given_p ()) {
rb_raise (rb_eStandardError, "no block given");
return Qnil;
CHECK_CLASS (evas, cEvas);
StringValue (edj);
GET_OBJ (evas, RbEvas, e);
CHECK_CLASS (evas, cEvas);
StringValue (edj);
GET_OBJ (evas, RbEvas, e);
fd->real.real = esmart_file_dialog_new (e->real,
StringValuePtr (edj));
if (!fd->real.real)
rb_raise (rb_eStandardError, "failed");
fd->real.real = esmart_file_dialog_new (e->real,
StringValuePtr (edj));
if (!fd->real.real)
rb_raise (rb_eStandardError, "failed");
- const_get = rb_intern ("const_get");
- s = rb_str_new2 ("Edje");
-
- mEdje = rb_funcall (rb_cModule, const_get, 1, s);
- cEdje = rb_funcall (mEdje, const_get, 1, s);
-
e = esmart_file_dialog_edje_get (fd->real.real);
fd->edje = rb_funcall (cEdje, rb_intern ("new_from_pointer"), 2,
TO_EVAS (self, evas_object_evas_get (e)),
e = esmart_file_dialog_edje_get (fd->real.real);
fd->edje = rb_funcall (cEdje, rb_intern ("new_from_pointer"), 2,
TO_EVAS (self, evas_object_evas_get (e)),
- rb_define_singleton_method (c, "new", c_new, 2);
+ rb_define_alloc_func (c, c_alloc);
+ rb_define_method (c, "initialize", c_init, 2);
rb_define_method (c, "edje", c_edje_get, 0);
rb_define_method (c, "selections", c_selections_get, 0);
rb_define_method (c, "current_directory", c_current_directory_get, 0);
rb_define_method (c, "edje", c_edje_get, 0);
rb_define_method (c, "selections", c_selections_get, 0);
rb_define_method (c, "current_directory", c_current_directory_get, 0);