AnjutaでGo!

ということで、いよいよGTK+の勉強を始めた。
まずはどんな場合も、Hello World
コンソール開発もよいのだが、今時ではない。
ということで、http://dolphin2005.blog.so-net.ne.jp/2008-02-12とかhttp://www.iim.ics.tut.ac.jp/~sugaya/wiki/wiki/index.php?GTK%2FGNOME%A4%CB%A4%E8%A4%EBGUI%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0を参考に、AnjutaとGladeを利用したGUIIDEを構築した。


しかし、どうもバージョンが変わって、いろいろとやり方が変わっているようだ。
上のリンクに書かれているようなメニューがなく、Gladeが起動できない。
新規にGladeオブジェクトを追加すると、オートメーションされるコードがプロジェクトに統合されない。
いつものごとく、ググりながら、しつこく何度かトライすること、延べ数時間。
ようやくと、

  • 新しいAnjutaではGTK+のスケルトンが生成された段階で、既にwindowのスケルトンも生成される
  • よくよくファイルブラウザを見てみると、srcの中に”(プロジェクト名).glade"が既に生成されている、こんな感じ





True
window
500
400






  • 当然のことながら、main.cにもスケルトンのwindowのインスタントを生成するコードが既に生成されている、こんな感じ


GtkWidget* create_window (void)
{
GtkWidget *window;
GladeXML *gxml;
gxml = glade_xml_new (GLADE_FILE, NULL, NULL);
/* This is important */
glade_xml_signal_autoconnect (gxml);
window = glade_xml_get_widget (gxml, "window");
return window;
}

int main (int argc, char *argv[])
{
GtkWidget *window;
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
#endif
gtk_set_locale ();
gtk_init (&argc, &argv);
window = create_window ();
gtk_widget_show (window);
gtk_main ();
return 0;
}

ということで、

  • Anjutaを起動
  • GTK+のスケルトンプロジェクトを生成
  • "ビルド" -> "プロジェクトのビルド"

とするだけで、windowのスケルトンができてしまう。
ご希望なら、Anjutaでsrc内の”(プロジェクト名).glade"を開いて(*1)、labelで"Hello World"とでも書いて(*2)、ビルドすれば、あら立派なHelloWorldの完成!!!
(*1)実際には、Anjuta内で".glade"を開こうとすると、開くプラグインを選択することになるので、Gladeを選択する
(*2)実際には、追加したlabelのプロパティを変更する