X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fesmart_trans_x11%2Frb_esmart_trans_x11.c;h=fa8a9da48e71d8f3c589cad314dc8979464b7536;hb=2d5931fbc6f4c336f898072dc08aec26fcb59682;hp=4671d62dabde06d4fc2762467438559eb013c67a;hpb=94cdd71fbad6175aba19192ebef7e54831f500ed;p=ruby-esmart.git diff --git a/src/esmart_trans_x11/rb_esmart_trans_x11.c b/src/esmart_trans_x11/rb_esmart_trans_x11.c index 4671d62..fa8a9da 100644 --- a/src/esmart_trans_x11/rb_esmart_trans_x11.c +++ b/src/esmart_trans_x11/rb_esmart_trans_x11.c @@ -1,5 +1,5 @@ /* - * $Id: rb_esmart_trans_x11.c 52 2004-08-01 10:19:14Z tilman $ + * $Id: rb_esmart_trans_x11.c 390 2006-11-11 12:10:09Z tilman $ * * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de) * @@ -27,25 +27,17 @@ #include "../rb_esmart.h" -static void c_free (RbEvasObject *e) -{ - c_evas_object_free (e, true); -} +static VALUE cWindow; -static VALUE c_new (VALUE klass, VALUE evas) +static VALUE c_init (VALUE self, VALUE evas) { - VALUE self, argv[1]; - RbEvasObject *trans; - CHECK_CLASS (evas, cEvas); GET_OBJ (evas, RbEvas, e); + GET_OBJ (self, RbEvasObject, trans); - self = Data_Make_Struct (klass, RbEvasObject, c_evas_object_mark, - c_free, trans); trans->real = esmart_trans_x11_new (e->real); - argv[0] = evas; - rb_obj_call_init (self, 1, argv); + rb_call_super (1, &evas); return self; } @@ -97,14 +89,18 @@ static VALUE c_freshen (VALUE self, VALUE x, VALUE y, VALUE w, VALUE h) void Init_esmart_trans_x11 (void) { - VALUE c; + VALUE m, c; rb_require ("esmart"); rb_require ("ecore_x"); + m = rb_const_get (rb_cModule, rb_intern ("Ecore")); + m = rb_const_get (m, rb_intern ("X")); + cWindow = rb_const_get (m, rb_intern ("Window")); + c = rb_define_class_under (mEsmart, "TransX11", cEvasObject); - rb_define_singleton_method (c, "new", c_new, 1); + rb_define_method (c, "initialize", c_init, 1); rb_define_method (c, "type", c_type_get, 0); rb_define_method (c, "type=", c_type_set, 1); rb_define_method (c, "window=", c_window_set, 1);