IUP

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
IUP
Тип

SDK

Автор

Tecgraf/PUC-Rio в сотрудничестве с Petrobras

Операционная система

Кроссплатформенное программное обеспечение (Linux и Microsoft Windows)

Последняя версия

3.7 (29 ноября 2012)

Лицензия

MIT

Сайт

IUP

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

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

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

  • Встроенная поддержка 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 (см. прототипное программирование).

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

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

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

Ссылки[править | править вики-текст]