Len.Bass@SEI.CMU.EDU (08/16/89)
The Serpent UIMS is available for public release. Serpent represents a new generation of User Interface Management Systems which manage the total dynamic behavior of an interface and which allow applications to remain uninvolved with the details of the user interface. It differs from available tools in this ability to handle dynamic behavior. Serpent is available for anonymous ftp. It can be found on fg.sei.cmu.edu under the directory /usr/data/ftp/pub/serpent. Serpent is designed to manage relatively arbitrary toolkits. There is a language which is used to describe the user interface and its dynamic behavior and an editor (under development) that allows the interface to be built using standard drawing facilities. Only the language and its supporting software is being released at this time. The language is very simple for specifying simple interfaces and is powerful enough to provide for creating visual programming demonstrations. Demonstrations of the language are included in the released software. The "Hello World" program written using Serpent is: #include "saw.ill" ||| OBJECTS: hello: label_widget {ATTRIBUTES: label_text: "Hello world"; } Serpent is intended to be used either with an application in a production environment or without an application in a prototyping environment. There is an interface description language used both by the application to describe its interface to Serpent and by the toolkits to describe their interface to Serpent. Applications and toolkits written in either C or Ada can be used with Serpent, although the interface description mechanism is designed to be extensible to other languages. The use of Serpent depends upon the types of toolkits which have been integrated into it. Currently, Serpent supports the Athena Widgets. The usage of the toolkit includes moving and resizing capability for widgets within their parents and point specification capabilities for form widgets to allow pointing for the positioning of new widgets.