新しくなったこと 〜開発者向け〜

次に示す内容は GNOME 2.24 の開発プラットフォームを利用する開発者には知っておいてもらいたい重要な変更点です。この内容に特に興味がないのであれば、このセクションを飛ばして「セクション 5 - 新しくなったこと 〜モバイル分野向け〜」をご覧下さい。

4.1. GLib/GTK+ 3.0 に向けて

GLib と GTK+ のバージョン 3.0 に向けて作業を開始しようとしている開発者向けに、次回のリリースでは厳密な互換性を課すための「フラグ」が両ライブラリに含められる予定です。

GLib と GTK+ と ATK のバージョン 3.0 では、トップ・レベルのヘッダ・ファイルだけ (例えば glib.h とか gobject.h とか gio.h) をアプリケーションの中でインクルードするようになります。これはソースコードのレベルで互換性に影響を与えることなく、ヘッダ・ファイルを削除したりファイル名を変更したり、あるいは全体的に整理し直すことが可能になるということで、非常に重要なポイントになります。

開発者が自分たちのアプリケーションの互換性についてテストできるようにするために、コンパイル時の (エラー検出) オプションが新たに用意されました: GLib の場合は G_DISABLE_SINGLE_INCLUDES、GTK+ の場合は GTK_DISABLE_SINGLE_INCLUDES、そして ATK の場合は ATK_DISABLE_SINGLE_INCLUDES です。

アプリケーションをビルドする際に、これらのフラグ (例えば -DG_DISABLE_SINGLE_INCLUDES ) を単にコンパイラへ渡すだけで妥当なアプリケーションであることを保証してくれるようになります。

その他の互換性のテスト

GLib と GTK+ の他に、これらに依存する各種ライブラリもコンパイル時のオプションが用意されているので、GTK+ のバージョン 3.0 との互換性についてテストする際に利用できます。

バージョン 3.0 から削除される予定の廃止 (Deprecated) になったシンボルやクラスに対して、次に示すようなフラグを指定することで、そのサポートをコンパイル時に無効にできるようになっています: ATK_DISABLE_DEPRECATED、PANGO_DISABLE_DEPRECATED、G_DISABLE_DEPRECATED、GDK_PIXBUF_DISABLE_DEPRECATED、GDK_DISABLE_DEPRECATED、GTK_DISABLE_DEPRECATED (それぞれ ATK、Pango、GLib、GdkPixbuf、GDK、GTK+ の順)

GDK_MULTIHEAD_SAFE と GTK_MULTIHEAD_SAFE のフラグを渡すことで、マルチヘッド (複数のモニタ) を正しくサポートした関数だけを利用しているかをテストできます。

4.2. GLib バージョン 2.18

GNOME 2.24 は GLib 2.18 に依存した最初の GNOME リリースです。

GLib 2.18 では C_() や NC_() マクロを使って翻訳した文字列でコンテキストを提供する機能が向上しました。さらに GIO には API が追加されました。

新たに GLib と GIO に追加されたシンボルについては、それぞれここここをご覧になってみて下さい。

4.3. GTK+ バージョン 2.14

GNOME 2.24 は GTK+ 2.14 に依存した最初の GNOME リリースです。

このバージョンの GTK+ で重要な変更点は、GtkAdjustment クラスから派生した全てのウィジェット (例えばスピンボタンやスライダ) がドキュメントに示されているとおり、自分たちが表現できる値の範囲を常に [最小値、最大値 - page_size] の形式で指定しなければならなくなったということです。逆に従来どおり [最小値, 最大値] で範囲を指定したいのであれば、page_size を0にして下さい。

Glade と GTK+ 2.14

現在 Glade の全てのバージョン (含むバージョン 3.4.1) は GtkSpinButtonGtkHScaleGtkVScale のインスタンスに対して page_size をデフォルト 10 で生成するようになっています。page_size が妥当な値になっているかどうかを Glade ファイルを開いて確認しておく必要があります。

g_volume_mount() 関数に渡すための GtkMountOperation というクラスが新たに追加されました。この GtkMountOperation は、必要であればユーザに認証ダイアログを表示することが可能な GMountOperation クラスの一つです。

通常のアプリケーションでよく利用されるファイルや URI などを開くための汎用的なメソッドは、libgnome ライブラリに依存しない gtk_show_uri() 関数を利用できるようになりました。GDK は Startup Notification (起動通知) とフォーカス横取り防止機能を持つグラフィカルなアプリケーションを作成する際に使用する GAppLaunchContextGdkAppLaunchContext クラスの実装が提供されました。

また、GTK+ 2.14 では新たに GtkFileChooser クラス向けの GFile ベースな API が追加されたり、XML ツリーの断片からユーザ・インタフェースを構築する機能が GtkBuilder クラスに追加されました。

新たに GTK+ と GDK に追加されたシンボルについては、それぞれここここをご覧になってみて下さい。

4.4. インスタント・メッセンジャー用のライブラリ

新しいインスタント・メッセンジャー・クライアント (詳細は「セクション 2.1 - 連絡を取り合う」をご覧下さい) と共に、GNOME 2.24 には libempathy、libempathy-gtk、telepathy-glib といったインスタント・メッセンジャーの機能を GNOME のアプリケーションに統合する際に使用するライブラリが加わりました。

4.5. デスクバー

Match というインタフェースに二つのメソッドが新たに追加されました: set_snippet()get_snippet() です。もしスニペットがセットされていたら、検索した結果、見つかったオブジェクトの get_verb() 関数で得られた値の下にそのスニペットを表示するというものです。

Action というインタフェースに get_tooltip() というメソッドが追加されました。このメソッドをオーバーライドすることで、検索結果やそれに対するアクションの上にマウスをのせた時にツールチップが表示されるという機能です。