Chapter 17. Introduction
What are GUI toolkits?
- GUI
- Graphical User Interface 
The problem:
- There are many OSes out there 
- Every OS looks different 
- There must be some way to get buttons, windows, etc. 
- There is no common standard! 
Unfortuntely, every OS has a different "windowing system"
- Unix / Linux
- uses X11. 
- MacOS X
- uses Aqua. 
- Windows
- uses Win32 API. 
Programming for these systems direct is not much fun. It involved plain C (no C++).
Therefore, people have written toolkits.
- Toolkit
- In computer programming, widget toolkits (or GUI toolkits) are sets of basic building elements for graphical user interfaces. They are often implemented as a library, or application framework. 
Some very common Toolkits are:
- Motif
- build on top of X11, written in C. 
- GTK (Gimp Tool Kit)
- build on top of X11, written in C. A windows version is available, but not as stable. 
- QT
- Written in C++. The X11 version is free, the windows version is commercial. 
- Carbon
- Build on top of Aqua. Written in C. 
- Cocoa
- Build on top of Aqua. Written in Obj-C. 
- MFC (Microsoft Foundation Classes)
- Build on top of Win32. Written in C++. Only available with Visual Studio 
- VCL (Visual Component Library)
- Build on top of Win32. Written in C++. Only available with Borland compilers. 
- wxWidgets
- Cross-Plattform. Works on top of X11, Carbon, or Win32. Written in C++. Freely available for most compilers. 
There are many, many other toolkits. This is just a small selection.
Unfortunately most of these toolkits do not come standard on the respective OS. That means:
- When you develop, you need to make sure the development portion of the toolkit you are using is installed on the machine 
- When you deploy, you need to ensure that the deployment portion of the toolkit is on the users machine. For windows, this means .dll files.