From: Masaaki A. <mas...@gm...> - 2011-11-29 10:48:07
|
青柳です。 GtkSourceCompletionProviderやGtkSourceUndoManagerはinterfaceとなっており それを実装したGObjectが存在していないので、自前で実装する必要があるのだと思いますが interfaceの実装をruby側で行うような仕組みがあったりするのでしょうか? ざっと見た感じ無さそうだとは思っているのですが、この辺りはどうしたもんでしょうか? それと、rubyのオブジェクトからgtkの型へ変換するのにRVAL2GOBJのみでキャストをしておらず、 不正なオブジェクトが渡された際にTypeErrorとならずにgtk側でエラーになる箇所があります。 また、gtkの型がGObjectなのかGBoxedなのかなど気にするのが面倒なので、一部で使われているように RVAL2GTKWIDGETのようなマクロを定義して、それを使うように統一したいです。 GObjectのみGTKWIDGET2RVAL方向の定義はせず、他は双方向を定義したいと思っています。 合わせて以下のようなヘッダの構成に統一していきたいのですが、いかがでしょうか? * rb<パッケージ名>.h 外部からincludeされうるヘッダ * rb<パッケージ名>conversions.h 変換マクロ用のヘッダ * rb<パッケージ名>private.h 内部からincludeされるヘッダ ※パッケージ名にはバージョンを含まない(例:rbgtk.h) |