O produto: IUP

IUP - Portable User Interface


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: 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, AIX, FreeBSD and Linux) using Motif 2.x (and optionally 1.x)
  • Microsoft Windows 2000/XP/2003


The official support mechanism is by e-mail, using iup AT tecgraf.puc-rio.br (replace " AT " by "@"). 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.

We host IUP support features at LuaForge. It provides us Tracker, Lists, News, CVS and Files. The IUP page at LuaForge is available at: http://luaforge.net/projects/iup/.

The discussion list is available at: http://lists.luaforge.net/mailman/listinfo/iup-users.
You can also submit Bugs, Feature Requests and Support Requests at: http://luaforge.net/tracker/?group_id=89.
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 tcg AT tecgraf.puc-rio.br.

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:

André Carregal
André Clinio
André Costa
André Derraik
Antonio Scuri
Carlos Augusto Mendes
Carlos Henrique Levy
Carlos José Pereira de Lucena
Claudio Coutinho de Biasi
Danny Reinhold
Diego Nehab
Diogo Martinez
Enio Emanuel Russo
Guilherme Fonseca Alvarenga
Henrique Dalcin Mendes Pinheiro
Leonardo Constantino Oliveira
Luiz Cristóvão Gomes Coelho
Luiz Henrique de Figueiredo
Marcelo Gattass
Mark Stroetzel Glasberg
Mauricio Oliveira Carneiro
Milton Jonathan
Neil Armstrong
Renato Borges
Renato Cerqueira
Roberto Beauclair
Vinicius Almendra

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.

Fullscreen support in Motif copied from wxWidgets. Their license is as flexible as the Tecgraf Library License, you can find it here: http://www.wxwidgets.org/newlicen.htm.


This toolkit is available at http://www.tecgraf.puc-rio.br/iup

The full documentation can be downloaded from the Download by choosing the "Documentation Files" option.

The documentation is also available in Adobe Acrobat (iup.pdf ~1.1Mb) and Windows HTML Help (iup.chm ~1.5Mb) formats.

The HTML navigation uses the WebBook tool, available at http://www.tecgraf.puc-rio.br/webbook.


This product stimulated the following scientific publications:

  • 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]
  • Levy, C. H. "IUP/LED: Uma Ferramenta Portátil de Interface com Usuário". M.Sc. dissertation, Computer Science Department, PUC-Rio, 1993.[levy93.pdf]
  • Figueiredo, L. H.;Gattass, M.; and Levy, C.H. "Uma Estratégia de Portabilidade para Aplicações Gráficas Interativas". Proceedings of VI SIBGRAPI (1993), 203-211. [sib93.pdf]
  • Oliveira Prates, R.; Figueiredo, L. H.; and Gattass, M. "Especificação de Layout Abstrato por Manipulação 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 geração de Interfaces gráficas". M.Sc. dissertation, Computer Science Department, PUC-Rio, 1994. [prates94.pdf]