From: Tilman Sauerbeck Date: Mon, 2 May 2005 17:28:37 +0000 (+0000) Subject: Added Edje.new_from_pointer. X-Git-Url: http://git.code-monkey.de/?p=ruby-edje.git;a=commitdiff_plain;h=ab822be64c3e43c5a1df9aea9a70415e2a491986 Added Edje.new_from_pointer. --- diff --git a/src/rb_edje.c b/src/rb_edje.c index 700a4de..c46b315 100644 --- a/src/rb_edje.c +++ b/src/rb_edje.c @@ -1,5 +1,5 @@ /* - * $Id: rb_edje.c 334 2005-04-28 19:06:12Z tilman $ + * $Id: rb_edje.c 335 2005-05-02 17:28:37Z tilman $ * * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de) * @@ -84,6 +84,26 @@ static VALUE c_new (VALUE klass, VALUE evas) return self; } +static VALUE c_new_from_pointer (VALUE klass, VALUE evas, VALUE ptr) +{ + VALUE self, argv[1]; + RbEdje *edje = NULL; + + edje_init (); + + self = Data_Make_Struct (klass, RbEdje, c_mark, c_free, edje); + + edje->real.real = (Evas_Object *) ptr; + edje->parts = Qnil; + edje->callbacks = Qnil; + edje->on_text_changed_cb = Qnil; + + argv[0] = evas; + rb_obj_call_init (self, 1, argv); + + return self; +} + /* * call-seq: * edje.freeze => nil @@ -661,6 +681,8 @@ void Init_Edje (void) cEdje = rb_define_class_under (mEdje, "Edje", cEvasObject); rb_define_singleton_method (cEdje, "new", c_new, 1); + rb_define_singleton_method (cEdje, "new_from_pointer", + c_new_from_pointer, 2); rb_define_method (cEdje, "freeze", c_freeze, 0); rb_define_method (cEdje, "thaw", c_thaw, 0); rb_define_method (cEdje, "load", c_load, 2);