Byl uveden projekt Cambalache 1.0, což je nástroj pro rychlý vývoj uživatelských rozhraní pro GTK 3 a GTK 4, který používá vizuální návrh (WYSIWYG), paradigmu MVC a filozofii prioritní důležitosti modelu dat. Přiřazení čísla verze 1.0 je prezentováno jako úspěch projektu připraveného k širokému použití. Kód je napsán v Pythonu a dodává se pod licencí LGPLv2.1. K instalaci je k dispozici balíček ve formátu flatpak.
Na rozdíl od Glade v Cambalache je podporováno vedení několika uživatelských rozhraní v jednom projektu. Cambalache není závislý na GtkBuilder a GObject, ale poskytuje model dat, který odpovídá systému typů GObject. Podporuje se úprava, vizualizace a vytváření GTK stylů ve formátu CSS, úprava XML souborů s prostředky GResources, vytváření šablon a widgetů, použití XML souborů GtkBuilder a rozložení Blueprint.
Model dat může importovat a exportovat více rozhraní najednou, podporuje objekty, vlastnosti a signály GtkBuilder, poskytuje zásobník zpětného rázu operací (Undo / Redo) a možnost komprese historie příkazů. Pro generaci modelu dat z gir souborů je k dispozici nástroj cambalache-db a pro generaci tříd GObject z tabulek modelu dat nástroj db-codegen.
Uživatelské rozhraní může být generováno na základě GTK 3 a GTK 4, v závislosti na verzi určené v projektu. Pro zajištění podpory různých větví GTK se pracovní prostor vytváří v samostatném procesu s použitím widgetu Casilda, který umožňuje vkládat do GTK4 aplikací okna jiných procesů a je realizován ve formě specializovaného kompozitu serveru, který používá protokol Wayland a knihovnu wlroots. Casilda vytváří virtuální zařízení pro vstup, události z nichž jsou přenášeny z GtkEventController, a také virtuální výstupní zařízení, jehož velikost odpovídá vnitřnímu widgetu aplikace. Pomocí wlroots je obsah pro náhled vykreslen do pixelového bufferu a načten jako Cairo povrch (cairo.Surface) pro vykreslování v GTK.

Zdroj: opennet.ru
