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.