throbber
s
`
`Fourth Annual
`Symposium on
`User interface
`Software and
`
`Technology
`
`-
`
`Proceedings of the
`ACM Symposium on
`User Interface Software
`
`and Technology
`
`Hilton Head
`
`-
`
`South Carolina, USA
`November 11-13, 1991
`
`Sponsored by ACM SIGGRAPH
`and ACM SIGCHI
`
`Page 1 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`89060653300
`
`I I Ill lllll lllll ll llllll ll llllll ll llll llllll llll lll I I
`b89060653300a
`
`Page 2 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`□
`□
`rri
`rri
`I.J'J
`JJ
`□
`JJ
`□ er
`cO
`
`==co
`
`m
`
`‘ ,fi
`
`..
`
`~
`- ( t l
`
`_
`
`'WgEAJ—ur
`
`=:=::o
`==== o
`===M = I t )
`==:==M
`===o (0 ~o
`=
`_ co =.o
`=====
`
`new1111!)!» 1User Interface Software andTechnolog NoVember1113,1991
`
`Page 3 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`,- - - - - - - - - - - - - - - - - - -
`
`IIH
`<C -o
`WNW
`==== o
`==:=M
`-
`M
`==L I ' )
`===co
`-
`0
`(0
`::::::= 0
`==== CJ)
`::::::= CX)
`al
`
`B89060653300A
`
`D
`D
`n,
`n,
`U"J
`....!l
`D
`....!l
`D
`a(cid:173)
`ct:)
`
`lHllll BHUEDESBBUU
`WIIIIIIHHHlHlllHlHll
`
`Page 4 of 20
`
`GOOGLE EXHIBIT 1005
`
`Page 4 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`OfMCO
`
`KURT F. WENDT UIRARV
`COLLEGE OF ENGINll"ING
`AUG 2 0 1998
`
`UW-MADISON, WI 13701
`
`Page 5 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Fourth Annual
`Symposium on
`User Interface
`Software and
`Technology
`
`Proceedings of the
`ACM Symposium on
`User Interface Software
`and Technology
`
`Hilton Head
`South Carolina, USA
`November 11-13, 1991
`
`Sponsored by ACM SIGGRAPH
`and ACM SIGCHI
`
`Page 6 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`The Association for Computing Machinery
`11 West 42nd Street
`New York, New York 10036
`
`© 1991 by the Association for Computing Machinery, Inc. Copying without fee is permitted
`provided that the copies are not made or distributed for direct commercial advantage, and credit to the
`source is given. Abstracting with credit is permitted. For other copying of articles that carry a code at
`the bottom of the first page, copying is permitted provided that the per-copy fee indicated in the code
`is paid through the Copyright Clearance Center, 27 Congress Street, Salem, MA 01970. For permission
`to republish write to: Director of Publications, Association for Computing Machinery. To copy
`otherwise, or republish, requires a fee and/or specific permission.
`
`ISBN 0-89791-451-1
`
`Additional copies may be ordered prepaid from:
`
`ACM Order Department
`P.O. Box 64145
`Baltimore, MD 21264
`
`ACM Order Number: 429913
`
`Page 7 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Contents
`Symp'osium Committees ...................................................................................... 7
`
`Symposium Program, Monday 11 November 1991
`
`Plenary Speaker
`Software Interfaces for Users with Special Needs
`Robert C. Williges
`Virginia Polytechnic Institute and State University
`
`Virtual Workspaces
`Hybrid Interfaces: Breeding Virtual Bigger Interfaces for Physically
`Smaller Computers
`Steven Feiner & Ari Shamash, Columbia University ..................................................... 9
`
`On Temporal-Spatial Realism in the Virtual Reality Environment
`Jiandong Liang, Chris Shaw, & Mark Green, University of Alberta ........... ...................... 19
`
`The DigitalDesk Calculator: Tangible Manipulation on a Desk Top Display
`Pierre Wellner, Rank Xerox EuroPARC & University of Cambridge ................................ 27
`
`Interactive Components
`Buttons as First Class Objects on an X Desktop
`George G. Robertson, D. Austin Henderson, Jr., & Stuart K. Card, Xerox PARC ....... ; ....... 35
`
`EmbeddedButtons: Documents as User Interfaces
`Eric A. Bier, Xerox PARC .................................................. ...... ......................... 45
`
`Interactive Graph Layout
`Tyson R. Henry & Scott E. Hudson, University of Arizona ........................................... 55
`
`Panel: Disabled Users: Why Should We Care, and How Can We Help
`Chair:
`Randy Pausch, University of Virginia
`Alistair Edwards, University of York
`Panelists:
`Beverly H. Williges, Virginia Polytechnic Institute
`Robert C. Williges, Virginia Polytechnic Institute
`
`Banquet
`A Nose Gesture Interface Device: Extending Virtual Realities
`Tyson R. Henry, Scott E. Hudson, & Andrey K. Yeatts, University of Arizona
`Brad A. Myers, Carnegie Mellon University
`Steven Feiner, Columbia University ...................................................................... 65
`
`November 11-13, 1991
`
`UIST'91
`
`3
`
`Page 8 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Symposium Program, Tuesday 12 November 1991
`cscw
`Primitives for Programming Multi-User Interfaces
`Prasun Dewan & Raj iv Choudhary, Purdue University ................................................ 69
`
`MMM: A User Interface Architecture for Shared Editors on a Single Screen
`Eric A. Bier, Xerox PARC
`Steve Freeman, Xerox PARC & Cambridge University ................................................ 79
`
`Comparing the Programming Demands of Single-User and Multi-User Applications
`John F. Patterson, Bellcore ................................................................................. 87
`
`UI Frameworks
`The PICASSO Application Framework
`Lawrence A. Rowe, Joseph A. Konstan, Brian C. Smith, Steve Seitz, & Chung Liu
`University of California, Berkeley .............................................. ........................... 95
`
`An Event-Object Recovery Model for Object-Oriented User Interfaces
`Haiying Wang & Mark Green, University of Alberta .................................................. 107
`
`SUIT: The Pascal of User Interface Toolkits
`Randy Pausch, Nathaniel R. Young II, & Robert DeLine, University of Virginia ................ 117
`
`Input Techniques
`Stylus User Interfaces for Manipulating Text
`David Goldberg, Xerox PARC
`Aaron Goodisman, Xerox PARC & MIT ............................................................... .127
`
`Issues in Combining Marking and Direct Manipulation Techniques
`Gordon Kurtenbach & William Buxton, University of Toronto ...................................... 137
`
`Smoothly Integrating Rule-Based Techniques Into A Direct Manipulation Interface Builder
`Scott H. Hudson & Andrey K. Yeatts, University of Arizona ........................................ 145
`
`Constraint Techniques
`The Importance of Pointer Variables in Constraint Models
`Brad Vander Zanden, University of Tennessee
`Brad A. Myers & Dario Giuse, Carnegie Mellon University
`Pedro Szekely, USC/ISI ................................................................................... 155
`
`A General Framework for Bi-Directional Translation Between Abstract and Pictorial Data
`Shin Takahashi, Satoshi Matsuoka, Akinori Yonezawa, University of Tokyo
`Tomihisa Kamada, Access Co. Ltd ....................................................................... 165
`
`Plenary Speaker
`Escaping Flatland
`Andries van Dam
`Brown University
`
`4
`
`UIST'91
`
`Hilton Head, South Carolina
`
`Page 9 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Symposium Program, Wednesday 13 November 1991
`
`Internationalization
`A Model for Input and Output of Multilingual Text in a Windowing Environment
`Yutaka Kataoka, Waseda University, & Masato Morisaki, NTT
`Hiroshi Kuribayashi, Omron Corporation
`Hiroyoshi Ohara, Waseda University .................................................................... 175
`
`XJp System: An Internationalized Language Interface for the X Window System
`Masato Morisaki & Etsuo Kawada, NTT
`Hiroshi Kuribayashi & Seiji Kuwari, Omron Corp
`Masahiko Narita, Fujitsu Limited ......................................................................... 185
`
`A Flexible Chinese Character Input Scheme
`S. C. Hsu, Cambridge University ........................................................................ 195
`
`UI Builders
`A Unidraw-Based User Interface Builder
`John M. V/issides & Steven Tang, Stanford University ............................................... 201
`
`Separating Application Code from Toolkits: Eliminating the Spaghetti of Call-Backs
`Brad A. Myers, Carnegie Mellon University ................................................ .. .......... 211
`
`A Demonstrational Technique For Developing Interfaces With Dynamically Created Objects
`David Wolber, University of California, Davis
`Gene Fisher, California Polytechnical University ...................................................... 221
`
`Panel: Interface Development Tools - Feast or Famine
`Chair:
`Ed Lee, Hewlett-Packard
`Panelists: Mark Linton, Silicon Graphics
`John Ousterhout, University of California, Berkeley
`Len Bass, Software Engineering Institute
`Frank Hall, Hewlett-Packard
`
`Author Index ..................................................................................................... 231
`
`November 11-13, 1991
`
`UIST'91
`
`5
`
`Page 10 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Buttons as First Class Objects on an X Desktop
`
`George G. Robertson, D. Austin Henderson, Jr., and Stuart K. Card
`Xerox Palo Alto Research Center
`3333 Coyote Hill Road
`Palo Alto, CA 94304
`
`Abstract
`
`A high-level user interface toolkit, called XButtons, has
`been develop ed to support on-screen buttons as first
`class objects on an X window system desktop. With
`the toolkit, buttons can be built that connect user in(cid:173)
`teractions with procedures specified as arbitrary Unix
`Shell scripts. As first class desktop objects, these but(cid:173)
`tons encapsulate appearance and behavior that is user
`tailorable. They are persistent objects and may store
`state relevant to the task they perform . They can also
`be mailed to other users electronically. In add ition to
`being first class desktop objects, XButtons are gesture(cid:173)
`based with multiple actions. They support other inter(cid:173)
`action styles, like the drag and drop metaphor, in addi(cid:173)
`tion to simple button click actions. They also may be
`concurrently shared among users, with changes reflected
`to all users of the shared buttons. This paper describes
`the goals of XButtons and the history of button develop(cid:173)
`ment that led to XButtons . It also describes XButtons
`from the user's point of view. Finally, it discusses some
`implementation issues encountered in building XBut(cid:173)
`tons on top of the X window system.
`
`1
`
`Introduction
`
`Physical buttons have been around since the first elec(cid:173)
`trical devices were built . They are so common that we
`never think about them; push a button and some ac(cid:173)
`tion will take place. On-screen buttons in one form or
`another have been around since the mid-1960 's. Their
`appeal as a human computer interaction technique is
`obvious; arbitrary actions can be invoked by a simple
`
`Permission to copy without fee all or part of this material is
`granted provided that the copies are not made or distributed for
`direct commercial advantage, the ACM copyright notice and the
`title of the publication and its date appear, and notice is given
`that copying is by permissio n of the Association for Computing
`Machinery. To copy otherwise, or to repub lish, requires a fee
`and/or spec ific permission .
`© 1991 ACM 0-89791-451-1/91/0010/0035 ... $1.50
`
`interaction with a displ ay object that looks pressable,
`and the style of interaction is familiar to everyone. It is
`no surprise that many computer systems use on-screen
`buttons as part of their interface. On the other hand,
`very few systems provide buttons that stand on their
`own ( "first class objects") or that allow an end-user to
`create and adapt buttons for their own needs. This kind
`of user tailorable button is what this paper focuses on.
`In this pap er, we defin e a class of on-screen buttons
`that are easy for a user to create and adapt at a very
`high level. For current window systems like X [12], this
`means that the user must perceive the buttons to be
`at the same level as windows, icons, and menus on the
`desktop. Ideally, the user should be able to easily cre(cid:173)
`ate and modify such buttons so that a wide range of
`desired appearances and behaviors is possible. A high(cid:173)
`level user interface toolkit, called XButtons, implements
`this class of tailorable buttons as first class objects on
`an X desktop.
`In the first part of this paper, we describe the goals
`of buttons as first class desktop objects, and some ad(cid:173)
`ditional goals that m ake XButtons even more powerful.
`In the second part, we describe related work on buttons
`and how XButtons is different. The third part of the pa(cid:173)
`per describes how XButtons works from a user's point
`of view. Finally, we discuss some of the implementa(cid:173)
`tion issues for building XButtons within the X window
`system.
`
`1.1 Basic Goals: Buttons as First Class
`Desktop Objects
`
`In general, a button is a display object that has an
`appearance, accepts some triggering input (i.e. , it is
`"pressed"), and has some associated behavior. In most
`current systems, buttons are part of applications; an
`application programmer defines the appearance, place(cid:173)
`ment, and behavior of the button ( often a part of some
`control panel) when the application is built. In a case
`like this, the user has little control over the nature of
`the button, and the button only exists if the applica(cid:173)
`tion is running . Such buttons are clearly not first cl ass
`
`November 11-13, 1991
`
`UIST'91
`
`35
`
`Page 11 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`desktop objects; th ey are second class at least to the
`window in which the app li cation is running .
`To make buttons into first class desktop objects , we
`must first encapsulate the appearance and behavior of
`the button into an object that the user can manipu(cid:173)
`late. We must also ensure that these buttons can exist
`independent of any particular running application. To
`distinguish these first class desktop objects from but(cid:173)
`tons as simple display objects, we will refer to them as
`Desktop Buttons (DButtons, for short).
`To capture behavior independent of application re(cid:173)
`quires that DButtons have a language for expressing
`action. This action language must also be independent
`of specific applications.
`To maximize the flexibility of DButtons, they must
`have some means of storing state. For example, the
`user m ay want to have a DButton start or control some
`process that requires parameters stored with the DBut(cid:173)
`ton. Also, the appearance of the DButton may need to
`reflect the stored state.
`To ensure that the needs of the end-user are ulti(cid:173)
`mately met, DButtons need to be user tailorable [8).
`Users ( not necessarily programmers) should be able
`to easily create and manipulate DButtons. It should
`be easy to change the appearance and placement of a
`DButton as well as its behavior and stored state. To
`make it easy for non-programmers to change the be(cid:173)
`havior of DButtons, the button action language must
`be simple or already familiar to the end-user. Another
`way to ensure tailorability is to make it easy to copy a
`DButton and make incremental changes (for example,
`with a structured editor).
`In use, experience shows that users grow to depend on
`DButtons quickly, so reliability is important. Also, peo(cid:173)
`ple forget where buttons came from, so once lost they
`are hard to replace. Thus, DButtons must be persistent
`across system failures and restarts. Once a user creates
`an interesting DButton, he or she may want to transmit
`it to colleagues . Hence it should be possible to store a
`DButton in a document or send a DButton in an elec(cid:173)
`tronic mail message. Finally, it should be possible to
`group DButtons to perform or support some particular
`task. Hence it should be easy to initiate presentation of
`a group of DButtons simultaneously.
`The XButtons system described in this paper meets
`all of the.se basic goals. The following list summarizes
`the desired attributes for buttons as first class objects
`on a desktop:
`
`• Are independent of applications,
`
`• Encapsulate everything · they need ( appearance,
`placement, behavior, and state),
`
`• Are user tailorable (appearance, placement, behav(cid:173)
`ior, and state),
`
`• Have a simple or fam iliar act ion language,
`
`• Are persistent,
`
`• Can be copied and incrementally changed,
`
`• Can be transmitted (e.g., mailed),
`
`• Can be grouped .
`
`1.2 Additional Goals for XButtons
`
`XButtons is not the first system to implement the goals
`described above. Rooms Buttons [4) and EuroPARC
`Buttons [8) also meet these goals. In both of these sys(cid:173)
`tems, the desktop environment is the Xerox Lisp win(cid:173)
`dow system and the button action language is Lisp.
`XButtons is a furth er evolution of Rooms Buttons. This
`section describ es additional goals for XButtons that dis(cid:173)
`tinguishes them from Rooms Buttons.
`Rooms Buttons have a single action that results from
`pressing the button. XButtons support multiple ac(cid:173)
`tions. Some actions are based on gestures. That is,
`there are a number of possible actions that can result
`from interacting with the button, and the nature of
`the interaction determines the action. For example, a
`back and forth rubbing gesture invokes a rubout action
`(which by default deletes the button after confirmation).
`Other actions are agent based (e.g., time based) .
`The interactions style supported by Rooms Buttons
`is limited to invoking unary operations. XButtons sup(cid:173)
`ports a richer set of interactions. To support binary op(cid:173)
`erations, XButtons supports a drag and drop metaphor.
`For example, you can drag a document icon and drop
`it onto a printer icon to print the docum ent, with
`both icons implemented as XButtons. XButtons sup(cid:173)
`ports building of property sheets, by allowing an ed(cid:173)
`itable type-in fi eld on a button. XButtons supports
`progress indicators, by making the appearance and be(cid:173)
`havior modifiable by actions or other processes.
`Previous DButtons systems supported independent
`buttons with no sharing. XButtons supports a form of
`sharing, so that changes made by one user of a shared
`XButton are seen by other users.
`XButtons are tailorable by non-programmers (mak(cid:173)
`ing it a high-level toolkit). For example, the button
`action language is familiar; the default is the operat(cid:173)
`ing system command language (for X, this is the Unix
`Shell) . Also, it is obvious how to change all the proper(cid:173)
`ties of the XButton; a structured button editor makes
`all potential changes self-evident.
`Finally, XButtons is window manager independent.
`This is particularly important in the X window system
`world , because there are so many window m anagers and
`no obvious industry leader .
`
`36
`
`UIST'91
`
`Hilton Head, South Carolina
`
`Page 12 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`-
`
`The following list summarizes the additional goals for
`XButtons:
`
`• Supports ·multiple actions,
`
`• Is gesture-based,
`
`• Supports common interaction styles,
`
`• Supports shared buttons,
`
`• Is a high-level toolkit,
`
`• Is window manager independent .
`
`2 Related Work
`
`The concept of a button as a display object that ex(cid:173)
`ecutes some action when pressed has been around at
`least since the mid-1960's. Sutherland's SketchPad [19)
`and other Lincoln Lab applications had light but tons.
`These were text display objects that were selected with
`a light pen. They had some of the properties of Desktop
`Buttons, but were part of an application and were not
`user tailorable.
`The early hypertext systems, like PROMIS in 1974
`[16) and ZOG in 1975 [13), had selections or function
`pads that had many of the properties of Desktop But(cid:173)
`tons. These early systems did not have the benefit of
`graphics or bitmap displays, hence were text based and
`did not have the appearance of buttons that is com(cid:173)
`mon today. Even so, they used touch screens for input ,
`so they did support the concept of a pressable display
`object. Later hypertext systems, like Apple's Hyper(cid:173)
`card [2), had similar mechanisms to these early systems
`but capitalized on bitmap displays to give their buttons
`more interesting appearances.
`The development of bitmap display technology in the
`Xerox Alto [20) encouraged further development of the
`button concept. In 1976, the Learning Research Group
`at Xerox PARC [21) built a display simulation of the
`MIT Logo project's Turtle button box. The original
`button box was a physical device. LRG 's simulation
`was one of the earliest versions of button display ob(cid:173)
`jects that actually looked like physical buttons. These
`buttons were far from first class desktop objects, but
`they represent a turning point in the history of buttons,
`because of their appearance.
`One of the first published uses of the term "buttons"
`for button display objects was in the Xerox Star user
`interface [17) in 1982. This system had a "Customer
`Programming Language" option (CUSP) that allowed
`users to defin e their own commands and place CUSP
`buttons into documents. This was close to the first class
`desktop object concept, except that it was embedded in
`
`an application (i.e., the buttons only a ppeared in do c(cid:173)
`uments) and the action language was unfamiliar and
`different from the language used in the rest of the sys(cid:173)
`tem. Metaphor Capsules [7) extended t he idea of CUSP
`buttons. However, Capsules are not directly invoked
`(you open one and then press a "run" button) and their
`appearance is not tailorable.
`Also in the early-1980 's, Trillium [5) had Button ob(cid:173)
`jects that had many of the properties of Desktop But(cid:173)
`tons. Trillium was a user interface design environment
`that was used for designing copier interfaces. Trillium
`Buttons were tailorable objects, but were embedded
`in applications, had no state, were not persistent, and
`could not be mailed .
`The development of icons happened in the same en(cid:173)
`vironment as the development of buttons, and they
`evolved together.
`Icons are like degenerate buttons .
`They typically are used only to start up an applica(cid:173)
`tion or represent a file, fold er , or process. Icons have
`very limited user tailorability.
`
`2.1 Rooms Buttons and Their Progeny
`
`Rooms [4) is a workspace m anager designed to signifi(cid:173)
`cantly reduce display space contention and support lrn(cid:173)
`man multitasking in window-based user interfaces. De(cid:173)
`veloped in the mid-1980's, Rooms introduced the idea of
`buttons as first class objects on a desktop. Rooms But(cid:173)
`tons are used for a variety of purposes, such as moving
`from room to room, building new interfaces, and as(cid:173)
`sisting with user tasks. For example, a door in Rooms
`is a button - when selected, the user passes from one
`Room to another. Rooms Buttons can be passed from
`one Room to another, and from one user to another via
`electronic mail.
`EuroPARC Buttons [8) are extensions of Rooms But(cid:173)
`tons. EuroPARC Buttons are designed to exist in doc(cid:173)
`uments as well as on the desktop . They are still imple(cid:173)
`mented in the Xerox Lisp environment , but have been
`designed to increase the amount of flexibility and tai(cid:173)
`lorability a programmer has in building buttons. For
`exam pie, parameters ( distinguished stored state) and
`specialized structure editors improve tailorability, and
`agency provides a means of timed action.
`In 1989, The Cognitive Coprocessor [14) introduced
`Int eractive Objects, a generalization of Rooms Buttons
`that supports gestures and multiple actions, animation,
`2D or 3D appearances, and an extensible set of inter(cid:173)
`action styles.
`Interactive Objects are also first class
`desktop objects, where th e "desktop" is a 3D Rooms
`world .
`XButtons is based on Rooms Buttons and Interac(cid:173)
`tive Objects. It takes the basic ideas of Rooms Buttons
`as first class objects on a desktop and moves this to
`
`November 11-13, 1991
`
`UIST'91
`
`37
`
`Page 13 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`Figure 1: Sample Set of XButtons.
`
`the Unix and X environment. It then extends the ideas
`to include gestures and multiple actions and some of
`the expanded set of interaction styles from Interactive
`Objects. XButtons goes beyond Interactive Objects by
`supporting shared buttons and window manager inde(cid:173)
`pendence.
`
`2.2 Buttons Embedded in Applications
`
`As mentioned earlier, CUSP buttons [17] are an example
`of the class of buttons that are embedded in some appli(cid:173)
`cation. They only exist in documents. The idea of in(cid:173)
`cluding buttons in documents has been nicely extended
`in the EmbeddedButtons system (1], where document
`editing tools are used to tailor the appearance and be(cid:173)
`havior of buttons. These EmbeddedButtons share most
`of the properties of buttons as first class desktop ob(cid:173)
`jects. The major difference is that these buttons cannot
`exist on the desktop; they are dependent on an app li(cid:173)
`cation (a text editor). Another difference is that the
`button action language is an unfamiliar (although sim(cid:173)
`ple) new language.
`The most common form of buttons embedded in ap(cid:173)
`plications are those based on the wide range of user
`interface toolkits that support buttons . Trillium But(cid:173)
`tons (5] is an early example. Also, all of th e X toolkits
`
`(e.g., Xt [10], XView [3], OLIT (1 8], Motif [11]) pro(cid:173)
`vide some kind of button widget. An application built
`with these toolkits typically provides buttons whose ap(cid:173)
`pearance and behavior is determined by the application
`programmer . The buttons are dependent on a running
`application. They also are not user tailorable and can(cid:173)
`not be moved or mailed.
`XButtons breaks free of this dependence on an em(cid:173)
`bedding application by providing buttons as first class
`objects on the X desktop.
`
`3 Look and Feel of XButtons
`
`There are essentially two sorts of users of XButtons.
`The person who creates an XButton (from whole cloth,
`or via modifying another) sees the XButton "from the
`inside". The person who invokes the behavior of a ere-
`. ated XButton or passes it on to a fri end sees the button
`"from the outside".
`From the point of view of either of these users, XBut(cid:173)
`tons typically appear as small rectan'gular screen ob(cid:173)
`jects, similar to familiar icons. They usually have some
`text t hat indicates what their action is, and may have
`a bitmap displayed with the text . They may also have
`a field for some editable text . Figure 1 shows a group
`
`38
`
`UIST'91
`
`Hilton Head, South Carolina
`
`Page 14 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`of XButtons used for test purposes. Notice that XBut(cid:173)
`tons, like icons, do not have any of the normal window
`dressing provided by most X window managers. The
`appearance of an XButton is completely under control
`of the end-user.
`
`XButtons have multiple actions, which are selected by
`simple mouse or pen gestures. There are two classes · of
`gestures, touching and grasping. The left mouse button
`is used for touching gestures, and the middle mouse
`button supports grasping. Grasping a button is used for
`two purposes: (1) moving a button to a new location;
`and (2) dropping a button onto another button with a
`drop action (e.g., mailing or printing a button).
`
`The two examples in the right column of Figure 1
`show a printer icon XButton and a document icon
`XButton; the user can use drag and drop to print the
`document . The middle column shows a number of other
`XButtons with drop actions: mail a button, print a
`button, and speak the title or text field of a button
`(using a text to speech synthesizer). The left column
`shows a range of appearances and actions for XButtons.
`The "Sample Button" will respond to every gesture by
`speaking the name of the gesture. The "Phone" but(cid:173)
`ton will let you type the name of someone, then pop
`up a window with their phone number (by clicking)
`or dial the number (with the flick right gesture). The
`"Count" button increments a counter and causes the
`current count to be spoken. The button with cherries
`will cycle through different appearances as it is clicked.
`
`XButtons are self-revealing. If the user is unfamiliar
`with the action of a particular button, a menu can be
`popped up to reveal which gestures are supported (and
`what they do). This is done with the right mouse button
`(or by holding down the left mouse button). Figure 2
`shows what a typical button menu looks like. The menu
`items can be selected to execute the actions. In addition
`to the user-defined actions, menu items are provided for:
`copying, deleting, editing, and mailing XButtons; pop(cid:173)
`ping up help information associated with an XButton;
`and sending comments to the XButtons maintainer.
`
`From the user's point of view, XButtons exist on the
`desktop, can be modified there, are persistent, and can
`be mailed from one user's desktop to another. To imple(cid:173)
`ment this, each button has a backing fi le that is trans(cid:173)
`parently maintained (i .e., any change to the button by
`the user or a process is automatically reflected in that
`backing file). When a button is electronically mailed,
`it is actually the contents of this backing file that is
`mailed. However, the end-user need never be aware of
`backing files. In essence, these files provide the encapsu(cid:173)
`lation and persistent of XButtons as first class desktop
`objects.
`
`3.1 XButton Gestures
`
`XButtons support mouse-based or pen-based gestural
`input in addition to simple "pressing". Whenever a
`user gestures at an XButton, a gesture parser inter(cid:173)
`prets mouse or pen movement and classifies it as one
`of a small set of easily differentiated gestures (flick left,
`flick right, flick up, flick down, click, rubout, check, or
`insert). Once a gesture has been identified, the XButton
`executes the appropriate action (i.e., there is an action
`for each of the gestures). During the gesture, feedback
`is provided in the form of a mouse track displayed on
`the screen. As soon as the gesture is completed, the
`feedback is erased.
`Much interesting work has been done recently on
`gesture-based systems. For example, the GEdit sys(cid:173)
`tem [6] uses circling gestures for grouping, moving, and
`copying graphical objects. Since XButtons lives in the
`X world, a gesture must start in an XButton (so that
`the proper process receives the events). This prohibits
`some potentially interesting gestures from being used in
`XButtons (like the circling gesture just described).
`XButtons currently supports a fixed set of gestures.
`Ideally, the set of gestures should be extensible, with a
`trainable gesture recognizer (see [15]) . In spite of the
`small fixed set of initial gestures supported, XButtons
`does provide a testbed for exploring the use of gestures
`on the desktop. At some point in the future, an exten(cid:173)
`sible set of trainable gestures can be added.
`
`3.2 XButton Actions
`
`To make the button action language as familiar as pos(cid:173)
`sible and as high level as possible, the default in XBut(cid:173)
`tons is to use the operating system command language
`(i .e., the Unix Shell). This means that the full range
`of actions the user can do from the Shell can be encap(cid:173)
`sulated into on-screen buttons. To provide maximum
`flexibility, an end-user can specify that some other lan(cid:173)
`guage be used for the action language (e.g., Lisp). Of
`course, to use this flexibility, care must be taken to en(cid:173)
`sure that the selected action language will work in the
`environment of the end-user of the button.
`When the button action shell command is executed,
`arguments are passed to it through environment vari(cid:173)
`ables. Some of these are pre-defined: the button's title
`and identifier, an indication of whether or not the but(cid:173)
`ton has been checked (with the check gesture), and the
`content of the editable text field ( if there is one). The
`user can provide additional arguments (and maintain
`stored state in the button) by specifying any number of
`user-defined properties on the button. Whenever a but(cid:173)
`ton action is executed, all user-d efin ed properti es are
`passed to it in environment variables.
`
`November 11-13, 1991
`
`UIST'91
`
`39
`
`Page 15 of 20
`
`GOOGLE EXHIBIT 1005
`
`

`

`( Click - Get phone It
`
`Flick Right - Dial phone It
`
`Comment
`Copy
`Delete
`Edit
`Help
`
`Figure 2: Sample Button Menu.
`
`A number of button action commands are supported
`to make tailoring buttons easier. Most of these com(cid:173)
`mands ( xbcopy, xbdelete, xbedit, xbhelp, xbmail, and xb(cid:173)
`menu) are designed to ensure that every action that is
`possible from the interface (e.g., from the menu) can
`be assigned to a gesture if the end-user desires. In ad(cid:173)
`dition, there are commands for getting and setting any
`property of a button ( xbgetprop, xbsetprop, and xbprop) .
`These commands allow actions ( or other processe

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket