Что нового для разработчиков
Следующие изменения важны для разработчиков, использующих среду GNOME 2.28 для разработки. Если вас не интересуют изменения для разработчиков, вы можете перейти к Раздел 6 ― Интернационализация.
GNOME 2.28 это не только рабочий стол, но и последняя версия платформы разработки GNOME, набора библиотек API и ABI, доступных под лицензией GNU LGPL, которые можно использовать для разработки кросс-платформенных приложений.
Начиная с GNOME версии 3.0, различные устаревшие компоненты GNOME будут удалены. Эти устаревшие компоненты включают в себя такие библиотеки, как libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas libgnomeprint, libgnomeprintui, libgnomeui и libgnomevfs. Для приложений, являющихся частью рабочего стола GNOME, задачи по очистке позволят убедиться, что устаревший код более не используется. Это позволит сделать переход на GNOME 3.0 более плавным.
Разработчикам настоятельно рекомендуется следовать этому примеру в своих приложениях. Кроме того, для любых разработчиков (или потенциальных разработчиков), которые хотят нам помогать, на вики-странице цели GNOME перечислены различные задачи , которые ещё не завершены. Автоматически создаваемый и обновляемый обзор текущего состояния оставшихся работ для модулей, которые поддерживаются утилитой сборки jhbuild, можно найти здесь.
- 5.1. Очистка платформы
- 5.2. GTK+ 2.18
- 5.3. GLib
- 5.4. Документация GNOME
- 5.5. GNOME Bluetooth
- 5.6. Веб-браузер Epiphany
- 5.7. Апплет слежения за временем
- 5.8. Медиа GNOME
- 5.9. Totem
- 5.10. Vinagre
- 5.11. Brasero
5.1 Очистка платформы
На пути к GNOME 2.30 были приложены большие усилия по удалению устаревших модулей.
В GNOME 2.28 больше нет ни одного приложения, зависящего от esound, libgnomevfs, libgnomeprint, или libgnomeprintui.
Другие улучшения в GNOME 2.28:
- Из двух модулей (eog и gtkhtml) удалена зависимость от libart_lgpl.
- Из пяти модулей (gnome-control-center, gcalctool, gnome-media, gtkhtml, и accerciser) удалена зависимость от libbonobo(ui).
- Из 28 модулей (accerciser, alacarte, gnome-control-center, dasher, empathy, gcalctool, gnome-games, gnome-netstatus, gnome-nettool, gnome-mag, gnome-menus, gnome-panel, gnome-power-manager, gnome-screensaver, gnome-session, gnome-settings-daemon, gnome-system-tools, gnome-utils, gtkhtml, hamster-applet, libgnomekbd, orca, pessulus, seahorse, vino, vinagre, yelp, и zenity) удалена зависимость от libglade.
- Из 14 модулей (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino, и yelp) удалена зависимость от libgnome.
- Из трёх модулей (anjuta, gtkhtml, and zenity) удалена зависимость от libgnomecanvas.
- Из модуля gnome-games удалена зависимость от libgnomeprint(ui).
- Из 16 модулей (anjuta, gnome-control-center, dasher, deskbar-applet, gnome-mag, gnome-media, gnome-settings-daemon, gnome-system-tools, gnome-utils, gok, gtkhtml, hamster-applet, nautilus, orca, vino, и yelp) удалена зависимость от libgnomeui.
- Из трёх модулей (dasher, gnome-mag, и gnome-utils) удалена зависимость от libgnomevfs.
- Многие модули предоставляют теперь более аккуратный и чистый вывод сборочной информации при компиляции с использованием AM_SILENT_RULES или Shave. Подробнее см. http://live.gnome.org/GnomeGoals/NicerBuilds.
- Некоторые модули запускаются с помощью GIntrospection — подробнее см. http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport .
Многие приложения перестали использовать устаревшие символы GTK+ и GLib и используют новую политику: включать заголовки GTK+ и GLib только верхних уровней.
5.2 GTK+ 2.18
GTK+ 2.18 — это самый свежий выпуск инструментария GTK+, сердца GNOME. GTK+ 2.18 содержит новые возможности для разработчиков, множество исправлений ошибок, а также проведены подготовительные работы в ожидании грядущего GTK+ 3.0.
Диалоговое окно выбора файлов имеет множество улучшений. Теперь оно сохраняет состояние упорядочивания, имеет удобные настройки по умолчанию, например, оно скрывает файлы резервных копий и показывает столбец «Размер». Часть текста, не уместившегося в панели пути, заменяется многоточием.
В GTK+ также были внесены и другие улучшения:
- Виджет GtkEntry теперь может отображать индикатор выполнения.
- GtkEntry поддерживает шаблон вид-представление.
- GtkLabel может отображать встроенные URI.
- Доступна печать выделенного фрагмента.
- Настройка свойств страницы теперь встроена в диалог печати.
- Значки состояния имеют свойство заголовка.
- Добавлен новый виджет GtkInfoBar, который показывает сообщения в главном окне вместо диалогового окна.
- GTK может быть скомпилирован с новой версией automake (automake 1.7 больше не требуется) и в «тихом» режиме с помощью команды «make V=0».
5.3 GLib
GNIO объединён в GIO, включены API для работы с адресами IPv4 и IPv6, разрешения имён хостов, обратным поиском IP, низкоуровневым сокетом ввода-вывода и работы с сетевыми соединениями и службами.
GArray, GMappedFile и GTree поддерживают подсчёт ссылок.
Основной цикл поддерживает предпотоковые контексты по умолчанию.
Добавлена поддержка чтения-записи с помощью GIOStream и его подклассами.
GLib теперь включает поддержку метаданных для каждого файла.
5.4 Документация GNOME
В Yelp и gnome-doc-utils добавлена поддержка Mallard, нового XML-языка для документации GNOME.
Для технических писателей документации Mallard является полнофункциональным языком разметки, предназначенным специально для тематических справок. Этот язык проще, чем Docbook.
Справка Empathy — это первая документация GNOME, написанная на языке Mallard. Это также первая документация выпущенная под лицензией Creative Commons Share-Alike 3.0, на которую в будущем будет переведена вся документация GNOME.
5.5 GNOME Bluetooth
Добавлена поддержка модулей, которая доступна во время настройки устройства. Это предоставляет возможность приложениям GNOME использовать устройства Bluetooth.
Добавлены современные виджеты выбора устройств Bluetooth, включая кнопку и виджет выбора.
5.6 Веб-браузер Epiphany
С переходом Epiphany на Webkit, разработчики Epiphany получили большое количество улучшений.
WebKitGTK+ обладает чрезвычайно быстрой обработкой Javascript, GObject API, и встроенным веб-инспектором. Epiphany также включает новую поддержку расширений Seed (JavaScript), и с добавлением этого дополнения поддержка Python была удалена.
Для реализации HTTP Epiphany использует libsoup, и прокси теперь работает так же через GNOME. В libsoup отсутствуют следующие возможности: кэш HTTP и кодировка содержимого.
И наконец, контекстное меню Epiphany пока ещё не настраивается, поэтому используется вид WebKit по умолчанию.