Misplaced Pages

IUP (software)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Computer software development kit
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "IUP" software – news · newspapers · books · scholar · JSTOR (November 2009) (Learn how and when to remove this message)
IUP
Original author(s)Tecgraf/PUC-Rio in collaboration with Petrobras
Stable release3.31 / 13 October 2023; 14 months ago (2023-10-13)
Operating systemCross-platform
TypeSoftware development kit
LicenseMIT
Websitewww.tecgraf.puc-rio.br/iup

The IUP Portable User Interface is a computer software development kit that provides a portable, scriptable toolkit to build graphical user interfaces (GUIs) using the programming languages C, Perl, Lua, Nim and Zig, among others. This allows rapid, zero-compile prototyping and refinement of deployable GUI applications.

IUP's purpose is to allow programs user interface to run in different systems in unmodified form.

It provides this ability by binding Lua with its C/C++ code, or simply writing C to the application programming interface (API). It handles user interface elements by using native controls provided by native APIs, such as Windows API in Windows, GTK+ in Linux, and Motif-LessTif in older Unices. It also provides some custom developed controls using graphics APIs such as CD - Canvas Draw or OpenGL.

Features

IUP's distinguishing features include:

  • ANSI C API, one of the few plain C-capable toolkits,
  • Single API for Windows or Linux,
  • Built in support for Lua scripts calling IUP functions (controlled by Lua script),
  • Removal of the restriction of class/instance object types, but retaining the prototype Lua-style hierarchy of inheritance.
  • An abstract layout model, in which sizes and positions are calculated from horizontal and vertical containers, rather than explicit X and Y coordinates. Coordinate-based layout is also supported with a third container type.
  • Small API, on the order of about 100 functions.
  • 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.
  • Available as source or pre-built static or dynamic libraries for a wide variety of compilers, including turnkey example source.

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. Or, 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 Lua compiler if needed.

Support for UTF-8 was added to the Windows target in November 2013 with the release of version 3.9.

License, copyright

IUP is liberally-licensed for free use, modification, sale, and redistribution under the MIT license.

IUP has been in development at least since the 1.8 version issued in 1998. It was begun in collaboration with Petrobras.

References

  1. "IUP for Zig". Zig NEWS. 19 September 2021. Retrieved 2023-05-16.
  2. "IUP - Portable User Interface". www.tecgraf.puc-rio.br. Retrieved 2016-09-24.
  3. "History 3.x". www.tecgraf.puc-rio.br. Retrieved 2023-05-16.
  4. "Tecgraf Library License". www.tecgraf.puc-rio.br. Retrieved 2015-12-03.

External links

Graphical user interface builders
Qt
Open source
GTK
Open source
Proprietary
wxWidgets
Open source
CLI
Open source
Proprietary
VCL,
related
Open source, LCL
Proprietary
Cocoa
Proprietary
Java-based
Open source
Proprietary
Windows API
Open source
Proprietary
Other
Open source
Proprietary
Lua programming
Ports, distributions
Package manager
IDEs
Applications, frameworks


Stub icon

This free and open-source software article is a stub. You can help Misplaced Pages by expanding it.

Categories: