GObjectとJavaScript

GNOMEではJavaScriptエンジンとしてSeedとgjsがあって、mutterではgjsを使っていますが、GNOMEではSeedが正式に採用されました。
GUIプログラミング入門ネタ(STLUGの人しか知らないけど)として使えそうなので、ちょっと調べてみました。

#!/usr/bin/env seed
Gtk = imports.gi.Gtk;
Gtk.init(Seed.argv);
var window = new Gtk.Window();
var button = new Gtk.Button({label:"Hello"});
button.signal.clicked.connect(Gtk.main_quit);
window.add(button);
window.show_all();
Gtk.main();

これだけで、いつものプログラムが完成します。Helloというボタンがあってクリックすると終了するやつです。

単純にimports.gi.Gtkした後、初期化、windowの作成、buttonの作成、シグナルの接続(main_quit)、windowにbuttonの追加、表示の後、mainループに入ります。

問題は、ドキュメントが少ないこと。今のところ、/usr/share/gir-1.0/以下のgirファイルを眺めながらプログラミングしてます。これらのドキュメントが充実してくれば嬉しいですね。