|
From: Hiroshi I. <ig...@ru...> - 2002-05-31 18:50:21
|
いがらしです。 At Sat, 1 Jun 2002 02:27:07 +0900, Masao Mutoh <mu...@hi...> wrote: > > むとうです。 > > On Tue, 28 May 2002 01:45:16 +0900 > Hiroshi IGARASHI <ig...@ru...> wrote: > > > いがらしです。 > > > > ・コードの自動生成 > > > これも以前、五十嵐さんの方で話が合ったような記憶があります。 > > > どのようなモノなのでしょうか? > 五十嵐さん > > > これできちゃうようであればあっという間ですよね(^-^)。 > > > (1) *.defsファイルからのwrapper生成 > > > > GTK+のソースにはオブジェクト・関数・列挙型などが宣言された > > ファイルがついてきて、これからCコードを生成する方法です。 > > pygtk(Python/GTK),pygnome(Python/GNOME)などはこれ。 > > [ruby-ext:01637]あたりで触れてます。 > > > > モノは以下の場所にありますが、まだ不完全な代物です。 > > 私も詳細は覚えていないのでこれから見てみます^_^; > > http://www.ruby-lang.org/~iga/files/gnome-ruby-proto-20010313.tar.gz > > gnome-ruby-proto-20010317.tar.gz > > gnome-ruby-proto-20010916.tar.gz > > ひとまず、gnome-ruby-proto-20010916.tar.gzだけ試してみました。 > #生成されたコードを見ただけですが。 > 他のも見た方が良いのでしょうか? すみません...見なくていいです。 大した違いはありませんでした。 > で、ちょっと質問です。 > > ・この*.defsファイルってどこにあるんでしょうか? > GTK+-2.0のソースにはついてきていないような気がします....。 またまたすみません。 2.0になってからはついてきてないみたいですね。 gnome-python独自にメンテするようになってしまったみたいです。 CVSモジュールgnome-python(GTK+2.0と同じレポジトリにあります)の gnome-python/pygtk/gtk/*.defsなどを見て下さい。 上記gnome-rubyのプロトタイプの*.defsは、 gnome-pythonからぱくらせてもらったもので、 そのフォーマットについては、このモジュール内の gnome-python/pygtk/codegen/README.defs を見て下さい。プロトタイプを作った当時よりいろいろ 変更されてしまっているようです。 > ・GdkRGB等が無いのですがこれはなぜでしょうか? > *.defsにない? GdkRGBというのは http://developer.gnome.org/doc/API/2.0/gdk/gdk-gdkrgb.html にあるような関数群のことですよね。 当時の*.defsには入っていませんでした。 現在の gnome-python/pygtk/gtk/gdk.defs には含まれています。 例えばGdk::Drawable#draw_rgb_32_imageなら以下の通りです。 (define-method draw_rgb_32_image (of-object "GdkDrawable") (c-name "gdk_draw_rgb_32_image") (return-type "none") (parameters '("GdkGC*" "gc") '("gint" "x") '("gint" "y") '("gint" "width") '("gint" "height") '("GdkRgbDither" "dith") '("guchar*" "buf") '("gint" "rowstride") ) ) フォーマットが変わってしまっているので、 これを通すには生成スクリプトを直す必要があります... この土日にちょっとやってみます。 -- 五十嵐 宏 (Hiroshi IGARASHI) |