there's more to menu systems than meets the screen
Love playing with those fancy menu-based graphical user interfaces, but afraid to program one yourself for your own application? Do windows seem opaque to you? Are you scared of mice? Like what-you-see-is-what-you-get but don't know how to get what you want to see on the screen?Everyone agrees using systems like graphical document illustrators, circuit designers, and iconic file systems is fun, but programming user interfaces for these systems isn't as much fun as it should be. Systems like the Lisp Machines, Xerox D-Machines, and Apple Macintosh provide powerful graphics primitives, but the casual applications designer is often stymied by the difficulty of mastering the details of window specification, multiple processes, interpreting mouse input, etc.This paper presents a kit called EZWin , which provides many services common to implementing a wide variety of interfaces, described as generalized editors for sets of graphical objects . An individual application is programmed simply by creating objects to represent the interface itself, each kind of graphical object, and each command. A unique interaction style is established which is insensitive to whether commands are chosen before or after their arguments. The system anticipates the types of arguments needed by commands, preventing selection mistakes which are a common source of frustrating errors. Displayed objects are made "mouse-sensitive" only if selection of the object is appropriate in the current context. The implementation of a graphical interface for a computer network simulation is described to illustrate how EZWin works.
systems play graphics graphical user interfaces user interface interfaces program applications windows documentation circuits design file systems fun lisp process mouse input paper service implementation general object interaction styles argument types select errors context computation network simulation sensitive