THE OSF WINDOWING SYSTEM

The OSF user interface is built around several graphical user-interface technologies

Kee Hinckley

Kee is a software engineer currently on loan to the Open Software Foundation from Apollo Computer and he can be reached at 11 Cambridge Center, Cambridge, MA 02142.


Two months after its formation in 1988, the Open Software Foundation (OSF) released a Request For Technology (RFT) to organizations to submit their X Window System-based user-interface technologies for inclusion in the OSF's future implementation of Unix. After reviewing the 39 systems that were submitted, the members of the OSF staff responsible for the "user environment component" or UEC (that is, the graphical user interface) culled the list to 23 qualified candidates. The UEC staff then divided these into four areas of interest; Window Managers, User Interface Toolkits, User Interface Management Systems, and Graphical Desktops.

Early this year, the OSF announced a hybrid UEC windowing system selected called the "OSF/Motif user interface system" built around, not one, but several graphical user interface technologies: Digital Equipment Corp.'s (DEC) toolkit to provide the interface toolkit, Hewlett-Packard to provide the window appearance, and Microsoft's Presentation Manager for the user interface's behavior.

The Selection Scope

OSF intentionally worded the initial RFT so as to encourage submissions in a variety of areas that otherwise might not have been recognized at the outset of the process. This revealed a wide variety of submissions exhibiting diverse strengths. Many of these submissions were of potential interest for inclusion in the core offering, but were not yet appropriate for a variety of reasons. Some are in technology areas where the market has not yet settled on a single model or set of techniques. Others, depended on technologies not yet widely available to some OSF members, or required base technologies that as yet are not standardized. Rather than ignore these products completely, OSF created a model to facilitate channeling them in directions compatible with the OSF base offerings, and potentially into the base offering set itself.

At the center of this model is the UEC core offering made up of a style guide, which provides a description of the behavior and a reference appearance; user interface toolkit, which provides a standard graphical user interface layer; presentation description language, which provides quick turn-around and easy modification of user interfaces; and window manager, which gives the user a standard environment for manipulating application windows.

The second ring of the technology model is the OSF catalog program. The catalog program encompasses technologies that use or are integrally compatible with the core offerings, but which OSF is not ready to include in the core. Submissions currently under consideration for inclusion in the catalog program include: open dialogue, a presentation and dialog management system submitted by apollo computer; base/open user interface management system, a dialog management system submitted by the swedish telecom group; and generic window manager, a UIMS for building window managers, submitted by Groupe Bull.

The final ring of the technology model is the OSF research program. This includes areas of interest in which OSF is encouraging investigation, but which are not necessarily compatible with the core offerings and may not be as portable. UEC offerings currently under consideration for this program include the Andrew Window System, submitted by Carnegie-Mellon University.

The core offering is currently available to OSF members in snapshot form (that is, prerelease versions in source code form). The first version of the UEC, available in the summer of 1989, will be portable to both System V and BSD Unix systems. The initial catalog and research technology offerings will be available in a similar time frame.

The OSF/Motif toolkit is based on the X Intrinsics, a toolkit framework provided with MIT's X Window System (Version 11, Release 3). The Intrinsics use an object-oriented model to create a class hierarchy of graphical objects known as "widgets." Widgets have an associated set of "resources," some of which are specific to a particular class of widget, others inherited from superclasses. Resource values are specifiable both by the application program (either directly or through the presentation description language) and by the user (through a standard set of files that are read by the Intrinsics). They determine the actual appearance and behavior of any particular instance of a widget and give the user and application designer a great deal of latitude for customization. For example, a PushButton widget has resources to set the top and bottom "shadow" colors that give it a 3-D appearance. Other resources set the color of the button, the color of the text, and a list of callback procedures for each of a wide variety of events (arm, disarm, activate...). Most applications need not set more than a few resources; the OSF/Motif Toolkit provides reasonable defaults for the rest, on both color and black and white systems.

