IUP (software)
From Wikipedia, the free encyclopedia
The IUP Portable User Interface is a computer software development kit that provides a portable, scriptable toolkit for GUI building using C and Lua. This allows rapid, zero-compile prototyping and refinement of deployable GUI applications.
It provides this functionality by binding Lua with its C/C++ code, or simply writing C to the API. It supports calling native Windows graphics, native Motif/Lesstif elements,or the developers' own Canvas Draw elements from the Lua scripts or natively in a C/C++ application.
[edit] Features
IUP | |
Author: | Tecgraf/PUC-Rio in collaboration with Petrobras |
---|---|
Latest release: | 2.6 / 2006-05-31 |
OS: | Cross-platform (Linux and Microsoft Windows) |
Use: | Software Development Kit |
License: | MIT |
Website: | [1] |
IUP's distinguishing features include:
- Removal of the restriction of class/instance object types, but retaining the Lua-style hierarchy of inheritance.
- Use of an abstract layout model. This means that x,y coordinates are never used, parameter passing is reduced, and the layout is calculated on the fly, for all elements, even during window resizing.
- Small API, on the order of about 100 functions. This includes lots of the usual buttons and control widgets, as well as primitives like an OpenGL canvas,
- Use of an event loop/callback mechanism. This main loop can be called inside Lua.
- Interface elements are created before they are mapped to the native elements. This is the reverse of the usual situation for assembling GUI elements.
The Lua scripting is done by binding Lua and IUPLua in (at least) a small C program called a host application. This program creates a Lua state, passes the Lua state to IUPLua for initialization, and then opens and executes a Lua script against the Lua state. Alternatively, the entire IUP state can be dynamically loaded via use of a Lua 'require' or 'package.loadlib' of IUPLua.
The script(s) can later be compiled with the luac compiler if desired.
[edit] License/Copyright
IUP is liberally-licensed for free use, modification, sale, and redistribution, under an "MIT-styled" license by the designers at Tecgraf/PUC-Rio, Brazil. IUP has been in development at least since the 1.8 version issued in 1998. It was begun in collaboration with Petrobras.
[edit] Project sites
- IUP Project
- IUP-Users mailman list and archive, at LuaForge.