Penguin
Note: You are viewing an old revision of this page. View the current version.

GUI ToolKits are libraries written to ease the task of writing GUI applications by abstracting the drudgework away from the programmer. As an added bonus, they offer a consistent look between applications that use the same one.

In a GUI application written without a ToolKit the actual program is a long loop that continuously calls a function to poll incoming events and then feeds them into a huge switch construct that decides how to react to each event. Every single facet of the application's behaviour has to be reflected here. Needless to say, writing non-trivial applications this way is tiresome at best.

A GUI ToolKit's main responsibility is to abstract away this event loop in a way that it can be maintained and extended easily. To this end, the different "widgets" (such as buttons, labels, menus etc) of a GUI are treated as black boxes. An EventModel is then specified, which defines how events "propagate" across these blackboxes. The EventModel is a large factor in the design of an application's architecture. Different ToolKits tend to use very different EventModels, which can cause a great deal of confusion.

GUI Toolkits include:

  1. Tk (Perl, TCL)
  2. awt (Java)
  3. swing (awt, Java)

#