Ostateczna wersja GTK 3.99 została już wydana iw nim będęnp. różne implementacje, do których są skierowane ulepszenia, które mają być oferowane w ramach GTK4.
Gałąź GTK 4 jest rozwijane w ramach nowego procesu rozwój tego staraj się zapewnić programistom aplikacji stabilne i zgodne API od kilku lat można go używać bez obaw, że co pół roku będziesz musiał przerabiać aplikacje ze względu na zmiany API w kolejnej wersji GTK.
Co nowego w GTK 3.99?
W nowej wydanej wersji GTK 3.99 jest usunięto starą implementację API ułatwień dostępu dla osób niepełnosprawnych oraz zamiast tego zaproponowano nową wersję opartą na specyfikacji ARIA i widżet GtkAccessible.
Dla Windowsa, zaproponowano nowy backend renderujący GDK oparty na ANGLE, warstwa pośrednia do tłumaczenia wywołań OpenGL ES na OpenGL, Direct3D 9/11, Desktop GL i Vulkan. Podczas gdy dla macOS został dodany nowy backend GDK.
Kolejną z wprowadzonych zmian jest obsługa edytowalnych etykiet (GtkEditableLabel) oraz Zaproponowano nowe modele list do wyświetlania zakładek (GtkBookmarkList), Strings (GtkStringList) i Select Boxes (GtkBitset), a widżet GtkTreeView implementuje możliwość edycji komórek.
Z innych zmian w tej wersji:
- GtkGridView i GtkListView mają ulepszoną implementację przewijania, dodano obsługę automatycznego przewijania i automatycznego przesuwania.
- GtkWidget znacznie przyspieszył przetwarzanie różnych działań.
- Dodano obsługę przyrostowego przewijania i filtrowania do GtkFilterListModel i GtkSortListModel.
- Inspektor dodaje obsługę inspekcji modeli list i możliwość bezpośredniego nawigowania między obiektami.
- W GDK zapisywana jest historia przemieszczeń, wyczyszczono API GdkDevice, zatrzymano podział urządzeń na master i slave.
Czego oczekuje się od GTK4?
Jeśli chodzi o zmiany, które są oczekiwane w GTK4 (które ma się ukazać między październikiem a listopadem tego roku) to na przykład metoda projektowania wiązań, w którym położenie i rozmiar elementów potomnych są określane na podstawie odległości od krawędzi i rozmiaru pozostałych elementów.
Moduł renderujący oparty na graficznym API Vulkan, który implementuje shadery dla wielu elementów CSS wymagających dużej ilości zasobów, używanych w widżetach GTK.
Integracja GSK (GTK Scene Kit) z możliwością renderowania scen graficznych poprzez OpenGL i Vulkan.
Tak dobrze jak organizacja reprezentacji została zmieniona: Zamiast generowania bufora używany jest teraz model oparty na węźle renderowania, w którym wynik jest zorganizowany w postaci drzewa operacji wysokopoziomowych, wydajnie przetwarzanych przez GPU za pomocą OpenGL i Vulkan.
Zmodernizowany model realizacji wydarzeń co eliminuje potrzebę podokna podczas kierowania zdarzeń wejściowych. Konieczność implementacji nowego modelu wiąże się z aktywniejszym wykorzystaniem efektów animacji, które muszą być renderowane bez zmiany układu widocznych elementów, a co za tym idzie bez podokna.
Interfejs API GDK przeprojektowany, aby wykorzystać protokół Wayland i pokrewne pojęcia. Funkcje związane z X11 i Waylandem zostały przeniesione do oddzielnych backendów.
W celu opracowania widżetów przedstawiono nowy obiekt GtkLayoutManager z implementacją systemu kontroli projektowania elementów w zależności od wielkości widocznego obszaru. GtkLayoutManager zastąpił właściwości podrzędne w kontenerach GTK, takich jak GtkBox i GtkGrid.
Uproszczona obsługa zdarzeń, które są teraz używane tylko do wprowadzania danych. Reszta wydarzeń została zastąpiona osobnymi sygnałami.
Backend Broadway został przepisany, aby umożliwić renderowanie wyjścia biblioteki GTK w oknie przeglądarki internetowej.
Zmieniono interfejs API związany z operacjami przeciągania i upuszczania, w tym oddzielnie proponowane obiekty GdkDrag i GdkDrop.
W końcu jeśli chcesz dowiedzieć się więcej na ten temat o tym, czego spodziewać się po GTk4, możesz sprawdzić szczegóły W poniższym linku.