throbber
Ulllted States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,617,114
`
`
`Bier et a1.
`[45] Date of Patent:
`Apr. 1, 1997
`
`1|||||||||l|||llllllllllllllllllIllll|||||l|||lllllllllllllllllllllilllllll
`USOOS617114A
`
`[54] USER INTERFACE HAVING
`CLICK-THROUGH TOOLS THAT CAN BE
`~
`COMPOSED WITH OTHER TOOLS
`Inventors: Eric A. Bier, Mountain View, Calif.;
`William A. S. Buxton, Toronto,
`Canada; Maureen C. Stone, Los Altos,
`Calif.
`
`[75]
`
`[73] Assignee: Xerox Corporation, Stamford, Conn.
`
`[21] Appl. No.: 449,584
`_
`Ffled:
`
`[22]
`
`May 24’ 1995
`Related US. Application Data
`
`[63] Continuation of Ser. No. 95,445, Jul. 21, 1993, abandoned.
`
`[51]
`Int. Cl.6 ....................................................... G09G 5/00
`
`[52]
`345/113; 345/146; 345/902
`[58] Field of Search ..................................... 345/146, 145,
`345/113, 115, 1197 120, 902; 395/156, 157;
`364/474.22
`
`[56]
`
`References Cited
`U.S PATENT DOCUMENTS
`'
`.. 340/709
`3/1933 Atkinson -
`Re- 32,632
`
`' gig/$29]
`Z’ggg’gg 1313:: 2111:1888"
`4:686:522
`8/1987 Hemandezuet'ali." 345/146
`4,743,441
`5/1988 Brzezinski _
`4,788,538
`11/1988 Klein et a1.
`............................. 340/747
`
`- 345/113
`4,827,253
`5/1939 Maltz -----
`£1338 3:581:3381
`1:383;
`32:23?
`
`__ 400/489
`4,917,516
`4/1990 Retter .........
`6/1990 Atkinson ,,,,,,,,,,,,
`,, 345/146
`4,931,783
`
`----- 345/113
`479821343
`“1991 HOUIVfiZ 9131-
`gflégzgié 12:83; 32:23:23: """""""""""" 340/706
`5Z250:929
`10/1993 Hoffman et 213.:...................... 345/146
`5,276,797
`1/1994 Bateman et a1.
`.
`5,283,560
`2/1994 Bartlett .................................... 345/902
`5,287,417
`2/1994 Eller et a1.
`.....
`382/41
`
`
` 8/1994 Perlin et al. ............ 395/139
`5,341,466
`....................... 345/156
`5,381,158
`1/1995 Takahara et a1.
`
`FOREIGN PATENT DOCUMENTS
`0533424
`3/1993
`Euro ean Pat. Off.
`.
`62465232
`7,1987
`1apa}:-
`3219324
`9/1991
`Japan‘
`OTHER PUBLICATIONS
`
`Macintosh “Macpaint”, 1983.
`Brown et a1., “Windows on tablets as a means of achieving
`virtual input devices”. In D. Diaper et al. (Eds). Human—
`Computer Interaction—Interact ’90. Amsterdam: Elsevier
`Science Publishers B.V. (North Holland), 675—681 (1990)
`[Reprint of article pp. 1—12 submitted].
`Hardock, Gary. “Design issues for line—driven text editing/
`Annotation Systems”. 11715 Graphics Interface 1991. 3—7
`Jun. 1991, Calgary (1991) Toronto, ON, CA, pp. 77—84.
`,
`_
`(List continued on next page.)
`
`Primmy Examiner—Richard Hierpe
`Assistant Examiner—Regina Liane
`Attamey, Agent, or Firm—Townsend and Townsend and
`Crew
`
`ABSTRACT
`[57]
`A user interface technique operates in the environment of a
`processor-controlled machine for executing a program that
`operates on a set of underlying data and displays a visible
`representation thereof. The system further provides a visual
`depiwon Of a 5“ 0f 10015“ The 10015 incmde CliCk'thmugh
`tools that can be combined with other tools (including other
`click—through tools) to provide composite tools. A click-
`through tool
`includes a generally transparent delineated
`active area that is movable so that it can be placed over a
`desired portion of the visible representation. When the user
`interacts with the visible representation through the active
`area,
`the action takes on an attribute of the particular
`click—through tool. A click-through tool can be superim-
`POSCd on “Other CliCk'mmugh 1001’ WhereuPon 3“ 3°90“
`taken through the two click-through tools onto the visible
`representation takes on attributes of both tools.
`
`28 Claims, 16 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`32
`
` 23
`
`PROCESSOR
`
`15
`
`Y
`
` 25
`
`KEYBOARD 20
`
`MEMORY
`
`FILE STORAGE
`
`40
`
`30
`
`37
`
`(
`
`

`

`5,617,114
`Page 2
`
`OTHER PUBLICATIONS
`
`David Kurlander and Steven Feiner. Interactive Constraint—
`
`Canvas 3.0 User Guide: Chapter 1 (“The Fundamentals”), p.
`2; and Section 19 (Reference), pp. 14—18, 59—60, 69—70,
`90—91, 97—98, 100—102, 130, 150—151, 171—172, 173—174,
`181—182, 189—197, 300 (Jun. 15, 1991 (Deneba Software,
`Miami, FL)).
`“User Interface for Data Entry with Pen Device,” IBM
`Technical Disclosure Bulletin, vol. 37, No. 1, Jan. 1994, pp.
`33—34.
`
`“Menu Manager,” IBM Technical Disclosure Bulletin, v01.
`34, No. 12, May 1992, pp. 113—116.
`Hopkins, D., “Directional selection is Easy as Pie Menus,”
`Proceedings Fourth Computer Graphics Workshop, 8 Oct.
`1987, Cambridge, MA, p. 103.
`Kurtenbach, G., et al., “Issues In Combining Marking And
`Direct Manipulation Techniques,” Proceedings on the Sym-
`posium on User Interface Software and Technology, Nov.
`1991, South Carolina, US, pp. 137—144.
`Eric A. Bier and Maureen C. Stone. Snap—Dragging. In
`Proceedings of Siggraph ’86 (Dallas, August), Computer
`Graphics, vol. 20, No. 4, ACM, 1986, pp. 233—240.
`Eric A. Bier. Snap—Dragging: Interactive Geometric Design
`in Two and Three Dimensions. Xerox PARC Technical
`
`Report EDL—89—2 (Sep. 1989). Also available as Report No.
`UCB/CSD 88/416, Apr. 28, 1988, Computer Science Divi-
`sion, Department of Electrical Engineering and Computer
`Science, University of California, Berkeley, CA 94720.
`Eric A. Bier and Aaron Goodisman. Documents as User
`Interfaces. In R. Furuta (ed). EP90, Proceedings of the
`International Conference on Electronic Publishing, Docu—
`ment Manipulation and Typography, Cambridge University
`Press, 1990, pp. 249—262.
`Eric A. Bier. EmbeddedButtons: Documents as User Inter-
`
`faces. In Proceedings of the ACM SIGGRAPH Symposium
`on User Interface Software and Technology (Hilton Head,
`South Carolina, Nov.), ACM, 1991, pp. 45—53.
`Eric A. Bier and Steve Freeman. MMM: A User Interface
`
`Architecture for Shared Editors on a Single Screen. In
`Proceedings of the ACM SIGGRAPH Symposium on User
`Interface Software and Technology (UIST ’91 Hilton Head,
`South Carolina, Nov. 11—13), ACM, 1991, pp. 79—86.
`Eric A. Bier. EmbeddedButtons: Supporting Buttons in
`Documents. Xerox
`PARC Technical Report
`ISTL
`—ADoc—1992—10—01 (Oct. 1992). Also available in ACM
`Transactions on Information Systems, vol. 10, No. 4, Oct.
`1992, pp. 381—407.
`Paul M. English, Ethan S. Jacobson, Robert A. Mom's,
`Kimbo B. Mundy, Stephen D. Pelletier, Thomas A. Polluci,
`and H. David Scarbro. An Extensible, Object—Oriented
`System for Active Documents. In R. Furuta (ed). EP90,
`Proceedings of the International Conference on Electronic
`Publishing, Document Manipulation and Typography, Cam-
`bridge University Press, 1990, pp. 263—276.
`David Goldberg and Aaron Goodisman. Stylus User Inter-
`faces for Manipulating Text. In Proceedings of the ACM
`Symposium on User Interface Software and Technology
`(UIST ’91, Hilton Head, South Carolina, Nov.), ACM 1991,
`pp. 127—135.
`Don Hopkins. The Design and Implementation of Pie
`Menus. Dr. Dobb’s Journal. vol. 16, No. 12, Dec. 1991, pp.
`16—26.
`
`Based Search and Replace. In Proceedings of CHI ’92
`(Monterey, California, May 3—7, 1992), Human Factors in
`Computing Systems, ACM, New York, 1992, pp. 609—618.
`Gordon Kurtenbach and William Buxton. Issues in Com-
`
`bining Marking and Direct Manipulation Techniques. In
`Proceedings of the ACM Symposium on User Interface
`Software and Technology (UIST ’91 Hilton Head, South
`Carolina, Nov. 11—13), ACM, 1991, pp. 137—144.
`J. K. Ousterhout. Tcl: An Embeddable Command Language.
`In winter USENIX Conference Proceedings, 1990, pp.
`133—146.
`
`Ken Pier, Eric A. Bier, and Maureen C. Stone. An Introduc-
`tion to Gargoyle: An Interactive Illustration Tool. Xerox
`PARC Technical Report EDL—89—2 (Jan. 1989). Also avail—
`able in Proceedings of the Intl. Conf. on Electronic Publish-
`ing, Document Manipulation and Typography (Nice, France,
`Apr. 1988). Cambridge Univ. Press, (1988), pp. 223—238.
`Dean Rubine. Specifying Gestures by Example. In Proceed—
`ings of ACM SIGGRAPH ’91, Computer Graphics, vol. 25,
`No. 4, Jul. 1991, pp. 329—337.
`Daniel C. Swinehart, Polle T. Zellweger, Richard J. Beach,
`Robert B. Hagmann. A Structural View of the Cedar Pro-
`gramming Environment. Xerox PARC Technical Report
`CSL—86—1. Also available as ACM Transactions on Pro—
`
`gramming Languages and Systems, vol. 8, No. 4, 1986, pp.
`419—490.
`
`David Kurtlander and Eric A. Bier. Graphical Search and
`Replace. Computer Graphics, vol. 22, No. 4, Aug. 1988, pp.
`1 13—120.
`
`Myron W. Krueger, Thomas Gionfriddo, and Katrin Hin—
`richsen. Videoplace—An Artificial Reality. CHI ’85 Pro-
`ceedings, Apr. 1985, pp. 35—40.
`Alto User’s Handbook. Chapter 4 (Markup User’s Manual),
`Xerox Corporation Sep. 1979, pp. 85—95.
`
`Ken Perlin and David Fox. Pad An Alternative Approach to
`the Computer Interface. Proceedings of Siggraph ’93 (Ana-
`heim, California Aug. 1—6, 1993) Computer Graphics Pro-
`ceedings, Annual Conference Series, pp. 57—64.
`
`Manojit Sarkar and Marc H. Brown. Graphical Fisheye
`Views of Graphs. CHI ’92 Proceedings, May 3—7, 1992, pp.
`83—91.
`
`William Buxton and Brad A Myers. A Study in Two—Handed
`Input. CHI ’86 Proceedings, Apr. 1986, pp. 321—326.
`Joel F. Bartlett. Transparent Controls for Interactive Graph-
`ics. WRL Technical Note TN—30, Digital Equipment Cor—
`poration, Jul. 1992, pp. 1—9.
`Paul Kabbash, I. Scott MacKenzie and William Buxton.
`Human Performance Using Computer Input Devices in the
`Preferred and Non—Preferred Hands. Proceedings of Inter-
`Chi Conference (Human Factors in Computing Systems)
`(Amsterdam Apr. 1993) ACM, pp. 474—481.
`William Buxton. There’s More to Interaction Than Meets
`the Eye: Some Issues in Manual Input. Chapter 8: The
`Haptic Channel, pp. 366—375 (from Readings in Human—
`Computer Interaction; A Multidisciplinary Approach, Mor-
`gan Kaufman Publishers, Inc. 1987).
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`transparent overlay
`
`Sheet 1 of 16
`5,617,114
`1stwmdow 22 display device
`
`________
`I mMmem._ v
`‘°‘
`nmuamnuupdn-w- Illnnfllh
`lwmrmmmmwnwmv -
`
`I
`|
`
`2nd window
`
`23 display area
`
`
`
`12
`
`25
`
`PROCESSOR
`
`KEYBOARD
`
`15
`
`17
`
`20
`
`j
`
`10
`
`FIG.1
`
`83
`
`DISPLAY IMAGE
`
`80
`
`lMAGE DATA STRUCTURE
`FOR PROGRAMS
`
`
`
`
` IMAGE DATA STRUCTURE
`
`
`
`
`
`FOR OVERLAY
`
`77
`
`RENDERER _
`
`UNDERLYING DATA
`FOR OVERLAY
`
`70
`
`UNDERLYING DATA
`FOR PROGRAMS
`
`FIG. 2
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 2 of 16
`
`5,617,114
`
`RAW DEVICE
`INPUT (OS)
`
`DRAG AND DROP
`OBJECT
`
`ANOTHER
`OVERLAY
`
`ANOTHER
`APPLICATION
`
`OVERLAY
`
`UNIVERSAL
`LANGUAGE
`
`85
`
`92
`
`WINDOW
`MANAGER
`
`93
`
`97
`
`TRANSLATOR #1
`
`TRANSLATOR #2
`
`APP. #1
`INPUT
`LANGUAGE
`
`APP. #2
`INPUT
`LANGUAGE
`
`APPLICATION
`PARSER #1
`
`PROCEDURE
`CALLS
`
`APPLICATION
`PARSER #2
`
`PROCEDURE
`CALLS
`
`PROCEDURE
`CALLS
`
`PROCEDURE
`CALLS
`
`87
`
`88
`
`APPLICATION #1
`
`APPLICATION #2
`
`FIG. 3
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 3 of 16
`
`5,617,114
`
`§§Am §\\\\\\
`
`
`
`
`
`awaw
`§\\
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 4 of 16
`
`5,617,114
`
`SUMMARY OF THE INVENTION
`NTlON
`- a user interface _) The present invention provides a user interface
`
`
`bold italic techniquethat allows a user to pe rm many common
`technique that allows a user to perform many common
`- .
`gnificantly enhancing
`tasks with fewer actions, thereby significantly enhancing
`
`productivity. The technique makes use of actions with
`productivity. The technique makes use of actions with
`which the user tends to be familiar, and therefore may be
`which the user tends to be familiar, and therefore may be
`learned rather quickly.
`learned rather quickly.
`
`
`FIG. 8
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 5 of 16
`
`5,617,114
`
`O
`9O0O0‘.’0
`
`III.9QIIII‘.0.0%v
`
`Select Vertex
`
`FIG. 14
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 6 of 16
`
`5,617,114
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 7 of 16
`
`5,617,114
`
`"""" ‘1?
`
`U
`
`l
`
`“m"?
`
`
`
`-------a
`
`
`FIG. 19
`
`
`
`FIG. 20
`
`I—l—I
`
`I—|_I
`§l §K.
`
`I—l-I
`
`.
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 8 of 16
`
`5,617,114
`
`
`
`llI
`
`
`1
`I
`Interfaces based on use and keyboard have become dominant in recent years.
`
`1
`Format: Except during typing, these interfaces make a very uneven use of the user's two
`general, th- strong (dominant) hand (i.e., the right hand for right-handed ;
`
`0 y
`. .
`takes of a ri h interaction with the mouse, while the weak (non-
`,
`
`I ominant) hand is re] gated to occasionally holding down a modifier key.
`II
`There is little opportunity in such interfaces to perform independent tasks
`simultaneously. Furthermore, the dominant hand spends time switching from one
`task to another more often than is necessary.
`
`:1
`r
`
`I '
`
`:
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 9 of 16
`
`5,617,114
`
`FIG. 26
`
`I\
`
`defghijklmnopqrs
`ABCDEFGHIJKLMN
`
` abcdefghijklmno
`
`abcdefghijklmno
`ABCDEFGHIIKL
`
`
`
`ABCDEFGHIIKL
`
`
`
`
`afitd’dgfiijkfinnopgrst
`mmygmymm
`
`
`
`
`
`aficdigfiflijflmnopqrst
`wcmygymxm
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 10 of 16
`
`5,617,114
`
`
`
`
`x
`
`y
`l
`I\
`,
`I
`_ ____
`Thosdocumem I
`II
`I;
`I
`.. ._ - I
`containstext
`I
`I
`andgraphics.
`I
`I
`
`I
`
`[- ------------- 1
`__..l
`I
`I
`l
`—I
`I
`I
`I
`
`,’\
`
`x
`
`\
`
`I
`
`’
`
`/
`I /|
`:
`'1‘
`I
`I
`I
`'l
`
`l
`r'
`‘
`|
`I
`I
`I
`I
`'
`
`IIL
`
`>
`
`FIG. 30
`
`
`
`FIG. 31
`
`~
`
`“I III
`
`A
`
`ND
`
`'
`
`——>
`
`“"III
`
`
`FIG. 32
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 11 of 16
`
`5,617,114
`
`User Input Routine
`
`Move the Overlay
`that is connected
`to this device as a
`function of the
`device movement.
`
`
`
`Resize the overlay
`that is connected
`to this device as a
`function of the
`device movement.
`
`Yes
`
`Yes
`
`Receive
`
`
`input.
`
`
`user
`
`
`
`
`
`ls
`input from
`
`
`Overlay-moving
`
`
`device?
`
`
`
`
`
`
`
`
`
`
`
`ls
`input from
`Overlay-scaling
`
`device?
`
`
`
`
`is
`
`
`
`Move cursor as
`input from
`
`a function of the
`
`
`cursor-moving
`device?
`device movement.
`
`
`
`
`
`Pass event to the root
`
`application and perform the
`
`Event To Application
`
`Routine.
`
`
`
`
`
`FIG. 33
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 12 of 16
`
`5,617,114
`
`OVERLAY #2
`
`OVERLAY #1
`
`
`
`
`
`APP #38
`
`APP #3A
`
`
`
`
`
`APP #38
`
`APP #3A
`
`FIG. 34C
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 13 of 16
`
`5,617,114
`
`Event to Application Routine
`
`Application,
`
`A, receives
`an event, E.
`
`
`
`
`ls
`
`
`Is
`
`P
`event
`
`
`
`any program,
`,
`from a pointing
`device?
`selected?
`
`
`
`
`
`
`
`
`
`Determine which child, C,
`
`of a is an ancestor of or is
`equal to P. Translate <x,y>
`of E into the coordinate
`system of C. Pass event
`to C.
`
`
`
`Is
`
`any program,
`
`
`P, in gesture
`
`mode?
`
`
`
`
`
`
`
`A handles the event
`
`
`
`Determine the frontmost
`
`is C
`using the Translate
`
`child, C, of A that is behind
`
`
`an overlay?
`and Execute
`
`
`belowChild[A] and contains
`
`
`
`Routine.
`coordinates <x,y> (if any
`such 0 exists).
`
`
`
`
`Perlonn the Event to
`
` Does
`Overlay Routine.
`
`
`such a child 0
`exist?
`
`
`
`belowChild[A] (- c
`
`FIG. 35
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 14 of 16
`
`5,617,114
`
`Event to Overlay
`Routine
`
`
`Overlay, 0,
`
`receives point-
`ing event, E,
`
`at <x,y>.
`
`
`
`
`Pass event to the tool,
`Is
`Determine the frontmost tool, T,
`
`
`
`T, that is the current
`0 in gesture
`of O that is behind belowTool[O]
`
`
`
`gesture-handling tool.
`mode?
`and contains coordinates <x,y>
`
`
`
`(if any such T exists). T looks up E in its
`
`event table to
`
`
`
`
`
`
`determine the action,
`A, to perform.
`
`Let P be the parent program
`of 0. Translate <x,y> of E
`
`
`
`and any coordinates <x,y> in
`
`Does such
`
`
`
`E's command list, L, that are
`tool T exist?
`
`
`
`marked for translation, into
`
`
`Is A the end
`
`
`the coordinate system of P.
`
`of a gesture?
`Pass event E to P. Perform
`
`
`
`the Event to Application
`
`Routine.
`
`
`Pass E to T for processing.
`
`T looks up E in its event
`
`table to determine the
`action, A, to perform.
`
`Turn off gesture
`mode for O.
`
`
`
`
`
`
`
`
`Turn on gesture mode for 0,
`making T be the current gesture-
`
`handling tool. Let the list of
`
`gesture data points be empty.
`
`
`
`Is A the
`
`beginning of
`
`a gesture?
`
`
`
`
`
`
`
`
`
`
`
`Process the event by pertormng the
`
`Event to Tool Routine. The Event to
`
`
`
`Add this data point to the list of
`Tool Routine may process the event
`
`
`
`gesture data points. T may draw
`further by recursively executing this
`
`
`
`immediate user feedback based
`flowchart, beginning at circle A above.
`
`
`
`on the partial gesture.
`
`
`FIG. 36
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 15 of 16
`
`5,617,114
`
`_ Event to Tool
`'
`ROUtme
`
`Perform action A
`immediately. Perform
`
`feedback specified by A. any final user feedback.
`
`
`
`Tool, T,
`
`
`receives
`pointing
`
`
`
`
`event, E,
`
`
`at <x,y>.
`
`
`No
`
`
`
`
`ls T a
`click-through
`tool?
`
`
`Let A be a data structure
`representing the action that
`T performs in response to E
`as computed in the Event
`to Overlay Routine.
`
`Perform any initial user
`
` Yes
`
`Determine the frontmost
`
`application, Q, that is
`Is T
`
`
`behind T's overlay, O,
`application
`
`
`and is of a type that T
`specific?
`
`
`knows how to
`communicate with.
`
`
`
`
`
`
`
`
`
` From A and coordinates
`<x,y >, compose a
`
`
`
`Extract from E the list of
`command to deliver to Q,
`
`commands, L, that were added to
`and/or a set of calls to the
`
`
`E by any tools that E has been
`procedures of Q. Deliver
`
`
`passed to previously (it any).
`the commands and/or
`
`
`make the calls.
`
`
`
`
`Use the list of
`Compose a new list of
`commands that
`commands from A and L
`Routine.
`is part of A.
`using the Composition
`
`
`
`
`
`Recursively call the Event to Overlay
`Routine entering at circle A. This routine
`may return data (e.g., if T is a clipboard).
`Use this data and perform any parts of
`action A that T can perform.
`
`
`
`
`
`
`
`FIG. 37
`
`
`
`
`Perform any final
`user feedback.
`
`
`
`Replace the list L in E with the new list
`just computed. Set belowTool[O] <— T.
`
`
`
`
`

`

`US. Patent
`
`Apr. 1, 1997
`
`Sheet 16 0f 16
`
`5,617,114
`
`fillanalue —
`
`Command:
`
`
`
`
`List of programs
`waiting for this value
`
`The actual shape
`
`
`
`APP #3A
`
`
`
`APP #38
`
`FIG. 40
`
`

`

`5,617,114
`
`1
`USER INTERFACE HAVING
`CLICK-THROUGH TOOLS THAT CAN BE
`COMPOSED WITH OTHER TOOLS
`
`This is a Continuation of application Ser. No. 08/095, 5
`445, filed Jul. 21, 1993, now abandoned.
`
`2
`A display device, typically a visual display device such as
`a cathode ray tube (CRT) or a liquid crystal display (LCD),
`provides the user with information about the application and
`the underlying data, and allows the user to generate appro(cid:173)
`priate input signals and thus control the operation of the
`machine to produce the intended work product. The com-
`bination of input devices, display devices, and the nature of
`the information that the application provides the user may be
`thought of as the user interface to the application.
`Although it is in principle possible for every application
`program to be entirely self-sufficient, it is almost universally
`the case that the application program executes in conjunc(cid:173)
`tion with an operating system ("OS"). The OS is a program
`that schedules and controls the machine resources to provide
`15 an interface between the application programs and the
`machine hardware. The OS typically provides the basic
`housekeeping functions that all application programs are
`likely to require, such as maintaining a file system, sched(cid:173)
`uling the CPU, receiving input from input devices, commu-
`20 nicating with storage devices, sending data to display
`devices, and providing a generic mechanism according to
`which a user can manage files and cause various applications
`to execute. In the world of personal computers ("PCs") and
`workstations, operating systems are often associated with a
`25 particular type of hardware configuration, but this is not
`necessarily the case. Unix is an example of an OS that has
`been ported to run on many types of machine.
`One type of operating system that has come into increas(cid:173)
`ing use in recent years provides a graphical user interface
`30 ("GUI"). Apple Computer's Macintosh as, IBM's OS/2,
`and Microsoft's Windows (actually a GUI shell that runs on
`top of a character-based operating system known as DOS)
`are the best known GUIs in the PC realm. The Macintosh OS
`has to date been available only on Apple's own Macintosh
`35 PCs based on the Motorola 680xO family of microprocessors
`while OS/2 and Windows have only been available on
`so-called IBM-compatible PCs based on the Intel 80x86
`family of microprocessors. This trend is in the process of
`changing, with Microsoft's Windows NT having versions
`40 capable of running on more than one type of microprocessor.
`One relevant aspect of a GUI is that an open file for a
`given application is typically given a window, which is a
`movable and resizable region on the screen. The OS can
`45 have its own windows showing directory structures, with
`files and applications possibly being represented by icons
`(small graphical objects representing actions or items).
`There may be other windows that do not correspond to open
`files. An advantage of a GUI is that it provides a rather
`50 consistent user environment across applications. Some GUIs
`allow mUltiple applications to be open at the same time.
`Regardless of the type of as, the application program,
`with varying amounts of help from the as, typically pro(cid:173)
`vides the user with a visible representation (sometimes
`referred to as the "screen image" or the "display image") of
`the underlying data. The user acts on the visible represen(cid:173)
`tation, and the program translates these actions to operations
`on the underlying data. As used herein, the term "visible
`representation" will refer to the visual representation of the
`60 underlying data not only for application programs, but for all
`kinds of programs, including the as and various types of
`utility programs.
`For example, in a word-processor, the underlying data
`consists of text with associated information specifying how
`the document will look when it is printed out on a printer.
`The associated information relates to document layout such
`as paragraphs and columns, and to text attributes such as
`
`10
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`The following three commonly-owned copending appli(cid:173)
`cations, including this one, are being filed concurrently and
`the other two are incorporated by reference into this one:
`Eric A. Bier, William A. S. Buxton, entitled "USER
`INTERFACE HAVING MOVABLE SHEET WITH
`CLICK-THROUGH TOOLS" U.S. application Ser. No.
`08/095,598, now U.S. Pat. No. 5,581,670;
`William A. S. Buxton and Eric A. Bier, entitled "USER
`INTERFACE HAVING SIMULTANEOUSLY MOVABLE
`TOOLS AND CURSOR" U.S. application Ser. No. 08/095,
`591; and
`Eric A. Bier, William A. S. Buxton, and Maureen C. Stone
`entitled
`"USER
`INTERFACE HAVING CLICK(cid:173)
`THROUGH TOOLS THAT CAN BE COMPOSED WITH
`OTHER TOOLS".
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates generally to processor(cid:173)
`controlled machines such as computers and more specifi(cid:173)
`cally to user interfaces for allowing a user to interact with
`the machine.
`A frequent use of a processor-controlled machine such as
`a computer is to communicate information to a user of the
`machine and accept information from the user, thereby
`allowing the user to perform a specified task. Depending on
`the task at hand, the user will often make use of a task(cid:173)
`specific application program such as a word processor
`(sometimes referred to as a text editor), a spreadsheet, a
`database, or a drawing program (sometimes referred to as a
`graphics editor). A reference to a specific type of program or
`editor is not intended to imply a stand-alone application
`program having only the particular functionality, since many
`programs have more than one type of functionality.
`A typical application program consists of a set of instruc(cid:173)
`tions (the "application") that are executed in response to
`input signals to create and modify associated data (some(cid:173)
`times referred to as the underlying data). In many instances,
`this associated data is stored on a disk as a data file
`(sometimes referred to as "the file"), and portions are read
`into memory during program execution. For at least some
`applications, the data represents a document that is to be
`viewed (e.g., printed or displayed on a screen), and the
`application allows a user to modify the document.
`In many instances, a user provides at least some of the
`input signals through one or more input devices, often a
`keyboard and a pointing device such as a mouse. By way of
`background, a mouse is a device that is moved over a work
`surface, typically next to the keyboard, and provides posi(cid:173)
`tion signals so as to cause a cursor on the screen to move in
`accordance with the mouse's movements. The cursor is a
`special symbol that is used by an interactive program as a
`pointer or attention-focusing device. The mouse contains
`one or more pushbutton switches ("buttons") to provide 65
`additional input signals, which may be interpreted as part of
`a cursor event.
`
`55
`
`

`

`5,617,114
`
`15
`
`4
`programs, shows the direction in which some of these efforts
`have led, and the way that improving one aspect of a user
`interface can degrade another.
`A common configuration for drawing programs has a
`fixed tool palette to one side of the drawing area and a menu
`bar above the drawing area. To change tools, the user moves
`the cursor to the palette, clicks on the icon for the desired
`tool, and moves the cursor back to the appropriate location
`in the drawing area. To effect a desired operation on a
`10 desired object, the user moves the cursor to the object, clicks
`the object to select the object, moves the cursor to the menu
`bar, depresses the mouse button to pull down the menu,
`drags to the desired menu item, and releases the mouse
`button. The user then moves the cursor to the drawing area,
`to another item in the menu bar, or to the tool palette. This
`is a lot of mouse movement for even the simplest actions.
`Tear-off menus and movable tool palettes allow the user
`to position what amount to permanently open menus and the
`tool palette near the area where drawing is actively occur-
`20 ring, and thereby reduce the length of mouse travel. Tear-off
`menus and movable palettes have made drawing more
`efficient in the sense of reducing the distances the user has
`to move the cursor, but have made it less efficient in another.
`They tend to take up a lot of the drawing area, especially
`25 near where the user is drawing. This can result in the user's
`constantly having to interrupt the drawing tasks to move the
`menus and palettes out of the way. This difficulty is com(cid:173)
`pounded by the fact that as programs have gotten more
`powerful (greater functionality), the menus have grown
`longer and take up even more area. Unfortunately, this
`example of the trade-offs encountered in trying to meet the
`above goals is far from rare.
`
`30
`
`3
`font, size, style, and color. Depending on the particular
`word-processor and the operating system, the screen image
`may be limited to the text content, or may show the
`document substantially as it will appear when printed
`(WYSIWYG-pronounced "wizzywig," an acronym for 5
`"what you see is what you get"). A program designed for a
`character-based OS such as DOS is likely to provide some(cid:173)
`thing approaching the former, one designed for a GUI is
`likely to provide something approaching the latter.
`A similar range of possible screen images will be found in
`other types of application programs. For example, in a
`drawing program, the underlying data will contain a descrip(cid:173)
`tion of each graphical object that will appear on the docu(cid:173)
`ment. The description includes what is needed to give the
`object its intended appearance, including shape, size, line
`color and thickness, fill color and pattern, relative position in
`the plane of the document, and stacking order (whether the
`object is in front of or behind other objects). The screen
`image may show only the outlines of the objects (wireframe
`view) or may be a full WYSIWYG view.
`Regardless of the type of application, the user manipu(cid:173)
`lates input devices with reference to the screen image in
`order to effect desired changes. This is typically done by
`placing a cursor at a particular position on the screen that
`corresponds to the displayed location of an object to be
`modified, and executing one or more user events such as
`keystrokes or mouse actions. Mouse actions include button
`depression, button release, mouse movement, clicks, and
`drags. A mouse click refers to the user depressing and
`releasing one of the buttons without moving the mouse, but
`the term is also used to refer to the act of depressing one of
`the buttons. A drag (or sometimes click-and-drag) refers to
`the user positioning the cursor with the mouse, depressing
`one of the buttons, moving the mouse to a new position with
`the button still down, and releasing the button at the new 35
`location. The effect of mouse button depressions, mouse
`button releases, clicks, and drags may be modified by
`holding down a keyboard key or a different mouse button (if
`present).
`For example, placing a cursor at a particular location in a
`word processor image may operate to insert typed text at that
`location. Dragging the cursor over a portion of the displayed
`text may select the text (shown on the screen as highlighted)
`so that the user can apply an operation (such as deleting,
`moving, or changing the font) to the selected text by some
`other mechanism. Depending on the application and the
`desired operation, the mechanism may be selecting the
`operation from a menu or entering a command from the
`keyboard.
`Similarly, in a drawing program, the cursor can be placed
`in a mode by clicking on a tool icon (e.g., rectangle tool, line
`tool, polygon tool) so that subsequent clicks and drags with
`the cursor result in the creation of graphical objects. Click(cid:173)
`ing on an existing object with a plain cursor may result in
`selecting the object so that an operation may be applied via
`some other mechanism. If a drag is initiated with the cursor
`on an object, the result of the drag may be to cause the object
`to move along with the cursor, or may be to cause the object
`to be resized, depending on the cursor location on the object. 60
`For users to be more productive, they should be provided
`with tools that are relatively easy to learn, easy to use, and
`powerful. These goals are sometimes easy to achieve indi(cid:173)
`vidually, but rarely in combination. Nevertheless, consider(cid:173)
`able efforts have been expended in attempts to design user 65
`interfaces that are more intuitive, efficient, and versatile. The
`example discussed below, taken from the realm of drawing
`
`40
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a user interface technique
`that allows a user to perform many common tasks with fewer
`actions, thereby significantly enhancing productivity. The
`technique makes use of actions with which the user tends to
`be familiar, and therefore may be leamed rather quickly. The
`invention may be implemented in the context of a single
`program, or may be incorporated into the operating system
`. so as to be available across different programs, including the
`45 operating system.
`The invention operates in the environment of a processor(cid:173)
`controlled machine for executing a program that operates on
`a set of underlying data and displays a visible representation
`thereof. The system further provides a visual depiction of a
`50 set of controllers, such as tool palettes, property palettes,
`menus, switches, dialog boxes, and sliders. The controllers
`are collectively referred to as tools. The user normally
`specifies operations to the program by interacting with the
`tools and the visible representation (using a set of input
`55 devices), and views the results of those operations on a
`display device. The user typically positions a cursor at a
`desired location and takes an action, such as a mouse click,
`with the cursor.
`In brief, the invention is characterized by what are
`referred to as click-through tools that can be combined with
`other tools (including other click-through tools) to provide
`composite tools. The visual depiction of a click-through tool
`includes a generally transparent delineated active area that is
`movable so that it can be placed over a desired portion of the
`visible representation. When the user interacts with the
`visible representation through the active area, the action
`takes on an attribute of the particular click-through tool. In
`
`

`

`5,617,114
`
`5
`
`40
`
`5
`an embodiment of the invention that operates in the context
`of a drawing program, where the visible representation is a
`representation of a set of graphical objects, the click-through
`tools may include tools for creating objects, and tools for
`copying, modifying, and deleting existing objects.
`Once a click-through tool has been positioned relative to
`the visible representation, the result of an action through the
`tool will typically depend on the particular location within
`the active area that the action occurs. Put another way, the
`result of an action through a click-through tool will typically 10
`depend on the portion of the visible representation that is
`under the cursor when the action is taken. While a conven(cid:173

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