Выпуск Cambalache 0.10, инструмента для разработки GTK-интерфейсов

Опубликован релиз проекта Cambalache 0.10.0, развивающего инструмент быстрой разработки интерфейсов для GTK 3 и GTK 4, использующий парадигму MVC и философию первостепенного значения модели данных. В отличии от Glade в Cambalache предоставляется поддержка ведения нескольких интерфейсов пользователя в одном проекте. Код написан на Python и поставляется под лицензией LGPLv2.1. Для установки доступен пакет в формате flatpak.

Cambalache не зависит от GtkBuilder и GObject, но предоставляет модель данных, соответствующую системе типов GObject. Модель данных может импортировать и экспортировать разом несколько интерфейсов, поддерживает объекты, свойства и сигналы GtkBuilder, предоставляет стек отката операций (Undo / Redo) и возможность сжатия истории команд. Для генерации модели данных из gir-файлов предоставляется утилита cambalache-db, а для генерации классов GObject из таблиц модели данных — утилита db-codegen.

Интерфейс может генерироваться на базе GTK 3 и GTK 4, в зависимости от определённой в проекте версии. Для обеспечения поддержки разных веток GTK формирование рабочей области осуществляется с привлечением бэкенда Broadway, позволяющего отрисовывать вывод библиотеки GTK в окне web-браузера. Основной процесс Cambalache предоставляет обвязку на базе WebKit WebView, в которой при помощи Broadway транслируется вывод из процесса Merengue, который непосредственно занимается отрисовкой интерфейса, создаваемого пользователем.

В новом выпуске:

  • Добавлена поддержка библиотек libAdwaita и libHandy, предлагающих набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG.
  • Добавлена поддержка определения новых объектов напрямую (Inline) в блоке со свойствами другого объекта, без использования ссылок.
    
     ‹object class="GtkWindow"›
       ‹property name="child"›
         ‹object class="GtkLabel"›
           ‹property name="label"›Hola Mundo‹/property›
         ‹/object›
       ‹/property›
     ‹/object›
    
  • Добавлена поддержка определения специального дочернего типа, применяемого, например, в виджете заголовка окна.
    
     ‹object class="GtkWindow"›
       ‹child type="titlebar"›
         ‹object class="GtkHeaderBar"/›
       ‹/child›
     ‹/object›
    
  • Добавлена поддержка перегруппировки позиций дочерних элементов.
  • Добавлена поддержка перечисляемых и флаговых типов для GdkPixbuf, Pango, Gio, Gdk и Gsk.
  • Добавлен перевод интерфейса на украинский язык.
  • Предложены новые редакторы свойств.

Источник: http://www.opennet.ru/opennews/art.shtml?num=57365