ものがたり(旧)

atsushieno.hatenablog.com に続く

Moonlight.Gtkの簡単な使い方

いまさらだけど、mldspで使っているMoonlight.Gtkについて、最初の一歩を踏み出すための解説を書いてみようと思う。

mldspでやっていることは簡単だ。基本的にはMain関数の中でほぼ全て終わっている。このコードは、MonoDevelopGtk#アプリケーションを作成した時に出来る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アーカイブだ)。