IUP
| Тип | |
|---|---|
| Автор | |
| Операционная система |
Кроссплатформенное программное обеспечение (Linux и Microsoft Windows) |
| Последняя версия | |
| Лицензия | |
| Сайт |
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]
Примечания[править | править вики-текст]
- ↑ Ruby-IUP (репозиторий исходного кода на github)
- ↑ EuIup
- ↑ Portable GUI toolkit (IUP) version 3.0 (RC2) на форуме FreeBasic
- ↑ perl-iup
- ↑ IUP: IUP
- ↑ Tecgraf Library License
Ссылки[править | править вики-текст]
- Проект IUP
- IUP-Users
- Scuri, A. «IUP - Portable User Interface». Software Developer's Journal. Dec/2005. iup_sdj2005.pdf
| Lua | |
|---|---|
| Интерпретаторы и компиляторы | Lua • Parrot |
| Фреймворки и библиотеки | IUP • Kepler • LÖVE |
| Порты и дистрибутивы | Plua • Lua Player • Corona |
| IDE | Decoda • ZeroBrane Studio[en] • SciTE • Сравнение |
| Приложения | Prosody |
| Инструменты разработки элементов графического интерфейса | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
уровневые |
|||||||||||||||||||||||||||||
|
уровневые |
|
||||||||||||||||||||||||||||

