CHI 90 Prcmedings April 1990

Automatic, Look-and-Feel Independent Dialog Creation for Graphical User Interfaces

Brad Vander Zanden Brad A. Myers

School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 [email protected]

ABSTRACT INTRODUCTION

Jade is a new interactive tool that automatically creates Jade is a new tool that automatically createsand lays out graphical input dialogs such as dialog boxes and menus. graphical input dialogs, such as menus,palettes, buttons, Application programmerswrite a textual specification of and dialog boxes. It does this by combining a textual a dialog’s contents. This specificationcontains absolutely specification of the dialog’s contents, written by an ap- no graphical information and thus is look-and-feel inde- plication programmer, with look-and-feel databases pendent. The graphic artist uses a direct manipulation prepared by a graphic artist or style expert. The dialog graphical editor to define the rules, graphical objects, in- can then be modified by a graphic artist using a direct teraction techniques,and decorations that will govern the manipulation, graphical editor, and Jade will maintain dialog’s look-and-feel, and storesthe results in a look and these edits, even if the original textual specification feel database. Jade combines the application changes. programmer’s specification with the look-and-feel databaseto automatically generatea graphical dialog. If The specification that the application programmer writes necessary,the graphic artist can then edit the resulting is completely look-and-feel independent. Indeed, there dialog using a graphical editor and these edits will be are no referencesin the specification to graphics of any remembered by Jade, even if the original textual kind. Jade obtains all the graphic information it needs specification is modified. By eliminating all graphical from the style files preparedby the graphic artists. Thus references from the dialog’s content specification, Jade the look-and-feel of a dialog can be effortlessly changed requires only the absolutely minimum specification from from a Garnet style to an OpenLook style by simply the application programmer. This also allows a dialog switching databases(see Figure 1). No box or ’s look and feel to be rapidly and effortlessly changes to the textual specification are required. By changed by simply switching look and feel databases. eliminating all graphical references from a dialog’s Finally, Jade permits complex inter-field relationships to specification,Jade requires only the absolutely minimum be specified in a simple manner. specification from the application programmer: the dialog’s contents and the desired interaction techniques KEYWORDS: Automatic Dialog Layout, Look-And-Feel (e.g., menu, single-choice or multiple-choice buttons, Independence,Direct Manipulation, Graphical number-in-a-range,etc). Specification Jade also makes it possible to specify complex inter- relationshipsin a compact,simple form. For example,the programmercan specify that certain sectionsof the dialog should be disabled (e.g., grayed out) unless another por- tion of the dialog has been selected. This feature can be used to gray out the buttons that control the parametersin Permission to copy without fee all or part of this material is granted a move or grow operation unless the correspondingopera- provided that the copies are not made or distributed for direct tion is selected. It is also easy to specify how the be- commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish requires a fee and/or specific permission.

0 1990 ACM O-89791 -345-O/90/0004-0027 1.50 27 CHI 90 Proceedings April1990

