いがらしです。
試しにSWIGで書いてみようとしたのですが……
GTK+では単なるCの構造体のくせにクラス継承があったりするのですが、
スーパークラスが指定できないので、うまくRubyのクラスを定義させる
ことができませんでした。
スーパークラスを指定するようなpragmaがあればうまくいくのかな?
こんなかんじで。
typedef struct gtk_window {
%pragma(ruby) super = "cGtkBin";
%addmethods {
GtkWindow(GtkWindowType type) {
return GTK_WINDOW(gtk_window_new(type));
}
} GtkWindow;
でもやっぱりSWIGとの相性は悪そうですね。
だからSWIG/RubyのexampleにはQtを入れたんでしょうか?
At Sat, 08 Jan 2000 17:49:23 +0900,
in [ruby-ext:00832] Re: Init_*() function,
Masaki Fukushima <fukusima / goto.info.waseda.ac.jp> wrote:
>
> Hiroshi IGARASHI <igarashi / ueda.info.waseda.ac.jp> wrote:
> > # 僕もRuby/GTKのSWIG化を目指してSWIG/Rubyを勉強してます。
>
> ワークショップの時に話した、gtk.defsを使う方法は使えないでしょう
> か。
>
> python-gtk は以前は swig を使っていたのを、.defs を使うように途中
> で変更したみたいです。Perlもgtk.defsを使っていたと思います。
はい、そうなってます。
> 彼らがswigを使っていないのには、それなりに理由もあると思うので、
> swig以外の可能性も考えてみませんか?
そうですね。とりあえず .defs の利用を試してみます。
--
五十嵐 宏 (Hiroshi IGARASHI)