Chapter 3. Programming: GUI Construction in the Unix Environment

Table of Contents

Overview
Programming with the X Server
Toolkit libraries and bindings
Components of GUI environments
Higher-Level Widgets with Consistent Policy
Window Managers
An interface to ICCCM, and possibly an object broker
Sound Support
Other Services for Application Programming
Choosing a Desktop
Interface styles and Programming Models
The X Programming Model
Events: the Input Side
Rendering: the Output Side
X Programming at the Application Level
Scripting Languages, Code Generators, and GUI Best Practices

GUI fragmentation is the greatest competitive weakness of Unix.

-- The Unix GUI Manifesto

This chapter will explain how the Unix GUI stack fits together. By the time you are finished reading it, you will understand how Unix programs, libraries, and system services cooperate to throw graphics and text on a screen and handle input events. You will be aware of the major alternatives at each level of the stack, and be prepared to learn any of the specific APIs needed to use them. You will also have some knowledge of the sorts of construction tools that are available to automate GUI coding.