Релиз графического тулкита GTK+ 3.10.0
За день до выхода GNOME 3.10 доступен стабильный релиз новой ветки многоплатформенного тулкита для создания графического интерфейса пользователя — GTK+ 3.10.0. Ветка GTK+ 3.10 полностью обратно совместима с прошлыми выпусками GTK+ серии 3.x. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера. Код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. С тех пор, как GTK+ был разработан в рамках проекта GIMP, тулкит используется в различных проектах, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce или используется в таких продуктах, как Firefox и OpenOffice/LibreOffice.
GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив Gtk-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).
Из добавленных в GTK+ 3.10.0 улучшений можно отметить:
В бэкенде, обеспечивающем возможность работы поверх дисплейного сервера Wayland, добавлена поддержка протокола Wayland 1.2. Код Wayland-бакеда отмечен как практически завершённый и готовый к реальному применению. В частности, добавлена поддержка максимизации окон, анимированных курсоров, многомониторных конофигураций, настроек и использования собственных поверхностей (custom surfaces). Также реализована поддержка протокола синхронизации кадров, позволяющего учитывать готовность вывода при отрисовке композитным менеджером; Расширены возможности бэкенда Broadway, позволяющего отрисовывать вывод библиотеки GTK3+ в окне web-браузера. В новом выпуске улучшена обработка размера окна, добавлена поддержка синхронизации кадров, реализована аутентификация входа по паролю, обеспечена возможность сборки на платформе Windows; В бэкенд для операционной системы OS X добавлена поддержка нативных методов ввода; Поддержка дочерних обработчиков композитинга (composite children) в GtkWidget, что позволяет создавать сложные виджеты на основе ui-файлов, созданных в GtkBuilder. Существующие сложные виджеты переведены на использованием новой схемы; Поддержка декорации на стороне клиента, что позволило обеспечить такие возможности как оформление области заголовка на стороне приложения. Поддержка масштабирования вывода для экранов свервысокого разрешения; Режим тонкой регулировки скроллинга, делающий прокрутку более предсказуемой и отзывчивой, а также позволяющий создавать такие функции как автоматическая прокрутка; Новый виджет GtkHeaderBar, похожий на GtkBox, но отличающийся дополнительными возможностями по центрированию дочерних элементов (обычно заголовка), независимо от другого контента; Новый виджет GtkPlacesSidebar с реализацией боковой панели для диалогов выбора файлов. Виджет может быть использован совместно с Nautilus; Новый виджет GtkStack, предоставляющий альтернативный к GtkNotebook метод для отображения одного из набора дочерних виджетов. При переключении между виджетами используется анимированный переход. Для использования вкладок можно использовать дополнительный виджет GtkStackSwitcher; Новый виджет GtkRevealer для скрытия и показа дочерних виджетов с использованием анимационного эффекта; Новый виджет GtkSearchBar с реализацией всплывающей панели поиска; Новый виджет GtkListBox предоставляющий контейнер для отсортированного и отфильтрованного вывода списков; Управление геометрией: Добавлена поддержка механизма базового распределения размеров, позволяющего виджетам экспортировать содержимое текстовых данных и адаптировать для их размещения обрамляющие их контейнеры, которые будут выровнены в соответствии с общей компоновкой элементов. Для объектов GtkEventBox и GtkCheckButton добавлена поддержка адаптации высоты к ширине; Прекращение поддержки протокола Motif DND, использования нескольких экранов на один дисплей, функций gdk_window_get_display и gtk_widget_push_composite_child, отделяемых элементов меню и некоторых настроек GTK+. Кроме того, объявлены устаревшими элементы API GtkIconFactory, GtkIconSet, GtkIconSource, GtkImageMenuItem, GtkAction и GtkUIManager, поддержка которых будет прекращена в GTK+ 4.
© OpenNet