Foi lançado o projeto Cambalache 0.10.0, que desenvolve uma ferramenta de rápida criação de interfaces para GTK 3 e GTK 4, utilizando a paradigmas MVC e a filosofia de importância primária do modelo de dados. Ao contrário do Glade, o Cambalache oferece suporte para gerenciar várias interfaces de usuário em um único projeto. O código está escrito em Python e é disponibilizado sob a licença LGPLv2.1. Um pacote no formato flatpak está disponível para instalação.
O Cambalache não depende do GtkBuilder e do GObject, mas oferece um modelo de dados que se adequa ao sistema de tipos GObject. O modelo de dados pode importar e exportar vários interfaces simultaneamente, suportando objetos, propriedades e sinais do GtkBuilder, além de fornecer uma pilha de operações de desfazer/refazer (Undo/Redo) e a capacidade de compactar o histórico de comandos. Uma utilidade chamada cambalache-db está disponível para gerar o modelo de dados a partir de arquivos gir, e uma utilidade db-codegen para gerar classes GObject a partir das tabelas do modelo de dados.
A interface pode ser gerada com base no GTK 3 ou GTK 4, dependendo da versão especificada no projeto. Para garantir o suporte a diferentes versões do GTK, a formação do espaço de trabalho é realizada com a utilização do backend Broadway, que permite renderizar a saída da biblioteca GTK em uma janela do navegador web. O processo principal do Cambalache fornece uma camada baseada no WebKit WebView, na qual a saída do processo Merengue, que se ocupa diretamente da renderização da interface criada pelo usuário, é transmitida através do Broadway.

No novo lançamento:
- Adicionada a compatibilidade com as bibliotecas libAdwaita e libHandy, que oferecem um conjunto de componentes para estilização da interface do usuário, conforme as diretrizes do GNOME HIG.
- Adicionada a possibilidade de definir novos objetos diretamente (Inline) em um bloco de propriedades de outro objeto, sem a necessidade de referências.
- Adicionada a possibilidade de definir um tipo especial de filho, utilizado, por exemplo, no widget de cabeçalho da janela.
- Adicionada a capacidade de reorganizar as posições dos elementos filhos.
- Adicionada a compatibilidade com tipos enumerados e de bandeira para GdkPixbuf, Pango, Gio, Gdk e Gsk.
- Adicionada a tradução da interface para o idioma ucraniano.
- Novos editores de propriedades foram propostos.

Fonte: opennet.ru

