山崎です。

> >       gtk_signal_connect(tb,"click_text",clicked,NULL);
> >    }                                             ^^^^
> ふと思ったんですけど、user dataって------------------^ これじゃないですか?

違います。私のウイジェットでは、文書中の user data が C/signal_emit から
出されるもので、位置により異なるので singal_connect で与えられるものでは
ありません(これもハンドラで受け取るなら clicked() に 引数がもう一つ必要)。
例では、1つしか user data を設定してないように省略していますが、本当は
いくつも設定しています。

signal_emit から来るパラメータ
signal_connect で来るパラメータ
があって、ruby/gtk では両方扱っています。後者は ruby のデータをブロックに
渡すので、そのままでいいんですが、前者は C のデータ型なので、
signal_setup_args で ruby のデータにしています。私が言ってきたのは前者です。

-------------------------------
山崎