#chapter Introduction #end chapter #texinfo @subheading What is XPCE? XPCE is an object-oriented symbolic environment indented to be used in cooperation with a symbolic language. The combination provides a hybrid environment with a small but powerful and transparent interface. Although PCE provides many general-purpose classes, it is primarily designed to implement user-interfaces. The ``PCE Project'' was started in 1985 by Anjo Anjewierden. His aim was to develop a high-level UI environment for (C-)Prolog. The requirements for this environment came from the ``Thermodynamics Coach'' project in which Paul Kamsteeg used PCE/Prolog to implement the UI for a courseware system for thermodynamics. This system included a `scratch-pad' that allowed the student to create structured drawings of component configurations. The application had to be able to analyse the drawing made by the student. PCE has been redesigned and largely re-implemented on a SUN workstation using Quintus Prolog and later SWI-Prolog in the Esprit project P1098 (KADS). This project used PCE to implement a knowledge engineering workbench called Shelley. During this period PCE/Prolog has been used by various research groups to implement graphical interfaces for applications implemented in Prolog. Most of these interfaces stressed the use of direct-manipulation graphical interfaces. Feedback from these projects has made PCE generally useful and mature. This document describes version 4 of PCE. Version 4 is a major release. PCE has been moved from SunView to the X-window platform. In the course of this the entire graphics and standard UI component library have been reorganised. The object-oriented infra-structure of PCE has been made available to the application programmer. Performance and memory management have been improved considerably. @subheading The XPCE Reference Manual This manual is a @b{reference} manual of XPCE. That is, all material in this manual is arranged such that finding the @b{definitions} of things already globally known to the user. If you are new to XPCE start with one of the introductions ``Programming in XPCE/Prolog'' or ``Programming in XPCE/Lisp''. These documents provide an overview of the XPCE system and the language binding. They also contain a simple examples. After reading one of these manuals, ``PceDraw'' provides a big worked-out example explaining much of the misteries of programming a realistic application in XPCE/Prolog. The ``XPCE Reference Manual'' is organised to help you find definitions from various viewpoints: the class, a method-name, the ``functional group summary or the concept index. @subsubheading This is a Generated Manual! The ``XPCE Reference Manual'' is automatically generated from the online reference manual available to XPCE/Prolog using the predicate manpce/0 or manpce/1. The online manual is a hypertext system and does not impose any particular ordering of the material. This of course is not possible for a paper version. This manual is basically a sequence of automatically generated class descriptions. The order in which the classes appear and the connecting descriptions between them is defined in a set of template files. To structure the behaviour of a class the notion of @b{``functional group''} has been introduced. Each method and variable of the system is assigned a functional group. The members of a functional group may span multiple classes. Methods and variables belong to a functional group either because they cooperate to realise some functionality or they perform similar functions. These groups are designed such that the set of members that belong to the same group and the same class is always small enough to overview quickly. This, together with the chapter ``Summary of Functional Groups'' provides quick access to related methods based on the function they perform. There is a global list defining the order in which functional groups appear in a class description. The order in this list is based on the global notion of ``common use''. As the group list is global for all classes, the order in which groups appear is the same for each class. Consistency is preferred over the few conflicts with the ``common use'' notion that result from this approach. @subsubheading Structure of this Manual Each chapter contains a number of related classes (Primitive Graphics, Text Manipulation, ...) and generally starts with a short description on the relation between the described classes. Thus description is followed by a full description of each class. The description of a class consists of the inheritance path, possible delegations, an overview of the class, a summary of instance variables and finally a list of behaviour (instance variables, send- and get methods. Behaviour is grouped in ``functional groups''. Members of a functional group either cooperate to achieve a single (functional) goal or perform conceptually related operations. The methods inside a functional group are ordered alphabetically. At the end of this manual there are various indices. @subheading (Re-)Generating this Manual To regenerate this manual from the online documentation you need XPCE/Prolog and TeX-3. See @file{xpce/man/info}. #end texinfo