WINTERP -- The OSF/Motif Widget INTERPreter

by Niels Mayer
	    E-Mail: winterp@nielsmayer.com

WINTERP home page

WINTERP is the OSF/Motif Widget INTERPreter, an application development environment enabling rapid prototyping of graphical user-interfaces (GUI) through the interactive programmatic manipulation of user interface objects and their attached actions. WINTERP is also an excellent platform for delivering extensible or customizable applications. By embedding a small, efficient Lisp interpreter with UI primitives within the delivered application, users and system integrators can tailor the static and dynamic layout of the UI, UI/application dialogue, and application functionality.

WINTERP is a good tool for learning and experimenting with the capabilities of the OSF/Motif UI toolkit, allowing UI designers to more easily play "what if" games with different interface styles. WINTERP's implementation provides a compromise between the prototyping and extensibility advantages of Lisp environments, and the inefficiency and expenses of delivering Unix applications under environments such as Common Lisp. Typically, prototyping and customization are done entirely in interpreted Lisp; for delivery, efficiency-critical low-level code may be written in C and is easily exported to the interpreter as a new primitive.

WINTERP was first made publicly available on the X11r4 "contrib" distribution and new releases have appeared on the X11r5 and X11r6 distribution. The recent X11r6 release of WINTERP 2.0 significantly improves on previous releases by providing a variety of developer tools and libraries for increased productivity. Improved functionality is delivered via object-oriented graphics and 2.5D animation, asynchronous subprocesses, the XmGraph widget (for creating directed acyclic graphs, trees, and direct-manipulation displays), the Table widget (GUI layout using tbl(1)-style specifications), GIF support, etc.

WINTERP's interpreter is based on David Betz, Tom Almy, Luke Tierney et al's XLISP-PLUS. The interpreter's Smalltalk-inspired object system enables a truly object oriented interface to the X11 toolkit Intrinsics (Xt) and the OSF/Motif widget set. WINTERP's use of a real programming language for customization/prototyping allows WINTERP based applications to be much more flexible than applications using lower-level and less-general languages provided by the X resource database, Brunecky&Widget Creation Library (WCL), OSF/Motif's UIL (user interface language), and Ousterhout's TCL/Tk. Furthermore, the use of object-orientation at a fundamental level within the application UI code allows WINTERP-based applications to scale more effectively than other languages.

WINTERP 2.0 features an object-oriented 2.5D graphics and animation "widget" based on John Stasko's Xtango path transition paradigm. Both for static and dynamic graphics, this high-level interface simplifies and abstracts away much of the low-level drudgery required to create 2.5 D graphics interfaces -- smooth, flicker free display updates occur as complex nonrectangular graphical objects move around and obscure and uncover each other. Animation composition operations allow multiple individual shapes to all move "simultaneously" through sequences of animation frames. The graphics are pixel-independent and easily resizable, scalable and zoomable. Each primitive graphics image class supports its own set of class specific animation and movement methods, while some operations (e.g. movement, fill, etc) are polymorphic. The following primitive objects are supported:

The primitive graphics classes may also be contained in a composite image class, which provides a grouping and layering principle for new classes presenting multiple images. Composite images allow the construction of independent layers of animation objects which may be operated on in groups.

WINTERP's graphics capabilities enable simple game-style animation, employing multiple layers of arbitrarily shaped objects. Furthermore, application-specific interactive-graphics capabilities may be encapsulated into a new Widget-Class. This significantly simplifies the creation and integration of new graphics widgets into the system -- these special widgets look like normal Motif widgets to the rest of the system.

To enable GUI-applications based on existing Unix facilities, WINTERPprovides primitives for collecting data from Unix processes, and facilities for interacting with other Unix processes. These facilities make it possible to glue together existing Unix functionality into a GUI based application with a relatively small amount of WINTERP-Lisp "glue". WINTERP2.0 features the ability to run multiple interactive, asynchronous Unix subprocesses without blocking GUI interactivity. This feature is useful for creating GUI interfaces to existing terminal-based programs, and can also be used for connecting to interactive network services and databases.

An environment similar to WINTERP's already exists in the Gnu-Emacs text editor -- WINTERP was strongly influenced by Gnu-Emacs's successful design. In Gnu-Emacs, a mini-Lisp interpreter is used to extend the editor to provide text-browser style interfaces to a number of Unix applications (e.g. e-mail user agents, directory browsers, debuggers, etc.). Whereas Emacs-Lisp enables the creation of new applications by tying together C Implemented primitives operating on text-buffer UI objects, WINTERP-Lisp ties together operations on graphical UI objects implemented by the Motif widgets. Both achieve a high degree of customizability that is common for systems implemented in Lisp, while still attaining the speed of execution and (relatively) small size associated with C-implemented applications.

WINTERP features:

References on WINTERP, and its components:

David Michael Betz. "XLISP: An Object-oriented Lisp (version 2.1)" Unpublished documentation accompanying the public release of Xlisp software. David Michael Betz, P.O. Box 144, Peterborough, NH 03458, April, 1989.

Olaf Heimburger. "Elche Im Winter -- Interaktive X-Applicationbuilder unter Lisp -- Elk und WINTERP." iX, July 1991, pp 64-68.

Niels P. Mayer, Allan W. Shepherd and Allan J. Kuchinsky. "Winterp: An object-oriented, rapid prototyping, development and delivery environment for building extensible applications with the OSF/Motif UI Toolkit." In Proceedings Xhibition '90, X Window System and Open Systems Technical Conference, San Jose, CA, May 1990, pp 49-64.

Niels P. Mayer, Allan W. Shepherd and Allan J. Kuchinsky. The WINTERP Widget INTERPreter -- An Application Prototyping and Extension Environment for OSF/Motif. In Proceedings X Into The Future, The European X Users Group Autumn Conference 1990, Surrey, UK, September 1990, pp. 33-55.

Niels P. Mayer. The WINTERP Widget INTERPreter -- A Lisp Prototyping and Extension Environment for OSF/Motif-based Applications and User-Interfaces. Lisp Pointers, ACM SIGPLAN, Volume IV, Number 1, pp 45-60.

Niels P. Mayer. The WINTERP OSF/Motif Widget INTERPreter -- A graphical user-interface language for rapid prototyping and delivering extensible applications. In Proceedings Motif '91, First Annual International Motif Users Meeting, Washington DC, December 1991, pp. 248-269.

John T. Stasko. The Path-Transition Paradigm: A Practical Methodology for Adding Animation to Program Interfaces. Journal of Visual Languages and Computing. (date, volume, page, publisher info unknown).

Don Libes. Expect: Curing Those Uncontrollable Fits of Interaction, Proceedings of the Summer 1990 USENIX Conference, Anaheim, CA, June 11-15, 1990.

Papers describing applications written using WINTERP:

Allan Shepherd, Niels Mayer, and Allan Kuchinsky. STRUDEL: An Extensible Electronic Conversation Toolkit. In David Marca and Geoffrey Bock, editors, GROUPWARE: Software for Computer-Supported Cooperative Work, IEEE Computer Society Press, 1992, pp. 505-518. (originally, in proceedings Conference on Computer-Supported Cooperative Work, Los Angeles, October 1990, pp. 93-104.)

Jay Glicksman, Glenn Kramer, and Niels Mayer. "Internet Publishing via the World Wide Web". In proceedings Groupware '94, August 1994. San Jose, CA.

Niels Mayer, and Jay Glicksman. A paper describing the WWWeasel multimedia/html authoring environment.


mailto:winterp@nielsmayer.com