Подготовлен (https://gitlab.gnome.org/GNOME/gtk/tags) выпуск (https://download.gnome.org/sources/gtk+/3.24/) новой стабильной ветки многоплатформенного тулкита для создания графического интерфейса пользователя - GTK+ 3.24.0 (http://www.gtk.org), сформированный после двух лет существования ветки 3.22 и применения эмбарго на формирование значительных релизов GTK 3.x, вносящих изменения на уровне API.
При разработке GTK+ 3.24 работа в основном была сосредоточена на точечном расширении API без нарушения обратной совместимости, что позволяет использовать GTK+ 3.24 в качестве замены GTK+ 3.22 не опасаясь подводных камней (дистрибутивам рекомендован переход на GTK+ 3.24). Сопровождение отныне переключено на ветку GTK+ 3.24.x, а корректирующие выпуски GTK+ 3.22.x больше выпускаться не будут. GTK+ 3.24 станет последним выпуском ветки GTK+ 3, что символично, так как GTK+ 2.24 был последним выпуском ветки GTK+ 2.
Изначально, выпуск GTK+ 3.22 намечался как финальный, фиксирующий изменения в ветке 3.x и поддерживаемый три года без изменения API. Но разработка GTK 4 затянулась и было решено подготовить ещё один значительный релиз GTK+ 3.24, бэкпортировав в него некоторые новшества. Ветка GTK+ 4 развивается в рамках нового процесса разработки, целью которого является предоставление разработчикам приложений стабильного API, поддерживаемого в течение нескольких лет. GTK+ 4 можно будет использовать не опасаясь, что каждые полгода придётся переделывать приложение из-за изменения API в очередной ветке GTK+.
Наиболее заметные новшества (https://download.gnome.org/sources/gtk+/3.23/) GTK+ 3.24.0 (https://developer.gnome.org/gdk3/stable/):
- Добавлена поддержка изменчивых шрифтов (https://www.opennet.ru/opennews/art.shtml?num=47217) и новые возможности настройки шрифтов. Добавлены новые опции для настройки шрифтов OpenType, применения режимов OpenType, изменения высоты и ширины изменчивых шрифтов, управления уровнем детализации. Примеры текста теперь отображаются в режиме реального времени, обновляясь по мере изменения параметров шрифта;
- Добавлена поддержка Emoji, реализован всплывающий виджет для выбора Emoji и режим ввода Emoji с клавиатуры (Ctrl-Shift-E). Для виджетов на базе GtkEntry также добавлено свойство "enable-emoji-completion", при активации которого не работает Ctrl-Shift-E, но можно вводить специальные идентификаторы Emoji, например, ввод ":cartwheel:" приведёт к отображению символа "🤸";
- Для упрощения миграции приложений на GTK4 в GtkEventController добавлено несколько подклассов для более тонкого управления событиями ввода (event controller): GtkEventControllerKey, GtkEventControllerMotion, GtkEventControllerScroll и GtkGestureStylus;
- В GtkApplication реализована возможность отслеживания состояния хранителя экрана;
- В число публично доступных API переведён вызов gdk_window_move_to_rect;
- Бэкенд для Wayland переведён на использование анонимной разделяемой памяти на платформе FreeBSD.
- Объявлены устаревшими цепочки установки фокуса в GtkContainer и режим повышенной точности в GtkRange. Удалена тема оформления Raleigh;
- Возобновлена поддержка определения цвета произвольных элементов интерфейса. Текущая реализация может работать как через интерфейс создания скриншотов (screnshot portal), так и через API gnome-shell;
- В GtkModelButtons добавлена поддержка разметки;
- В GtkPlacesSidebar добавлен индикатор прогресса выполнения операций монтирования;
- В бэкенд, обеспечивающий работу поверх дисплейного сервера Wayland,
добавлена поддержка протоколов ввода gtk-text-input и text-input-unstable-v3, решены проблемы с согласованием состояния декорирования окон, обеспечено масштабирование курсора при необходимости;
- Для платформы Windows добавлен компонент рендеринга на базе EGL, построенный на основе библиотеки ANGLE, обеспечивающей работу поверх специфичных для разных систем API (транслирует вызовы в OpenGL, Direct3D 9 и Direct3D 11);
Напомним, что код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce, и используется в таких продуктах, как GIMP и Firefox.
GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade (http://glade.gnome.org/) позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив GTK-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).
URL: https://gitlab.gnome.org/GNOME/gtk/tags
Новость: https://www.opennet.ru/opennews/art.shtml?num=49222