Moonlight.Gtkの簡単な使い方
いまさらだけど、mldspで使っているMoonlight.Gtkについて、最初の一歩を踏み出すための解説を書いてみようと思う。
mldspでやっていることは簡単だ。基本的にはMain関数の中でほぼ全て終わっている。このコードは、MonoDevelopでGtk#アプリケーションを作成した時に出来るMainから、2行コメントアウトして、そこにMoonlightHostというコントロールをもつWindowを作成して表示するコードを追加しただけだ。ちなみに、ApplicationクラスはSystem.Windows.ApplicationとGtk.Applicationで混同するので、usingで明示してあるが、using System.Windows は不要かもしれない。
Moonlight.Gtkらしいコードは、MoonlightRuntime.Init()というメソッドを最初に呼び出すことと、MoonlightHostを作って、そこにLoadXap()(あるいはLoadXaml()など他の読み込みメソッド)を呼び出していることくらいだ。
MoonlightHostは単なるパネルみたいなものだから、Gtk#のアプリケーションとしてメインメニューやステータスバーを追加することももちろん可能だ。
読み込むxapに含まれているアセンブリは、2.0プロファイルでビルドしたもので、普通にmxapを使ったりMonoDevelop Moonlightプロジェクトでビルドしたりすることはできないのだけど、たぶんmxap --desktopを使えば簡単に作れるんだろうと思う。僕はMonoDevelopでソースファイルをwebプロジェクトと共通にしてしまったので(そしてMonoDevelopにはdesktop版のxapを作るプロジェクトが存在しないので)、zipを呼んでやっつけで作っている(xapファイルは単なるzipアーカイブだ)。