IUP is a portable toolkit for building graphical user interfaces. It offers APIs in three basic languages: C, Lua and LED.
Its library contains about 100 functions for creating and manipulating dialogs.
IUP's purpose is to allow a program to run in different systems without changes - the toolkit provides the application portability. Supported systems include: GTK+, Motif and Microsoft Windows 2000/XP/2003.
IUP uses an abstract layout model based on the boxes-and-glue paradigm from the TEX text editor. This model, combined with the dialog-specification language (LED) or with the Lua binding (IupLua) makes the dialog creation task more flexible and independent from the graphics system's resolution.
Currently available interface elements can be categorized as follows:
- Primitives (effective user interaction): dialog, label, button, text, multi-line, list, toggle, canvas, frame, image.
- Composition (ways to show the elements): hbox, vbox, zbox, fill.
- Grouping (definition of a common functionality for a group of elements): radio.
- Menu (related both to menu bars and to pop-up menus): menu, submenu, item, separator.
- Additional (elements built outside the main library): dial, gauge, matrix, tabs, valuator, OpenGL canvas, color chooser, color browser.
- Dialogs (useful predefined dialogs): file selection, message, alarm, data input, list selection.
Hence IUP has some advantages over other interface toolkits available:
- Simplicity: due to the small number of functions and to its attribute mechanism, the learning curve for a new user is often faster.
- Portability: the same functions are implemented in each one of the platforms, thus assuring the interface system's portability.
- Customization: the dialog specification language (LED) and the Lua binding (IupLua) are two mechanisms in which it is possible to customize an application for a specific user with a simple-syntax text file.
- Flexibility: its abstract layout mechanism provides flexibility to dialog creation.
- Extensibility: the programmer can create new interface elements as needed.
IUP is free software, can be used for public and commercial applications.
The library is available for several compilers:
- GCC and CC, in the UNIX environment
- Visual C++, Borland C++, Watcom C++ and GCC (Cygwin and MingW), in the Windows environment
The library is available for several operating systems:
- UNIX (SunOS, IRIX, and AIX) using Motif 2.x
- UNIX (FreeBSD and Linux) using GTK+
- Microsoft Windows 2000/XP/2003 using Win32
The official support mechanism is by e-mail, using [email protected]. Before sending your message:
- Check if the reported behavior is not described in the user guide.
- Check if the reported behavior is not described in the specific control or driver characteristics.
- Check the History to see if your version is updated.
- Check the To Do list to see if your problem has already been reported.
If all these points were checked, you can report your problem. Please specify in your message: function, attribute, callback, platform and compiler.
The discussion list is available at:
Source code, pre-compiled binaries and samples can be downloaded at: http://luaforge.net/frs/?group_id=89.
The CVS can be browsed at: http://luaforge.net/scm/?group_id=89.
If you want us to develop a specific feature for the toolkit, Tecgraf is available for partnerships and cooperation. Please contact [email protected].
Lua documentation and resources can be found at http://www.lua.org/.
This work was developed at Tecgraf by means of the partnership with PETROBRAS/CENPES.
People who took part in IUP's development:
Carlos Augusto Mendes
Carlos Henrique Levy
Carlos José Pereira de Lucena
Claudio Coutinho de Biasi
Enio Emanuel Russo
Guilherme Fonseca Alvarenga
Henrique Dalcin Mendes Pinheiro
Leonardo Constantino Oliveira
Luiz Cristóvão Gomes Coelho
Luiz Henrique de Figueiredo
Mark Stroetzel Glasberg
Mauricio Oliveira Carneiro
We must also mention engineer Enio Emanuel Russo, from PETROBRAS, who effectively contributed to the system's specification and project.
The initial version of the present document was developed by Carlos Henrique Levy, Neil Armstrong and Andr Carregal, being supervised and oriented by Luiz Martins, Luiz Henrique de Figueiredo, Marcelo Gattass and Carlos Jos Pereira de Lucena at Tecgraf, PUC-Rio for the Data Processing Sector (SEPROC) at CENPES/PETROBRAS.
This toolkit is available at http://www.tecgraf.puc-rio.br/iup.
The full documentation can be downloaded from the Download Files. The documentation is also available in Adobe Acrobat and Windows HTML Help formats.
The HTML navigation uses the WebBook tool, available at http://www.tecgraf.puc-rio.br/webbook.
This product stimulated the following scientific publications:
- Scuri, A. "IUP - Portable User Interface". Software Developer's Journal. Dec/2005. [http://en.sdjournal.org/products/articleInfo/2]
- Levy, C. H.; Figueiredo, L. H.; Gattass, M.; Lucena, C.; and Cowan, D. "IUP/LED: A Portable User Interface Development Tool". Software: Practice & Experience, 26 #7 (1996) 737-762. [spe95.pdf]
- Oliveira Prates, R.; Figueiredo, L. H.; and Gattass, M. "Especificao de Layout Abstrato por Manipulao Direta". Proceedings of VII SIBGRAPI (1994), 165-172. [sib94.pdf]
- Oliveira Prates, R.; Gattass, M. ;and Figueiredo, L. H. "Visual LED: uma ferramenta interativa para gerao de Interfaces grficas". M.Sc. dissertation, Computer Science Department, PUC-Rio, 1994. [prates94.pdf]
- Levy, C. H. "IUP/LED: Uma Ferramenta Porttil de Interface com Usurio". M.Sc. dissertation, Computer Science Department, PUC-Rio, 1993.[levy93.pdf]
- Figueiredo, L. H.;Gattass, M.; and Levy, C.H. "Uma Estratgia de Portabilidade para Aplicaes Grficas Interativas". Proceedings of VI SIBGRAPI (1993), 203-211. [sib93.pdf]