X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Frb_evas.c;h=5ed1ceecc83887b6c3b8b0f7ed94c04856c1e336;hb=afe425bcbc30d5caa38bfed5c4e629f96fd62bcf;hp=3e333a59dd9c2c1847c29b157380419f8436522f;hpb=1f6059ba8be27832fc4b6f88c99548e39f4264cb;p=ruby-evas.git diff --git a/src/rb_evas.c b/src/rb_evas.c index 3e333a5..5ed1cee 100644 --- a/src/rb_evas.c +++ b/src/rb_evas.c @@ -1,5 +1,5 @@ /* - * $Id: rb_evas.c 58 2004-08-10 14:10:02Z tilman $ + * $Id: rb_evas.c 149 2004-11-27 18:47:46Z tilman $ * * Copyright (C) 2004 Tilman Sauerbeck (tilman at code-monkey de) * @@ -253,19 +253,13 @@ static VALUE c_image_cache_flush (VALUE self) static VALUE c_top_get (VALUE self) { Evas_Object *o; - void *obj; GET_OBJ (self, RbEvas, e); if (!(o = evas_object_top_get (e->real))) return Qnil; - if (!(obj = evas_object_data_get (o, RUBY_EVAS_OBJECT_KEY))) { - rb_raise (rb_eException, "EvasObject Ruby object key missing"); - return Qnil; - } - - return (VALUE) obj; + return TO_EVAS_OBJECT (o); } /* @@ -277,19 +271,13 @@ static VALUE c_top_get (VALUE self) static VALUE c_bottom_get (VALUE self) { Evas_Object *o; - void *obj; GET_OBJ (self, RbEvas, e); if (!(o = evas_object_bottom_get (e->real))) return Qnil; - if (!(obj = evas_object_data_get (o, RUBY_EVAS_OBJECT_KEY))) { - rb_raise (rb_eException, "EvasObject Ruby object key missing"); - return Qnil; - } - - return (VALUE) obj; + return TO_EVAS_OBJECT (o); } /* @@ -301,7 +289,6 @@ static VALUE c_bottom_get (VALUE self) static VALUE c_find_object (VALUE self, VALUE name) { Evas_Object *o; - void *obj; GET_OBJ (self, RbEvas, e); @@ -310,12 +297,18 @@ static VALUE c_find_object (VALUE self, VALUE name) if (!(o = evas_object_name_find (e->real, StringValuePtr (name)))) return Qnil; - if (!(obj = evas_object_data_get (o, RUBY_EVAS_OBJECT_KEY))) { - rb_raise (rb_eException, "EvasObject Ruby object key missing"); - return Qnil; - } + return TO_EVAS_OBJECT (o); +} + +static VALUE c_output_size_get (VALUE self) +{ + int w = 0, h = 0; + + GET_OBJ (self, RbEvas, e); + + evas_output_size_get (e->real, &w, &h); - return (VALUE) obj; + return rb_ary_new3 (2, INT2FIX (w), INT2FIX (h)); } void Init_Evas (void) @@ -344,4 +337,5 @@ void Init_Evas (void) rb_define_method (cEvas, "top", c_top_get, 0); rb_define_method (cEvas, "bottom", c_bottom_get, 0); rb_define_method (cEvas, "find_object", c_find_object, 1); + rb_define_method (cEvas, "output_size", c_output_size_get, 0); }