Po sześciu miesiącach prac opublikowano wieloplatformowy zestaw narzędzi do tworzenia graficznego interfejsu użytkownika - GTK 4.10.0. GTK 4 jest opracowywane w ramach nowego procesu rozwojowego, który ma na celu zapewnienie twórcom aplikacji stabilnego i wspieranego API na kilka lat, z którego można korzystać bez obawy konieczności przepisywania aplikacji co sześć miesięcy ze względu na zmiany API w następnym GTK oddział.
Do najbardziej znaczących ulepszeń w GTK 4.10 należą:
- Widget GtkFileChooserWidget implementujący okno dialogowe otwierające się w celu wyboru plików w aplikacjach, implementuje tryb prezentacji zawartości katalogów w postaci sieci ikon. Domyślnie nadal używany jest klasyczny widok w postaci listy plików, a po prawej stronie panelu pojawił się osobny przycisk umożliwiający przejście do trybu ikon. ikony:
- Dodano nowe klasy GtkColorDialog, GtkFontDialog, GtkFileDialog i GtkAlertDialog wraz z implementacją okien dialogowych umożliwiających wybór kolorów, czcionek i plików oraz wyświetlanie ostrzeżeń. Nowe opcje wyróżniają się przejściem na bardziej całościowe i zrównoważone API, które działa w trybie asynchronicznym (GIO async). W nowych oknach dialogowych, jeśli jest to możliwe i dostępne, wykorzystywane są portale Freedesktop (xdg-desktop-portal), które służą do organizowania dostępu do zasobów środowiska użytkownika z izolowanych aplikacji.
- Dodano nowy CPDB (Common Printing Dialog Backend), udostępniający standardowe procedury obsługi do użycia w oknach dialogowych drukowania. Wcześniej używany backend drukowania lpr został wycofany.
- Biblioteka GDK stanowiąca warstwę pomiędzy GTK a podsystemem graficznym oferuje strukturę GdkTextureDownloader, która służy do ładowania tekstur w klasie GdkTexture i może służyć do konwersji różnych formatów. Ulepszone skalowanie tekstur przy użyciu OpenGL.
- Biblioteka GSK (GTK Scene Kit), która zapewnia możliwość renderowania scen graficznych poprzez OpenGL i Vulkan, obsługuje węzły z maskami i niestandardowe filtrowanie skalowalnych tekstur.
- Zaimplementowano obsługę nowych wersji rozszerzeń protokołu Wayland. Dostosowano wyświetlanie powiadomień o uruchomieniu 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 przystosowana do pracy w środowiskach innych niż X11.
- Backend Broadway, który pozwala renderować dane wyjściowe biblioteki GTK w oknie przeglądarki internetowej, dodał obsługę okien modalnych.
- Klasa GtkFileLauncher oferuje nowy asynchroniczny interfejs API zastępujący gtk_show_uri.
- Narzędzie gtk-builder-tool usprawniło przetwarzanie szablonów.
- Widget GtkSearchEntry dodał obsługę tekstu wypełniającego, wyświetlanego, gdy pole jest puste i nie ma fokusu wejściowego.
- Dodano klasę GtkUriLauncher, która zastępuje funkcję gtk_show_uri, służącą do określenia, która aplikacja zostanie uruchomiona w celu wyświetlenia danego URI lub zgłosi błąd w przypadku braku procedury obsługi.
- Klasa GtkStringSorter dodała obsługę różnych metod „sortowania”, dzięki czemu można przeprowadzać dopasowywanie i sortowanie na podstawie znaczenia znaków (na przykład, gdy występuje znak akcentu).
- Duża część interfejsów API i widżetów została zdeprecjonowana, których zdecydowano nie wspierać w przyszłej gałęzi GTK5 i które zastąpiono analogami działającymi w trybie asynchronicznym:
- GtkDialog (należy użyć GtkWindow).
- GtkTreeView (należy użyć GtkListView i GtkColumnView) .
- GtkIconView (należy użyć GtkGridView).
- GtkComboBox (należy użyć GtkDropDown).
- GtkAppChooser (należy użyć GtkDropDown).
- GtkMessageDialog (należy użyć GtkAlertDialog).
- GtkColorChooser (należy użyć GtkColorDialog i GtkColorDialogButton).
- GtkFontChooser (należy użyć GtkFontDialog i GtkFontDialogButton).
- GtkFileChooser (należy użyć GtkFileDialog).
- GtkInfoBar
- Zakończenie GtkEntry
- Kontekst GtkStyle
- Przycisk GtkVolume
- Pasek stanu Gtk
- Asystent Gtk
- Przycisk GtkLock
- gtk_widget_show/hide
- gtk_show_uri
- gtk_render_ i gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- Interfejs GtkAccessible został przeniesiony do kategorii publicznej, co pozwala na podłączenie zewnętrznych modułów obsługi elementów interfejsu dla osób niepełnosprawnych. Dodano interfejs GtkAccessibleRange.
- Platforma macOS zapewnia obsługę przeciągania elementów za pomocą myszki (DND, Drag-and-Drop).
- Na platformie Windows poprawiono integrację z ustawieniami systemowymi.
- Ujednolicono format wyjściowy debugowania.
- Limit pamięci dla narzędzia do przesyłania obrazów JPEG został zwiększony do 1 GB.
Źródło: opennet.ru