初めてのGtk# (Mono Win32編)
http://d.hatena.ne.jp/akiramei/20050117#p1の続き。
Win32版のGtk#をインストールしてもmonoのGACには登録されないので、手動で登録する必要があります。(注意:Gtk#1.9.2からデフォルトのインストールパスがC:\GTK\2.4に変わったので、そっちにあわせています)
#!/usr/bin/sh cd C:/GTK/2.4/lib/gtk-sharp gacutil -i atk-sharp.dll gacutil -i art-sharp.dll gacutil -i gdk-sharp.dll gacutil -i glade-sharp.dll gacutil -i glib-sharp.dll gacutil -i gtk-sharp.dll gacutil -i pango-sharp.dll gacutil -i rsvg-sharp.dll cd C:/GTK/2.4/lib/gecko-sharp gacutil -i gecko-sharp.dll cd C:/GTK/2.4/lib/gtk-sharp-2.0 gacutil -i atk-sharp.dll gacutil -i art-sharp.dll gacutil -i gdk-sharp.dll gacutil -i glade-sharp.dll gacutil -i glib-sharp.dll gacutil -i gtk-sharp.dll gacutil -i gtk-dotnet.dll gacutil -i pango-sharp.dll gacutil -i rsvg-sharp.dll cd C:/GTK/2.4/lib/gecko-sharp-2.0 gacutil -i gecko-sharp.dll
これをgtk-sharp_install.shなどの名前をつけて保存します。で、
$ chmod +x gtk-sharp_install.sh $ ./gtk-sharp_install.sh
とするとMonoのGACに登録されます。gactuilはMono版でなければならないので注意してください。
これでGtk#を使う準備が整ったので、
Video demonstrating how to create a "Hello World" application using Gtk# and glade を見ればOKです。(デモが終わるとIEがクラッシュするのはウチだけでしょうか・・・)
ただし、2点だけ上記デモを置き換える必要があります。
・最初のInterface Designerメニューからの起動は
・コンパイルオプションの変更
$ mcs demo.cs -pkg:gtk-sharp -pkg:glade-sharp
を
$ mcs demo.cs -pkg:gtk-sharp-2.0 -pkg:glade-sharp-2.0
にします。これはWin32版のgtk-sharp.pc, glade-sharp.pcのprefixがC:/Targetになっているためです。これらのファイルは
デモのソースコード
using System; using Gtk; using Glade; class DemoWindow { [Widget] Gtk.Entry entry1; [Widget] Gtk.Label label1; public void on_button1_clicked (object sender, EventArgs e) { Console.WriteLine ("Clicked."); Console.WriteLine ("Entry contains: " + entry1.Text); label1.Text = "Hello!"; } public DemoWindow () { Glade.XML gui = new Glade.XML ("./demo.glade", "window1", ""); gui.Autoconnect (this); } } class GtkSharpDemo { static void Main () { Gtk.Application.Init (); DemoWindow dw = new DemoWindow (); Gtk.Application.Run (); } }