След шест месеца разработка е публикуван релиз на многоплатформения тулкит за създаване на графичен потребителски интерфейс — 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 в прозорец на уеб браузър, е добавена поддръжка за модални прозорци.
- В класа GtkFileLauncher е предложен нов асинхронен API за замяна на gtk_show_uri.
- В утилитата gtk-builder-tool е подобрено обработването на шаблони.
- В виджета GtkSearchEntry е добавена поддръжка за текст за попълване, който се показва, когато полето не е запълнено и фокусът на въвеждане липсва.
- Добавен е клас GtkUriLauncher, който замества функцията gtk_show_uri, използвана за определяне на приложението, стартирано за показване на зададения URI, или за извеждане на грешка при липса на обработчик.
- В класа GtkStringSorter е добавена поддръжка за различни методи на 'колация', позволяващи извършване на сравнение и сортиране с оглед на смисъла на символите (например, при наличие на ударение).
- Голяма част от 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 е подобрена интеграцията с системните настройки.
- Форматът на отладъчния изход е унифициран.
- Лимитът на паметта за зареждане на изображения в JPEG формат е увеличен до 1 ГБ.
Източник: opennet.ru

