Выпуск графического тулкита GTK+ 3.24
4 сентября 2018 года
Подготовлен выпуск новой стабильной ветки многоплатформенного тулкита для создания графического интерфейса пользователя - 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-браузер на другой машине и получить доступ к интерфейсу данной программы).
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.