IUP — свободная кроссплатформенная библиотека базовых элементов графического пользовательского интерфейса с использованием языков C и Lua. С его помощью можно создавать быстрые, не требующие компиляции графические приложения.
Доступны также библиотеки-обвязки для использования IUP в таких языках, как Ruby, Euphoria, FreeBASIC, Perl, Scheme.
Возможности IUP
Особенности IUP
Для описания файлов ресурсов в IUP традиционно используется язык LED, который в современных версиях библиотеки считается устаревшим, и заменяется языком Lua. Можно создавать IUP-приложения и без использования LED или Lua, пользуясь только C API.
IUP отличает от других аналогичных библиотек способ реализации 4 важных концепций:
При создании виджета не происходит его немедленого отображения в операционной системе. Оно выполняется при показе содержащего виджет диалога или путём ручного вызова функции IupMap для этого диалога.
В IUP очень мало функций, поскольку основным способом работы с виджетами является доступ к их атрибутам (текстового типа), с помощью функций IupSetAttribute и IupGetAttribute.
Виджеты в IUP никогда не позиционируются путём явного задания координат, их позиции рассчитываются динамически, в соответствии с абстрактной иерархией макета, задаваемой с помощью виджетов-контейнеров IupFill, IupHbox и IupVbox (впрочем, явное позиционирование допускается внутри виджетов-контейнеров специального типа).
Язык LED поддерживает косвенное задание связи виджетов с функциями обратного вызова. Для связывания Си-функции используется конструкция IupSetFunction имя, с последующим связыванием атрибутов обратного вызова с использованием IupSetAttribute. Также можно осуществлять прямое связывание виджета с callback-функцией с помощью IupSetCallback.
При проектировании IUP удалены ограничения на класса / типа экземпляров объекта, но сохранена иерархия наследования в стиле Lua.
Примечание
Библиотека IUP доступна для скачивания, бесплатного использования, модификации, использования в коммерческих целях и распространения под лицензией MIT License.
Ссылки