From: Masaaki A. <mas...@gm...> - 2011-12-13 12:07:26
|
青柳です。 >> GtkSourceCompletionProviderやGtkSourceUndoManagerはinterfaceとなっており >> それを実装したGObjectが存在していないので、自前で実装する必要があるのだと思いますが >> interfaceの実装をruby側で行うような仕組みがあったりするのでしょうか? >> ざっと見た感じ無さそうだとは思っているのですが、この辺りはどうしたもんでしょうか? > > あれ、G_DEF_INTERFACE()で動きませんか? 例えば、GtkSourceCompletionProvider自体はG_DEF_INTERFACEでモジュールとして定義できるのですが、 たぶんgtk_source_completion_add_providerあたりでGtkSourceCompletionProviderのインスタンスを 渡す必要があると思うのですが、実装したGObjectが存在しないため、インスタンス生成をどうやって行うかが 分からないです。 >> GObjectのみGTKWIDGET2RVAL方向の定義はせず、他は双方向を定義したいと思っています。 >> 合わせて以下のようなヘッダの構成に統一していきたいのですが、いかがでしょうか? >> * rb<パッケージ名>.h >> 外部からincludeされうるヘッダ >> * rb<パッケージ名>conversions.h >> 変換マクロ用のヘッダ >> * rb<パッケージ名>private.h >> 内部からincludeされるヘッダ >> ※パッケージ名にはバージョンを含まない(例:rbgtk.h) > > うーん、debパッケージやrpmパッケージを作っている人たちが困り > そうです。。。debやrpmではgemみたいに各パッケージ毎にディレ > クトリを掘るのではなく、共通のディレクトリにヘッダーファイル > を置くのです。 > (/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux/以下とか) > > なので、ヘッダーファイルにはrbgtk3.hの用にバージョンを入れた > 方がいいと思っています。 なるほど。そうなんですね。 ということで、バージョンを入れるようにしました。 |