Direct-manipulation user interfaces

A direct-manipulation user interface presents on a user's display the visual representation of the objects of an application program and a menu of the generic operations that can be performed on any of them. Instead of using a, frequently hard-to-learn, command language to describe operations on hidden objects, the user handles them directly on a graphic display. The displayed objects are active : they are modified at each action, they are not simply the static output resulting from a command execution. We have developed direct-manipulation user interfaces for various applications, including physics data acquisition control, charged particles beam transport design, graphical data presentation, physics spectra and medical images analysis. Object-oriented programming has been found to be a natural approach to design direct-manipulation user interfaces. The C++ object-oriented language has been selected for its availability and efficiency to implement such interfaces on top of the industry standards X Window System for Unix Workstations. The objects have been clearly separated into subjects and views. The subjects are the abstract models of the application data and the views are their displayed representation. The subjects are built from NIH, a general purpose C++ object library designed by Keith Gorlen of the US National Institute of Health. The views are made of the structured graphics of InterViews. Principally used to implement the user interface, InterViews is a C++ X Window Toolkit developed by Mark Linton of Stanford University. Following the rules of the DEC X User Interface Style Guide, we easily reused InterViews and NIH to implement menus and dialogue boxes. We will discuss the architecture of the applications, the advantages and the limitations of the tools and their impact on our implementation.