Linux, in contrast to most other operating systems (including most commercial unixes), does not come with a standard GUI library such as Motif or Win32 controls. This makes it very difficult to develop appealing graphical applications for Linux, especially for the freeware developers that are keeping Linux alive. The Linux Interface Project (LIP for short) is an effort trying to solve this problem.
In the beginning, we identified several critical factors that must be met to have a really universally usable toolkit for freeware GUI development:
At the outset of the Linux Interface Project we believed that one of the dozens of existing toolkits would certainly meet these requirements. To our surprise, we found that none did. Especially the first requirement ruled out most of the existing toolkits that either cost money or isn't free for commercial use.
To solve that problem, the LIP project intends to provide a GUI toolkit that matches all of the above points. Unfortunately this means that we have to re-invent the wheel - again. To save our successor from having to do this again if they are not satisifed with our results, we provide a heavily seperated system. The lowest layer is a C++ binding for X (currently based upon Xlib). The next layer is an application and widget framework, providing the most important widgets and some common dialogs. On top of that, applications can be built.
By layering the functionality we provide a very convenient method of extending functionality because adding functionality can be done using the C++ binding. We are promoting code reuse in our own library by using standard libraries like libXpm and the Standard Template Library.
Future plans include providing a graphical interface builder, transparent support for X extensions like the X session management protocol and higher-level widgets.
More information can be found at http://blank.pages.de . Preliminary source is available from ftp://blank.pages.de/lip/. The core library is scheduled to be released by end of February.
Michael Dingler <firstname.lastname@example.org>
Jonas Bolther Andersen <email@example.com>
Kai Wetzel <firstname.lastname@example.org>
Ingo Lütkebohle <email@example.com>