Выпуск графического тулкита GTK+ 3.24

Подготовлен выпуск новой стабильной ветки многоплатформенного тулкита для создания графического интерфейса пользователя — GTK+ 3.24.0, сформированный после двух лет существования ветки 3.22 и применения эмбарго на формирование значительных релизов GTK 3.x, вносящих изменения на уровне API.

При разработке GTK+ 3.24 работа в основном была сосредоточена на точечном расширении API без нарушения обратной совместимости, что позволяет использовать GTK+ 3.24 в качестве замены GTK+ 3.22. Сопровождение отныне переключено на ветку GTK+ 3.24.x, а корректирующие выпуски GTK+ 3.22.x больше выпускаться не будут (дистрибутивам рекомендован переход на GTK+ 3.24). 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+.

Наиболее заметные новшества GTK+ 3.24.0:

  • Добавлена поддержка изменчивых шрифтов и новые возможности настройки шрифтов. Добавлены новые опции для настройки шрифтов 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;
  • Объявлены устаревшими цепочки установки фокуса в GtkContainer и режим повышенной точности в GtkRange. Удалена тема оформления Raleigh;
  • Возобновлена поддержка определения цвета произвольных элементов интерфейса (color picker). Текущая реализация может работать как через интерфейс создания скриншотов (screnshot portal), так и через API gnome-shell;
  • В GtkModelButtons добавлена поддержка разметки;
  • В GtkPlacesSidebar добавлен индикатор прогресса выполнения операций монтирования;
  • В бэкенд, обеспечивающий работу поверх дисплейного сервера Wayland,
    добавлена поддержка протоколов ввода gtk-text-input и text-input-unstable-v3, решены проблемы с согласованием состояния декорирования окон, обеспечено масштабирование курсора при необходимости. На платформе FreeBSD бэкенд для Wayland переведён на использование анонимной разделяемой памяти;

  • Для платформы Windows добавлен компонент рендеринга на базе EGL, построенный на основе библиотеки ANGLE, обеспечивающей работу поверх специфичных для разных систем API (транслирует вызовы Open GL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan).

Напомним, что код GTK+ развивается в рамках проекта GNU и распространяется под лицензией LGPL, что позволяет использовать GTK+ не только для разработки свободного ПО, но и для создания проприетарных приложений, не требуя от производителей закрытых программ выплаты роялти или покупки специальной лицензии. В состав тулкита входит полный набор виджетов, позволяющих использовать GTK+ для проектов различного уровня и размера, например, GTK+ лежит в основе десктоп-окружений GNOME и Xfce, и используется в таких продуктах, как GIMP и Firefox.

GTK+ спроектирован для поддержки не только C/C++, но и других языков программирования, таких как Perl и Python, что в сочетании с использованием визуального построителя интерфейса Glade позволяет существенно упростить разработку и сократить время написания графических интерфейсов. Организация вывода в GTK+ абстрагирована от типа оконных систем, например, поставляется бэкенд, обеспечивающий возможность работы поверх дисплейного сервера Wayland, а также бэкенд, позволяющий отрисовывать вывод библиотеки GTK+ в окне web-браузера (запустив GTK-приложение на одной машине, можно открыть web-браузер на другой машине и получить доступ к интерфейсу данной программы).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.