Le projet Cambalache 0.8.0, qui développe un outil de développement rapide d'interfaces pour GTK 3 et GTK 4, basé sur le paradigme MVC et la philosophie de la primauté du modèle de données, a été publié. Contrairement à Glade, Cambalache permet de gérer plusieurs interfaces utilisateur dans un même projet. En termes de fonctionnalités, la version 0.8.0 de Cambalache est presque au même niveau que Glade. Le code est écrit en Python et est distribué sous la licence GPLv2.
Cambalache ne dépend pas de GtkBuilder et GObject, mais fournit un modèle de données conforme au système de types GObject. Le modèle de données peut importer et exporter plusieurs interfaces simultanément, prend en charge les objets, propriétés et signaux de GtkBuilder, offre un système d'annulation/répétition (Undo / Redo) et permet de compresser l'historique des commandes. Un utilitaire, cambalache-db, est fourni pour générer un modèle de données à partir de fichiers gir, et un autre utilitaire, db-codegen, génère des classes GObject à partir des tables du modèle de données.
L'interface peut être générée sur la base de GTK 3 ou GTK 4, selon la version spécifiée dans le projet. Pour assurer la prise en charge de différentes versions de GTK, la formation de l'espace de travail se fait avec l'aide du backend Broadway, qui permet de rendre la sortie de la bibliothèque GTK dans une fenêtre de navigateur web. Le processus principal de Cambalache fournit un lien basé sur WebKit WebView, dans lequel la sortie du processus Merengue, qui gère le rendu de l'interface créée par l'utilisateur, est retransmise via Broadway.
Dans cette nouvelle version :
- Ajout d'un panneau de sélection d'objets interactif, qui catégorise les classes d'objets et simplifie la recherche d'informations nécessaires.

- Des remplisseurs pour l'espace de travail ont été mis en place, facilitant l'ajout d'éléments enfants à des positions spécifiques. Pour remplacer un remplisseur par un widget, il suffit de double-cliquer dessus.

- Ajout de la prise en charge des propriétés traduisibles et mise en œuvre d'une fonctionnalité de commentaires pour les traducteurs.

- Ajout de la prise en charge des opérations de presse-papiers (Copier, Coller, Couper et Supprimer).

- Amélioration des messages d'information concernant les fonctionnalités non prises en charge lors de l'importation de fichiers UI et lors de l'exportation vers un autre fichier.

Source : opennet.ru





