Після шести місяців розробки опубліковано реліз багатоплатформного тулкіта для створення графічного інтерфейсу користувача - 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