Cambalache 1.0 je nyní k dispozici. Vyvíjí nástroj pro rychlý vývoj rozhraní pro GTK 3 a GTK 4 s využitím vizuálního designu (WYSIWYG), paradigmatu MVC a filozofie zaměřené na data. Verze 1.0 je propagována jako připravenost projektu k širokému použití. Kód je napsán v Pythonu a licencován pod licencí LGPLv2.1. Pro instalaci je k dispozici balíček flatpak.
Na rozdíl od Glade poskytuje Cambalache podporu pro správu více uživatelských rozhraní v jednom projektu. Cambalache nezávisí na GtkBuilderu ani GObjectu, ale poskytuje datový model, který odpovídá systému typů GObject. Podporuje úpravy, vizualizaci a vytváření stylů GTK ve formátu CSS, úpravy XML souborů pomocí GResources, vytváření šablon a widgetů a používání XML souborů GtkBuilderu a značek Blueprint.
Datový model umožňuje importovat a exportovat více rozhraní současně, podporuje objekty, vlastnosti a signály GtkBuilder, poskytuje zásobník pro vrácení/znovu operací a možnost komprimovat historii příkazů. Pro generování datového modelu ze souborů gir je k dispozici nástroj cambalache-db a pro generování tříd GObject z tabulek datového modelu je k dispozici nástroj db-codegen.
Rozhraní lze generovat pomocí GTK 3 nebo GTK 4, v závislosti na verzi uvedené v projektu. Pro podporu různých verzí GTK je pracovní prostor generován v samostatném procesu pomocí widgetu Casilda, který umožňuje vkládání oken z jiných procesů do aplikací GTK4 a je implementován jako specializovaný kompozitní objekt. server, s využitím protokolu Wayland a knihovny wlroots. Casilda vytváří virtuální vstupní zařízení, na která jsou vysílány události z GtkEventController, a také virtuální výstupní zařízení o velikosti vestavěného widgetu aplikace. Pomocí wlroots se obsah náhledu vykreslí do vyrovnávací paměti pixelů a načte se jako povrch Cairo (cairo.Surface) pro vykreslování v GTK.

Zdroj: opennet.ru
