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

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

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

  • В виджете GtkFileChooserWidget с реализацией диалога, открываемого для выбора файлов в приложениях, реализован режим представления содержимого каталогов в форме сети значков. По умолчанию продолжает использоваться классическое представление в виде списка файлов, а для перехода в режим значков в правой части панели появилась отдельная кнопка.
    значков:

  • Добавлены новые классы GtkColorDialog, GtkFontDialog, GtkFileDialog и GtkAlertDialog с реализацией диалогов для выбора цветов, шрифтов и файлов, вывода предупреждений. Новые варианты отличаются переходом на более целостный и сбалансированный API, работающий в асинхронном режиме (GIO async).
  • Добавлен новый бэкенд CPDB (Common Printing Dialog Backend), предоставляющий типовые обработчики для использования в диалогах вывода на печать. Поддержка ранее используемого бэкенда вывода на печать lpr прекращена.
  • В библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой, предложена структура GdkTextureDownloader, которая задействована для загрузки текстур в классе GdkTexture и может применяться для преобразования различных форматов. Улучшено масштабирование текстур с использованием OpenGL.
  • В библиотеке GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan, реализована поддержка узлов с масками и настраиваемой фильтрации масштабируемых текстур.
  • Реализована поддержка новых версий расширений протоколов Wayland. Налажен вывод стартовых уведомлений при использовании протокола “xdg-activation“. Решены проблемы с размером курсора на экранах с высокой плотностью пикселей.
  • Класс GtkMountOperation адаптирован для работы в окружениях без X11.
  • В бэкенде Broadway, позволяющем отрисовывать вывод библиотеки GTK в окне web-браузера, добавлена поддержка модальных окон.
  • В классе GtkFileLauncher предложен новый асинхронный API для замены gtk_show_uri.
  • В диалогах GtkColorDialog, GtkFontDialog, GtkFileDialog, GtkAlertDialog по возможности и наличии задействованы порталы Freedesktop (xdg-desktop-portal), применяемые для организации доступа к ресурсам пользовательского окружения из изолированных приложений.
  • В утилите gtk-builder-tool улучшена обработка шаблонов.
  • В виджете GtkSearchEntry добавлена поддержка текста-заполнения, показываемого, когда поле не заполнено и отсутствует фокус ввода.
  • Добавлен класс GtkUriLauncher, который пришёл на смену функции gtk_show_uri, применяемой для определения приложения, запускаемого для отображения заданного URI, или вывода ошибки при отсутствии обработчика.
  • В классе GtkStringSorter добавлена поддержка разных методов “collation”, позволяющих выполнять сопоставление и сортировку с учётом смысла символов (например, при наличии знака ударения).
  • Переведена в разряд устаревших большая порция API и виджетов, которые решено не поддерживать в будущей ветке GTK5 и которые заменены на аналоги, работающие в асинхронном режиме:
    • GtkDialog (следует использовать GtkWindow)
    • GtkTreeView
    • GtkIconView (следует использовать GtkListView и GtkColumnView)
    • GtkComboBox (следует использовать GtkDropDown).
    • GtkAppChooser (следует использовать GtkDropDown).
    • GtkMessageDialog (следует использовать GtkAlertDialog).
    • GtkColorChooser (следует использовать GtkColorDialog и GtkColorDialogButton).
    • GtkFontChooser (следует использовать GtkFontDialog и GtkFontDialogButton).
    • GtkFileChooser (следует использовать GtkFileDialog).
    • GtkInfoBar
    • GtkEntryCompletion
    • GtkStyleContext
    • GtkVolumeButton
    • GtkStatusbar
    • GtkAssistant
    • GtkLockButton
    • gtk_widget_show/hide
    • gtk_show_uri
    • gtk_render_ и gtk_snapshot_render_
    • gtk_gesture_set_sequence_state
  • Переведён в разряд публичных интерфейс GtkAccessible, что позволяет подключать сторонние обработчики элементов интерфейса для людей с ограниченными возможностями. Добавлен интерфейс GtkAccessibleRange.
  • На платформе macOS обеспечена поддержка перетаскивания элементов мышью (DND, Drag-and-Drop).
  • Улучшена интеграция с системными настройками на платформе Windows.
  • Унифицирован формат отладочного вывода.
  • До 1 ГБ поднят лимит памяти для загрузчика изображений в формате JPEG.
Release. Ссылка here.