Пасля шасці месяцаў распрацоўкі апублікаваны рэліз шматплатформеннага тулкіта для стварэння графічнага інтэрфейсу карыстача – 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.
Крыніца: opennet.ru