Wydano wydanie projektu Cambalache 1.0, rozwijającego narzędzie do szybkiego tworzenia interfejsów dla GTK 3 i GTK 4, wykorzystującego projektowanie wizualne (WYSIWYG), paradygmat MVC oraz filozofię priorytetowego znaczenia modelu danych. Przyznanie numeru wersji 1.0 jest uznawane za osiągnięcie gotowości projektu do szerokiego użycia. Kod napisany jest w Pythonie i dostarczany na licencji LGPLv2.1. Pakiet w formacie flatpak jest dostępny do instalacji.
W przeciwieństwie do Glade, w Cambalache dostępne jest wsparcie dla prowadzenia wielu interfejsów użytkownika w jednym projekcie. Cambalache nie zależy od GtkBuilder i GObject, ale dostarcza model danych zgodny z systemem typów GObject. Wspierane jest edytowanie, wizualizacja i tworzenie stylów GTK w formacie CSS, edytowanie plików XML z zasobami GResources, tworzenie szablonów i widżetów, korzystanie z plików XML GtkBuilder oraz języka znaczników Blueprint.
Model danych może importować i eksportować jednocześnie kilka interfejsów, wspiera obiekty, właściwości i sygnały GtkBuilder, zapewnia stos cofania operacji (Undo / Redo) oraz możliwość kompresji historii poleceń. Do generowania modelu danych z plików gir dostępne jest narzędzie cambalache-db, a do generowania klas GObject z tabel modelu danych — narzędzie db-codegen.
Interfejs może być generowany na podstawie GTK 3 i GTK 4, w zależności od wersji określonej w projekcie. Aby zapewnić wsparcie dla różnych gałęzi GTK, tworzenie obszaru roboczego odbywa się w oddzielnym procesie z wykorzystaniem widżetu Casilda, który umożliwia osadzanie w aplikacjach GTK4 okien innych procesów i jest realizowany w formie specjalizowanego kompozytu serwera, używającego protokołu Wayland i biblioteki wlroots. Casilda tworzy wirtualne urządzenia wejściowe, a wydarzenia są przesyłane z GtkEventController, a także wirtualne urządzenie wyjściowe, które ma rozmiar zgodny z wbudowanym widżetem aplikacji. Przy pomocy wlroots zawartość do podglądu jest renderowana w buforze pikseli i ładowana jako powierzchnia Cairo (cairo.Surface) do renderowania w GTK.

Źródło: opennet.ru
