Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Мировые новости. Обсуждения. (https://forum.antichat.xyz/forumdisplay.php?f=23)
-   -   Представлен Blueprint - новый язык построения пользовательских интерфейсов для GTK (https://forum.antichat.xyz/showthread.php?t=485758)

Suicide 07.12.2021 02:25

Джеймс Вестман (James Westman), разработчик приложения GNOME Maps, представил новый язык разметки Blueprint, предназначенный для построения интерфейсов с использованием библиотеки GTK. Код компилятора для преобразования разметки Blueprint в ui-файлы GTK написан на языке Python и распространяется под лицензией LGPLv3.

В качестве причины создания проекта называется привязка применяемых в GTK ui-файлов описания интерфейса к формату XML, который перегружен и неудобен для написания или редактирования разметки вручную. Формат Blueprint отличается наглядностью представления информации и благодаря читаемому синтаксису даёт возможность обойтись без применения специализированных визуальных редакторов интерфейса при создании, редактировании и оценке изменений в элементах интерфейса.

При этом Blueprint не требует внесения изменений в GTK, полностью повторяет модель виджетов GTK и позиционируется как надстройка, компилирующая разметку в штатный для GtkBuilder формат XML. Функциональные возможности Blueprint полностью соответствуют GtkBuilder, отличается лишь метод представления информации. Для перевода проекта на Blueprint достаточно добавить вызов blueprint-compiler в сценарий сборки без изменения кода.

Код:

Code:
using Gtk 4.0;

  template MyAppWindow : Gtk.ApplicationWindow {
    title: _("My App Title");

    [titlebar]
    HeaderBar header_bar {}

    Label {
      styles ["heading"]
      label: _("Hello, world!");
    }
  }

https://www.opennet.ru/opennews/pics...1638705926.png

Кроме компилятора в штатный XML-формат GTK в разработке также находится плагин с поддержкой Blueprint для интегрированной среды разработки GNOME Builder. Отдельно развивается LSP-сервер (Language Server Protocol) для Blueprint, который можно будет использовать для подсветки, анализа ошибок, вывода подсказок и авто дополнения кода в поддерживающих LSP редакторах кода, включая Visual Studio Code.

Из планов по развитию Blueprint отмечается добавления в разметку элементов реактивного программирования, реализуемого с использованием класса Gtk.Expression, предоставляемого в GTK4. Предлагаемый метод более привычен для разработчиков web-интерфейсов на JavaScript и позволяет добиться автоматической синхронизации представления интерфейса со связанной моделью данных, без необходимости принудительного обновления пользовательского интерфейса после каждого изменения данных.



Время: 16:28