Po sześciu miesiącach rozwoju wydano wieloplatformowy zestaw narzędzi GUI GTK 4.10.0. GTK 4 jest rozwijany w ramach nowego procesu rozwoju, którego celem jest zapewnienie programistom aplikacji stabilnego i obsługiwanego API na kilka lat, z którego mogą korzystać bez konieczności przerabiania swoich aplikacji co sześć miesięcy z powodu zmian API w kolejnej gałęzi GTK.
Do najbardziej znaczących ulepszeń w GTK 4.10 należą:
- W widżecie GtkFileChooserWidget z implementacją okna dialogowego otwieranego do wybierania plików w aplikacjach zaimplementowano tryb prezentacji zawartości katalogów w postaci sieci ikon. Domyślnie nadal używany jest klasyczny widok w postaci listy plików, a w prawej części panelu pojawił się osobny przycisk ikony do przełączania się w tryb ikon:

- Dodano nowe klasy GtkColorDialog, GtkFontDialog, GtkFileDialog i GtkAlertDialog wraz z implementacją okien dialogowych do wybierania kolorów, czcionek i plików oraz wyświetlania ostrzeżeń. Nowe warianty oferują przejście do bardziej holistycznego i zrównoważonego API działającego w trybie asynchronicznym (GIO async). Nowe okna dialogowe, o ile to możliwe i dostępne, wykorzystują portale Freedesktop (xdg-desktop-portal), które służą do organizowania dostępu do zasobów środowiska użytkownika z odizolowanych aplikacji.
- Dodano nowy backend CPDB (Common Printing Dialog Backend), zapewniający ogólne programy obsługi do użycia w oknach dialogowych drukowania. Wsparcie dla poprzednio używanego backendu drukowania lpr zostało przerwane.
- Biblioteka GDK, która zapewnia warstwę między GTK a podsystemem graficznym, oferuje strukturę GdkTextureDownloader, która służy do pobierania tekstur w klasie GdkTexture i może być używana do konwersji między różnymi formatami. Ulepszone skalowanie tekstur za pomocą OpenGL.
- Biblioteka GSK (GTK Scene Kit), która umożliwia renderowanie scen graficznych za pośrednictwem OpenGL i Vulkan, zapewnia obsługę węzłów masek i niestandardowe filtrowanie skalowalnych tekstur.
- Zaimplementowano obsługę nowych wersji rozszerzeń protokołu Wayland. Dostosowano wyjście powiadomień startowych podczas korzystania z protokołu „xdg-activation”. Rozwiązano problemy z rozmiarem kursora na ekranach o dużej gęstości pikseli.
- Klasa GtkMountOperation jest dostosowana do pracy w środowiskach innych niż X11.
- W zapleczu Broadway, umożliwiającym renderowanie wyników biblioteki GTK w oknie przeglądarki internetowej, dodano obsługę okien modalnych.
- Klasa GtkFileLauncher udostępnia nowy asynchroniczny interfejs API zastępujący gtk_show_uri.
- Narzędzie gtk-builder-tool usprawniło przetwarzanie szablonów.
- Widżet GtkSearchEntry obsługuje teraz tekst zastępczy, który jest wyświetlany, gdy pole jest puste i nie ma fokusu wprowadzania danych.
- Dodano klasę GtkUriLauncher, która zastępuje funkcję gtk_show_uri służącą do określania aplikacji, która ma zostać uruchomiona w celu wyświetlenia danego identyfikatora URI, lub do wyświetlenia błędu w przypadku braku obsługi.
- Klasa GtkStringSorter obsługuje teraz różne metody „sortowania”, które umożliwiają porównywanie i sortowanie na podstawie znaczenia znaków (na przykład obecności akcentu).
- Duża część interfejsów API i widżetów została uznana za przestarzałą i nie będzie obsługiwana w przyszłej gałęzi GTK5. Zostały one zastąpione podobnymi, które działają w trybie asynchronicznym:
- GtkDialog (powinien używać GtkWindow).
- GtkTreeView (powinien używać GtkListView i GtkColumnView).
- GtkIconView (powinien używać GtkGridView).
- GtkComboBox (powinien używać GtkDropDown).
- GtkAppChooser (powinien używać GtkDropDown).
- GtkMessageDialog (powinien używać GtkAlertDialog).
- GtkColorChooser (powinien używać GtkColorDialog i GtkColorDialogButton).
- GtkFontChooser (powinien używać GtkFontDialog i GtkFontDialogButton).
- GtkFileChooser (powinien używać GtkFileDialog).
- Pasek informacyjny GtkInfo
- Ukończenie wpisu Gtk
- Kontekst stylu Gtk
- Przycisk GtkVolume
- Pasek stanu Gtk
- Asystent Gtk
- Przycisk blokady Gtk
- Pokaż/ukryj gtk_widget
- gtk_show_uri
- gtk_render_ i gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- Interfejs GtkAccessible został przeniesiony do kategorii publicznej, co pozwala na łączenie zewnętrznych handlerów elementów interfejsu dla osób niepełnosprawnych. Dodano interfejs GtkAccessibleRange.
- Platforma macOS Zapewniono obsługę przeciągania i upuszczania elementów za pomocą myszy (DND, Drag-and-Drop).
- Platforma Windows Ulepszona integracja z ustawieniami systemowymi.
- Ujednolicono format wyjściowy debugowania.
- Limit pamięci dla programu ładującego obrazy JPEG został zwiększony do 1 GB.
Źródło: opennet.ru

