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

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

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

  • Удалён старый движок отрисовки на базе OpenGL, на смену которому пришёл новый движок NGL, поставляемый по умолчанию начиная с GTK 4.2 и обеспечивающий более высокую производительность. NGL переименован в GL. Переписан код загрузки текстур, улучшена поддержка форматов изображений и цветовых пространств.
  • Значительно переделан код, связанный с вычислением размеров элементов и компоновкой виджетов. Раньше свойства GtkWidget::halign и GtkWidget::valign при размещении элементов отталкивались от размера виджетов по умолчанию, что при указании только одного размера в режиме заполнения области могло приводить к занятию элементом дополнительного пространства. В GTK 4.6 реализована возможность относительного измерения недостающего размера (например, если задана ширина, при размещении может учитываться доступная высота), что позволяет сделать виджеты более тонкими без занятия лишнего пространства.
    Доступен графический тулкит GTK 4.6
    Доступен графический тулкит GTK 4.6
  • В виджете GtkBox реализована возможность вычисления индивидуального размера дочерних элементов. Если раньше пространство распределялось поровну между дочерними виджетами на основе их размера по умолчанию, то в GTK 4.6 при выводе реализован учёт фактического размера дочерних элементов.
  • В виджете GtkLabel реализована поддержка переноса текста на произвольное число строк, что позволяет создавать узкие метки, занимающие доступное вертикальное пространство.
  • В класс GtkWindow добавлена возможность подгонки минимального размера к коэффициенту соотношения сторон, что позволяет произвольно изменять размер окна, не опасаясь, что оно будет слишком мелким. Добавлено свойство «Window.titlebar».
  • Добавлено новое предупреждение, информирующее о несоответствии размеров в случае возвращения виджетом некорректного размера. Gtk-CRITICAL **: 00:48:33.319: gtk_widget_measure: assertion ‘for_size >= minimum opposite size’ failed: 23 >= 42
  • В виджете GtkTextView добавлена поддержка табуляции, выровненной по правой границе или по центру. Добавлена поддержка преобразования текста и учёта высоты строки. Улучшена операция прокрутки до указанной метки. Улучшена обработка отмены изменений. Решены проблемы при вставке текста из буфера обмена и с выбором места для показа интерфейса вставки Emoji.
  • В виджете GtkMenuButton предоставлена возможность определения собственных дочерних элементов.
  • В GtkBuilder ускорена предкомпиляция шаблонов.
  • Добавлен сигнал activate для активации виджетов GtkComboBox и GtkDropDown.
  • В виджет GtkDropDown добавлено свойство show-arrow для управления показом стрелки.
    Доступен графический тулкит GTK 4.6
  • В GtkPopoverMenu добавлен атрибут use-markup для использования Pango-разметки в тексте меню.
  • В системе стилей реализована поддержка CSS-свойств font-variant-caps для отображения мелких заглавных букв и text-transform для трансформации текста.
  • Добавлен интерфейс GtkSymbolicPaintable для управления цветом символьных пиктограмм.
  • В интерфейс инспектирования добавлена поддержка отслеживания операций Drag-and-Drop, обеспечен показ текущего модуля ввода, добавлен просмотрщик содержимого буфера обмена, реализован график для визуализации gtk_widget_measure(), обеспечена возможность журналирования событий. В утилиту gtk4-node-editor добавлена поддержка режима Drag-and-Drop.
  • Для Wayland реализована настройка для активации режима высокого контраста (high-contrast). Добавлена поддержка протокола wl_seat v7.
  • Добавлена настройка gtk-hint-font-metrics для приближения отрисовки текста к поведению GTK3.
  • Для систем на базе X11 добавлена поддержка управляющих жестов на тачпадах (при использовании XInput 2.4) и улучшено поведение перетаскивания окон за заголовок.
  • В библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой, улучшена проверка версий OpenGL и OpenGL ES. Добавлена поддержка цветового пространства HSL. При загрузке текстур и обработке форматов изображений напрямую задействованы библиотеки libpng, libjpeg и libtiff. Код инициализации EGL перенесён на сторону фронтэнда. Добавлены новые API: gdk_texture_new_from_bytes, gdk_texture_new_from_filename, gdk_texture_download_float, gdk_texture_save_to_png_bytes, gdk_texture_save_to_tiff, gdk_texture_save_to_tiff_bytes и gdk_display_create_gl_context.
  • Ветка «master» в Git-репозитории переименована в «main».

Источник: opennet.ru

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