Что нового для разработчиков
Следующие изменения важны для разработчиков, использующих платформу разработки GNOME 2.24. Если вам не интересны эти изменения, вы можете пропустить этот раздел и перейти к Раздел 5 ― Что нового для мобильных устройств.
- 4.1. Подготовка к GLib/GTK+ 3.0
- 4.2. GLib 2.18
- 4.3. GTK+ 2.14
- 4.4. Библиотеки для обмена сообщениями
- 4.5. Deskbar
4.1 Подготовка к GLib/GTK+ 3.0
В порядке подготовки разработчиков к переходу на GLib и GTK+ 3.0, последующие выпуски обеих библиотек будут включать флаги для достижения более строгой совместимости.
GLib, GTK+ и ATK 3.0 будет требовать включения только заголовочных файлов верхнего уровня (таких как glib.h, gobject.h, gio.h) в использующие их приложения. Это нужно для того, чтобы удалять, переименовывать или перегруппировывать залоголовные файлы без каких либо изменений не влияя на совместимость приложений.
Для того, чтобы позволить разработчикам протестировать их приложения на совместимость сейчас, введены новые параметры компиляции:G_DISABLE_SINGLE_INCLUDES для GLib, GTK_DISABLE_SINGLE_INCLUDES для GTK+ и ATK_DISABLE_SINGLE_INCLUDES для ATK.
Просто передайте их как параметр при сборке приложения (например -DG_DISABLE_SINGLE_INCLUDES), чтобы удостовериться, что ваше приложение корректно.
GLib, GTK+ и связанные с ними библиотеки поддерживают параметры компиляции, которые можно использовать для проверки совместимости с GTK+ 3.0.
Вы можете отключить поддержку устаревших функций и классов, которые будут удалены в версии 3.0, определением следующих параметров: 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 - это первый выпуск GNOME, основанный на GLib 2.18.
GLib 2.18 обеспечивает лучшую поддержку контекста в строках перевода с помощью макросов C_() и NC_(). Кроме того, в GIO расширен API .
4.3 GTK+ 2.14
GNOME 2.24 - это первый выпуск GNOME, основанный на GTK+ 2.14.
Важное изменение этой версии GTK+ в том, что теперь все виджеты унаследованные от GtkAdjustment (например поля счётчиков или разделители), теперь лежат строго в своём диапазоне [lower, upper - page size], как и описано в документации. Если вы хотите установить диапазон [lower, upper], установите page_size в ноль.
Все версии Glade (включая 3.4.1) теперь создают GtkSpinButton, GtkHScale и GtkVScale с page_size равным по умолчанию десяти. Разработчикам следуют проверять файлы Glade, чтобы быть уверенным, что это то что значение page size именно то, которое им требуется.
Создан новый класс GtkMountOperation для использования в g_volume_mount. GtkMountOperation действует как GMountOperation, но позволяет показать диалоговое окно для аутентификации пользователю, если это требуется.
Переносимый способ открытия файлов и URI в приложении, которое с ними связано, реализован с помощью функции gtk_show_uri(), которая теперь не зависит от libgnome. В GDK реализован GAppLaunchContext для работы с графическими приложениями (включая уведомление о запуске и предотвращение потери фокуса ввода), GdkAppLaunchContext, .
В GTK+ 2.14 для GtkFileChooser добавлено API, основанное на GFile, также GtkBuilder теперь может может строить интерфейс из частей дерева XML.
4.4 Библиотеки для обмена сообщениями
Наряду с новым клиентом обмена сообщениями (см. Раздел 2.1 ― Будь на связи), GNOME 2.24 включает библиотеки libempathy, libempathy-gtk и telepathy-glib, которые могут быть использованы для встраивания возможностей обмена сообщениями в любое приложение GNOME.
4.5 Deskbar
Интерфейс Найти совпадение включает два новых метода для задания маленького управляющего элемента. Если такая возможность поддерживается, под найденным объектом появляются область с дополнительными действиями и возможностями.
В интерфейсе Действие появился новый метод для отображения всплывающей подсказки. Используя этот метод, можно управлять подсказками при наведении мыши на действие.