Стоит рассказать о замечательной кроссплатформенной библиотеки для построения графического интерфейса программы IUP. Эта библиотека разработана в Pontifical Catholic University of Rio de Janeiro в Бразилии. Как и много других продуктов разработчиков из этого университета она написана на С и может работать в системах:
- UNIX (SunOS, IRIX, and AIX) using Motif 2.x
- UNIX (FreeBSD and Linux) using GTK+
- Microsoft Windows 2000/XP/2003 using Win32
Библиотека использует концепции
событий,
системы атрибутов и
функций обратного вызова (callback functions),
систему слоёв. Самое главное отличие от других библиотек виджетов является система атрибутов, на которой построено всё взаимодействие с графическими элементами.
Именно развитая система атрибутов позволяет иметь совсем небольшое количество функций, что делает библиотеку небольшой. Это отлично вписывается в идеологию разработчков:
- Предпочитать множество маленьких библиотек, вместо одной большой.
- Использовать для каждой платформы "родные" графические компоненты.
- Позиционировать элементы не используя точные координаты, используя механизм привязок и слоёв. Что делает интерфейс менее зависимым от разрешения пользователя.
- Возможность использовать эту графическую библиотеку совместно с другими
Библиотека отлично подходит для написания небольших утилит и промышленных приложений. Это обусловлено в первую очередь небольшим количеством стандартных виджетов (к слову, там есть все стандартные виджеты Win32). Но библиотека свободно расширяется и есть специальное API (в IUP оно называется CPI) для добавления новых виджетов.
Для изучения возможностей библиотеки не требуется много времени, что делает её привлекательно для программистов, которые сразу хотят приступить к написанию кода, не штудируя огромное количество мануалов. На английском языке доступен мануал по адресу http://www.tecgraf.puc-rio.br/iup/, где описание концепций библиотеки чередуется с полным описанием функций, эти концепции реализующих. Мануал достаточно полный и удобный, но в нём присутствуют некоторые неточности в параметрах функций. Однако, это лечится простой сверкой параметров функций с определениями в главном заголовочном файле
iup.h.
В целом, после
использования
библиотеки остаётся очень приятное впечатление -- малыми силами можно быстро и качественно решать возникающие проблемы.
В завершении хочется сказать пару слов о стабильности библиотеки. Она, традиционно для программных продуктов
Tecgraf, на высоком уровне. За год в их библиотеках, в худшем случае, находят всего несколько некритичных ошибок.
Исходные тексты библиотеки, документация на английском, скомпилированные для разных платформ библиотеки лежат по этому
адресу.