havior of various groups of buttons are related. For ex- ample, to control a move operation, the application programmer may present the user with three buttons-a “left” that specifies that the x coordinate of the object should be changed, a “top” button that specifies that the y coordinate of the object should be changed,and a “formula” button that specifies that a formula will decide which coordinates should be changed. The programmer can easily specify that the “left” and “top” buttons are mutually exclusive with the “formula” button, but that the “left” and “top” buttons can be simultaneously selected. The graphic artist creates the look-and-feel for a dialog using a direct manipulation, graphical editor called Lapidary [5]. To create a look-and-feel, the designer works with an example dialog that has been generatedby Jade. The style expert can change the look-and-feel’s graphics by creating custom graphical objects and as- sociating them with interaction techniques that Jade recognizes,such as menu or number in a range behaviors. Or if the interaction technique does not exist, the designer can make use of a number of tools that are provided with the graphical editor to create the desiredbehavior. The graphic artist specifies the look-and-feel’s layout by either selecting positioning rules from a dialog box or by demonstrating the rules graphically. For example, a group of buttons that controls the dialog, such as “OK” and “Cancel”, can be positioned by selecting a rule from the rules dialog box, or by moving the group to an ap prop&e position on the screen and asking Jade to infer the desired rule. The graphic artist is also free to add A Garnetstyle (a) and an OpenLookstyle (b) for decorationsto the look and feel, such as enclosing menus specifying the properties of a text object and controll- in rectangles or placing the word “or” between mutually ing an application. The “Edit” menu item has an as- exclusive items. Thus the graphic artist can visually ex- sociated submenuwhose presence is indicatedin a periment with different combinations of layout rules, look-and-feel specific manner. The Garnet and Open- decorations, and objects to obtain the desired look-and- LoOk dialogswere generatedfrom the sametextual feel. specification. Finally, the graphic artist is allowed to edit any dialog generatedby Jade, using the same graphical editor that on top of the X System. It is currently available creates the looks and feels. Jade will remember these under Allegro, Lucid, and CMU Common Lisps and it changes and ensure that they are applied to the dialog, runs on both IBM RT and SUN workstations. Garnet is even if the original textual specification is modified. designed to be portable so it should not be difficult to compile it under other versions of common lisps or to Jade, which stands for (a Judgement-basedAutomatic make it run on other machines. The lower levels of Gar- Dialog Editor), is one of the tools that is being developed net (not including Jade and Lapidary) are available for as part of the Garnet project at Carnegie Mellon Univer- free under license. Contact the authors for more infor- sity [?I. Garnet seeks to provide a comprehensiveen- mation. vironment for creating direct manipulation, graphical in- terfaces. Garnet currently provides an object and con- RElATED WORK straint package, a graphics package, and an interactors package that handles input devices at a high level [6]. Interface builders such as NeXT’s, the Macintosh Also under active development is a graphical editor, Prototyper by Smethers Barnes, and DialogEditor called Lapidary [5l, that allows all pictorial aspectsplus 131allow a designer to select objects from a predefmed most behavioral aspectsof user interfaces to be specified set and position them by hand. However, this can be a graphically. Jade currently generatesall the dialog boxes slow, inaccuratepmcess. Jade improvesthis by automati- used in Lapidary, such as the one in Figure 2. All of cally positioning and aligning objects, while still provid- Garnet, including Jade, is implemented in Common Lisp ing the graphic artist with a direct manipulation editor that

28 CHI 90 Proceedings

Figure 2. A dialog box created by Jade that is used by Lapidary to specify a move or grow behavior. The application programmer has instructed Jade to gray out the parameters associatedwith the move or grow interactor unless the button corresponding to that interactor is chosen, and the graphic artist has enhanced the Jade-created dialog box by placing a rectangle around the Start-Where group and placing the word “or” between that group’s items.

can change the resulting layout. Jade also permits the allows a graphic artist to modify the dialog once it has graphic artist to quickly create new objects that can be been created and retaining these edits if the original immediately used in the dialog. specification is modified, by making it easy to create and add new objects to the dialog, and by allowing the graphic Tools such as Mikey [S], the Interactive TransactionSys- artist to create new looks and feels via a direct manipula- tem [l, lo], Scope [2], and Chisel [9] automatically tion, graphical editor. Jade also differs from Mikey and generatedialog boxes from textual specifications. Mikey Scope iu that it permits dialog specifications to be used generates Macintosh dialogs from the type descriptors with multiple looks and feels. found in a Pascal program and Scope generatesdialogs based on the Athena toolkit from C++ programs. The A HIGH-LEVEL OVERVIEW OF JADE Interactive Transaction System generates dialog boxes from a specification of the dialog’s content and a set of Figure 3 presents a high-level overview of Jade’s ar- style rules createdby a style expert. Chisel automatically chitecture. Jade takes a textual specification preparedby lays out the presentationcomponent of an interface based an application programmer,an optional file of exceptions, on a specification, of the dialog’s contents, a set of and a look-and-feel graphics file and a look-and-feel rules guidelines established by a designer, and a list of user file preparedby a graphic artist. As output it generatesa preferences. Jade differs from thesesystems in a number graphical layout for a dialog. The look-and-feel graphics of ways: by providing a direct manipulation editor that file contains graphical objects and decorations and is

29 CHI 90 Prrxsediw I$Xil1990

created using Lapidary; the look-and-feel rules file con- action technique that will permit the user to tains positioning information and is createdusing the Jade input a number in a specified interval. rule editor. The Jade rule editor obtains its rules from a master rule database,which can be augmented by rules Jade automatically selectsthe appropriategraphical object that are demonstratedto Jade by the graphic artist and by based on the value of the :behavior slot and infor- interaction techniquesthat the graphic artist demonstrates mation in the look-and-feel graphics file. If these or that the application programmer writes using Garnet’s parametersare omitted, Jade will provide the default in- interactorspackage. teraction technique, single-choice. .single-choice and :multipl.e- choice may be optionally followed by An application programmer writes a specification by a list of items, which may be the labels of dialog objects giving the labels for the dialog items and the namesof the and groups, or lists themselves. Every item on this list interaction techniquesthat these items represent. Labels will exhibit the single-choice or multiple-choice behavior, are provided as lists. For example, the list depending on the prefixing keyword. For example, sup- ("underline" "bold" "italic") might denote the pose that in the fumity group in Figure 1, the bold and options for the style of a font. Since several groups of italic options can be chosen simultaneously, but neither options may be combined to produce one final result, can be selected if the underline option is chosen. This lists can be nested to obtain subgroups. For ex- behavior can be easily written as ample, a font is determinedby its family, its size, and its style. Thus the portion of the dialog that determinesthe (:behavior :sinqle-choice ("underline" font might be written as: (:multiple-choice "bold*' "italic") )) ("Standard-Fonts" ("Family" ("times" "helvetica" Jade will also automatically generate code to enable or "courier" "symbol") ) disable groups of items based on the value of the ("Size" ("small" "medium" "large")) : enable slot. Disabled items might be “grayed out” (the ("Style" ("reman" "bold" "italic") (:behavior :multiple-choice))) graphic artist determines the actual appearance of dis- abled items). The value of the :enable slot will Jade will indent the Family, Size, and Style groups so that generally depend on whether some other item in the users can visually recognize that they are related to Font, dialog is selected. Therefore, the application programmer as shown in Figure 1. will write a “formula” that expressesa relationship be- tween the value of the :enable slot and the “enabling” After listing the contents of a group, the application item. A formula can be any arbitrary Lisp expression. programmercan provide a number of slot-valuepairs that The constraint layer of Garnet provides a special com- define the group’s interaction technique. The : behavior mand called gv that can be used to accessthe value of a slot selectsone of the following sevenbuilt-in interaction slot in Garnet o’bjects (gv standsfor get value). The Gar- techniques: net constraint system automatically reevaluatesa formula when the value of the referencedslot changes. l Single-Choice: Allows a user to select only one item at a time from a group of items. In writing formulas it is also important to know that Jade

l Multiple-Choice: Allows a user to select mul- uses a tree structure to representa dialog, with the groups tiple items from a group of items. as interior nodes and the items as leaves. Jade labels these nodes with the names given to groups and items. l Text: Allows the user to input a string of text. The application programmer can access these nodes through slots that are stored in the nodes’ parents. In this l Single-Choice-With-Texu Allows the ap- plication programmer to associate a type-in case, the names of the slots are the names of the nodes text field with the single-choice interaction they point to. For example, the Standard Fonts group in techniqueso that the user can input a string of Figure 1 will have a slot named : standard-fonts in its text. This interaction technique is used in the parent that contains a pointer to the Standard Fonts group. “Start Where” portion of Figure 2. Thus, to access the “times” button in Figure 1 from a sibling of the Font family, the expression (gv : self l Multiple-Choice-With-Text: Allows the ap- :parent :standard-fonts :family :times) SUf- plication programmer to associate a type-in iiCeS. text field with the multiple-choice interaction techniqueso that the user can input a string of As an example of how formulas might be used in the text. :enable Slot, consider the move/grow operation represented by Figure 2. The group represented by . Command: Allows the user to select items Width, Height, and Formula should be enabled when from a menu. the grow button is selected. To accomplish this, the ap- plication programmer would write the formula (gv l Number-in-a-Range: Allows the application programmer to specify a -like inter- :self :parent :move-grow-group : grow :selected). This formula instructs Jade to go to the

30 CHI 90 Proceedir~S April 1990

Figure 3. Architecture of the Jade system. Processes are denoted by diamonds inscribed in ovals and input and output are denoted by roundtangles inscribed in rectangles. Jade’s final output, a dialog box or menu, is part of the run-time environment.

parent of the Width-Height-Formula group, then to the makes another dialog visible when a button is hit. Or the Move-Grow group, and then to the grow button where it application programmer can place a constraint in the will check if the grow button is selected. If so, it will : enable slot of a button that causes it to be dim unless a enable the Width-Height-Formula group, otherwise it will button in another dialog is selected. disable it (represented by the grayed out group in Figure 2). Finally, a specification may have a special stop-group slot that specifies the functions that control the dialog, such as Yet another slot that the application programmer may “OK” and “Cancel”. Jade treats the stop-group as a com- provide is the : stop-action slot, which gives the name mand behavior, To assist the programmer in implement- of a function that should be called when the user selects ing the stop functions, Jade maintains a list of the groups one of the items in a group. This function is called with whose selections have been modified and passes this list the name of the selected object. It may also access any to the stop action. Jade also positions the stop-group other object in the dialog using the tree structure outlined specially, using different layout rules than the rules used earlier. As an alternative to using stop action functions, to lay out the other dialog groups. the application programmer may place formulas that depend on the items in the dialog in application objects. The specification in Figure 4 generates the dialog box and The objects will then be automatically updated by menu shown in Figure 1. The sublist (llcopy" "cut" Garnet’s constraint system when the user makes a new "paste" "delete") causes a submenu for “edit” to be selection. created, which will appear after “Edit” has been selected. In contrast, the sublist (**times I1 "helvetica" Constraints and stop-actions allow the application "courier" l-~ymb~l*v) causes a string of buttons to be programmer to manage the flow-of-control in a larger ap- laid out, prefixed by the non-selectable label Family. plication context with many dialogs. For example, the The selectability of labels is determined by the interaction application programmer can provide a stop action that technique they are associated with.

31 CHI 90 Proceedw mil1990

(create-dialog ( (("Font" (("Standard-Fonts" (("Family" ("times" "helvetica" "courier" "symbol")) ("Size" ("small" "medium" "large") ) ("Style" ("reman" "bold" "italic") (:behavior :single-choice ("underline" (:multiple-choice "bold" "italic"))) )) ("Font From File" (:behavior :text)) "Formula"))) (("Edit Text" "Generate Text from FormuLa" "Remove Text Formula") (:behavior :command) (:stop-action text-handler))) (:stop-group ( (WKn "Cancel" "Go Away") (:stop-action 'font-stop-action)))))

(create-dialog ((("open" ("edit" ("copy" "cut" "paste" "delete")) "save" "quit") (:behavior :command) (:stop-action control-menu-handler))))

Figure 4. Textualspecification of thedialog box shownin Figure1.

AUTOMATICALLY GENERATING DIALOG BOXES (at-right-rule In order to automatically lay out a dialog, Jade uses ((:left (formula (+ (gv obj :right) offset))) several heuristics based on the particular look-and-feel, (:top (formula (gv obj :top)))) such as where to position the stop group, whether to start obj offset) each group on a new line, how to position subgroups,and how to position items within a group. It also needs to This rule positions an object to the right of the reference know what types of graphical objects to use. To help it object. The formula for : left finds the right margin of make these decisions, Jade consults a rule base that is the reference object and adds to this a number of pixels maintained in a look-and-feel file. The rules in this look- equal to the offset. The formula for : t op finds the top and-feel file are in turn derived from a master rule base margin of the reference object. Jade places these for- that Jade maintains. A graphic artist can use a graphical mulas and values directly into the dialog groups and ob- editor, as describedin the next section, to createnew rules jects. The Garnet constraint system then evaluates the or the application programmer can write new interaction formulas and the results dictate the layout of the dialog. techniquesusing the Garnet interactorspackage. The look-and-feel fire associates rules with layout There are rules for placing objects, determining when to parametersthat Jade usesto position objects in the dialog. break a line, for specifying horizontal and vertical offsets, These bindings may also restrict the scope of a rule. For and for determining what type of font should be used. example, a rule may apply to the layout of a specific Theserules are of the form: group of items, such as the Family group in the text (rule-name rule-body parameters) properties dialog box, or to an interaction technique, such as single-choice items, or to the whole dialog. These The parametersare optional and may include things like bindings have the form: objects and offsets that help the placement rules position (parameter-name rule-name applies-to) objects with respectto another object. Sometimesthe rule body is as simple as a number indicating how many pixels For example,if at-right-rule applies only to the alignment should vertically separate two groups of items or how of single-choiceitems, the binding would be: many pixels a subgroup should be indented. Other times the rule body consists of a list of slot-names, such as (.-alignment at-right-rule :single-choice) : left or : top, that parameterizean object, and defini- tions for these slots, such as a formula indicating that the When multiple bindings apply, Jade chooses the most top of an object should be a certain number of pixels restrictive one. Thus, when laying out a single-choice below the bottom of another object. An example rule group, Jade will prefer the at-right-rule binding over a might be binding that applies to the whole dialog.

32 CHI 90 l’mceedngs Aplil1990

It is assumed that the graphic artist who creates these changewhen the original specification is edited, Jade will rules and bindings will not have much, if any, program- be able to position the decorations correctly, even if the ming experience. Therefore, as discussedin the next sec- size or position of the items changes. If a name changes tion, Jade provides a special editor that allows the or disappears, Jade will ask the designer whether the graphics artist to demonstraterules and bindings. Jade decoration should be deleted, or whether it should be stores the demonstratedrules and bindings in the format keyed to a new name. just described. In the event that a rule or binding cannot be expressedin this editor, the graphic artist can enlist the The designer can also change the graphics that represent services of a programmer, who can write the rules or the various lade interaction techniques by creating new bindings using the above format, and add them to the graphical objects using Lapidary and then linking them to appropriatedatabase (for simplicity, the rules and binding the appropriate Jade interaction technique. Jade will im- syntax mirrors the syntax used in Garnet). mediately insert the new graphical object into the dialog using the look-and-feel rules that the designer has ADJUSTING DIALOGS, RULES, AND STYLES defined. If the desired interaction technique is not recog- nized by Jade, such as a two-choice behavior that allows Once Jade has laid out a dialog, a graphic artist may want the user to select exactly two items, the graphic artist can to modify it. For example,the designer may want to add either demonstrate the interaction technique using decorations,such as rectanglesaround groups, or modify Lapidary, or ask the application programmer to code the some aspectof the layout, such as the way items within a interaction technique using Garnet’s interactors package. group are positioned with respect to one another. Jade This interaction technique can then be added to Jade’s needs to remember these changes so that it can apply rule baseand incorporatedinto other look-and-feels. them, even if the application programmer edits the original specification. The designer may also want some The changes the designer makes to the layout rules, of thesechanges to modify the look-and-feel so that other decorations,graphical objects, and interaction techniques dialogs can be modified in the samemanner. Finally, the can affect multiple levels in Jade. Graphical changescan designer may want to change the graphical objects that be stored in an exceptions file, in which case they will representthe various interaction techniquesor create new only apply to the dialog being edited, or they can be interaction techniques. stored in a look-and-feel graphics file, in which case they will apply to all dialogs created with that look-and-feel. All of these adjustmentscan be accomplishedusing the Rule changescan be stored in an exceptions file, a look- Lapidary editor. To modify the rules governing the layout and-feel rules file, or the master rule base. If they are of a dialog, the graphic artist can use a rule dialog box stored in the master rule base, they will affect all look- that shows the rules in the masterrule base,or the desig- and-feels. ner can demonstratethe rule. Related rules are grouped together by the rule dialog box and the one that is cur- Within a dialog, the designer can control whether a rule rently used in the dialog is highlighted. For example,the changehas a local or global effect through the selection of rules that can affect how items in a group are positioned dialog groups. If the designer preselects one or more will be displayed together. When the designer selectsa groups, the rule change will only apply to these groups, new rule, the Jade generated dialog is immediately up otherwise the rule change will apply to the entire dialog. dated to reflect the change. Alternatively, the designer may want a rule change to apply to a specific kind of group, for example,any group The graphic artist can also change the rules in a direct that consists entirely of multiple-choice text objects. In manipulation manner by repositioning dialog objects, this case, the designer can select a representativegroup, such as moving a stop-group to the bottom of the dialog apply the rule to it, and then ask Jade to generalizeit to all and aligning it horizontally. Jade will then use Peridot- groups of that type. style inferencing [43 to guesswhich rule from the master rule base should be applied. If none of the rules seemsto CURRENT STATUS AND FUTURE WORK apply, Jade will ask the &signer if it should create a new ruIe to cover this situation. The designer can then give Jade is currently used to create the dialog boxes in this rule a name and Jade will record the rule in its rule Lapidary and was used to generateall the dialog figures in database. The designer is then free to incorporate this this paper. The present implementation of Jade consults rule into the current look-and-feel, other look-and-feels, look-and-feel databasesto determine which rules and or only into this dialog. graphical objects it should use. Rules can also be changed locally so that the modifications only apply to a To add decorations to a dialog, the graphic artist draws particular group. the objects in Lapidary and then positions them using Lapidary’s constraint menus. The constraintsrefer to the The master rule base has not been implemented so it is group’s or item’s name, so Jade can rememberthe excep not currently possible to extend Jade by adding new rules tions by saving the decorations, the constraints, and the or interaction techniques. The Jade rule editor has also group’s or item’s name. As long as the names do not not yet been implementedso Jadecannot yet infer rules or

33 CHI !3Oproceedings &%ill990

have rules demonstratedto it. However, it is possible to plied, of the DefenseAdvanced ResearchProjects Agency modify rules textually by placing the names of the ap or the US Govlemment. propriate rules in a look-and-feel file, Similarly, graphi- cal objects can be created using Lapidary, and then linked REFERENCES textually with Jade interaction techniques. 1. William E. Bennett, StephenJ. Boies, John D. Gould, A possible future extension is to use Jade to generate a SharonL. Greene,and Charles F. Wiecha. Transfor- special editor for creating a Jade specification. Of course mations on a Dialog Tree: Rule-BasedMapping of Con- this editor would use Jade created menus and dialog tent to Style. Proceedingsof the ACM SIGGRAPH Sym- boxes. For example, the :behavior, stop-action posium on User Interface Software and Technology, Wil- and : enable slots could be placed in a dialog box along liamsburg, VA, Nov., 1989,pp. 67-,75. with fields for a group’s label and the graphical objects’ 2. Clifford M. Beshersand StevenFeiner. Scope: labels. A mechanism for defining subgroups could also Automated Generationof Graphical Interfaces. Proceed- be established by creating multiple copies of the dialog ings of the ACM SIGGRAPH Symposiumon User Inter- box, one for each subgroup. The advantage of this ap preach is that it would be easier for the designer to create face Software and Technology, Williamsburg, VA, Nov., a’syntactically correct specification. The disadvantageis 1989, pp. 76-85. that it would not be as fast as simply typing in the 3. Luca Cardelli. Building User Interfacesby Direct specification. Manipulation. Proceedingsof the ACM SIGGRAPH Symposiumon User Interface Software, Banff, Alberta, CONCLUSIONS Canada,Ott, 1988,pp. 152-166. Jade presentsa new technique for rapidly creating graphi- 4. Brad A, Myers. Creating User interfaces by cal dialogs with the same look-and-feel, allowing a Demonstration.. Academic Press,Boston, 1988. graphic artist to modify the resulting dialog, and remem- bering these modifications even if the original specifica- 5. Brad A. Myers, Brad Vander Zanden,and Roger tion is edited. By providing look-and-feel databases,Jade B. Dannenberg. Creating Graphical Objects by allows the dialog specification itself to be completely Demonstration. Proceedingsof the ACM SIGGRAPH look-and-feel independent. Thus an application program- Symposiumon User Interface Software and Technology, mer can create dialogs by simply listing the contents of Williamsburg, VA,Nov., 1989, pp. 95-104. the dialog, and a graphic artist or style expert can create 6. Brad A. Myers, Dario Giuse, Roger B. Dannenberg, the rules, graphics, decorations, and interaction tech- Brad Vander Zanden, David Kosbie, Philippe Marchal, niques that govern the look-and-feel of these dialogs. In Ed Pervin, and John A. Kolojejchick. The Garnet Toolkit addition to allowing the style expert to alter the dialogs ReferenceManuals: Support for Highly-Interactive, once they have been created, Jade will permit the style Graphical User Interfacesin Lisp. Tech. Rept. CMU- expert to create new rules, graphics, interaction tech- CS-89-l%, CarnegieMellon University Computer niques, and decorations using a graphical, direct ScienceDepartment, Nov., 1989. manipulation interface. Thus Jade will be extendableand will permit the graphic artist to visually experiment with 7. Brad A. Myers. An Object-Oriented,Constraint- different looks and feels when designing an application’s Based,User Interface DevelopmentEnvironment for X in . Common Lisp. 4th Annual X Technical Conference,Bos- ton, MA, Jan., 1990. To appear. ACKNOWLEDGEMENTS 8. Dan R. Olsen,Jr. A ProgrammingLanguage Basis for We are grateful for the help we received from the other User Interface Management. Human Factors in Comput- Garnet project members in designing Jade: Dario Giuse, ing Systems,Proceedings SIGCHI’89, Austin, TX, April, Roger B. Dannenberg, David Kosbie, Philippe Marchal, 1989, pp. 171-176. and Ed Pervin. 9. Gurminder Singh and Mark Green. Chisel: A System for Creating Highly Interactive ScreenLayouts. Proceed- This research was sponsored by the Defense Advanced ings of the ACM SIGGRAPH Symposiumon User Inter- Research Projects Agency (DOD), ARPA Order No. face Software and Technology, Williamsburg, VA, Nov., 4976, Amendment 20, under contract F33615-87-C-1499, 1989, pp. 86-94. monitored by the Avionics Laboratory, Air Force Wright Aeronautical Laboratories, Aeronautical Systems Divi- 10. Charles Wiecha, William Bennet, StephenBoies, and sion (AFSC), Wright-Patterson AFB, Ohio 45433-6543. John Gould. Generatinguser interfaces to highly inter- The views and conclusionscontained in this document are active applications. Human Factors in Computing Sys; those of the authors and should not be interpreted as terns,Proceedings SIGCHI’89, Austin, TX, April, 1989, representing the official policies, either expressedor im- pp. 277-282.

34