GNOME3用アプリケーション開発に入門してみる

このへんから情報を取ってきたらよさそう。

GNOME Developer Center

PythonとかC++とかValaとか使った方が効率的そうだけど、最初ぐらいCでやるか。

Getting started with writing a GLib/GTK+ application in C

  1. GLib core
  2. GObject
  3. GIO
  4. GTK+

の順でやれとのこと。

GLib

先程のリンクから PDF へ The GLib/GTK+ Development Platform

リファレンスはこちら GLib Reference Manual: GLib Reference Manual

まずは簡単なマクロ

printf("%d\n", MAX(2, 3));
printf("%d\n", MIN(2, 3));
printf("%d\n", CLAMP(5, 10, 20));

コンパイルはこんな感じで

gcc $(pkg-config --cflags glib-2.0) -o main 01_glib_core.c $(pkg-config --libs glib-2.0)

あとはデバッグ用のマクロ

gint f(gint x) {
    g_return_val_if_fail(x != 0, 0);
    return 100 / x;
}

この関数に 0 を渡すと ** (process:31444): CRITICAL **: f: assertion 'x != 0' failed のように表示される。 リリース版を作る時は -DG_DISABLE_CHECKS を付けてコンパイルすればチェックされない。

お次はメモリ管理系。 g_malloc 関数等が存在するが、通常は g_new で書くっぽい。 文字列用にもいくつかある。

データ構造は必要になった時でいいや。