One of the strengths of the OSF/Motif toolkit is the extensibility provided by its object-oriented model. It is easy for the application designer to add new widgets, even without access to the OSF/Motif source code. Thus, vendors and third parties can create entirely new graphical objects that are specific to their applications, or they can sub-class from an existing class to add functionality to a particular widget (for example, a Text widget that does a specific type of command completion). This extensibility allows the toolkit to grow and advance in the future as new user interface techniques are developed.

The Style Guide

The user interface portion of a program can be broken into two parts--its "appearance" and its "behavior" (that is, its "look and feel" respectively). It was the opinion of the OSF membership, consultants, and staff that the behavior was by far the more important of the two. As a result, the OSF/Motif style guide sets forth the manner in which the application should interact with the user, but not how the graphical objects themselves should appear. It does, however, address some layout issues, because the location of certain common functions (such as the Help button) clearly affects the user's behavior. The visuals furnished with the toolkit provide a distinctive and intuitive 3-D appearance, however, vendors and software developers are free to modify this appearance as they wish.

The behavior of the OSF offering is compliant with the Presentation Manager, as specified by the joint HP/Microsoft submission. This provides the user with a well-designed and well-tested interface. In addition, it provides an interface that is familiar to anyone having used Macintoshes, PCs, or other systems descended from the Xerox user interface research. This creates a high level of "user-transferability" between personal computers and workstations, a goal clearly set forth by the OSF membership.

The Window Manager

Unlike many window systems, the X Window System is "policy-free" with regards to application windows. Instead a separate application is provided, which allows the user to move, resize, iconize, or otherwise manipulate windows. (Unix-based window systems traditionally have a concept of an "icon" different than that in graphical desktops. Rather than representing a file or folder, these icons represent running programs that the user temporarily doesn't want, taking up large amounts of screen space.) Window managers provide the window "dressing" (special areas around the window border, which are used to perform these functions) and they can implement policies concerning where certain windows can go, whether windows can overlap, and where to put the icons.

The OSF/Motif Window Manager provides the user with standard Presentation Manager behavior. It is highly customizable, however, and allows the user to redefine the contents of the window manager menus, control the amount and behavior of the window dressing, and alter many other aspects of window-related interactions.

The Presentation Description Language

The PDL is a language for describing widget resources. Normally the application programmer must make a series of calls to build up a widget description, and then create the widget. With the OSF/Motif PDL, the programmer (or interface designer) creates a text file that contains a description of each of the widgets and their resources. This description is then compiled into a resource file. The application code simply makes a call to load this file and the widgets are automatically created and initialized. This separation of application and interface allows the interface designer to make many changes to the overall appearance and layout of an application without having to modify, recompile, or relink the application itself.

Native Language Support

One of the primary goals of the RFT process was to support non-English languages. While this area still requires a great deal of work (particular in the area of simultaneously supporting 8-bit and 16-bit character sets), the OSF offering does begin to address the problems. This is done by using a Unix "environment variable" (the X/Open specified LANG variable) to determine the current default language. (Environment variables are set from the standard Unix command interpreters --usually when the user logs in --and can be read via a system call by any interested program.) The toolkit uses this information to load the user and application resource files appropriate for that language. Because the text of an interface is stored in the resource file, it allows the developer to easily construct interfaces that can be localized to particular language environments. In addition, this facility can be used by programs that wish to support more than one language. By specifying the language name explicitly they can override the default and load all, or part of their resources, from a specific language file; even if that file did not exist when the application was originally built.

Summary

The OSF UEC system represents nearly six months of open input and close scrutiny of a wide variety of user interface technologies. Its availability across a wide range of Unix platforms, and its high-level user interface toolkit should increase the incentive of software vendors to port to the Unix market. In addition, the UEC work at OSF does not end with the current offering. Future activities being considered include: work on providing a printing/imaging toolkit; system information APIs for graphical desktops, shells or cyberspace decks; higher-level user interface APIs that don't require access to the underlying system; compound document support for multi/hyper-mediadocuments; and on-line help facilities; among others.


Copyright © 1989, Dr. Dobb's Journal