Найти тему
Проект OpenNet

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

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

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

  • В виджете GtkFileChooserWidget с реализацией диалога, открываемого для выбора файлов в приложениях, реализован режим представления содержимого каталогов в форме сети значков. По умолчанию продолжает использоваться классическое представление в виде списка файлов, а для перехода в режим значков в правой части панели появилась отдельная кнопка. значков:
  • Добавлены новые классы GtkColorDialog, GtkFontDialog, GtkFileDialog и GtkAlertDialog с реализацией диалогов для выбора цветов, шрифтов и файлов, вывода предупреждений. Новые варианты отличаются переходом на более целостный и сбалансированный API, работающий в асинхронном режиме (GIO async). В новых диалогах по возможности и при наличии задействованы порталы Freedesktop (xdg-desktop-portal), применяемые для организации доступа к ресурсам пользовательского окружения из изолированных приложений.
  • Добавлен новый бэкенд 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.
  • В утилите gtk-builder-tool улучшена обработка шаблонов.
  • В виджете GtkSearchEntry добавлена поддержка текста-заполнения, показываемого, когда поле не заполнено и отсутствует фокус ввода.
  • Добавлен класс GtkUriLauncher, который пришёл на смену функции gtk_show_uri, применяемой для определения приложения, запускаемого для отображения заданного URI, или вывода ошибки при отсутствии обработчика.
  • В классе GtkStringSorter добавлена поддержка разных методов "collation", позволяющих выполнять сопоставление и сортировку с учётом смысла символов (например, при наличии знака ударения).
  • Переведена в разряд устаревших большая порция API и виджетов, которые решено не поддерживать в будущей ветке GTK5 и которые заменены на аналоги, работающие в асинхронном режиме:GtkDialog (следует использовать GtkWindow).
    GtkTreeView (следует использовать GtkListView и GtkColumnView) .
    GtkIconView (следует использовать GtkGridView).
    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.