Esitleme projekti Cambalache 1.0 väljaannet, mis arendab kiire liidese loomise tööriista GTK 3 ja GTK 4 jaoks, kasutades visuaalset projekteerimist (WYSIWYG), MVC paradigmad ja andmemudeli prioriteetset filosoofiat. Versioon 1.0 määramine esitatakse projekti laiemale kasutusele valmimise saavutamisena. Kood on kirjutatud Pythonis ja antakse välja LGPLv2.1 litsentsi alusel. Paigaldamiseks on saadaval flatpak formaadis paket.
Erinevalt Gladest pakub Cambalache toetust mitme kasutajaliidese haldamiseks ühes projektis. Cambalache ei sõltu GtkBuilderist ja GObjectist, vaid pakub andmemudelit, mis vastab GObjecti tüüpide süsteemile. Toetatakse GTK stiilide redigeerimist, visualiseerimist ja loomist CSS formaadis, XML-failide redigeerimist GResources'iga, mallide ja vidinate loomist, XML-failide kasutamist GtkBuilderis ja Blueprint vormindamist.
Andmete mudel võib korraga importida ja eksportida mitu liidest, toetab GtkBuilderi objekte, omadusi ja signaale, pakub tehingute tühistamise ja uuesti tegemise (Undo / Redo) töölauka ja käsu ajaloo kokkusurumise võimalust. Andmete mudeli genereerimiseks gir-failidest on saadaval tööriist cambalache-db ning GObjecti klasside genereerimiseks andmemudeli tabelitest — tööriist db-codegen.
Liides võib olla genereeritud GTK 3 ja GTK 4 põhjal, sõltuvalt projekti määratud versioonist. Erinevate GTK harude toetamise tagamiseks toimub tööala moodustamine eraldi protsessis, kaasates Casilda vidinat, mis võimaldab GTK4 rakendustes teiste protsesside aknaid sisestada ja mis on ellu viidud spetsialiseeritud komposiitide kujul. serverile, kasutades Waylandi protokolli ja wlroots teeki. Casilda loob virtuaalse sisendseadme, mille sündmused edastatakse GtkEventControllerist, ning virtuaalse väljundseadme, mille suurus on sama, mis rakendusse sisseehitatud vidina oma. Wlrootsi abil joonistatakse eelvaate sisu pikslipuhvrisse ja laaditakse sisse kui Cairo pind (cairo.Surface) joonistamiseks GTK-s.

Allikas: opennet.ru
