Доступен графический тулкит GTK 4.8

После восьми месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя — GTK 4.8.0. GTK 4 развивается в рамках нового процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.

Среди наиболее заметных улучшений в GTK 4.8:

  • Изменён стиль интерфейса выбора цветов (GtkColorChooser).

  • В интерфейсе выбора шрифтов (GtkFontChooser) улучшена поддержка возможностей формата OpenType.

  • В CSS-движке оптимизирована перегруппировка элементов, связанных с одним родителем, и разрешено использование нецелых значений при определении размера интервала между букв.

  • Данные Emoji обновлены до набора CLDR 40 (Unicode 14). Добавлена поддержка новых локалей.

  • В теме оформления обновлены пиктограммы и повышена разборчивость выделяемых текстовых меток.

  • В библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой, оптимизировано преобразование пиксельных форматов. На системах с драйверами NVIDIA задействовано EGL-расширение EGL_KHR_swap_buffers_with_damage.

  • В библиотеке GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan, реализована поддержка обработки больших видимых областей (viewport-ов). Предложены библиотеки для отрисовки глифов с использованием текстур.

  • Для Wayland реализована поддержка протокола «xdg-activation», который позволяет передать фокус между разными поверхностями первого уровня (например, при помощи xdg-activation одно приложение может переключить фокус на другое).
  • В виджете GtkTextView сокращено число ситуаций, приводящих к повторным перерисовкам, и реализована функция GetCharacterExtents для определения области с глифом, определяющим символ в тексте (функция востребована средствах для людей с ограниченными возможностями).

  • В классе GtkViewport, применяемом для организации прокрутки в виджетах, включён по умолчанию режим «scroll-to-focus», при котором содержимое автоматически прокручивается для поддержания на виду элемента, на который установлен фокус ввода.

  • В виджете GtkSearchEntry, показывающем область для ввода поискового запроса, предоставлена возможность настройки задержки между последним нажатием клавиши и отправкой сигнала об изменении содержимого (GtkSearchEntry: search-changed).

  • В виджет GtkCheckButton добавлена возможность назначения своего дочернего виджета с кнопкой.

  • В виджет GtkPicture добавлено свойство «content-fit» для адаптации содержимого под заданный размер области.

  • В виджете GtkColumnView проведена оптимизация производительности прокрутки.

  • В виджете GtkTreeStore разрешено извлечение древовидных данных из файлов в формате ui.

  • В класс GtkInscription, отвечающем за показ текста в определённой области, добавлен новый виджет для отображения списков. Добавлено демонстрационное приложение с примером использования GtkInscription.

  • В виджете GtkTreePopover добавлена поддержка прокрутки.

  • В виджете GtkLabel добавлена поддержка вкладок и предоставлена возможность активации меток через нажатие на привязанные к метке символы на клавиатуре.

  • В виджете GtkListView реализована поддержка свойств »:: n-items» и »:: item-type».

  • В системе ввода предоставлена поддержка обработчиков параметров размерности (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) прокрутки.

  • Для платформы macOS добавлена поддержка полноэкранного режима и воспроизведения видео с использованием OpenGL. Улучшено определение мониторов, работа в многомониторных конфигурациях, размещение окон и выбор размера для диалога работы с файлами. Для отрисовки задействованы CALayer и IOSurface. Обеспечен запуск приложений в фоновом режиме.

  • На платформе Windows улучшено размещение окон на экранах HiDPI, добавлен интерфейс определения цвета, реализована поддержка событий колеса мыши с высоким разрешением, улучшена поддержка тачпадов.

  • В утилиту gtk4-builder-tool добавлена команда screenshot для создания скриншота, которая задействована при генерации скриншотов для документации.

  • Обеспечена установки утилиты gtk4-node-editor.

  • Расширены возможности отладчика. Реализован показ дополнительных данных приложений и разрешён просмотр свойств PangoAttrList при инспектировании. Разрешено инспектирование инспекторов. Добавлена поддержка режима «GTK_DEBUG=invert-text-dir». Вместо переменной окружения GTK_USE_PORTAL предложен режим «GDK_DEBUG=portals». Повышена отзывчивость интерфейса инспектирования.

  • В бэкенд ffmpeg добавлена поддержка звука.

  • Лимит памяти в загрузчике изображений JPEG увеличен до 300 МБ.



Источник: http://www.opennet.ru/opennews/art.shtml? num=57741

© OpenNet