Die Veröffentlichung von Cambalache 1.0 wurde vorgestellt, einem Tool zur schnellen Entwicklung von OberflĂ€chen fĂŒr GTK 3 und GTK 4, das visuelle Gestaltung (WYSIWYG), das MVC-Paradigma und die Philosophie der primĂ€ren Bedeutung des Datenmodells verwendet. Die Vergabe der Versionsnummer 1.0 wird als Erfolg gewertet, da das Projekt bereit ist fĂŒr den breiten Einsatz. Der Code ist in Python geschrieben und wird unter der Lizenz LGPLv2.1 bereitgestellt. Ein Paket im Flatpak-Format steht zur Installation zur VerfĂŒgung.
Im Gegensatz zu Glade bietet Cambalache UnterstĂŒtzung fĂŒr die Verwaltung mehrerer BenutzeroberflĂ€chen innerhalb eines Projekts. Cambalache ist nicht abhĂ€ngig von GtkBuilder und GObject, sondern stellt ein Datenmodell bereit, das mit dem Typensystem von GObject ĂŒbereinstimmt. Es unterstĂŒtzt das Bearbeiten, Visualisieren und Erstellen von GTK-Stilen im CSS-Format, das Bearbeiten von XML-Dateien mit Ressourcen GResources, die Erstellung von Vorlagen und Widgets sowie die Verwendung von XML-Dateien von GtkBuilder und Blueprint-Layouts.
Das Datenmodell kann mehrere BenutzeroberflĂ€chen gleichzeitig importieren und exportieren, unterstĂŒtzt Objekte, Eigenschaften und Signale von GtkBuilder und bietet einen Undo/Redo-Operationsstapel sowie die Möglichkeit, die Befehlsverlaufshistorie zu komprimieren. Zum Generieren des Datenmodells aus gir-Dateien steht das Tool cambalache-db zur VerfĂŒgung, und zur Erstellung von GObject-Klassen aus den Modelltabelle gibt es das Tool db-codegen.
Die OberflĂ€che kann basierend auf GTK 3 und GTK 4 generiert werden, abhĂ€ngig von der im Projekt angegebenen Version. Um die UnterstĂŒtzung verschiedener GTK-Branches zu gewĂ€hrleisten, erfolgt die Erstellung des Arbeitsbereichs in einem separaten Prozess unter Einbeziehung des Casilda-Widgets, das es ermöglicht, Fenster anderer Prozesse in GTK4-Anwendungen einzubetten und in Form eines spezialisierten Kompositors realisiert ist. Server, das das Wayland-Protokoll und die Bibliothek wlroots verwendet. Casilda erstellt virtuelle EingabegerĂ€te, deren Ereignisse aus GtkEventController ĂŒbertragen werden, sowie ein virtuelles AusgabegerĂ€t, das die gleiche GröĂe wie das im Anwendungs-Widget hat. Mithilfe von wlroots wird der Inhalt fĂŒr die Vorschau in einen Pixelpuffer gerendert und als Cairo-OberflĂ€che (cairo.Surface) fĂŒr das Rendering in GTK geladen.

Quelle: opennet.ru
