From: Masao M. <mu...@us...> - 2005-11-14 07:11:01
|
Update of /cvsroot/ruby-gnome2/ruby-gnome2/pango/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15456/src Modified Files: rbpangocontext.c rbpangolayout.c Log Message: * src/rbpangolayout.c: Added Pango::Layout#markup=. Pango::Layout#tabs: Fix memory leak. * src/rbpangocontext.c: Pango::Context#get_metrics: 2nd parameter is omittable. Pango::Context#families: Fix memory leak. Index: rbpangocontext.c =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/pango/src/rbpangocontext.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- rbpangocontext.c 8 Oct 2005 03:13:54 -0000 1.14 +++ rbpangocontext.c 14 Nov 2005 07:10:51 -0000 1.15 @@ -169,11 +169,18 @@ } static VALUE -rcontext_get_metrics(self, desc, lang) - VALUE self, desc, lang; +rcontext_get_metrics(argc, argv, self) + int argc; + VALUE *argv; + VALUE self; { + VALUE desc, lang; + + rb_scan_args(argc, argv, "11", &desc, &lang); + return BOXED2RVAL(pango_context_get_metrics(_SELF(self), - RVAL2DESC(desc), RVAL2LANG(lang)), + RVAL2DESC(desc), + NIL_P(lang) ? NULL : RVAL2LANG(lang)), PANGO_TYPE_FONT_METRICS); } @@ -194,6 +201,8 @@ for (i = 0; i < n_families; i++) rb_ary_store(result, i, GOBJ2RVAL(families[i])); + g_free(families); + return result; } @@ -275,7 +284,7 @@ #endif rb_define_method(pContext, "load_font", rcontext_load_font, 1); rb_define_method(pContext, "load_fontset", rcontext_load_fontset, 2); - rb_define_method(pContext, "get_metrics", rcontext_get_metrics, 2); + rb_define_method(pContext, "get_metrics", rcontext_get_metrics, -1); rb_define_method(pContext, "families", rcontext_list_families, 0); #if PANGO_CHECK_VERSION(1,10,0) Index: rbpangolayout.c =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/pango/src/rbpangolayout.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- rbpangolayout.c 7 Sep 2005 16:11:31 -0000 1.15 +++ rbpangolayout.c 14 Nov 2005 07:10:51 -0000 1.16 @@ -81,6 +81,14 @@ } static VALUE +layout_set_markup_eq(self, markup) + VALUE self, markup; +{ + pango_layout_set_markup(_SELF(self), RVAL2CSTR(markup), RSTRING(markup)->len); + return markup; +} + +static VALUE layout_set_attributes(self, attrs) VALUE self, attrs; { @@ -250,7 +258,14 @@ layout_get_tabs(self) VALUE self; { - return BOXED2RVAL(pango_layout_get_tabs(_SELF(self)), PANGO_TYPE_TAB_ARRAY); + VALUE ret = Qnil; + PangoTabArray* tabs = pango_layout_get_tabs(_SELF(self)); + + if (tabs) { + ret = BOXED2RVAL(tabs, PANGO_TYPE_TAB_ARRAY); + pango_tab_array_free(tabs); + } + return ret; } static VALUE @@ -499,6 +514,7 @@ rb_define_method(pLayout, "set_text", layout_set_text, 1); rb_define_method(pLayout, "text", layout_get_text, 0); rb_define_method(pLayout, "set_markup", layout_set_markup, -1); + rb_define_method(pLayout, "markup=", layout_set_markup_eq, 1); rb_define_method(pLayout, "set_attributes", layout_set_attributes, 1); rb_define_method(pLayout, "attributes", layout_get_attributes, 0); rb_define_method(pLayout, "set_font_description", layout_set_font_description, 1); |