by David Sweet
In This Chapter
Before I begin discussing programming, you should get to know a little bit about KDE: its motivation, goals, and the reasons for its appeal. You'll also need to install the programming libraries and documentation.
If you are a UNIX (or Linux, FreeBSD, and so on) user, you most likely are familiar with the look and feel of a typical (non-KDE) X desktop. The window decorations (window borders, minimize, maximize, close buttons, and so on) and the various programs that live in those windows are typically drawn in different styles and operate differently. For example, the image display and manipulation program display, part of the ImageMagik distribution, uses pull-down menus and buttons that look and operate very differently from those used by the popular PostScript preview program gv.
The pull-down menus in display are organized into a vertical list of headings in a separate window from the image being viewed, whereas the menus in gv are shown horizontally above and in the same window as the PostScript document, and there are other differences. These types of inconsistencies abound and make it more difficult to learn new X-based programs. If each application used the same widgets (the basic elements of the GUI, such as buttons, scrollbars, and menubars), window layout (that is, menubar at the top), and so on, the user would need only learn application-specific functions when starting to work with a new application. That is, the user would learn the interface once and could transfer that knowledge to all new applications.
When the K Desktop Environment (KDE) project began in October 1996, a standard existed—the Common Desktop Environment (CDE), which was based on the Motif widget set—that aimed to solve this problem. The main problem with this was that the Motif widget set was expensive, and thus not appropriate for free software developers (indeed, many of the popular UNIX programs are freely developed). The KDE founder, Matthias Ettrich, saw that a free desktop could be developed by combining Qt, a well-constructed widget set developed by TrollTech of Norway, with the General Public License (GPL) source code of many free software applications. If the applications were all ported to the Qt widget set according to some set of UI guidelines, users of KDE would have a desktop that contained the usual, expected functionality but also had the comfortable feel of a uniform user interface. This plan was taken a step further by adding a desktop file manager/Web browser and a panel (inspired by the CDE, Windows 95, and OS/2 panels) for launching applications.