給開發者的新功能
下列的更改對於使用 GNOME 2.24 開發平台的開發者而言很重要。如果你對這些關於開發平台的更改不感興趣,可以直接跳到 第 5 節 ― 流動通訊器材的新功能。
- 4.1. 為 GLib/GTK+ 3.0 作準備
- 4.2. GLib 2.18
- 4.3. GTK+ 2.14
- 4.4. 即時訊息程式庫
- 4.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 版中被廢棄的符號(symbol)與類別,只要在編譯時做下列定義: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_() 以提供翻譯者更多上下文的脈絡可參考,在 GIO 的 API 也加入 NC_() 巨集。
4.3. GTK+ 2.14
GNOME 2.24 是第一個基於 GTK+ 2.14 的 GNOME 推出版本。
在這個版本的 GTK+ 中一個重要的改變就是所有繼承自 GtkAdjustment的視窗元件(例如微調元件[spinbutton]和滑動鈕[slider])現在都嚴格要求它們的範圍為 [lower, upper - page size]。如果你想要確認 [lower, upper] 的範圍,請把 page_size 設為 0。
所有版本的 Glade(包含 3.4.1)現在都會以預設數值 10 的 page_size 來建立 GtkSpinButton、GtkHScale 和 GtkVScale。每個開發者都該檢查任何先前建立的 Glade 檔案以確認其 page size 值是在合理的範圍內。
新的類別 GtkMountOperation 可以傳送給 g_volume_mount。GtkMountOperation 是一個 GMountOperation ,可以在必要時為使用者顯示驗證對話盒。
現在有了一個可攜式的方法來使用預設應用程式開啟檔案和其他 URI,就是函數 gtk_show_uri(),而不必再依靠 libgnome。GDK 現在提供了 GAppLaunchContext 的實作以處理圖形化應用程式(包含啟動時通知功能和防止失去焦點功能),GdkAppLaunchContext。
在 GTK+ 2.14 中也有新的基於 GFile API 的 GtkFileChooser,以及 GtkBuilder 加入建立 XML 樹狀圖片段的能力。
4.4. 即時訊息程式庫
隨着新的即時訊息客戶端程式(請查閱 第 2.1 節 ― 保持聯繫),GNOME 2.24 包含了 libempathy、libempathy-gtk 和 telepathy-glib 程式庫,可以用來將即時訊息功能整合到任何 GNOME 應用程式裏。