いがらしです。

At Tue, 28 Dec 1999 01:26:11 +0900,
in [ruby-ext:00794] Re: Ruby/Gtk Gtk::Editable's signal,
とみたまさひろ <tommy / tmtm.org> wrote:
> 
> > 前のパッチでは insert-text シグナルで呼び出される関数側で、渡された 
> > position を変更できなかったので、苦肉の策で配列にしてみました。
> > 
> > C API では gint* position なので、関数中で *position = n; とすれば位置を
> > 変更できたんですが、Ruby では整数の in-out parameter が使えないので…。
> > 
> > 	e = Gtk::Entry::new
> > 	e.signal_connect("insert_text") do |a| 〜 end
> > 
> > とすると、a = [#<Gtk::Entry:0x4016b588 ptr=0x8188ad0>, "s", [0]] ってな
> > 形で引数が渡されるので、a[2][0] = n として位置を変更できます。
> 
> 実はこれは http://main/tmtm/www/ruby/gtk/bentry.html の絡みで必要だった

http://www.tmtm.org/ruby/gtk/bentry.html ですね。
Ruby/GTKのページから http://www.tmtm.org/ruby/gtk/ に
リンクしちゃっていいですか?

> んですが、signal_handler_block/unblock を使うことで、シグナル関数中で 
> position の値の変更は(とりあえず)必要なくなりました。
> 
> ので、position の実装をどうするかは、もっと議論してからでもいいです。

では、とりあえずpositionには値そのものが渡るようにしてしまいます。

--
五十嵐  宏  (Hiroshi IGARASHI)