IUP Portable User Interface Version 2.6
Total Page:16
File Type:pdf, Size:1020Kb
IUP Portable User Interface Version 2.6 IUP is a portable toolkit for building graphical user interfaces. It offers a configuration API in three basic languages: C, Lua and LED. IUP's purpose is to allow a program to be executed in different systems without any modification, therefore it is highly portable. Its main advantages are: high performance, due to the fact that it uses native interface elements. fast learning by the user, due to the simplicity of its API. This work was developed at Tecgraf/PUC-Rio by means of the partnership with PETROBRAS/CENPES. Project Management: Antonio Escaño Scuri Tecgraf - Computer Graphics Technology Group, PUC-Rio, Brazil http://www.tecgraf.puc-rio.br/iup Overview 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. Availability 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 Support The official support mechanism is by e-mail, using [email protected] rio.br. 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 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. 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/. Credits 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. Documentation 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. Publications 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] Tecgraf Library License All the products under this license are free software: they can be used for both academic and commercial purposes at absolutely no cost. There are no royalties or GNU-like "copyleft" restrictions. They are licensed under the terms of the MIT license reproduced below, and so are compatible with GPL and also qualifies as Open Source software. They are not in the public domain, Tecgraf and Petrobras keep their copyright. The legal details are below. The spirit of this license is that you are free to use the libraries for any purpose at no cost without having to ask us. The only requirement is that if you do use them, then you should give us credit by including the copyright notice below somewhere in your product or its documentation. A nice, but optional, way to give us further credit is to include a Tecgraf logo in a web page for your product. The libraries are designed and implemented by a team at Tecgraf/PUC- Rio in Brazil. The implementation is not derived from licensed software. The library was developed by request of Petrobras. Petrobras permits Tecgraf to distribute the library under the conditions here presented. The Tecgraf products under this license are: IUP, CD and IM. Copyright © 1994-2007 Tecgraf / PUC-Rio and PETROBRAS S/A. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Download The download files are in the IUP LuaForge site available at: http://luaforge.net/project/showfiles.php?group_id=89 Before downloading any precompiled binaries, you should read before the Tecgraf Library Download Tips. Some other files are available directly at the IUP download folder: http://www.tecgraf.puc-rio.br/iup/download/ History of Changes Version 3.0 (NOT Released/Commited YET) IUP 3.0 is already under development but will be released only about two months after 2.6. See here what has been changed so far. Parts of the documentation also already reflect 3.0 changes. Varsion 2.6 RC1 (15/Apr/2007) General New functions IupGetChild, IupGetAllAttributes. Added missing documentation of IupGetParent. LEDC now supports IupCells, IupCbox, IupOleControl and IupSpin. Fixed caps lock key codes. Missing IupSetAttributeHandle and IupGetAttributeHandle exports in the DLL. New CLIPBOARD attribute with COPY, PASTE and CUT values for IupText and IupMultiline.