From: Horofumi N. <hna...@us...> - 2008-05-12 01:01:08
|
Nakagawaです。 すみません。ご指摘のとおり、おかしな点が色々とありますね.. 習性しておきます。 コーディングスタイルは、なるべくまわりのコードの雰囲気に合わせていたりするんですけど、それじゃダメですかね… 2008/05/12 6:53 Kouhei Sutou <ko...@co...>: > 須藤です。 > > In <E1J...@sc...> > "[ruby-gnome2-cvs] SF.net SVN: ruby-gnome2: [3190] ruby-gnome2/trunk/gtk" > on Sun, 11 May 2008 12:12:39 -0700, > hna...@us... wrote: > > > Revision: 3190 > > > http://ruby-gnome2.svn.sourceforge.net/ruby-gnome2/?rev=3190&view=rev > > Author: hnakagawa > > Date: 2008-05-11 12:12:39 -0700 (Sun, 11 May 2008) > > > > Log Message: > > ----------- > > *src/rbgtkliststore.c: added Gtk::ListStore#set_valuesv() > > > Modified: ruby-gnome2/trunk/gtk/src/rbgtkliststore.c > > =================================================================== > > --- ruby-gnome2/trunk/gtk/src/rbgtkliststore.c 2008-05-08 > 12:26:30 UTC (rev 3189) > > +++ ruby-gnome2/trunk/gtk/src/rbgtkliststore.c 2008-05-11 > 19:12:39 UTC (rev 3190) > > @@ -80,6 +80,34 @@ > > return self; > > } > > > > +#if GTK_CHECK_VERSION(2, 12, 0) > > +static VALUE > > +lstore_set_valuesv(VALUE self, VALUE iter, VALUE columns, VALUE value, > VALUE n_values) > > +{ > > + GType gtype = > gtk_tree_model_get_column_type(GTK_TREE_MODEL(RVAL2GOBJ(self)), > NUM2INT(columns)); > > + GValue gval = {0,}; > > + gint i,len = RARRAY(columns)->len; > > + gint* gcolumns = g_new(gint, len); > > + > > + for (i = 0; i < len; i++) { > > + gcolumns[i] = NUM2INT(RARRAY(columns)->ptr[i]); > > + } > > + > > + g_value_init(&gval, gtype); > > + > > + rbgobj_rvalue_to_gvalue(value, &gval); > > + > > + G_CHILD_ADD(self, iter); > > + G_CHILD_ADD(iter, value); > > + > > + gtk_list_store_set_valuesv(_SELF(self), RVAL2ITR(iter), gcolumns, > &gval, NUM2INT(n_values)); > > + > > + g_value_unset(&gval); > > + g_free(gcolumns); > > + return self; > > +} > > +#endif > > + > > /* > > void gtk_tree_store_set (GtkTreeStore *tree_store, > > GtkTreeIter *iter, > > @@ -307,6 +335,9 @@ > > rb_define_method(ls, "move_before", lstore_move_before, 2); > > rb_define_method(ls, "move_after", lstore_move_after, 2); > > #endif > > +#if GTK_CHECK_VERSION(2, 12, 0) > > + rb_define_method(ls, "set_valuesv", lstore_set_valuesv, 4); > > +#endif > > 気になる点がそこそこあります。 > > * Rubyに公開するAPIとしてはvaluesvのvはつけない方がいいの > ではないか > * n_valuesはvaluesから取得できるはずなので、引数としては必 > 要ないのではないか > * gvalはGValueの配列なので、n_valuesが2以上のときは落ちる > のではないか > * gint i,lenにはスペースを入れてgint i, lenにした方がよい > のではないか > * 変数宣言のところでこんなに頑張らないで > gtk_tree_model_get_column_type(GTK_TREE_MODEL(RVAL2GOBJ(self)), > NUM2INT(columns)) > > gint i,len = RARRAY(columns)->len; > gint* gcolumns = g_new(gint, len); > 普通に変数宣言の後でやった方がよいのではないか > * というかそもそも落ちるのではないか。columnsはint?array? > NUM2INT(columns) > RARRAY(columns)->len > * できればテストも書いてほしい。 > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > |