Graphical techniques in a spreadsheet for specifying user interfaces

underlying programming language. However, it is significantly easier to use, and provides many of the adMany modern user interface development environments vantages for graphics programming that financial spreaduse constraints to connect graphical objects. Constraints sheets provide for business. are relationships that are declared once and then maintained by the system. Often, systems provide graphical, iconic, or C32 is different from previous spreadsheet systems for user demonstrational techniques for specifying some coninterface construction because it uses a wide array of visual straints, but these are incapable of expressing all desired and inferencing techniques so the user does not have to relationships, and it is always necessary to allow the user write the entire constraint by hand. In particular: interface designer to write code to specify complex constraints. The spreadsheet interface described here, called • C32 automatically generates appropriate references to C32, provides the programmer with the full power of writgraphical objects when the user clicks on the object in a ing constraint code in the underlying programming lanuser interface window. guage, but it is significantly easier to use. Unlike other • It uses demonstrational techniques to guess which spreadsheets tools for graphics, C32 automatically properties of objects should be used, generates appropriate object references from mouse clicks • It guesses how to parameterize constraints when they are in graphics windows and uses inferencing and demonstracopied from one place to another or generalized into tional techniques to make constructing and copying conprocedures, so abstract and reusable constraints can be straints easier. In addition, C32 also supports monitoring constructed by example. and debugging interfaces by watching values in the spread• It incorporates graphical techniques to help trace and sheet while the user interface is running. debug constraints. • It is integrated with an existing prototype-instance sys