IUP

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
IUP
Тип SDK
Автор Tecgraf/PUC-Rio в сотрудничестве с Petrobras
Написана на Си[1]
Операционная система Кроссплатформенное программное обеспечение (Linux и Microsoft Windows)
Последняя версия 3.25 (28 мая 2018)
Лицензия MIT
Сайт IUP

IUP — кроссплатформенная библиотека базовых элементов графического пользовательского интерфейса с использованием языков C и Lua. С её помощью можно создавать быстрые, не требующие компиляции графические приложения.

Доступны также библиотеки-обвязки для использования IUP в таких языках, как Ruby[2], Euphoria[3], FreeBasic[4], Perl[5], Scheme[6], Nim.

Возможности[править | править код]

  • Встроенная поддержка Lua

Особенности[править | править код]

Для описания файлов ресурсов в 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 (см. прототипное программирование).

Начиная с версии 3.9, IUP поддерживает работу со строками в формате UTF-8.

Дополнительные функции[править | править код]

Кроме функций создания виджетов, IUP предлагает ряд дополнительных возможностей:

  • Рисование
  • Создание массивов и хэш-таблиц
  • Работа со строками
  • Получение информации о шрифтах
  • Получение информации о системе

Лицензия[править | править код]

IUP доступно для скачивания, бесплатного использования, модификации, использования в коммерческих целях и распространения под лицензией MIT.[7]

Примечания[править | править код]

Ссылки[править | править код]