いがらしです。

At Fri, 24 Dec 1999 10:48:30 +0900,
in [ruby-ext:00779] Re: Ruby/Gtk Gtk::Editable's signal,
とみたまさひろ <tommy / tmtm.org> wrote:
> 
> > Gtk::Editable の各種シグナルを扱えるようにしてみました。
> 
> ちょいと変更しました。gtk-SNAPSHOT-19991213 オリジナルに対するパッチです。
> 
> 前のパッチでは 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 として位置を変更できます。
> 
> 他にもっといい方法あるかなぁ…。

ちょっと思いつきません。
Gtk::Widgetのsize_requestシグナルでは、配列ではなくRequisitionオ
ブジェクトを介して値の授受を行っているんですが、わざわざPosition
クラスを作るのも大げさな気もするし……

--
五十嵐  宏  (Hiroshi IGARASHI)