Die Veröffentlichung der Projekts Cambalache 1.0 wurde vorgestellt, das ein Werkzeug fĂŒr die schnelle Entwicklung von Schnittstellen fĂŒr GTK 3 und GTK 4 bereitstellt. Es nutzt visuelles Design (WYSIWYG), das MVC-Paradigma und die Philosophie der primĂ€ren Bedeutung des Datenmodells. Die Vergabe der Versionsnummer 1.0 wird als Erfolg in der Bereitschaft des Projekts fĂŒr den breiten Einsatz angesehen. Der Code ist in Python geschrieben und wird unter der LGPLv2.1 Lizenz angeboten. Ein Installationpaket im flatpak-Format ist verfĂŒgbar.
Im Gegensatz zu Glade unterstĂŒtzt Cambalache die Handhabung mehrerer BenutzeroberflĂ€chen in einem einzelnen Projekt. Cambalache ist unabhĂ€ngig von GtkBuilder und GObject, bietet jedoch ein Datenmodell, das dem Typensystem von GObject entspricht. Das Bearbeiten, Visualisieren und Erstellen von GTK-Styles im CSS-Format, das Bearbeiten von XML-Dateien mit Ressourcen in GResources, das Erstellen von Vorlagen und Widgets sowie die Verwendung von XML-Dateien von GtkBuilder und Blueprint-Layouts werden unterstĂŒtzt.
Das Datenmodell kann mehrere Schnittstellen gleichzeitig importieren und exportieren, unterstĂŒtzt GtkBuilder-Objekte, Eigenschaften und Signale, bietet einen RĂŒckgabestapel fĂŒr Ănderungen (Undo / Redo) und ermöglicht die Komprimierung des Befehlsverlaufs. Zur Generierung des Datenmodells aus gir-Dateien steht das Dienstprogramm cambalache-db zur VerfĂŒgung, und zur Generierung von GObject-Klassen aus den Datentabellen wird das Dienstprogramm db-codegen verwendet.
Das Interface kann auf der Basis von GTK 3 und GTK 4 generiert werden, abhĂ€ngig von der im Projekt festgelegten Version. Um die UnterstĂŒtzung verschiedener GTK-Zweige sicherzustellen, erfolgt die Erstellung des Arbeitsbereichs in einem separaten Prozess unter Verwendung des Casilda-Widgets, das es ermöglicht, Fenster anderer Prozesse in GTK4-Anwendungen einzubetten und in Form eines spezialisierten Komposites implementiert ist. Server, das das Wayland-Protokoll und die wlroots-Bibliothek verwendet. Casilda erstellt virtuelle EingabegerĂ€te, deren Ereignisse aus dem GtkEventController ĂŒbertragen werden, sowie ein virtuelles AusgabegerĂ€t mit der gleichen GröĂe wie das im Anwendung-Widget integrierte. Mithilfe von wlroots wird der Inhalt fĂŒr die Vorschau in einen Pixelpuffer gerendert und als Cairo-OberflĂ€che (cairo.Surface) zum Zeichnen in GTK geladen.

Quelle: opennet.ru
