Free GUI Libraries and Source Code
Graphical User Interface libraries/source code for a more portable application
Free GUI Libraries and Source Code
The libraries and source code listed here allow you to design a graphical user interface, or GUI, for your application at a high level, and perhaps non-operating system specific, manner. This eases your coding, and might make your application portable among different platforms, useful if you plan to port it later. Some of the libraries here may also come with a GUI builder, which allow you to design the appearance of your application visually.
If you are looking for 3D or 2D engines, image or drawing libraries, animation libraries, and the like, please check out the Free Graphics Libraries, 3D Engines, 2D Engines, Animation Libraries, Image Drawing Libraries page as well as the Free Games Programming Libraries and Source Code, instead. Libraries to handle sound, music, digitized voice, and other audio related functions may be found on the Free Audio, Sound, Music, Digitized Voice Libraries and Source Code page.
Free GUI Libraries and Source Code
IUP is a cross-platform library for C, Lua and LED. It provides the facility to create and manipulate a large number of GUI primitives like dialog boxes, labels, buttons, text, multi-line boxes, list boxes, toggles, menus, submenus, file selection dialog boxes, and so on. Platforms supported include Windows (using the Win32 API), Linux (using GTK+), FreeBSD (using GTK+), SunOS (using Motif), IRIX (using Motif) and AIX (using Motif). This library is licensed under the MIT licence.
- FLTK (Fast Light Tool Kit)
This C++ GUI toolkit, Fast Light Tool Kit, works under Unix-type systems (like Linux), Windows and Mac OS X, making it very useful if you have to write a program that works on a variety of platforms. It supports 3D graphics by using OpenGL. The source code is released under GNU Library Public License (also known as the LGPL) with exceptions that allow static linking. There is also an interface builder that generates a human-readable, editable C++ code for you. If you write C++ GUI programs for a number of platforms, and want a portable high level library that takes care of the lower level details of each platform for you, you might want to check this out.
The Qt Project is a class library / framework that lets you develop cross-platform applications for a number of operating systems including Unix-type systems (like Linux) as well as Windows. It also comes with a number of developer tools like a GUI Designer that lets you rapidly create a GUI layout and forms for your application.
A free multi-platform GUI library for C++, Python, Perl, and C#. Platforms supported include Win32, Mac OS X, Unix-based systems (like Linux, FreeBSD, etc) and WinCE. The Unix-based versions require either GTK+ or Motif. The library uses the operating system's native controls rather than redrawing its own, thus giving your application the look and feel of an application native to the system it is running on.
MGui, or the MORELLO Graphic User Interface, is a cross-platform GUI written in ANSI C. It has the usual widgets like menus, push buttons, editable fields, lists. It comes with a code generation tool so that you can design and maintain your interface visually. Platforms supported include Windows 3.1, 95, 98, NT, X Window, DOS. The GUI may not be used for commercial purposes. Only binaries are supplied. The library does not appear to have been updated for quite a long time.
If you need a lightweight cross-platform GUI for real-time embedded devices and an embedded graphics middleware, you may want to check out MiniGUI. It runs on Linux/uClinux, eCos, VxWorks, pSOS, ThreadX, Nucleus, uC/OS-II, Win32. Hardware platforms tested with it include Intel x86, ARM (ARM7, ARM9, StrongARM, xScale), PowerPC, MIPS, and M68K (DragonBall, ColdFire). You can run it with support for threads, processes or compile it to run standalone. It has support for built-in resources like bitmaps, icons, fonts. It has a multi-window and messaging mechanism, commonly used controls like labels, buttons, multi-line edit boxes, list boxes, combo boxes, progress bars, property sheets, toolbars, track bar, tree view, list view, month calendar, grid view, animation, etc, as well as support for dialog boxes and message boxes. You can also use menus, accelarator keys, the caret, timers, Windows resource files, popular image file formats (GIF, JPEG, PNG, Windows BMP, etc), multiple character sets, fonts, etc. The graphics API allows you to do raster operations such as create complex regions, draw and fill ellipses, arcs, polygons, etc. There is also special support for embedded systems such as common I/O operations, byte-order functions, touch screen calibration, etc. The library is released under the GPL. Be sure to select the GPL open source package when you download.
SmartWin is a C++ abstraction of the Windows API. It is designed to by type safe and be as thin a layer over the Windows API as possible. It currently requires you to either have the free Microsoft Visual C++ compiler (scroll down that page for more information) or the commercial Microsoft Visual Studio C++ 7.1, since the library is designed specifically for that compiler.
- Winelib and Wine
Winelib is a development toolkit that is included in Wine (the open source implementation of the Windows API, both Win32 and Win16). It allows you to compile and link your Windows source code so that it runs under systems that support Wine (like Linux, FreeBSD, etc). Although, at the time of this review, the process is not as smooth as developers would like it to be (ie, you can't just take your Windows source code and recompile with gcc -lwine), it makes porting your applications considerably easier since you don't have to rewrite your application to use a different API. Wine and Winelib is licensed under the GNU Lesser General Public License (LGPL).
- GtkAda Ada95 Graphical Toolkit
GtkAda is an Ada95 graphical toolkit based on Gtk+ (a graphical toolkit for X-Window and Windows). The language bindings allow you to access all the widgets in Gtk+. The toolkit is distributed under a modified GPL license that allows the creation of proprietary software. The toolkit has been tested on Linux (x86, Sparc, PowerPC), Solaris (x86 and Sparc), Tru64, SGI IRIX, HPUX, Windows NT, Windows 2000, AIX, FreeBSD, and UnixWare.
Windows++ is a C++ application framework that has a small footprint. It works with Win32 and Windows 3.1. The framework is the one described in the book of the same name (in the Andrew Schulman Programming Series).
- Fox Toolkit
Fox is a C++ graphical class library that allows you to develop portable GUI applications that run on numerous platforms. It has a number of controls, icons, images, status line help, tooltips, supports drag and drop, selection as well as OpenGL widgets for 3D graphical manipulation. Among the platforms supported are Linux, FreeBSD, SGI IRIX, HP-UX, IBM AIX, Sun Solaris, DEC/Compaq Tru64 Unix, Windows 9x/ME, and Windows NT/2000.
- Nano-X Window System
The Nano-X Window System (formerly MicroWindows) is an Open Source project that allows you to add a graphical windowing environment to your applications that are designed for smaller devices and platforms. It does not require any operating system or graphics system support and writes directly to the display hardware. Very handy if you're developing for the portable handheld and pocket PCs (Palm, etc). They support the Win32 API as well as the Nano-X API, so you should probably be able to port your Windows programs more easily. If you are a PDA developer, you might want to check this out.
This is not a clone of Motif, but the actual Motif itself. The developers have now made Motif a sort of open software with source code and binaries freely available for download. However, the licensing allows you to use it free of charge only on open source operating systems like Linux and FreeBSD. Precompiled binaries for the latter two operating systems are available.
- Graphics Vision For The Free Pascal Compiler
This is a free implementation of Borland's Turbo Vision which provides an object oriented user interface. Unlike Turbo Vision, this is graphics based, and has support for TrueType, vector and VGA fonts, etc. This particular version is designed for the Free Pascal Compiler (see the Free Pascal and Delphi Compilers page). It works not only on the MSDOS platform, but also on Linux as well (using SVGALIB).
Whisper is a general purpose C++ application framework, which takes advantage of templates, multiple inheritance, STL and exceptions and design by contract. It is portable to Windows, POSIX systems (like Linux and the BSD systems), and Mac OS X and Classic.
- TOAD C++ GUI Class Library
A C++ GUI frameworks for use with X Windows systems. Requires the GNU C compiler or EGCS.
- VCF Visual Component Framework
VCF is a C++ application framework designed for Rapid Application Development (RAD). It has various graphics classes, including support for anti-aliased vector graphics; image loading support for various graphic formats (TIFF, TGA, PSD, PNG, SGI, MNG, RAS, PBM, PPM, etc); facilities for drawing graphics; application classes for handling resources, loading windows or forms, saving application state; Undo/Redo support; GUI controls; etc. It uses modern C++ features like exceptions, templates, STL, and name spaces. It is intended to be portable across systems, although at the time this was written, it has only released versions for Windows; the Linux and Mac OSX ports are not yet available. The framework is licensed under the BSD License.
How to Link to This Page
It will appear on your page as: