From: Kouhei S. <ko...@co...> - 2013-01-24 13:02:27
|
須藤です。 Ruby-GNOME2プロジェクトはRuby-GNOME2 1.2.0をリリースしまし た。 今回からGTK+ 3用のバインディングRuby/GTK3を追加しました! 以下でインストールできます。 gem install gtk3 Windows用のビルド済みバイナリも用意したので、↑のコマンドで Windowsでも使えるはずです。 (試していませんが。。。Windowsを持っている人は、試して動い たかどうか教えて欲しいです。。。) また、ClutterとClutter-GTKのバインディングも追加しています。 これらはGObject Introspectionを使って実装しています。 == お願い 既存のバインディングの中で、可能なものはGObject Introspectionベースのバインディングに置き換えていきたいと思っ ています。具体的には、まずは、Ruby/GStreamerとRuby/GooCanvas を置き換えたいと思っています。その作業を手伝ってもらえないで しょうか。 これらはAPIが多くてなかなか完成しなく、まだ「実験的」な扱い のライブラリです。しかも、新しいバージョンへの対応もできてい ません。(GStreamerは1.0.0がリリースされました!) GObject Introspectionベースのバインディングにすることにより、 半自動的に新しいバージョンにも対応できるようになり、開発者に とっても利用者にとってもうれしくなります。 で、やって欲しい作業ですが、サンプルを移植して欲しいです。 ほとんど素のGObject Introspectionベースのバインディングを用 意しました。 GStreamer用: https://github.com/ruby-gnome2/ruby-gnome2/blob/master/gstreamer/sample/gst-gi.rb GooCanvas用: https://github.com/ruby-gnome2/ruby-gnome2/blob/master/goocanvas/sample/goocanvas-gi.rb これらのファイルをrequireしてGStreamer/GooCanvasに付属のサン プルを移植して欲しいです。 たぶん、こんな風にすると作業を開始できます。 GStreamerの場合: % gem install gobject-introspection % git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git % cd ruby-gnome2/gstreamer % cd vim sample/xxx.rb require "gst-gi" Gst.init # サンプルを移植する % ruby -I sample sample/xxx.rb GStreamerのサンプルは http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/ 以下にあるようです。例えば、以下がサンプルです。 http://cgit.freedesktop.org/gstreamer/gstreamer/tree/tests/examples/helloworld/helloworld.c GooCanvasの場合: % gem install gobject-introspection % git clone gi...@gi...:ruby-gnome2/ruby-gnome2.git % cd ruby-gnome2/goocanvas % cd vim sample/xxx.rb require "goocanvas-gi" # サンプルを移植する % ruby -I sample sample/xxx.rb GooCanvasのサンプルはここにあります。 http://git.gnome.org/browse/goocanvas/tree/demo どちらもサンプルをひとつ移植するごとにpull requestを送っても らえるとうれしいです。 また、中にはうまく移植できないものもあるかもしれません。その ときはpull requestかメーリングリストで教えてください。 Ruby/GObjectIntrospectionで未実装な機能が必要かもしれません。 == インストール方法 % gem install gtk2 % gem install gtk3 == Ruby-GNOME2 1.2.0: 2013-01-24 GTK+ 3サポートリリース! === 変更点 ==== 全体 * ruby-gtk3パッケージを追加。以下はパッケージに含まれるライブラリ: * Ruby/GLib2 * Ruby/ATK * Ruby/Pango * Ruby/GdkPixbuf2 * Ruby/GDK3 * Ruby/GTK3 ==== Ruby/GLib2 * 改良 * VALUE <-> GBoxedの変換をカスタマイズできるようにした * RVAL2GOBJでVALUE <-> GBoxedの変換をできるようにした * GLib::Source::REMOVEを追加した * GLib::Source::CONTINUEを追加した * rbgobj_make_boxed_raw()を追加した * 内部で使用するためにGLib::Valueを追加した * [windows] GLibを最新版に更新: 2.28.8-1 -> 2.34.3 * 変更 * 非推奨だったGLib::Win32.get_package_installation_directoryを削除 * 非推奨だったGLib::Win32.get_package_installation_subdirectoryを削除 * RGConvertTableのコールバックにuser_dataを追加 * rbgobj_convert_define()が渡されたRGConvertTableをコピー するようになった * 非推奨だったG_DEF_FUNDAMENTALを削除。代わりに RG_DEF_CONVERSIONを使ってください。 ==== Ruby/GIO2 * 改良 * ヘッダーをインストールするようにした ==== Ruby/ATK * 改良 * [windows] 最新のATKに更新: 1.32.0 -> 2.6.0 ==== Ruby/Pango * 改良 * [windows] 最新のPangoに更新: 1.28.3 -> 1.32.6 ==== Ruby/GdkPixbuf2 * 改良 * [windows] 最新のgdk-pixbufに更新: 2.24.0 -> 2.26.5 ==== Ruby/GTK2 * 改良 * Allocationに設定してあった「コピーしないフラグ」が不要 だったため削除 * [windows] 最新の TK+ 2に更新: 2.24.8 -> 2.24.14 ==== Ruby/GDK3 * 改良 * [windows] サポートした: 3.6.4 ==== Ruby/GTK3 * 改良 * Allocationに設定してあった「コピーしないフラグ」が不要 だったため削除 * [windows] サポートした: 3.6.4 ==== Ruby/GObjectIntrospection * 改良 * メソッドのオーバーロードに対応 * コンストラクターのオーバーロードに対応 * GBoxedオブジェクトに対応 * char *に対応 * GInterfaceに対応 * CallableInfoに対応 * 「may be null」に対応 * unionに対応 * GBoxedではない構造体に対応 * 出力引数に対応 * Cの配列に対応 * 述語メソッドのメソッド名の最後に"?"を追加するようにした * SourceFuncコールバックに対応 * GValueに対応 * GObjectIntrospection::Loader.register_boxed_class_converterを追加 * 入出力引数に対応 * バイナリデータの配列に対応 * 変更 * ArgInfo#[] -> ArgInfo#get_arg ==== Ruby/CairoGObject * 追加 ==== Ruby/Clutter * 追加 ==== Ruby/ClutterGtk * 追加 |